The parts of the RTC Media API (https://w3c.github.io/webrtc-pc/#rtp-media-api) that allow keeping track of contributing sources for receiving tracks. RTCPeerConnection extension: - sequence<RTCRtpReceiver> getReceivers(); RTCRtpSender support: - MediaStreamTrack track; - sequence<RTCRtpContributingSource> getContributingSources(); RTCRtpContributingSource support: - DOMHighResTimeStamp timestamp; - unsigned long source; - byte? audioLevel; Spec: https://w3c.github.io/webrtc-pc/#rtcpeerconnection-interface-extensions https://w3c.github.io/webrtc-pc/#dom-rtcrtpreceiver https://w3c.github.io/webrtc-pc/#dom-rtcrtpcontributingsource
The parts of the RTC Media API (https://w3c.github.io/webrtc-pc/#rtp-media-api) that allow keeping track of contributing sources for receiving tracks. RTCPeerConnection extension: - sequence<RTCRtpReceiver> getReceivers(); RTCRtpSender support: - MediaStreamTrack track; - sequence<RTCRtpContributingSource> getContributingSources(); RTCRtpContributingSource support: - DOMHighResTimeStamp timestamp; - unsigned long source; Spec: https://w3c.github.io/webrtc-pc/#rtcpeerconnection-interface-extensions https://w3c.github.io/webrtc-pc/#dom-rtcrtpreceiver https://w3c.github.io/webrtc-pc/#dom-rtcrtpcontributingsource
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/cc4863010c8c9b706274a1eeed803d5a3f8250ca commit cc4863010c8c9b706274a1eeed803d5a3f8250ca Author: hbos <hbos@chromium.org> Date: Thu Mar 30 16:47:11 2017 Interface RTCRtpReceiver and RTCPeerConnection.getReceivers() added. This CL adds RTCPeerConnection.getReceivers() and a partial implementation of the RTCRtpReceiver interface, only containing the track member. Behind experimental RuntimeEnabled feature "RTCRtpReceiver". getReceivers() spec: https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-getreceivers RTCRtpReceiver spec: https://w3c.github.io/webrtc-pc/#rtcrtpreceiver-interface blink layer: - javascript object RTCRtpReceiver.[idl/h/cpp] added. - interface WebRTCRtpReceiver.[h/cpp] added. - interface WebRTCPeerConnectionHandler::getReceivers() added. content layer: - RTCRtpReceiver.[h/cc] added (implementation of WebRTCRtpReceiver). - RTCPeerConnectionHandler::getReceivers() added (implementation of WebRTCPeerConnectionHandler implementation). All remote tracks have receivers. When receivers are surfaced we find which upper-layer track to reference by iterating remote tracks. New receivers are created on getReceivers(), inactive receivers are removed on didRemoveRemoteStream(). We should be able to create receivers at the same time that tracks are created but on didAddRemoteStream() they are not fully initialized which creates problems. I left a TODO, we should use events for when tracks are being added/removed, not streams, but that is a separate issue. (The spec is moving away from streams in favor of addTrack/removeTrack.) Testing: - rtc_peer_connection_handler_unittest.cc: Tests the RTCPeerConnectionHandler::getReceivers implementation. - RTCPeerConnection-getReceivers.html: A LayoutTest testing adding and removing streams and that receivers match. Uses a MockRTCPeerConnectionHandler to add and remove streams (fake call). - webrtc_rtp_browsertest.cc / peerconnection_rtp.js: Sets up a call between two tabs and verifies remote tracks and receivers match, tests the full stack in a real browser. BUG= chromium:703122 Review-Url: https://codereview.chromium.org/2759953003 Cr-Commit-Position: refs/heads/master@{#460793} [modify] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/chrome/browser/media/webrtc/webrtc_browsertest_base.cc [modify] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/chrome/browser/media/webrtc/webrtc_browsertest_base.h [add] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/chrome/browser/media/webrtc/webrtc_rtp_browsertest.cc [modify] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/chrome/test/BUILD.gn [add] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/chrome/test/data/webrtc/peerconnection_rtp.js [modify] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/chrome/test/data/webrtc/webrtc_jsep01_test.html [modify] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/content/renderer/BUILD.gn [modify] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/content/renderer/media/mock_peer_connection_impl.cc [modify] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/content/renderer/media/mock_peer_connection_impl.h [modify] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/content/renderer/media/rtc_peer_connection_handler.cc [modify] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/content/renderer/media/rtc_peer_connection_handler.h [modify] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/content/renderer/media/rtc_peer_connection_handler_unittest.cc [add] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/content/renderer/media/webrtc/rtc_rtp_receiver.cc [add] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/content/renderer/media/webrtc/rtc_rtp_receiver.h [modify] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/content/shell/test_runner/mock_webrtc_peer_connection_handler.cc [modify] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/content/shell/test_runner/mock_webrtc_peer_connection_handler.h [modify] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/third_party/WebKit/LayoutTests/external/wpt/webrtc/rtcpeerconnection/rtcpeerconnection-idl-expected.txt [add] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/third_party/WebKit/LayoutTests/fast/peerconnection/RTCPeerConnection-getReceivers.html [modify] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt [modify] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/third_party/WebKit/Source/modules/modules_idl_files.gni [modify] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/third_party/WebKit/Source/modules/peerconnection/BUILD.gn [modify] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/third_party/WebKit/Source/modules/peerconnection/RTCPeerConnection.cpp [modify] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/third_party/WebKit/Source/modules/peerconnection/RTCPeerConnection.h [modify] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/third_party/WebKit/Source/modules/peerconnection/RTCPeerConnection.idl [add] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/third_party/WebKit/Source/modules/peerconnection/RTCRtpReceiver.cpp [add] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/third_party/WebKit/Source/modules/peerconnection/RTCRtpReceiver.h [add] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/third_party/WebKit/Source/modules/peerconnection/RTCRtpReceiver.idl [modify] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/third_party/WebKit/Source/platform/BUILD.gn [modify] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.json5 [modify] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/third_party/WebKit/Source/platform/exported/WebMediaStream.cpp [add] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/third_party/WebKit/Source/platform/exported/WebRTCRtpReceiver.cpp [modify] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/third_party/WebKit/Source/web/tests/ActiveConnectionThrottlingTest.cpp [modify] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/third_party/WebKit/public/BUILD.gn [modify] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/third_party/WebKit/public/platform/WebMediaStream.h [modify] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/third_party/WebKit/public/platform/WebRTCPeerConnectionHandler.h [add] https://crrev.com/cc4863010c8c9b706274a1eeed803d5a3f8250ca/third_party/WebKit/public/platform/WebRTCRtpReceiver.h
The following revision refers to this bug: https://chromium.googlesource.com/external/webrtc.git/+/292084c3765d9f3ee406ca2ec86eae206b540053 commit 292084c3765d9f3ee406ca2ec86eae206b540053 Author: zhihuang <zhihuang@webrtc.org> Date: Fri Apr 07 17:57:22 2017 Added the GetSources() to the RtpReceiverInterface and implemented it for the AudioRtpReceiver. This method returns a vector of RtpSource(both CSRC source and SSRC source) which contains the ID of a source, the timestamp, the source type (SSRC or CSRC) and the audio level. The RtpSource objects are buffered and maintained by the RtpReceiver in webrtc/modules/rtp_rtcp/. When the method is called, the info of the contributing source will be pulled along the object chain: AudioRtpReceiver -> VoiceChannel -> WebRtcVoiceMediaChannel -> AudioReceiveStream -> voe::Channel -> RtpRtcp module Spec:https://w3c.github.io/webrtc-pc/archives/20151006/webrtc.html#widl-RTCRtpReceiver-getContributingSources-sequence-RTCRtpContributingSource BUG= chromium:703122 TBR=stefan@webrtc.org, danilchap@webrtc.org Review-Url: https://codereview.webrtc.org/2770233003 Cr-Commit-Position: refs/heads/master@{#17591} [modify] https://crrev.com/292084c3765d9f3ee406ca2ec86eae206b540053/webrtc/api/rtpreceiverinterface.h [modify] https://crrev.com/292084c3765d9f3ee406ca2ec86eae206b540053/webrtc/api/test/mock_rtpreceiver.h [modify] https://crrev.com/292084c3765d9f3ee406ca2ec86eae206b540053/webrtc/audio/audio_receive_stream.cc [modify] https://crrev.com/292084c3765d9f3ee406ca2ec86eae206b540053/webrtc/audio/audio_receive_stream.h [modify] https://crrev.com/292084c3765d9f3ee406ca2ec86eae206b540053/webrtc/call/BUILD.gn [modify] https://crrev.com/292084c3765d9f3ee406ca2ec86eae206b540053/webrtc/call/audio_receive_stream.h [modify] https://crrev.com/292084c3765d9f3ee406ca2ec86eae206b540053/webrtc/media/engine/fakewebrtccall.h [modify] https://crrev.com/292084c3765d9f3ee406ca2ec86eae206b540053/webrtc/media/engine/webrtcvoiceengine.cc [modify] https://crrev.com/292084c3765d9f3ee406ca2ec86eae206b540053/webrtc/media/engine/webrtcvoiceengine.h [modify] https://crrev.com/292084c3765d9f3ee406ca2ec86eae206b540053/webrtc/modules/rtp_rtcp/BUILD.gn [modify] https://crrev.com/292084c3765d9f3ee406ca2ec86eae206b540053/webrtc/modules/rtp_rtcp/include/rtp_receiver.h [modify] https://crrev.com/292084c3765d9f3ee406ca2ec86eae206b540053/webrtc/modules/rtp_rtcp/source/rtp_receiver_impl.cc [modify] https://crrev.com/292084c3765d9f3ee406ca2ec86eae206b540053/webrtc/modules/rtp_rtcp/source/rtp_receiver_impl.h [add] https://crrev.com/292084c3765d9f3ee406ca2ec86eae206b540053/webrtc/modules/rtp_rtcp/source/rtp_receiver_unittest.cc [modify] https://crrev.com/292084c3765d9f3ee406ca2ec86eae206b540053/webrtc/pc/channel.cc [modify] https://crrev.com/292084c3765d9f3ee406ca2ec86eae206b540053/webrtc/pc/channel.h [modify] https://crrev.com/292084c3765d9f3ee406ca2ec86eae206b540053/webrtc/pc/peerconnection_integrationtest.cc [modify] https://crrev.com/292084c3765d9f3ee406ca2ec86eae206b540053/webrtc/pc/rtpreceiver.cc [modify] https://crrev.com/292084c3765d9f3ee406ca2ec86eae206b540053/webrtc/pc/rtpreceiver.h [modify] https://crrev.com/292084c3765d9f3ee406ca2ec86eae206b540053/webrtc/test/mock_voe_channel_proxy.h [modify] https://crrev.com/292084c3765d9f3ee406ca2ec86eae206b540053/webrtc/video/vie_encoder.cc [modify] https://crrev.com/292084c3765d9f3ee406ca2ec86eae206b540053/webrtc/voice_engine/BUILD.gn [modify] https://crrev.com/292084c3765d9f3ee406ca2ec86eae206b540053/webrtc/voice_engine/channel.h [modify] https://crrev.com/292084c3765d9f3ee406ca2ec86eae206b540053/webrtc/voice_engine/channel_proxy.cc [modify] https://crrev.com/292084c3765d9f3ee406ca2ec86eae206b540053/webrtc/voice_engine/channel_proxy.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7a16f508ad712bc38ff72e979dd5155a4015c320 commit 7a16f508ad712bc38ff72e979dd5155a4015c320 Author: hbos <hbos@chromium.org> Date: Mon Apr 10 09:17:20 2017 RTCRtpReceiver.getContributingSources() added. Adds RTCRtpReceiver.getContributingSources(), https://w3c.github.io/webrtc-pc/#dom-rtcrtpreceiver-getcontributingsources, and RTCRtpContributingSource, https://w3c.github.io/webrtc-pc/#dom-rtcrtpcontributingsource, behind flag "RuntimeEnabled=RTCRtpReceiver". Contributing sources come in two flavors, SSRCs and CSRCs. This interface represents both. For now we ignore SSRCs and only return CSRCs. It was recently decided that SSRCs would be returned in a separate method to distinguish between the two cases. A LayoutTest is used to thoroughly test all blink functionality with regards to CSRCs and the caching of contributing sources. This uses mocking to update contributing sources in a predictable way. The browsertest verifies that no contributing sources are used in a normal peerconnection call. The multiple CSRCs case is currently not possible to test in a browsertest so we rely on the LayoutTest (and webrtc layer testing of contributing sources). BUG= 703122 Review-Url: https://codereview.chromium.org/2803693002 Cr-Commit-Position: refs/heads/master@{#463199} [modify] https://crrev.com/7a16f508ad712bc38ff72e979dd5155a4015c320/chrome/test/data/webrtc/peerconnection_rtp.js [modify] https://crrev.com/7a16f508ad712bc38ff72e979dd5155a4015c320/content/renderer/BUILD.gn [add] https://crrev.com/7a16f508ad712bc38ff72e979dd5155a4015c320/content/renderer/media/webrtc/rtc_rtp_contributing_source.cc [add] https://crrev.com/7a16f508ad712bc38ff72e979dd5155a4015c320/content/renderer/media/webrtc/rtc_rtp_contributing_source.h [modify] https://crrev.com/7a16f508ad712bc38ff72e979dd5155a4015c320/content/renderer/media/webrtc/rtc_rtp_receiver.cc [modify] https://crrev.com/7a16f508ad712bc38ff72e979dd5155a4015c320/content/renderer/media/webrtc/rtc_rtp_receiver.h [modify] https://crrev.com/7a16f508ad712bc38ff72e979dd5155a4015c320/content/shell/test_runner/mock_webrtc_peer_connection_handler.cc [modify] https://crrev.com/7a16f508ad712bc38ff72e979dd5155a4015c320/third_party/WebKit/LayoutTests/fast/peerconnection/RTCPeerConnection-getReceivers.html [modify] https://crrev.com/7a16f508ad712bc38ff72e979dd5155a4015c320/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt [modify] https://crrev.com/7a16f508ad712bc38ff72e979dd5155a4015c320/third_party/WebKit/Source/modules/modules_idl_files.gni [modify] https://crrev.com/7a16f508ad712bc38ff72e979dd5155a4015c320/third_party/WebKit/Source/modules/peerconnection/BUILD.gn [add] https://crrev.com/7a16f508ad712bc38ff72e979dd5155a4015c320/third_party/WebKit/Source/modules/peerconnection/RTCRtpContributingSource.cpp [add] https://crrev.com/7a16f508ad712bc38ff72e979dd5155a4015c320/third_party/WebKit/Source/modules/peerconnection/RTCRtpContributingSource.h [add] https://crrev.com/7a16f508ad712bc38ff72e979dd5155a4015c320/third_party/WebKit/Source/modules/peerconnection/RTCRtpContributingSource.idl [modify] https://crrev.com/7a16f508ad712bc38ff72e979dd5155a4015c320/third_party/WebKit/Source/modules/peerconnection/RTCRtpReceiver.cpp [modify] https://crrev.com/7a16f508ad712bc38ff72e979dd5155a4015c320/third_party/WebKit/Source/modules/peerconnection/RTCRtpReceiver.h [modify] https://crrev.com/7a16f508ad712bc38ff72e979dd5155a4015c320/third_party/WebKit/Source/modules/peerconnection/RTCRtpReceiver.idl [modify] https://crrev.com/7a16f508ad712bc38ff72e979dd5155a4015c320/third_party/WebKit/Source/platform/BUILD.gn [add] https://crrev.com/7a16f508ad712bc38ff72e979dd5155a4015c320/third_party/WebKit/Source/platform/exported/WebRTCRtpContributingSource.cpp [modify] https://crrev.com/7a16f508ad712bc38ff72e979dd5155a4015c320/third_party/WebKit/public/BUILD.gn [add] https://crrev.com/7a16f508ad712bc38ff72e979dd5155a4015c320/third_party/WebKit/public/platform/WebRTCRtpContributingSource.h [modify] https://crrev.com/7a16f508ad712bc38ff72e979dd5155a4015c320/third_party/WebKit/public/platform/WebRTCRtpReceiver.h
The following revision refers to this bug: https://chromium.googlesource.com/external/webrtc.git/+/fbcc5cb3869d1370008e40f24fc03ac8fb69c675 commit fbcc5cb3869d1370008e40f24fc03ac8fb69c675 Author: olka <olka@webrtc.org> Date: Mon Apr 10 11:38:13 2017 Revert of Implemented the GetSources() in native code. (patchset #11 id:510001 of https://codereview.webrtc.org/2770233003/ ) Reason for revert: Suspected of WebRtcApprtcBrowserTest.MANUAL_WorksOnApprtc breakage, see https://bugs.chromium.org/p/webrtc/issues/detail?id=7465 Original issue's description: > Added the GetSources() to the RtpReceiverInterface and implemented > it for the AudioRtpReceiver. > > This method returns a vector of RtpSource(both CSRC source and SSRC > source) which contains the ID of a source, the timestamp, the source > type (SSRC or CSRC) and the audio level. > > The RtpSource objects are buffered and maintained by the > RtpReceiver in webrtc/modules/rtp_rtcp/. When the method is called, > the info of the contributing source will be pulled along the object > chain: > AudioRtpReceiver -> VoiceChannel -> WebRtcVoiceMediaChannel -> > AudioReceiveStream -> voe::Channel -> RtpRtcp module > > Spec:https://w3c.github.io/webrtc-pc/archives/20151006/webrtc.html#widl-RTCRtpReceiver-getContributingSources-sequence-RTCRtpContributingSource > > BUG= chromium:703122 > TBR=stefan@webrtc.org, danilchap@webrtc.org > > Review-Url: https://codereview.webrtc.org/2770233003 > Cr-Commit-Position: refs/heads/master@{#17591} > Committed: https://chromium.googlesource.com/external/webrtc/+/292084c3765d9f3ee406ca2ec86eae206b540053 TBR=deadbeef@webrtc.org,solenberg@webrtc.org,hbos@webrtc.org,philipel@webrtc.org,stefan@webrtc.org,danilchap@webrtc.org,zhihuang@webrtc.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG= chromium:703122 Review-Url: https://codereview.webrtc.org/2809613002 Cr-Commit-Position: refs/heads/master@{#17616} [modify] https://crrev.com/fbcc5cb3869d1370008e40f24fc03ac8fb69c675/webrtc/api/rtpreceiverinterface.h [modify] https://crrev.com/fbcc5cb3869d1370008e40f24fc03ac8fb69c675/webrtc/api/test/mock_rtpreceiver.h [modify] https://crrev.com/fbcc5cb3869d1370008e40f24fc03ac8fb69c675/webrtc/audio/audio_receive_stream.cc [modify] https://crrev.com/fbcc5cb3869d1370008e40f24fc03ac8fb69c675/webrtc/audio/audio_receive_stream.h [modify] https://crrev.com/fbcc5cb3869d1370008e40f24fc03ac8fb69c675/webrtc/call/BUILD.gn [modify] https://crrev.com/fbcc5cb3869d1370008e40f24fc03ac8fb69c675/webrtc/call/audio_receive_stream.h [modify] https://crrev.com/fbcc5cb3869d1370008e40f24fc03ac8fb69c675/webrtc/media/engine/fakewebrtccall.h [modify] https://crrev.com/fbcc5cb3869d1370008e40f24fc03ac8fb69c675/webrtc/media/engine/webrtcvoiceengine.cc [modify] https://crrev.com/fbcc5cb3869d1370008e40f24fc03ac8fb69c675/webrtc/media/engine/webrtcvoiceengine.h [modify] https://crrev.com/fbcc5cb3869d1370008e40f24fc03ac8fb69c675/webrtc/modules/rtp_rtcp/BUILD.gn [modify] https://crrev.com/fbcc5cb3869d1370008e40f24fc03ac8fb69c675/webrtc/modules/rtp_rtcp/include/rtp_receiver.h [modify] https://crrev.com/fbcc5cb3869d1370008e40f24fc03ac8fb69c675/webrtc/modules/rtp_rtcp/source/rtp_receiver_impl.cc [modify] https://crrev.com/fbcc5cb3869d1370008e40f24fc03ac8fb69c675/webrtc/modules/rtp_rtcp/source/rtp_receiver_impl.h [delete] https://crrev.com/925e9d762c107230fe96eb0e8c2bb4dab87417fe/webrtc/modules/rtp_rtcp/source/rtp_receiver_unittest.cc [modify] https://crrev.com/fbcc5cb3869d1370008e40f24fc03ac8fb69c675/webrtc/pc/channel.cc [modify] https://crrev.com/fbcc5cb3869d1370008e40f24fc03ac8fb69c675/webrtc/pc/channel.h [modify] https://crrev.com/fbcc5cb3869d1370008e40f24fc03ac8fb69c675/webrtc/pc/peerconnection_integrationtest.cc [modify] https://crrev.com/fbcc5cb3869d1370008e40f24fc03ac8fb69c675/webrtc/pc/rtpreceiver.cc [modify] https://crrev.com/fbcc5cb3869d1370008e40f24fc03ac8fb69c675/webrtc/pc/rtpreceiver.h [modify] https://crrev.com/fbcc5cb3869d1370008e40f24fc03ac8fb69c675/webrtc/test/mock_voe_channel_proxy.h [modify] https://crrev.com/fbcc5cb3869d1370008e40f24fc03ac8fb69c675/webrtc/video/vie_encoder.cc [modify] https://crrev.com/fbcc5cb3869d1370008e40f24fc03ac8fb69c675/webrtc/voice_engine/BUILD.gn [modify] https://crrev.com/fbcc5cb3869d1370008e40f24fc03ac8fb69c675/webrtc/voice_engine/channel.h [modify] https://crrev.com/fbcc5cb3869d1370008e40f24fc03ac8fb69c675/webrtc/voice_engine/channel_proxy.cc [modify] https://crrev.com/fbcc5cb3869d1370008e40f24fc03ac8fb69c675/webrtc/voice_engine/channel_proxy.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/5209c4a740829998e6f5d78f0771d1fac8d20689 commit 5209c4a740829998e6f5d78f0771d1fac8d20689 Author: hbos <hbos@chromium.org> Date: Mon Apr 10 12:03:05 2017 Revert of RTCRtpReceiver.getContributingSources() added. (patchset #8 id:160001 of https://codereview.chromium.org/2803693002/ ) Reason for revert: The dependent CL was reverted due to suspected of: https://bugs.chromium.org/p/webrtc/issues/detail?id=7465 Original issue's description: > RTCRtpReceiver.getContributingSources() added. > > Adds RTCRtpReceiver.getContributingSources(), > https://w3c.github.io/webrtc-pc/#dom-rtcrtpreceiver-getcontributingsources, > and RTCRtpContributingSource, > https://w3c.github.io/webrtc-pc/#dom-rtcrtpcontributingsource, > behind flag "RuntimeEnabled=RTCRtpReceiver". > > Contributing sources come in two flavors, SSRCs and CSRCs. This > interface represents both. For now we ignore SSRCs and only return > CSRCs. It was recently decided that SSRCs would be returned in a > separate method to distinguish between the two cases. > > A LayoutTest is used to thoroughly test all blink functionality with > regards to CSRCs and the caching of contributing sources. This uses > mocking to update contributing sources in a predictable way. > > The browsertest verifies that no contributing sources are used in a > normal peerconnection call. The multiple CSRCs case is currently not > possible to test in a browsertest so we rely on the LayoutTest (and > webrtc layer testing of contributing sources). > > BUG= 703122 > > Review-Url: https://codereview.chromium.org/2803693002 > Cr-Commit-Position: refs/heads/master@{#463199} > Committed: https://chromium.googlesource.com/chromium/src/+/7a16f508ad712bc38ff72e979dd5155a4015c320 TBR=jochen@chromium.org,deadbeef@chromium.org,foolip@chromium.org,guidou@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= 703122 Review-Url: https://codereview.chromium.org/2813443003 Cr-Commit-Position: refs/heads/master@{#463226} [modify] https://crrev.com/5209c4a740829998e6f5d78f0771d1fac8d20689/chrome/test/data/webrtc/peerconnection_rtp.js [modify] https://crrev.com/5209c4a740829998e6f5d78f0771d1fac8d20689/content/renderer/BUILD.gn [delete] https://crrev.com/48fd59f0ef21b6daffc42147ac15bff3aefd4e67/content/renderer/media/webrtc/rtc_rtp_contributing_source.cc [delete] https://crrev.com/48fd59f0ef21b6daffc42147ac15bff3aefd4e67/content/renderer/media/webrtc/rtc_rtp_contributing_source.h [modify] https://crrev.com/5209c4a740829998e6f5d78f0771d1fac8d20689/content/renderer/media/webrtc/rtc_rtp_receiver.cc [modify] https://crrev.com/5209c4a740829998e6f5d78f0771d1fac8d20689/content/renderer/media/webrtc/rtc_rtp_receiver.h [modify] https://crrev.com/5209c4a740829998e6f5d78f0771d1fac8d20689/content/shell/test_runner/mock_webrtc_peer_connection_handler.cc [modify] https://crrev.com/5209c4a740829998e6f5d78f0771d1fac8d20689/third_party/WebKit/LayoutTests/fast/peerconnection/RTCPeerConnection-getReceivers.html [modify] https://crrev.com/5209c4a740829998e6f5d78f0771d1fac8d20689/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt [modify] https://crrev.com/5209c4a740829998e6f5d78f0771d1fac8d20689/third_party/WebKit/Source/modules/modules_idl_files.gni [modify] https://crrev.com/5209c4a740829998e6f5d78f0771d1fac8d20689/third_party/WebKit/Source/modules/peerconnection/BUILD.gn [delete] https://crrev.com/48fd59f0ef21b6daffc42147ac15bff3aefd4e67/third_party/WebKit/Source/modules/peerconnection/RTCRtpContributingSource.cpp [delete] https://crrev.com/48fd59f0ef21b6daffc42147ac15bff3aefd4e67/third_party/WebKit/Source/modules/peerconnection/RTCRtpContributingSource.h [delete] https://crrev.com/48fd59f0ef21b6daffc42147ac15bff3aefd4e67/third_party/WebKit/Source/modules/peerconnection/RTCRtpContributingSource.idl [modify] https://crrev.com/5209c4a740829998e6f5d78f0771d1fac8d20689/third_party/WebKit/Source/modules/peerconnection/RTCRtpReceiver.cpp [modify] https://crrev.com/5209c4a740829998e6f5d78f0771d1fac8d20689/third_party/WebKit/Source/modules/peerconnection/RTCRtpReceiver.h [modify] https://crrev.com/5209c4a740829998e6f5d78f0771d1fac8d20689/third_party/WebKit/Source/modules/peerconnection/RTCRtpReceiver.idl [modify] https://crrev.com/5209c4a740829998e6f5d78f0771d1fac8d20689/third_party/WebKit/Source/platform/BUILD.gn [delete] https://crrev.com/48fd59f0ef21b6daffc42147ac15bff3aefd4e67/third_party/WebKit/Source/platform/exported/WebRTCRtpContributingSource.cpp [modify] https://crrev.com/5209c4a740829998e6f5d78f0771d1fac8d20689/third_party/WebKit/public/BUILD.gn [delete] https://crrev.com/48fd59f0ef21b6daffc42147ac15bff3aefd4e67/third_party/WebKit/public/platform/WebRTCRtpContributingSource.h [modify] https://crrev.com/5209c4a740829998e6f5d78f0771d1fac8d20689/third_party/WebKit/public/platform/WebRTCRtpReceiver.h
The following revision refers to this bug: https://chromium.googlesource.com/external/webrtc.git/+/8d609f6b6d46a03a6fb58b1b58d53d481e524062 commit 8d609f6b6d46a03a6fb58b1b58d53d481e524062 Author: hbos <hbos@webrtc.org> Date: Mon Apr 10 14:39:05 2017 Reland of Implemented the GetSources() in native code. (patchset #1 id:1 of https://codereview.webrtc.org/2809613002/ ) Reason for revert: Re-land, reverting did not fix bug. https://bugs.chromium.org/p/webrtc/issues/detail?id=7465 Original issue's description: > Revert of Implemented the GetSources() in native code. (patchset #11 id:510001 of https://codereview.webrtc.org/2770233003/ ) > > Reason for revert: > Suspected of WebRtcApprtcBrowserTest.MANUAL_WorksOnApprtc breakage, see > > https://bugs.chromium.org/p/webrtc/issues/detail?id=7465 > > Original issue's description: > > Added the GetSources() to the RtpReceiverInterface and implemented > > it for the AudioRtpReceiver. > > > > This method returns a vector of RtpSource(both CSRC source and SSRC > > source) which contains the ID of a source, the timestamp, the source > > type (SSRC or CSRC) and the audio level. > > > > The RtpSource objects are buffered and maintained by the > > RtpReceiver in webrtc/modules/rtp_rtcp/. When the method is called, > > the info of the contributing source will be pulled along the object > > chain: > > AudioRtpReceiver -> VoiceChannel -> WebRtcVoiceMediaChannel -> > > AudioReceiveStream -> voe::Channel -> RtpRtcp module > > > > Spec:https://w3c.github.io/webrtc-pc/archives/20151006/webrtc.html#widl-RTCRtpReceiver-getContributingSources-sequence-RTCRtpContributingSource > > > > BUG= chromium:703122 > > TBR=stefan@webrtc.org, danilchap@webrtc.org > > > > Review-Url: https://codereview.webrtc.org/2770233003 > > Cr-Commit-Position: refs/heads/master@{#17591} > > Committed: https://chromium.googlesource.com/external/webrtc/+/292084c3765d9f3ee406ca2ec86eae206b540053 > > TBR=deadbeef@webrtc.org,solenberg@webrtc.org,hbos@webrtc.org,philipel@webrtc.org,stefan@webrtc.org,danilchap@webrtc.org,zhihuang@webrtc.org > # Not skipping CQ checks because original CL landed more than 1 days ago. > BUG= chromium:703122 > > Review-Url: https://codereview.webrtc.org/2809613002 > Cr-Commit-Position: refs/heads/master@{#17616} > Committed: https://chromium.googlesource.com/external/webrtc/+/fbcc5cb3869d1370008e40f24fc03ac8fb69c675 TBR=deadbeef@webrtc.org,solenberg@webrtc.org,philipel@webrtc.org,stefan@webrtc.org,danilchap@webrtc.org,zhihuang@webrtc.org,olka@webrtc.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= chromium:703122 Review-Url: https://codereview.webrtc.org/2810623003 Cr-Commit-Position: refs/heads/master@{#17621} [modify] https://crrev.com/8d609f6b6d46a03a6fb58b1b58d53d481e524062/webrtc/api/rtpreceiverinterface.h [modify] https://crrev.com/8d609f6b6d46a03a6fb58b1b58d53d481e524062/webrtc/api/test/mock_rtpreceiver.h [modify] https://crrev.com/8d609f6b6d46a03a6fb58b1b58d53d481e524062/webrtc/audio/audio_receive_stream.cc [modify] https://crrev.com/8d609f6b6d46a03a6fb58b1b58d53d481e524062/webrtc/audio/audio_receive_stream.h [modify] https://crrev.com/8d609f6b6d46a03a6fb58b1b58d53d481e524062/webrtc/call/BUILD.gn [modify] https://crrev.com/8d609f6b6d46a03a6fb58b1b58d53d481e524062/webrtc/call/audio_receive_stream.h [modify] https://crrev.com/8d609f6b6d46a03a6fb58b1b58d53d481e524062/webrtc/media/engine/fakewebrtccall.h [modify] https://crrev.com/8d609f6b6d46a03a6fb58b1b58d53d481e524062/webrtc/media/engine/webrtcvoiceengine.cc [modify] https://crrev.com/8d609f6b6d46a03a6fb58b1b58d53d481e524062/webrtc/media/engine/webrtcvoiceengine.h [modify] https://crrev.com/8d609f6b6d46a03a6fb58b1b58d53d481e524062/webrtc/modules/rtp_rtcp/BUILD.gn [modify] https://crrev.com/8d609f6b6d46a03a6fb58b1b58d53d481e524062/webrtc/modules/rtp_rtcp/include/rtp_receiver.h [modify] https://crrev.com/8d609f6b6d46a03a6fb58b1b58d53d481e524062/webrtc/modules/rtp_rtcp/source/rtp_receiver_impl.cc [modify] https://crrev.com/8d609f6b6d46a03a6fb58b1b58d53d481e524062/webrtc/modules/rtp_rtcp/source/rtp_receiver_impl.h [add] https://crrev.com/8d609f6b6d46a03a6fb58b1b58d53d481e524062/webrtc/modules/rtp_rtcp/source/rtp_receiver_unittest.cc [modify] https://crrev.com/8d609f6b6d46a03a6fb58b1b58d53d481e524062/webrtc/pc/channel.cc [modify] https://crrev.com/8d609f6b6d46a03a6fb58b1b58d53d481e524062/webrtc/pc/channel.h [modify] https://crrev.com/8d609f6b6d46a03a6fb58b1b58d53d481e524062/webrtc/pc/peerconnection_integrationtest.cc [modify] https://crrev.com/8d609f6b6d46a03a6fb58b1b58d53d481e524062/webrtc/pc/rtpreceiver.cc [modify] https://crrev.com/8d609f6b6d46a03a6fb58b1b58d53d481e524062/webrtc/pc/rtpreceiver.h [modify] https://crrev.com/8d609f6b6d46a03a6fb58b1b58d53d481e524062/webrtc/test/mock_voe_channel_proxy.h [modify] https://crrev.com/8d609f6b6d46a03a6fb58b1b58d53d481e524062/webrtc/video/vie_encoder.cc [modify] https://crrev.com/8d609f6b6d46a03a6fb58b1b58d53d481e524062/webrtc/voice_engine/BUILD.gn [modify] https://crrev.com/8d609f6b6d46a03a6fb58b1b58d53d481e524062/webrtc/voice_engine/channel.h [modify] https://crrev.com/8d609f6b6d46a03a6fb58b1b58d53d481e524062/webrtc/voice_engine/channel_proxy.cc [modify] https://crrev.com/8d609f6b6d46a03a6fb58b1b58d53d481e524062/webrtc/voice_engine/channel_proxy.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/68d5bbddd28fd443982073c645aee01ed3f972de commit 68d5bbddd28fd443982073c645aee01ed3f972de Author: hbos <hbos@chromium.org> Date: Mon Apr 10 14:44:34 2017 Reland of TCRtpReceiver.getContributingSources() added. (patchset #1 id:1 of https://codereview.chromium.org/2813443003/ ) Reason for revert: Reland. The dependent CL relanded, it was not the culprit of https://bugs.chromium.org/p/webrtc/issues/detail?id=7465. Original issue's description: > Revert of RTCRtpReceiver.getContributingSources() added. (patchset #8 id:160001 of https://codereview.chromium.org/2803693002/ ) > > Reason for revert: > The dependent CL was reverted due to suspected of: > https://bugs.chromium.org/p/webrtc/issues/detail?id=7465 > > Original issue's description: > > RTCRtpReceiver.getContributingSources() added. > > > > Adds RTCRtpReceiver.getContributingSources(), > > https://w3c.github.io/webrtc-pc/#dom-rtcrtpreceiver-getcontributingsources, > > and RTCRtpContributingSource, > > https://w3c.github.io/webrtc-pc/#dom-rtcrtpcontributingsource, > > behind flag "RuntimeEnabled=RTCRtpReceiver". > > > > Contributing sources come in two flavors, SSRCs and CSRCs. This > > interface represents both. For now we ignore SSRCs and only return > > CSRCs. It was recently decided that SSRCs would be returned in a > > separate method to distinguish between the two cases. > > > > A LayoutTest is used to thoroughly test all blink functionality with > > regards to CSRCs and the caching of contributing sources. This uses > > mocking to update contributing sources in a predictable way. > > > > The browsertest verifies that no contributing sources are used in a > > normal peerconnection call. The multiple CSRCs case is currently not > > possible to test in a browsertest so we rely on the LayoutTest (and > > webrtc layer testing of contributing sources). > > > > BUG= 703122 > > > > Review-Url: https://codereview.chromium.org/2803693002 > > Cr-Commit-Position: refs/heads/master@{#463199} > > Committed: https://chromium.googlesource.com/chromium/src/+/7a16f508ad712bc38ff72e979dd5155a4015c320 > > TBR=jochen@chromium.org,deadbeef@chromium.org,foolip@chromium.org,guidou@chromium.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG= 703122 > > Review-Url: https://codereview.chromium.org/2813443003 > Cr-Commit-Position: refs/heads/master@{#463226} > Committed: https://chromium.googlesource.com/chromium/src/+/5209c4a740829998e6f5d78f0771d1fac8d20689 TBR=jochen@chromium.org,deadbeef@chromium.org,foolip@chromium.org,guidou@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= 703122 Review-Url: https://codereview.chromium.org/2808113002 Cr-Commit-Position: refs/heads/master@{#463262} [modify] https://crrev.com/68d5bbddd28fd443982073c645aee01ed3f972de/chrome/test/data/webrtc/peerconnection_rtp.js [modify] https://crrev.com/68d5bbddd28fd443982073c645aee01ed3f972de/content/renderer/BUILD.gn [add] https://crrev.com/68d5bbddd28fd443982073c645aee01ed3f972de/content/renderer/media/webrtc/rtc_rtp_contributing_source.cc [add] https://crrev.com/68d5bbddd28fd443982073c645aee01ed3f972de/content/renderer/media/webrtc/rtc_rtp_contributing_source.h [modify] https://crrev.com/68d5bbddd28fd443982073c645aee01ed3f972de/content/renderer/media/webrtc/rtc_rtp_receiver.cc [modify] https://crrev.com/68d5bbddd28fd443982073c645aee01ed3f972de/content/renderer/media/webrtc/rtc_rtp_receiver.h [modify] https://crrev.com/68d5bbddd28fd443982073c645aee01ed3f972de/content/shell/test_runner/mock_webrtc_peer_connection_handler.cc [modify] https://crrev.com/68d5bbddd28fd443982073c645aee01ed3f972de/third_party/WebKit/LayoutTests/fast/peerconnection/RTCPeerConnection-getReceivers.html [modify] https://crrev.com/68d5bbddd28fd443982073c645aee01ed3f972de/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt [modify] https://crrev.com/68d5bbddd28fd443982073c645aee01ed3f972de/third_party/WebKit/Source/modules/modules_idl_files.gni [modify] https://crrev.com/68d5bbddd28fd443982073c645aee01ed3f972de/third_party/WebKit/Source/modules/peerconnection/BUILD.gn [add] https://crrev.com/68d5bbddd28fd443982073c645aee01ed3f972de/third_party/WebKit/Source/modules/peerconnection/RTCRtpContributingSource.cpp [add] https://crrev.com/68d5bbddd28fd443982073c645aee01ed3f972de/third_party/WebKit/Source/modules/peerconnection/RTCRtpContributingSource.h [add] https://crrev.com/68d5bbddd28fd443982073c645aee01ed3f972de/third_party/WebKit/Source/modules/peerconnection/RTCRtpContributingSource.idl [modify] https://crrev.com/68d5bbddd28fd443982073c645aee01ed3f972de/third_party/WebKit/Source/modules/peerconnection/RTCRtpReceiver.cpp [modify] https://crrev.com/68d5bbddd28fd443982073c645aee01ed3f972de/third_party/WebKit/Source/modules/peerconnection/RTCRtpReceiver.h [modify] https://crrev.com/68d5bbddd28fd443982073c645aee01ed3f972de/third_party/WebKit/Source/modules/peerconnection/RTCRtpReceiver.idl [modify] https://crrev.com/68d5bbddd28fd443982073c645aee01ed3f972de/third_party/WebKit/Source/platform/BUILD.gn [add] https://crrev.com/68d5bbddd28fd443982073c645aee01ed3f972de/third_party/WebKit/Source/platform/exported/WebRTCRtpContributingSource.cpp [modify] https://crrev.com/68d5bbddd28fd443982073c645aee01ed3f972de/third_party/WebKit/public/BUILD.gn [add] https://crrev.com/68d5bbddd28fd443982073c645aee01ed3f972de/third_party/WebKit/public/platform/WebRTCRtpContributingSource.h [modify] https://crrev.com/68d5bbddd28fd443982073c645aee01ed3f972de/third_party/WebKit/public/platform/WebRTCRtpReceiver.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/1079a7037c61aa020728c6d0fd8fcced3d076d7d commit 1079a7037c61aa020728c6d0fd8fcced3d076d7d Author: hbos <hbos@chromium.org> Date: Tue Apr 11 10:05:07 2017 Unflag RTCRtpReceiver. This exposes RTCRtpReceiver and RTCRtpContributingSource to the web, including RTCPeerConnection.getReceivers(). Intent to Ship: https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/0aTOUhS0wCY BUG= 703122 Review-Url: https://codereview.chromium.org/2808783002 Cr-Commit-Position: refs/heads/master@{#463592} [modify] https://crrev.com/1079a7037c61aa020728c6d0fd8fcced3d076d7d/chrome/browser/media/webrtc/webrtc_rtp_browsertest.cc [modify] https://crrev.com/1079a7037c61aa020728c6d0fd8fcced3d076d7d/third_party/WebKit/LayoutTests/platform/mac/virtual/stable/webexposed/global-interface-listing-expected.txt [modify] https://crrev.com/1079a7037c61aa020728c6d0fd8fcced3d076d7d/third_party/WebKit/LayoutTests/platform/win/virtual/stable/webexposed/global-interface-listing-expected.txt [modify] https://crrev.com/1079a7037c61aa020728c6d0fd8fcced3d076d7d/third_party/WebKit/Source/modules/peerconnection/RTCPeerConnection.idl [modify] https://crrev.com/1079a7037c61aa020728c6d0fd8fcced3d076d7d/third_party/WebKit/Source/modules/peerconnection/RTCRtpContributingSource.idl [modify] https://crrev.com/1079a7037c61aa020728c6d0fd8fcced3d076d7d/third_party/WebKit/Source/modules/peerconnection/RTCRtpReceiver.idl [modify] https://crrev.com/1079a7037c61aa020728c6d0fd8fcced3d076d7d/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.json5
The following revision refers to this bug: https://chromium.googlesource.com/external/webrtc.git/+/0426222f4c8a2832349ddb857bc45d748f7952fa commit 0426222f4c8a2832349ddb857bc45d748f7952fa Author: zhihuang <zhihuang@webrtc.org> Date: Tue Apr 11 18:28:10 2017 Modified the rtp_receiver_unittests. Implemented operator == in RtpSource and use the gmock EXPECT_THAT to make the test cleaner. Related CL: https://codereview.webrtc.org/2770233003/ BUG= chromium:703122 Review-Url: https://codereview.webrtc.org/2813753002 Cr-Commit-Position: refs/heads/master@{#17659} [modify] https://crrev.com/0426222f4c8a2832349ddb857bc45d748f7952fa/webrtc/api/rtpreceiverinterface.h [modify] https://crrev.com/0426222f4c8a2832349ddb857bc45d748f7952fa/webrtc/modules/rtp_rtcp/source/rtp_receiver_impl.cc [modify] https://crrev.com/0426222f4c8a2832349ddb857bc45d748f7952fa/webrtc/modules/rtp_rtcp/source/rtp_receiver_unittest.cc
With the unflagging CL (https://codereview.chromium.org/2808783002) this is Fixed.
The unflag of RTCRtpReceiver landed in 59.0.3069.0.
Issue 625208 has been merged into this issue.
Comment 1 by hbos@chromium.org
, Mar 20 2017