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

Issue 1757683002: Make the audio channel communicate network state changes to the call. (Closed)

Created:
4 years, 9 months ago by skvlad
Modified:
4 years, 9 months ago
CC:
webrtc-reviews_webrtc.org, zhuangzesen_agora.io, stefan-webrtc, tterriberry_mozilla.com, mflodman
Base URL:
https://chromium.googlesource.com/external/webrtc.git@master
Target Ref:
refs/pending/heads/master
Project:
webrtc
Visibility:
Public.

Description

Make the audio channel communicate network state changes to the call. This change enables voice-only calls to keep track of the network state. This is only a partial fix - the last modality to change state controls the state for the entire call, so a call with a failed video transport will also stop sending audio packets. Handling this condition correctly would require the call to keep track of network state for each media type separately, and take care of conditions such as a failed video channel getting removed, while a functioning audio channel remains. BUG=webrtc:5307 Committed: https://crrev.com/7a43d253f99f3dce7123cdabb7c99a7985dbb021 Cr-Commit-Position: refs/heads/master@{#12093}

Patch Set 1 #

Total comments: 4

Patch Set 2 : Reenabled the workaround to keep sending audio packets when the pacer is stopped so that audio does… #

Total comments: 2

Patch Set 3 : Made the Call class keep track of network state for audio and video separately #

Total comments: 4

Patch Set 4 : Use the presence of send/receive streams to infer which media types are active #

Total comments: 16

Patch Set 5 : Updated with code review feedback #

Total comments: 19

Patch Set 6 : Fixing code review issues #

Total comments: 8

Patch Set 7 : Added end-to-end tests for all network states #

Total comments: 4

Patch Set 8 : Rebased on top of the latest version; listed the possible switch cases explicitly #

Patch Set 9 : Added handling for the case where the enum class value is outside of the valid range #

Unified diffs Side-by-side diffs Delta from patch set Stats (+318 lines, -87 lines) Patch
M webrtc/call.h View 1 2 3 4 5 1 chunk +6 lines, -1 line 0 comments Download
M webrtc/call/call.cc View 1 2 3 4 5 6 7 13 chunks +94 lines, -41 lines 0 comments Download
M webrtc/media/engine/fakewebrtccall.h View 1 2 3 4 5 6 7 2 chunks +5 lines, -3 lines 0 comments Download
M webrtc/media/engine/fakewebrtccall.cc View 1 2 3 4 5 6 7 8 7 chunks +36 lines, -9 lines 0 comments Download
M webrtc/media/engine/webrtcvideoengine2.cc View 1 2 3 4 5 6 7 1 chunk +3 lines, -1 line 0 comments Download
M webrtc/media/engine/webrtcvideoengine2_unittest.cc View 1 2 3 4 5 6 7 1 chunk +12 lines, -3 lines 0 comments Download
M webrtc/media/engine/webrtcvoiceengine.h View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M webrtc/media/engine/webrtcvoiceengine.cc View 1 2 3 4 5 6 7 1 chunk +8 lines, -0 lines 0 comments Download
M webrtc/media/engine/webrtcvoiceengine_unittest.cc View 1 2 3 4 5 6 7 1 chunk +23 lines, -0 lines 0 comments Download
M webrtc/video/end_to_end_tests.cc View 1 2 3 4 5 6 7 10 chunks +130 lines, -28 lines 0 comments Download

Messages

