diff --git a/dom/media/PeerConnection.js b/dom/media/PeerConnection.js index 0931d0b87c90..cc44ce82a57c 100644 --- a/dom/media/PeerConnection.js +++ b/dom/media/PeerConnection.js @@ -1168,6 +1168,14 @@ class RTCPeerConnection { this._impl.selectSsrc(receiver.track, ssrcIndex); } + mozAddRIDExtension(receiver, extensionId) { + this._impl.addRIDExtension(receiver.track, extensionId); + } + + mozAddRIDFilter(receiver, rid) { + this._impl.addRIDFilter(receiver.track, rid); + } + get localDescription() { this._checkClosed(); let sdp = this._impl.localDescription; diff --git a/dom/webidl/PeerConnectionImpl.webidl b/dom/webidl/PeerConnectionImpl.webidl index d30f6783480c..08652a6a34cf 100644 --- a/dom/webidl/PeerConnectionImpl.webidl +++ b/dom/webidl/PeerConnectionImpl.webidl @@ -64,6 +64,8 @@ interface PeerConnectionImpl { sequence getRemoteStreams(); void selectSsrc(MediaStreamTrack recvTrack, unsigned short ssrcIndex); + void addRIDExtension(MediaStreamTrack recvTrack, unsigned short extensionId); + void addRIDFilter(MediaStreamTrack recvTrack, DOMString rid); /* As the ICE candidates roll in this one should be called each time * in order to keep the candidate list up-to-date for the next SDP-related diff --git a/dom/webidl/RTCPeerConnection.webidl b/dom/webidl/RTCPeerConnection.webidl index 7b902aa5d3f2..27756cde209d 100644 --- a/dom/webidl/RTCPeerConnection.webidl +++ b/dom/webidl/RTCPeerConnection.webidl @@ -121,6 +121,10 @@ interface RTCPeerConnection : EventTarget { [ChromeOnly] void mozSelectSsrc(RTCRtpReceiver receiver, unsigned short ssrcIndex); + [ChromeOnly] + void mozAddRIDExtension(RTCRtpReceiver receiver, unsigned short extensionId); + [ChromeOnly] + void mozAddRIDFilter(RTCRtpReceiver receiver, DOMString rid); void close (); attribute EventHandler onnegotiationneeded; diff --git a/media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.cpp b/media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.cpp index 0b43812ffa53..4d309c1899ab 100644 --- a/media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.cpp +++ b/media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.cpp @@ -2366,6 +2366,20 @@ PeerConnectionImpl::SelectSsrc(MediaStreamTrack& aRecvTrack, return NS_OK; } +nsresult +PeerConnectionImpl::AddRIDExtension(MediaStreamTrack& aRecvTrack, + unsigned short aExtensionId) +{ + return NS_OK; +} + +nsresult +PeerConnectionImpl::AddRIDFilter(MediaStreamTrack& aRecvTrack, + const nsAString& aRid) +{ + return NS_OK; +} + NS_IMETHODIMP PeerConnectionImpl::RemoveTrack(MediaStreamTrack& aTrack) { PC_AUTO_ENTER_API_CALL(true); diff --git a/media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.h b/media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.h index cf3f97b366e0..4a8c32d14c71 100644 --- a/media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.h +++ b/media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.h @@ -457,6 +457,20 @@ public: rv = SelectSsrc(aRecvTrack, aSsrcIndex); } + NS_IMETHODIMP_TO_ERRORRESULT(AddRIDExtension, ErrorResult &rv, + dom::MediaStreamTrack& aRecvTrack, + unsigned short aExtensionId) + { + rv = AddRIDExtension(aRecvTrack, aExtensionId); + } + + NS_IMETHODIMP_TO_ERRORRESULT(AddRIDFilter, ErrorResult& rv, + dom::MediaStreamTrack& aRecvTrack, + const nsAString& aRid) + { + rv = AddRIDFilter(aRecvTrack, aRid); + } + nsresult GetPeerIdentity(nsAString& peerIdentity) { if (mPeerIdentity) {