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

Issue 2605473002: Fix processing of multiple stream status changes by renderer (Closed)

Created:
4 years ago by servolk
Modified:
3 years, 11 months ago
Reviewers:
whywhat, xhwang, DaleCurtis
CC:
chromium-reviews, feature-media-reviews_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Fix processing of multiple stream status changes by renderer Typically renderer needs to do Flush + StartPlaying in response to stream status change (i.e. when stream gets enabled or disabled). But since Flush is an async operation we might get another status change of the same stream, while the renderer is still handling the previous one. In the past renderer has simply ignored status changes while another status change was processed. But that was problematic, since we couldn't guarantee that the renderer status will be correct after stream has been enabled/disabled very quickly a few times. This CL fixes that issue by postponing status changes handling if necessary, instead of dropping those notifications. BUG=678031 Review-Url: https://codereview.chromium.org/2605473002 Cr-Commit-Position: refs/heads/master@{#442762} Committed: https://chromium.googlesource.com/chromium/src/+/bff54a249b1e7e9fddc1740d980c0bafacf10970

Patch Set 1 #

Total comments: 4

Patch Set 2 : Use a queue of postponed notifications + CR feedback #

Total comments: 6

Patch Set 3 : CR feedback #

Total comments: 2

Patch Set 4 : CR feedback (use a single unified notification queue) #

Unified diffs Side-by-side diffs Delta from patch set Stats (+126 lines, -16 lines) Patch
M media/renderers/renderer_impl.h View 1 2 3 4 chunks +5 lines, -1 line 0 comments Download
M media/renderers/renderer_impl.cc View 1 2 3 6 chunks +29 lines, -10 lines 0 comments Download
M media/renderers/renderer_impl_unittest.cc View 1 2 3 4 chunks +92 lines, -5 lines 0 comments Download

Messages

Total messages: 51 (31 generated)
servolk
3 years, 11 months ago (2017-01-03 19:20:03 UTC) #9
servolk
3 years, 11 months ago (2017-01-03 19:20:18 UTC) #10
whywhat
lgtm
3 years, 11 months ago (2017-01-03 22:54:23 UTC) #13
whywhat
+Xiaohan who might be available (Dale is OOO for a couple of days AFAIK)
3 years, 11 months ago (2017-01-03 23:01:08 UTC) #15
xhwang
On 2017/01/03 23:01:08, whywhat wrote: > +Xiaohan who might be available (Dale is OOO for ...
3 years, 11 months ago (2017-01-04 19:33:42 UTC) #16
xhwang
https://codereview.chromium.org/2605473002/diff/1/media/renderers/renderer_impl.cc File media/renderers/renderer_impl.cc (right): https://codereview.chromium.org/2605473002/diff/1/media/renderers/renderer_impl.cc#newcode37 media/renderers/renderer_impl.cc:37: static const int kStreamStatusHandlingDelayMs = 10; nit: no need ...
3 years, 11 months ago (2017-01-04 19:34:02 UTC) #17
servolk
On 2017/01/04 19:33:42, xhwang wrote: > On 2017/01/03 23:01:08, whywhat wrote: > > +Xiaohan who ...
3 years, 11 months ago (2017-01-04 19:47:05 UTC) #18
servolk
https://codereview.chromium.org/2605473002/diff/1/media/renderers/renderer_impl.cc File media/renderers/renderer_impl.cc (right): https://codereview.chromium.org/2605473002/diff/1/media/renderers/renderer_impl.cc#newcode37 media/renderers/renderer_impl.cc:37: static const int kStreamStatusHandlingDelayMs = 10; On 2017/01/04 19:34:02, ...
3 years, 11 months ago (2017-01-04 21:29:30 UTC) #20
servolk
On 2017/01/04 21:29:30, servolk wrote: > https://codereview.chromium.org/2605473002/diff/1/media/renderers/renderer_impl.cc > File media/renderers/renderer_impl.cc (right): > > https://codereview.chromium.org/2605473002/diff/1/media/renderers/renderer_impl.cc#newcode37 > ...
3 years, 11 months ago (2017-01-04 21:30:32 UTC) #22
xhwang
Thanks! This is better but I have some comments for discussion. https://codereview.chromium.org/2605473002/diff/20001/media/renderers/renderer_impl.cc File media/renderers/renderer_impl.cc (right): ...
3 years, 11 months ago (2017-01-04 22:04:16 UTC) #23
servolk
https://codereview.chromium.org/2605473002/diff/20001/media/renderers/renderer_impl.cc File media/renderers/renderer_impl.cc (right): https://codereview.chromium.org/2605473002/diff/20001/media/renderers/renderer_impl.cc#newcode590 media/renderers/renderer_impl.cc:590: postponed_video_status_notifications_.front()); On 2017/01/04 22:04:16, xhwang wrote: > There's a ...
3 years, 11 months ago (2017-01-05 02:38:45 UTC) #27
DaleCurtis
Hmm, do we need a queue of these changes? Seems like we just want to ...
3 years, 11 months ago (2017-01-05 22:48:26 UTC) #31
servolk
On 2017/01/05 22:48:26, DaleCurtis wrote: > Hmm, do we need a queue of these changes? ...
3 years, 11 months ago (2017-01-09 23:15:56 UTC) #32
DaleCurtis
https://codereview.chromium.org/2605473002/diff/40001/media/renderers/renderer_impl.cc File media/renderers/renderer_impl.cc (right): https://codereview.chromium.org/2605473002/diff/40001/media/renderers/renderer_impl.cc#newcode223 media/renderers/renderer_impl.cc:223: if (restarting_video_) { Can restarting_video_ and restarting_audio_ be pulled ...
3 years, 11 months ago (2017-01-10 21:14:48 UTC) #33
servolk
https://codereview.chromium.org/2605473002/diff/40001/media/renderers/renderer_impl.cc File media/renderers/renderer_impl.cc (right): https://codereview.chromium.org/2605473002/diff/40001/media/renderers/renderer_impl.cc#newcode223 media/renderers/renderer_impl.cc:223: if (restarting_video_) { On 2017/01/10 21:14:48, DaleCurtis wrote: > ...
3 years, 11 months ago (2017-01-10 23:12:11 UTC) #36
DaleCurtis
Why do we need to remove items one by one from the front? Can't you ...
3 years, 11 months ago (2017-01-11 00:01:00 UTC) #37
servolk
On 2017/01/11 00:01:00, DaleCurtis wrote: > Why do we need to remove items one by ...
3 years, 11 months ago (2017-01-11 00:09:17 UTC) #38
DaleCurtis
OIC, you're popping them one at a time. std::list is fine, or just std::swap(back)+pop if ...
3 years, 11 months ago (2017-01-11 00:13:16 UTC) #39
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2605473002/60001
3 years, 11 months ago (2017-01-11 01:31:40 UTC) #48
commit-bot: I haz the power
3 years, 11 months ago (2017-01-11 01:39:40 UTC) #51
Message was sent while issue was closed.
Committed patchset #4 (id:60001) as
https://chromium.googlesource.com/chromium/src/+/bff54a249b1e7e9fddc1740d980c...

Powered by Google App Engine
This is Rietveld 408576698