New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 703122 link

Starred by 11 users

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 1
Type: Bug

Blocking:
issue 701330
issue 705993



Sign in to add a comment

Partial RTCRtpReceiver and RTCRtpContributingSource support

Project Member Reported by hbos@chromium.org, Mar 20 2017

Issue description

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
 

Comment 1 by hbos@chromium.org, Mar 20 2017

Labels: OWP-Type-NewAPI

Comment 2 by hbos@chromium.org, Mar 28 2017

Blocking: 705993

Comment 3 by hbos@chromium.org, Mar 28 2017

Cc: solenberg@chromium.org

Comment 4 by hbos@chromium.org, Mar 28 2017

Description: Show this description
Project Member

Comment 5 by bugdroid1@chromium.org, Mar 30 2017

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

Project Member

Comment 6 by bugdroid1@chromium.org, Apr 7 2017

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

Project Member

Comment 7 by bugdroid1@chromium.org, Apr 10 2017

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

Project Member

Comment 8 by bugdroid1@chromium.org, Apr 10 2017

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

Project Member

Comment 9 by bugdroid1@chromium.org, Apr 10 2017

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

Project Member

Comment 10 by bugdroid1@chromium.org, Apr 10 2017

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

Project Member

Comment 11 by bugdroid1@chromium.org, Apr 10 2017

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

Project Member

Comment 12 by bugdroid1@chromium.org, Apr 11 2017

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

Comment 14 by hbos@chromium.org, Apr 12 2017

Status: Fixed (was: Started)
With the unflagging CL (https://codereview.chromium.org/2808783002) this is Fixed.
Labels: -M-59 M-60

Comment 16 by hbos@chromium.org, Jun 2 2017

Labels: -M-60 M-59
The unflag of RTCRtpReceiver landed in 59.0.3069.0.
Cc: hta@chromium.org hbos@chromium.org
 Issue 625208  has been merged into this issue.

Sign in to add a comment