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

Issue 2558213002: Fix crash in renderer initialization when media pipeline is stopped (Closed)

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

Description

Fix crash in renderer initialization when media pipeline is stopped The crash happens because by the time we call Demuxer::GetStream again the main thread might have proceeded with destroying SourceBuffer and thus ChunkDemuxer no longer allows accessing demuxer streams. Luckily demuxer streams themselves are still alive, just moved to ChunkDemuxer::removed_streams_ (see ChunkDemuxer::RemoveId). So cached pointers can still be used safely. BUG=668604 Committed: https://crrev.com/ee02c5e1edfa2bfb94d115aa985db582bcf20d2e Cr-Commit-Position: refs/heads/master@{#438000}

Patch Set 1 #

Total comments: 7

Patch Set 2 : Add test expectations for DemuxStreamProvider GetStream #

Total comments: 10

Patch Set 3 : Move SetStreamStatusChangeCB invokations to a/v renderer init #

Total comments: 4

Patch Set 4 : Added a comment for DemuxerStreamProvider::GetStream #

Unified diffs Side-by-side diffs Delta from patch set Stats (+44 lines, -20 lines) Patch
M media/base/demuxer_stream_provider.h View 1 2 3 1 chunk +7 lines, -0 lines 0 comments Download
M media/renderers/renderer_impl.cc View 1 2 3 chunks +15 lines, -20 lines 0 comments Download
M media/renderers/renderer_impl_unittest.cc View 1 2 1 chunk +22 lines, -0 lines 0 comments Download

Dependent Patchsets:

Messages

