Bug 1363667 - P5 - RTP Source PeerConnection JS IF draft
authorNico Grunbaum
Tue, 14 Nov 2017 10:29:44 -0800
changeset 706490 2df6552617a2b4bc94516c758ea7e8829db837a1
parent 706489 c8f3d9fa1a565739b703fcb018ebadd399f8ffa0
child 706491 9d09adc6236f3a4bf94e7e8d9191c164908e1deb
push id91808
push userna-g@nostrum.com
push dateSat, 02 Dec 2017 00:48:28 +0000
bugs1363667
milestone59.0a1
Bug 1363667 - P5 - RTP Source PeerConnection JS IF MozReview-Commit-ID: HLG5MFzhMNK
dom/webidl/PeerConnectionImpl.webidl
dom/webidl/RTCPeerConnection.webidl
--- a/dom/webidl/PeerConnectionImpl.webidl
+++ b/dom/webidl/PeerConnectionImpl.webidl
@@ -48,25 +48,36 @@ interface PeerConnectionImpl  {
   [Throws]
   boolean checkNegotiationNeeded();
   [Throws]
   void insertDTMF(TransceiverImpl transceiver, DOMString tones,
                   optional unsigned long duration = 100,
                   optional unsigned long interToneGap = 70);
   [Throws]
   DOMString getDTMFToneBuffer(RTCRtpSender sender);
+  sequence<RTCRtpSourceEntry> getRtpSources(MediaStreamTrack track,
+                                            DOMHighResTimeStamp rtpSourceNow);
+  DOMHighResTimeStamp getNowInRtpSourceReferenceTime();
+
   [Throws]
   void replaceTrackNoRenegotiation(TransceiverImpl transceiverImpl,
                                    MediaStreamTrack? withTrack);
   [Throws]
   void closeStreams();
 
   void addRIDExtension(MediaStreamTrack recvTrack, unsigned short extensionId);
   void addRIDFilter(MediaStreamTrack recvTrack, DOMString rid);
 
+  // Inserts CSRC data for the RtpSourceObserver for testing
+  void insertAudioLevelForContributingSource(MediaStreamTrack recvTrack,
+                                             unsigned long source,
+                                             DOMHighResTimeStamp timestamp,
+                                             boolean hasLevel,
+                                             byte level);
+
   void enablePacketDump(unsigned long level,
                         mozPacketDumpType type,
                         boolean sending);
 
   void disablePacketDump(unsigned long level,
                          mozPacketDumpType type,
                          boolean sending);
 
--- a/dom/webidl/RTCPeerConnection.webidl
+++ b/dom/webidl/RTCPeerConnection.webidl
@@ -130,16 +130,26 @@ interface RTCPeerConnection : EventTarge
 
   RTCRtpTransceiver addTransceiver((MediaStreamTrack or DOMString) trackOrKind,
                                    optional RTCRtpTransceiverInit init);
 
   sequence<RTCRtpSender> getSenders();
   sequence<RTCRtpReceiver> getReceivers();
   sequence<RTCRtpTransceiver> getTransceivers();
 
+  // test-only: for testing getContributingSources
+  [ChromeOnly]
+  DOMHighResTimeStamp mozGetNowInRtpSourceReferenceTime();
+  // test-only: for testing getContributingSources
+  [ChromeOnly]
+  void mozInsertAudioLevelForContributingSource(RTCRtpReceiver receiver,
+                                                unsigned long source,
+                                                DOMHighResTimeStamp timestamp,
+                                                boolean hasLevel,
+                                                byte level);
   [ChromeOnly]
   void mozAddRIDExtension(RTCRtpReceiver receiver, unsigned short extensionId);
   [ChromeOnly]
   void mozAddRIDFilter(RTCRtpReceiver receiver, DOMString rid);
   [ChromeOnly]
   void mozSetPacketCallback(mozPacketCallback callback);
   [ChromeOnly]
   void mozEnablePacketDump(unsigned long level,