Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(751)

Issue 2974453002: Protected streams report RTP messages directly to the FlexFec streams (Closed)

Created:
3 years, 5 months ago by eladalon
Modified:
3 years, 4 months ago
CC:
webrtc-reviews_webrtc.org, interface-changes_webrtc.org, video-team_agora.io, danilchap, yujie_mao (webrtc), zhuangzesen_agora.io, zhengzhonghou_agora.io, stefan-webrtc, tterriberry_mozilla.com, qiang.lu, niklas.enbom, peah-webrtc, mflodman
Target Ref:
refs/heads/master
Project:
webrtc
Visibility:
Public.

Description

Protected streams report RTP messages directly to the FlexFec streams In preparation of making RTP packet demuxing many-to-one (one SSRC goes to one sink, but one sink may have multiple SSRCs), we need to remove FlexFEC's dependence on being able to register itself with the demuxer. Instead, we register FlexFEC streams with the streams they protect; when those streams get packets, they'll forward them to their associated FlexFEC streams, too. BUG=webrtc:7135 Review-Url: https://codereview.webrtc.org/2974453002 Cr-Commit-Position: refs/heads/master@{#19219} Committed: https://chromium.googlesource.com/external/webrtc/+/c0d481a4a60243d9d05e024fc43c8533b8c26c1b

Patch Set 1 #

Total comments: 13

Patch Set 2 : . #

Total comments: 8

Patch Set 3 : Rebase and rephrase comment. #

Total comments: 8

Patch Set 4 : Response to comments. #

Patch Set 5 : . #

Total comments: 2

Patch Set 6 : Add unit-tests. #

Total comments: 3

Patch Set 7 : Rebased #

Total comments: 2

Patch Set 8 : Add one unittest. #

Patch Set 9 : Remove mistaken TODO. #

Total comments: 8

Patch Set 10 : CR response #

Total comments: 1

Patch Set 11 : Add TODO (!!! = to be fixed before landing) for locks over the secondaries. #

Patch Set 12 : Add thread-checking. #

Patch Set 13 : Rabsed #

Patch Set 14 : Fix deps #

Patch Set 15 : . #

Total comments: 10

Patch Set 16 : Response to CR. #

Patch Set 17 : s/AssociateTo/AssociateWith #

Total comments: 10

Patch Set 18 : Comment worker_thread_checker_ out; add TODO for it. #

Patch Set 19 : CR response (brandtr) #

Total comments: 4

Patch Set 20 : CR response (stefan). #

Patch Set 21 : Rebased #

Patch Set 22 : Appease lint. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+256 lines, -6 lines) Patch
M webrtc/call/flexfec_receive_stream.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +3 lines, -2 lines 0 comments Download
M webrtc/call/flexfec_receive_stream_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +1 line, -2 lines 0 comments Download
M webrtc/call/flexfec_receive_stream_impl.cc View 1 2 7 8 9 10 11 12 1 chunk +0 lines, -2 lines 0 comments Download
M webrtc/media/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -0 lines 0 comments Download
M webrtc/media/DEPS View 1 chunk +1 line, -0 lines 0 comments Download
M webrtc/media/engine/fakewebrtccall.h View 1 2 3 4 5 6 7 8 9 10 11 12 3 chunks +6 lines, -0 lines 0 comments Download
M webrtc/media/engine/fakewebrtccall.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 2 chunks +10 lines, -0 lines 0 comments Download
M webrtc/media/engine/webrtcvideoengine.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +3 lines, -0 lines 0 comments Download
M webrtc/media/engine/webrtcvideoengine.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 2 chunks +19 lines, -0 lines 0 comments Download
M webrtc/modules/rtp_rtcp/source/flexfec_receiver.cc View 1 2 3 4 5 6 7 8 1 chunk +2 lines, -0 lines 0 comments Download
M webrtc/test/call_test.h View 1 2 1 chunk +4 lines, -0 lines 0 comments Download
M webrtc/test/call_test.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 2 chunks +23 lines, -0 lines 0 comments Download
M webrtc/video/rtp_video_stream_receiver.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 3 chunks +13 lines, -0 lines 0 comments Download
M webrtc/video/rtp_video_stream_receiver.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 5 chunks +33 lines, -0 lines 0 comments Download
M webrtc/video/rtp_video_stream_receiver_unittest.cc View 1 2 3 4 5 6 7 4 chunks +114 lines, -0 lines 0 comments Download
M webrtc/video/video_quality_test.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +3 lines, -0 lines 0 comments Download
M webrtc/video/video_receive_stream.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +3 lines, -0 lines 0 comments Download
M webrtc/video/video_receive_stream.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +9 lines, -0 lines 0 comments Download
M webrtc/video_receive_stream.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 chunks +8 lines, -0 lines 0 comments Download