Total messages: 46 (9 generated)
skvlad
This is my first CL so if I'm doing something wrong - please let me ...
4 years, 9 months ago (2016-03-02 00:23:11 UTC) #2
pthatcher1
lgtm I added Tina as a reviewer in case she wants to double-check the voice ...
4 years, 9 months ago (2016-03-02 00:30:08 UTC) #4
tlegrand-webrtc
On 2016/03/02 00:30:08, pthatcher1 wrote: > lgtm > > I added Tina as a reviewer ...
4 years, 9 months ago (2016-03-02 08:09:51 UTC) #7
stefan-webrtc
https://codereview.webrtc.org/1757683002/diff/1/webrtc/call/call.cc File webrtc/call/call.cc (right): https://codereview.webrtc.org/1757683002/diff/1/webrtc/call/call.cc#newcode556 webrtc/call/call.cc:556: // for each media type separately. Do we think ...
4 years, 9 months ago (2016-03-02 08:25:59 UTC) #8
the sun
lgtm
4 years, 9 months ago (2016-03-02 10:20:35 UTC) #9
pbos-webrtc
https://codereview.webrtc.org/1757683002/diff/1/webrtc/call/call.cc File webrtc/call/call.cc (right): https://codereview.webrtc.org/1757683002/diff/1/webrtc/call/call.cc#newcode556 webrtc/call/call.cc:556: // for each media type separately. Does this risk ...
4 years, 9 months ago (2016-03-02 12:54:34 UTC) #11
skvlad
https://codereview.webrtc.org/1757683002/diff/1/webrtc/call/call.cc File webrtc/call/call.cc (right): https://codereview.webrtc.org/1757683002/diff/1/webrtc/call/call.cc#newcode556 webrtc/call/call.cc:556: // for each media type separately. On 2016/03/02 12:54:34, ...
4 years, 9 months ago (2016-03-02 18:44:06 UTC) #12
skvlad
Keeping the workaround to send audio packets even when the pacer is stopped, per Stefan's ...
4 years, 9 months ago (2016-03-02 18:57:41 UTC) #13
pthatcher1
still lgtm :)
4 years, 9 months ago (2016-03-02 20:27:50 UTC) #14
the sun
On 2016/03/02 20:27:50, pthatcher1 wrote: > still lgtm :) ditto!
4 years, 9 months ago (2016-03-03 08:42:13 UTC) #15
stefan-webrtc
lgtm I would however recommend that you file a bug about tracking the correct state ...
4 years, 9 months ago (2016-03-03 08:48:37 UTC) #16
pbos-webrtc
This inconsistent state scares me, and I don't think keeping track of up/down for audio ...
4 years, 9 months ago (2016-03-03 10:18:57 UTC) #17
pbos-webrtc
On 2016/03/03 10:18:57, pbos-webrtc wrote: > This inconsistent state scares me, and I don't think ...
4 years, 9 months ago (2016-03-03 10:20:02 UTC) #18
stefan-webrtc
https://codereview.webrtc.org/1757683002/diff/20001/webrtc/call/call.cc File webrtc/call/call.cc (right): https://codereview.webrtc.org/1757683002/diff/20001/webrtc/call/call.cc#newcode553 webrtc/call/call.cc:553: // TODO(skvlad): In the unbundled case the network state ...
4 years, 9 months ago (2016-03-03 10:23:53 UTC) #19
skvlad
Made the Call class keep track of the network state for audio and video streams ...
4 years, 9 months ago (2016-03-04 05:47:30 UTC) #20
the sun
https://codereview.webrtc.org/1757683002/diff/40001/webrtc/call.h File webrtc/call.h (right): https://codereview.webrtc.org/1757683002/diff/40001/webrtc/call.h#newcode37 webrtc/call.h:37: enum class ChannelNetworkState I don't think you need this ...
4 years, 9 months ago (2016-03-04 12:40:48 UTC) #21
skvlad
Instead of using a separate CHANNEL_NOT_PRESENT state, now relying on the presence of audio/video streams ...
4 years, 9 months ago (2016-03-04 21:32:59 UTC) #22
pthatcher1
lgtm I like this new approach. https://codereview.webrtc.org/1757683002/diff/60001/webrtc/call.h File webrtc/call.h (right): https://codereview.webrtc.org/1757683002/diff/60001/webrtc/call.h#newcode137 webrtc/call.h:137: virtual void SignalChannelNetworkState(MediaType ...
4 years, 9 months ago (2016-03-05 02:21:09 UTC) #23
the sun
Thanks for changing! Looks very nice! Just a few nits. https://codereview.webrtc.org/1757683002/diff/60001/webrtc/call/call.cc File webrtc/call/call.cc (right): https://codereview.webrtc.org/1757683002/diff/60001/webrtc/call/call.cc#newcode414 ...
4 years, 9 months ago (2016-03-07 14:16:43 UTC) #24
skvlad
Updated with code review feedback. https://codereview.webrtc.org/1757683002/diff/60001/webrtc/call.h File webrtc/call.h (right): https://codereview.webrtc.org/1757683002/diff/60001/webrtc/call.h#newcode137 webrtc/call.h:137: virtual void SignalChannelNetworkState(MediaType media, ...
4 years, 9 months ago (2016-03-07 19:20:56 UTC) #25
the sun
LGTM, just a few more nits (and one non-nit) https://codereview.webrtc.org/1757683002/diff/80001/webrtc/call/call.cc File webrtc/call/call.cc (right): https://codereview.webrtc.org/1757683002/diff/80001/webrtc/call/call.cc#newcode415 webrtc/call/call.cc:415: ...
4 years, 9 months ago (2016-03-07 20:00:35 UTC) #26
pbos-webrtc
https://codereview.webrtc.org/1757683002/diff/80001/webrtc/call/call.cc File webrtc/call/call.cc (right): https://codereview.webrtc.org/1757683002/diff/80001/webrtc/call/call.cc#newcode567 webrtc/call/call.cc:567: default: Remove the default case here and list the ...
4 years, 9 months ago (2016-03-08 23:35:41 UTC) #27
skvlad
Fixed more code review issues. https://codereview.webrtc.org/1757683002/diff/80001/webrtc/call/call.cc File webrtc/call/call.cc (right): https://codereview.webrtc.org/1757683002/diff/80001/webrtc/call/call.cc#newcode415 webrtc/call/call.cc:415: send_stream->SignalNetworkState(video_network_state_); On 2016/03/07 20:00:34, ...
4 years, 9 months ago (2016-03-08 23:55:28 UTC) #28
the sun
https://codereview.webrtc.org/1757683002/diff/80001/webrtc/call/call.cc File webrtc/call/call.cc (right): https://codereview.webrtc.org/1757683002/diff/80001/webrtc/call/call.cc#newcode567 webrtc/call/call.cc:567: default: On 2016/03/08 23:35:40, pbos-webrtc wrote: > Remove the ...
4 years, 9 months ago (2016-03-09 09:54:39 UTC) #29
skvlad
On 2016/03/09 09:54:39, the sun wrote: > https://codereview.webrtc.org/1757683002/diff/80001/webrtc/call/call.cc > File webrtc/call/call.cc (right): > > https://codereview.webrtc.org/1757683002/diff/80001/webrtc/call/call.cc#newcode567 ...
4 years, 9 months ago (2016-03-11 04:02:42 UTC) #30
stefan-webrtc
I'm missing unittests for the new, more complicated, logic in Call https://codereview.webrtc.org/1757683002/diff/100001/webrtc/call/call.cc File webrtc/call/call.cc (right): ...
4 years, 9 months ago (2016-03-11 08:29:41 UTC) #31
the sun
On 2016/03/11 04:02:42, skvlad wrote: > On 2016/03/09 09:54:39, the sun wrote: > > https://codereview.webrtc.org/1757683002/diff/80001/webrtc/call/call.cc ...
4 years, 9 months ago (2016-03-11 08:59:29 UTC) #32
skvlad
On 2016/03/11 08:59:29, the sun wrote: > On 2016/03/11 04:02:42, skvlad wrote: > > On ...
4 years, 9 months ago (2016-03-11 23:58:22 UTC) #33
skvlad
Added end-to-end tests to verify that video streams are not affected by network changes for ...
4 years, 9 months ago (2016-03-11 23:59:08 UTC) #34
skvlad
Ping. Please take a look at the latest version of this change. Thanks!
4 years, 9 months ago (2016-03-21 18:01:52 UTC) #35
mflodman
LGTM
4 years, 9 months ago (2016-03-22 08:09:41 UTC) #36
pbos-webrtc
lgtm https://codereview.webrtc.org/1757683002/diff/120001/webrtc/media/engine/fakewebrtccall.cc File webrtc/media/engine/fakewebrtccall.cc (right): https://codereview.webrtc.org/1757683002/diff/120001/webrtc/media/engine/fakewebrtccall.cc#newcode286 webrtc/media/engine/fakewebrtccall.cc:286: default: I think you should be able to ...
4 years, 9 months ago (2016-03-22 10:17:41 UTC) #37
skvlad
https://codereview.webrtc.org/1757683002/diff/120001/webrtc/media/engine/fakewebrtccall.cc File webrtc/media/engine/fakewebrtccall.cc (right): https://codereview.webrtc.org/1757683002/diff/120001/webrtc/media/engine/fakewebrtccall.cc#newcode286 webrtc/media/engine/fakewebrtccall.cc:286: default: On 2016/03/22 10:17:41, pbos-webrtc wrote: > I think ...
4 years, 9 months ago (2016-03-22 20:01:44 UTC) #38
pthatcher1
lgtm
4 years, 9 months ago (2016-03-22 21:49:11 UTC) #39
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1757683002/160001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1757683002/160001
4 years, 9 months ago (2016-03-22 22:16:22 UTC) #42
commit-bot: I haz the power
Committed patchset #9 (id:160001)
4 years, 9 months ago (2016-03-22 22:32:32 UTC) #44
commit-bot: I haz the power
4 years, 9 months ago (2016-03-22 22:32:38 UTC) #46
Message was sent while issue was closed.
Patchset 9 (id:??) landed as
https://crrev.com/7a43d253f99f3dce7123cdabb7c99a7985dbb021
Cr-Commit-Position: refs/heads/master@{#12093}

Powered by Google App Engine
This is Rietveld 408576698