Total messages: 57 (23 generated)
servolk
On 2016/12/07 23:44:50, servolk wrote: > mailto:servolk@chromium.org changed reviewers: > + mailto:dalecurtis@chromium.org, mailto:wolenetz@chromium.org See https://bugs.chromium.org/p/chromium/issues/detail?id=668604#c11 ...
4 years ago (2016-12-07 23:45:23 UTC) #5
DaleCurtis
lgtm
4 years ago (2016-12-08 00:13:06 UTC) #6
DaleCurtis
Can you create a test where GetStream() returns nullptr the second time?
4 years ago (2016-12-08 00:13:34 UTC) #7
servolk
On 2016/12/08 00:13:34, DaleCurtis wrote: > Can you create a test where GetStream() returns nullptr ...
4 years ago (2016-12-08 00:28:27 UTC) #8
DaleCurtis
the renderer_impl tests have mocking for GetStream() already. Should be fairly trivial to setup this ...
4 years ago (2016-12-08 00:33:45 UTC) #9
servolk
On 2016/12/08 00:33:45, DaleCurtis wrote: > the renderer_impl tests have mocking for GetStream() already. Should ...
4 years ago (2016-12-08 00:51:43 UTC) #10
servolk
On 2016/12/08 00:51:43, servolk wrote: > On 2016/12/08 00:33:45, DaleCurtis wrote: > > the renderer_impl ...
4 years ago (2016-12-08 02:44:06 UTC) #17
DaleCurtis
On 2016/12/08 at 02:44:06, servolk wrote: > On 2016/12/08 00:51:43, servolk wrote: > > On ...
4 years ago (2016-12-08 18:08:37 UTC) #18
wolenetz
https://codereview.chromium.org/2558213002/diff/1/media/renderers/renderer_impl.cc File media/renderers/renderer_impl.cc (right): https://codereview.chromium.org/2558213002/diff/1/media/renderers/renderer_impl.cc#newcode134 media/renderers/renderer_impl.cc:134: DCHECK(demuxer_stream_provider->GetStream(DemuxerStream::AUDIO) || It looks like this DCHECK might also ...
4 years ago (2016-12-08 23:01:02 UTC) #19
servolk
On 2016/12/08 18:08:37, DaleCurtis wrote: > On 2016/12/08 at 02:44:06, servolk wrote: > > On ...
4 years ago (2016-12-09 00:25:51 UTC) #20
servolk
https://codereview.chromium.org/2558213002/diff/1/media/renderers/renderer_impl.cc File media/renderers/renderer_impl.cc (right): https://codereview.chromium.org/2558213002/diff/1/media/renderers/renderer_impl.cc#newcode134 media/renderers/renderer_impl.cc:134: DCHECK(demuxer_stream_provider->GetStream(DemuxerStream::AUDIO) || On 2016/12/08 23:01:02, wolenetz wrote: > It ...
4 years ago (2016-12-09 00:26:31 UTC) #21
wolenetz
https://codereview.chromium.org/2558213002/diff/1/media/renderers/renderer_impl.cc File media/renderers/renderer_impl.cc (right): https://codereview.chromium.org/2558213002/diff/1/media/renderers/renderer_impl.cc#newcode134 media/renderers/renderer_impl.cc:134: DCHECK(demuxer_stream_provider->GetStream(DemuxerStream::AUDIO) || On 2016/12/09 00:26:31, servolk wrote: > On ...
4 years ago (2016-12-09 23:23:01 UTC) #22
servolk
https://codereview.chromium.org/2558213002/diff/1/media/renderers/renderer_impl.cc File media/renderers/renderer_impl.cc (right): https://codereview.chromium.org/2558213002/diff/1/media/renderers/renderer_impl.cc#newcode134 media/renderers/renderer_impl.cc:134: DCHECK(demuxer_stream_provider->GetStream(DemuxerStream::AUDIO) || On 2016/12/09 23:23:00, wolenetz wrote: > On ...
4 years ago (2016-12-09 23:31:07 UTC) #23
servolk
On 2016/12/09 23:31:07, servolk wrote: > https://codereview.chromium.org/2558213002/diff/1/media/renderers/renderer_impl.cc > File media/renderers/renderer_impl.cc (right): > > https://codereview.chromium.org/2558213002/diff/1/media/renderers/renderer_impl.cc#newcode134 > ...
4 years ago (2016-12-10 02:32:57 UTC) #24
DaleCurtis
On 2016/12/10 at 02:32:57, servolk wrote: > On 2016/12/09 23:31:07, servolk wrote: > > https://codereview.chromium.org/2558213002/diff/1/media/renderers/renderer_impl.cc ...
4 years ago (2016-12-12 22:17:20 UTC) #25
servolk
On 2016/12/12 22:17:20, DaleCurtis wrote: > On 2016/12/10 at 02:32:57, servolk wrote: > > On ...
4 years ago (2016-12-12 22:24:26 UTC) #26
DaleCurtis
On 2016/12/12 at 22:24:26, servolk wrote: > On 2016/12/12 22:17:20, DaleCurtis wrote: > > On ...
4 years ago (2016-12-12 23:04:02 UTC) #27
servolk
On 2016/12/12 23:04:02, DaleCurtis wrote: > On 2016/12/12 at 22:24:26, servolk wrote: > > On ...
4 years ago (2016-12-12 23:36:59 UTC) #30
DaleCurtis
https://codereview.chromium.org/2558213002/diff/20001/media/renderers/renderer_impl.cc File media/renderers/renderer_impl.cc (right): https://codereview.chromium.org/2558213002/diff/20001/media/renderers/renderer_impl.cc#newcode139 media/renderers/renderer_impl.cc:139: DemuxerStream* audio_stream = Can you move these into InitializeAudioRenderer() ...
4 years ago (2016-12-12 23:43:09 UTC) #32
servolk
https://codereview.chromium.org/2558213002/diff/20001/media/renderers/renderer_impl.cc File media/renderers/renderer_impl.cc (right): https://codereview.chromium.org/2558213002/diff/20001/media/renderers/renderer_impl.cc#newcode139 media/renderers/renderer_impl.cc:139: DemuxerStream* audio_stream = On 2016/12/12 23:43:09, DaleCurtis wrote: > ...
4 years ago (2016-12-12 23:59:23 UTC) #33
DaleCurtis
On 2016/12/12 at 23:59:23, servolk wrote: > https://codereview.chromium.org/2558213002/diff/20001/media/renderers/renderer_impl.cc > File media/renderers/renderer_impl.cc (right): > > https://codereview.chromium.org/2558213002/diff/20001/media/renderers/renderer_impl.cc#newcode139 ...
4 years ago (2016-12-13 00:07:25 UTC) #36
xhwang
https://codereview.chromium.org/2558213002/diff/20001/media/renderers/renderer_impl_unittest.cc File media/renderers/renderer_impl_unittest.cc (right): https://codereview.chromium.org/2558213002/diff/20001/media/renderers/renderer_impl_unittest.cc#newcode161 media/renderers/renderer_impl_unittest.cc:161: EXPECT_CALL(*demuxer_, GetStream(DemuxerStream::AUDIO)) On 2016/12/12 23:43:09, DaleCurtis wrote: > For ...
4 years ago (2016-12-13 00:07:29 UTC) #37
servolk
On 2016/12/13 00:07:29, xhwang wrote: > https://codereview.chromium.org/2558213002/diff/20001/media/renderers/renderer_impl_unittest.cc > File media/renderers/renderer_impl_unittest.cc (right): > > https://codereview.chromium.org/2558213002/diff/20001/media/renderers/renderer_impl_unittest.cc#newcode161 > ...
4 years ago (2016-12-13 00:28:06 UTC) #38
servolk
On 2016/12/13 00:07:25, DaleCurtis wrote: > On 2016/12/12 at 23:59:23, servolk wrote: > > > ...
4 years ago (2016-12-13 00:29:21 UTC) #39
DaleCurtis
OIC, I thought it was destroying them at some later date. I see now that ...
4 years ago (2016-12-13 00:31:38 UTC) #40
xhwang
I might still be missing some context, but... Can we somehow fix our API such ...
4 years ago (2016-12-13 00:41:08 UTC) #41
servolk
On 2016/12/13 00:31:38, DaleCurtis wrote: > OIC, I thought it was destroying them at some ...
4 years ago (2016-12-13 00:45:24 UTC) #42
servolk
https://codereview.chromium.org/2558213002/diff/40001/media/renderers/renderer_impl.cc File media/renderers/renderer_impl.cc (right): https://codereview.chromium.org/2558213002/diff/40001/media/renderers/renderer_impl.cc#newcode383 media/renderers/renderer_impl.cc:383: &RendererImpl::RestartStreamPlayback, weak_this_, audio_stream)); On 2016/12/13 00:31:38, DaleCurtis wrote: > ...
4 years ago (2016-12-13 00:46:50 UTC) #43
servolk
On 2016/12/13 00:41:08, xhwang wrote: > I might still be missing some context, but... > ...
4 years ago (2016-12-13 00:51:35 UTC) #44
servolk
On 2016/12/13 00:51:35, servolk wrote: > On 2016/12/13 00:41:08, xhwang wrote: > > I might ...
4 years ago (2016-12-13 00:59:08 UTC) #47
xhwang
Thanks for the explanation and the new comments. This lg to me. However, heavy commenting ...
4 years ago (2016-12-13 01:30:11 UTC) #48
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/2558213002/60001
4 years ago (2016-12-13 02:14:37 UTC) #52
commit-bot: I haz the power
Committed patchset #4 (id:60001)
4 years ago (2016-12-13 02:50:43 UTC) #55
commit-bot: I haz the power
4 years ago (2016-12-13 02:54:16 UTC) #57
Message was sent while issue was closed.
Patchset 4 (id:??) landed as
https://crrev.com/ee02c5e1edfa2bfb94d115aa985db582bcf20d2e
Cr-Commit-Position: refs/heads/master@{#438000}

Powered by Google App Engine
This is Rietveld 408576698