Messages

Total messages: 48 (13 generated)
eladalon
Ready for review. Please not - TODOs with "!!!" are meant to be taken care ...
3 years, 5 months ago (2017-07-06 15:52:38 UTC) #3
stefan-webrtc
I think the code duplication that comes from this is a bit ugly, which makes ...
3 years, 5 months ago (2017-07-07 09:36:24 UTC) #4
eladalon
For posterity - we've discussed the duplication offline. Summary: 1. I prefer to keep SecondaryRtpSinksContainer ...
3 years, 5 months ago (2017-07-07 14:16:25 UTC) #5
eladalon
3 years, 5 months ago (2017-07-13 14:38:35 UTC) #7
danilchap
https://codereview.webrtc.org/2974453002/diff/20001/webrtc/call/flexfec_receive_stream_impl.h File webrtc/call/flexfec_receive_stream_impl.h (right): https://codereview.webrtc.org/2974453002/diff/20001/webrtc/call/flexfec_receive_stream_impl.h#newcode55 webrtc/call/flexfec_receive_stream_impl.h:55: // We should probably just use an atomic-bool. is ...
3 years, 5 months ago (2017-07-19 12:07:25 UTC) #8
eladalon
https://codereview.webrtc.org/2974453002/diff/20001/webrtc/call/flexfec_receive_stream_impl.h File webrtc/call/flexfec_receive_stream_impl.h (right): https://codereview.webrtc.org/2974453002/diff/20001/webrtc/call/flexfec_receive_stream_impl.h#newcode55 webrtc/call/flexfec_receive_stream_impl.h:55: // We should probably just use an atomic-bool. On ...
3 years, 5 months ago (2017-07-21 14:42:08 UTC) #9
danilchap
https://codereview.webrtc.org/2974453002/diff/20001/webrtc/call/flexfec_receive_stream_impl.h File webrtc/call/flexfec_receive_stream_impl.h (right): https://codereview.webrtc.org/2974453002/diff/20001/webrtc/call/flexfec_receive_stream_impl.h#newcode55 webrtc/call/flexfec_receive_stream_impl.h:55: // We should probably just use an atomic-bool. On ...
3 years, 5 months ago (2017-07-24 09:03:46 UTC) #10
eladalon
https://codereview.webrtc.org/2974453002/diff/20001/webrtc/call/flexfec_receive_stream_impl.h File webrtc/call/flexfec_receive_stream_impl.h (right): https://codereview.webrtc.org/2974453002/diff/20001/webrtc/call/flexfec_receive_stream_impl.h#newcode55 webrtc/call/flexfec_receive_stream_impl.h:55: // We should probably just use an atomic-bool. On ...
3 years, 5 months ago (2017-07-24 13:15:48 UTC) #11
eladalon
https://codereview.webrtc.org/2974453002/diff/100001/webrtc/video/rtp_video_stream_receiver_unittest.cc File webrtc/video/rtp_video_stream_receiver_unittest.cc (right): https://codereview.webrtc.org/2974453002/diff/100001/webrtc/video/rtp_video_stream_receiver_unittest.cc#newcode434 webrtc/video/rtp_video_stream_receiver_unittest.cc:434: // TODO(eladalon): !!! Discuss - do we want to ...
3 years, 5 months ago (2017-07-24 14:19:00 UTC) #12
danilchap
https://codereview.webrtc.org/2974453002/diff/80001/webrtc/media/engine/fakewebrtccall.h File webrtc/media/engine/fakewebrtccall.h (right): https://codereview.webrtc.org/2974453002/diff/80001/webrtc/media/engine/fakewebrtccall.h#newcode28 webrtc/media/engine/fakewebrtccall.h:28: #include "webrtc/rtc_base/buffer.h" reorder this include alpabetically https://codereview.webrtc.org/2974453002/diff/100001/webrtc/video/rtp_video_stream_receiver_unittest.cc File webrtc/video/rtp_video_stream_receiver_unittest.cc ...
3 years, 5 months ago (2017-07-24 15:02:07 UTC) #13
danilchap
https://codereview.webrtc.org/2974453002/diff/120001/webrtc/modules/rtp_rtcp/source/flexfec_receiver.cc File webrtc/modules/rtp_rtcp/source/flexfec_receiver.cc (right): https://codereview.webrtc.org/2974453002/diff/120001/webrtc/modules/rtp_rtcp/source/flexfec_receiver.cc#newcode98 webrtc/modules/rtp_rtcp/source/flexfec_receiver.cc:98: // TODO(eladalon): It seems like, because of return-statement above, ...
3 years, 5 months ago (2017-07-24 15:37:26 UTC) #14
eladalon
https://codereview.webrtc.org/2974453002/diff/80001/webrtc/media/engine/fakewebrtccall.h File webrtc/media/engine/fakewebrtccall.h (right): https://codereview.webrtc.org/2974453002/diff/80001/webrtc/media/engine/fakewebrtccall.h#newcode28 webrtc/media/engine/fakewebrtccall.h:28: #include "webrtc/rtc_base/buffer.h" On 2017/07/24 15:02:07, danilchap wrote: > reorder ...
3 years, 5 months ago (2017-07-24 15:53:55 UTC) #15
danilchap
lgtm https://codereview.webrtc.org/2974453002/diff/160001/webrtc/call/flexfec_receive_stream.h File webrtc/call/flexfec_receive_stream.h (right): https://codereview.webrtc.org/2974453002/diff/160001/webrtc/call/flexfec_receive_stream.h#newcode87 webrtc/call/flexfec_receive_stream.h:87: virtual ~FlexfecReceiveStream() = default; virtual -> override now ...
3 years, 5 months ago (2017-07-25 17:29:54 UTC) #16
eladalon
https://codereview.webrtc.org/2974453002/diff/160001/webrtc/call/flexfec_receive_stream.h File webrtc/call/flexfec_receive_stream.h (right): https://codereview.webrtc.org/2974453002/diff/160001/webrtc/call/flexfec_receive_stream.h#newcode87 webrtc/call/flexfec_receive_stream.h:87: virtual ~FlexfecReceiveStream() = default; On 2017/07/25 17:29:54, danilchap wrote: ...
3 years, 4 months ago (2017-07-26 08:20:29 UTC) #17
eladalon
3 years, 4 months ago (2017-07-26 09:09:03 UTC) #19
the sun
https://codereview.webrtc.org/2974453002/diff/180001/webrtc/video_receive_stream.h File webrtc/video_receive_stream.h (right): https://codereview.webrtc.org/2974453002/diff/180001/webrtc/video_receive_stream.h#newcode225 webrtc/video_receive_stream.h:225: virtual void AddSecondarySink(RtpPacketSinkInterface* sink) = 0; For me, this ...
3 years, 4 months ago (2017-07-26 09:44:12 UTC) #20
the sun
On 2017/07/26 09:44:12, the sun wrote: > https://codereview.webrtc.org/2974453002/diff/180001/webrtc/video_receive_stream.h > File webrtc/video_receive_stream.h (right): > > https://codereview.webrtc.org/2974453002/diff/180001/webrtc/video_receive_stream.h#newcode225 ...
3 years, 4 months ago (2017-07-26 10:25:18 UTC) #22
eladalon
On 2017/07/26 09:44:12, the sun wrote: > https://codereview.webrtc.org/2974453002/diff/180001/webrtc/video_receive_stream.h > File webrtc/video_receive_stream.h (right): > > https://codereview.webrtc.org/2974453002/diff/180001/webrtc/video_receive_stream.h#newcode225 ...
3 years, 4 months ago (2017-07-26 10:47:33 UTC) #23
eladalon
3 years, 4 months ago (2017-07-31 11:36:02 UTC) #25
Taylor Brandstetter
lgtm https://codereview.webrtc.org/2974453002/diff/280001/webrtc/media/engine/webrtcvideoengine.cc File webrtc/media/engine/webrtcvideoengine.cc (right): https://codereview.webrtc.org/2974453002/diff/280001/webrtc/media/engine/webrtcvideoengine.cc#newcode2375 webrtc/media/engine/webrtcvideoengine.cc:2375: } Would it be feasible to cover this ...
3 years, 4 months ago (2017-07-31 15:59:25 UTC) #26
eladalon
https://codereview.webrtc.org/2974453002/diff/280001/webrtc/media/engine/webrtcvideoengine.cc File webrtc/media/engine/webrtcvideoengine.cc (right): https://codereview.webrtc.org/2974453002/diff/280001/webrtc/media/engine/webrtcvideoengine.cc#newcode2375 webrtc/media/engine/webrtcvideoengine.cc:2375: } On 2017/07/31 15:59:25, Taylor Brandstetter wrote: > Would ...
3 years, 4 months ago (2017-07-31 16:46:04 UTC) #27
Taylor Brandstetter
https://codereview.webrtc.org/2974453002/diff/280001/webrtc/video/rtp_video_stream_receiver.h File webrtc/video/rtp_video_stream_receiver.h (right): https://codereview.webrtc.org/2974453002/diff/280001/webrtc/video/rtp_video_stream_receiver.h#newcode147 webrtc/video/rtp_video_stream_receiver.h:147: void RemoveSecondarySink(const RtpPacketSinkInterface* sink); On 2017/07/31 16:46:03, eladalon wrote: ...
3 years, 4 months ago (2017-07-31 17:31:29 UTC) #28
eladalon
Taylor, normally I'd put them in the topmost interface, but here we have a separate ...
3 years, 4 months ago (2017-08-01 08:15:30 UTC) #29
eladalon
https://codereview.webrtc.org/2974453002/diff/320001/webrtc/video/rtp_video_stream_receiver.cc File webrtc/video/rtp_video_stream_receiver.cc (right): https://codereview.webrtc.org/2974453002/diff/320001/webrtc/video/rtp_video_stream_receiver.cc#newcode314 webrtc/video/rtp_video_stream_receiver.cc:314: RTC_DCHECK_RUN_ON(&worker_thread_checker_); This will not work for video_loopback, because DirectTransport ...
3 years, 4 months ago (2017-08-01 08:19:39 UTC) #30
brandtr
Looks good, but the test(s) requested by Taylor would be useful to have. Other than ...
3 years, 4 months ago (2017-08-01 08:34:16 UTC) #31
eladalon
Taylor, Rasmus, what do you think about adding the tests in a later CL, seeing ...
3 years, 4 months ago (2017-08-01 09:30:29 UTC) #32
brandtr
lgtm. I think the test can be added in a follow-up.
3 years, 4 months ago (2017-08-01 15:12:27 UTC) #33
Taylor Brandstetter
On 2017/08/01 09:30:29, eladalon wrote: > Taylor, Rasmus, what do you think about adding the ...
3 years, 4 months ago (2017-08-01 20:19:53 UTC) #34
stefan-webrtc
https://codereview.webrtc.org/2974453002/diff/360001/webrtc/modules/rtp_rtcp/source/flexfec_receiver.cc File webrtc/modules/rtp_rtcp/source/flexfec_receiver.cc (right): https://codereview.webrtc.org/2974453002/diff/360001/webrtc/modules/rtp_rtcp/source/flexfec_receiver.cc#newcode63 webrtc/modules/rtp_rtcp/source/flexfec_receiver.cc:63: // recovered packets here. If FlexfecReceiver recovers a packet, ...
3 years, 4 months ago (2017-08-02 08:20:44 UTC) #35
eladalon
https://codereview.webrtc.org/2974453002/diff/360001/webrtc/modules/rtp_rtcp/source/flexfec_receiver.cc File webrtc/modules/rtp_rtcp/source/flexfec_receiver.cc (right): https://codereview.webrtc.org/2974453002/diff/360001/webrtc/modules/rtp_rtcp/source/flexfec_receiver.cc#newcode63 webrtc/modules/rtp_rtcp/source/flexfec_receiver.cc:63: // recovered packets here. On 2017/08/02 08:20:44, stefan-webrtc wrote: ...
3 years, 4 months ago (2017-08-02 09:16:27 UTC) #36
stefan-webrtc
lgtm
3 years, 4 months ago (2017-08-02 12:29:27 UTC) #37
commit-bot: I haz the power
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.webrtc.org/2974453002/400001
3 years, 4 months ago (2017-08-02 13:35:40 UTC) #40
commit-bot: I haz the power
Try jobs failed on following builders: presubmit on master.tryserver.webrtc (JOB_FAILED, http://build.chromium.org/p/tryserver.webrtc/builders/presubmit/builds/19787)
3 years, 4 months ago (2017-08-02 13:41:10 UTC) #42
commit-bot: I haz the power
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.webrtc.org/2974453002/420001
3 years, 4 months ago (2017-08-02 14:09:53 UTC) #45
commit-bot: I haz the power
3 years, 4 months ago (2017-08-02 14:39:16 UTC) #48
Message was sent while issue was closed.
Committed patchset #22 (id:420001) as
https://chromium.googlesource.com/external/webrtc/+/c0d481a4a60243d9d05e024fc...

Powered by Google App Engine
This is Rietveld 408576698