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

Issue 1281113002: MSE: Warn when keyframe after track_buffer is significantly in future (Closed)

Created:
5 years, 4 months ago by wolenetz
Modified:
5 years, 4 months ago
Reviewers:
chcunningham, xhwang
CC:
chromium-reviews, feature-media-reviews_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

MSE: Warn when keyframe after track_buffer is significantly in future Adds logging to chrome://media-internals when an overlapped append of the currently playing GOP introduces significant delay until keyframe following the end of the overlap. Also adds a MockMediaLog and uses it in a StrictMock within SourceBufferStreamTests to verify the new (and existing) MediaLog events produced by SourceBufferStreamTests. Visual example: First append: [K..t...........] 2nd append: [K.......................................][*K....................]... Since the buffer around 't' from first append is in the middle of being decoded and rendered when the second append is done, the rest of the first append's GOP is played and then the stream continues decode at the next (*) keyframe in time in the 2nd append. The result is frozen video frame (on the last PTS from the GOP containing t) until time of keyframe at (*). Note, once playback of the overlapped GOP containing t is completed, the overlapped GOP is dropped, and only the buffered media from the second append is available for replay upon seeking back. BUG=518069 TEST=no regression. Internal b/23015270 repro demonstrates new log. Added SourceBufferStreamTest.TrackBuffer_ExhaustionWithSkipForward and SourceBufferStreamTest.TrackBuffer_ExhaustionAndImmediateNewTrackBuffer Committed: https://crrev.com/ba8d79c02368809cab3f17844e93e6ef2cc6b639 Cr-Commit-Position: refs/heads/master@{#342861}

Patch Set 1 #

Total comments: 6

Patch Set 2 : Removed DCHECK, added tests, need to fix log resulting from one of new tests #

Total comments: 2

Patch Set 3 : Checkpoint: adding MockMediaLog and adding strict expectations into SourceBufferStream #

Patch Set 4 : Fix nit, reduce log verification test boilerplate #

Total comments: 5

Patch Set 5 : Fix mock media log license #

Total comments: 8

Patch Set 6 : Fixes xhwang@'s nits #

Total comments: 2
Unified diffs Side-by-side diffs Delta from patch set Stats (+266 lines, -28 lines) Patch
M media/base/BUILD.gn View 1 2 1 chunk +2 lines, -0 lines 0 comments Download
A media/base/mock_media_log.h View 1 2 3 4 5 1 chunk +35 lines, -0 lines 0 comments Download
A + media/base/mock_media_log.cc View 1 2 3 4 5 1 chunk +4 lines, -3 lines 2 comments Download
M media/filters/source_buffer_stream.h View 1 2 3 chunks +14 lines, -2 lines 0 comments Download
M media/filters/source_buffer_stream.cc View 1 2 3 10 chunks +51 lines, -16 lines 0 comments Download
M media/filters/source_buffer_stream_unittest.cc View 1 2 3 24 chunks +158 lines, -7 lines 0 comments Download
M media/media.gyp View 1 2 3 4 5 1 chunk +2 lines, -0 lines 0 comments Download

Dependent Patchsets:

Messages

Total messages: 32 (9 generated)
wolenetz
chcunningham@: everything xhwang@: committer and from perspective of media internals spam prevention. (See also the ...
5 years, 4 months ago (2015-08-08 00:51:35 UTC) #2
chcunningham
Woot. LGTM https://codereview.chromium.org/1281113002/diff/1/media/filters/source_buffer_stream.cc File media/filters/source_buffer_stream.cc (right): https://codereview.chromium.org/1281113002/diff/1/media/filters/source_buffer_stream.cc#newcode1136 media/filters/source_buffer_stream.cc:1136: DCHECK(!just_exhausted_track_buffer_); On 2015/08/08 00:51:35, wolenetz wrote: > ...
5 years, 4 months ago (2015-08-10 18:02:18 UTC) #3
wolenetz
I'll do some further investigation around the DCHECK. Thanks for review. https://codereview.chromium.org/1281113002/diff/1/media/filters/source_buffer_stream.cc File media/filters/source_buffer_stream.cc (right): ...
5 years, 4 months ago (2015-08-10 20:14:43 UTC) #4
wolenetz
On 2015/08/10 20:14:43, wolenetz wrote: > I'll do some further investigation around the DCHECK. Thanks ...
5 years, 4 months ago (2015-08-10 21:41:21 UTC) #5
wolenetz
Patch set 2 is just a checkpoint (not ready for review; don't land it) https://codereview.chromium.org/1281113002/diff/1/media/filters/source_buffer_stream.cc ...
5 years, 4 months ago (2015-08-10 21:56:29 UTC) #6
xhwang
I don't really understand this code, so defer to chrunningham to finish the review. Added ...
5 years, 4 months ago (2015-08-10 23:51:08 UTC) #7
wolenetz
Thanks for reviews. I'm continuing to refactor this CL to add media log entry verification ...
5 years, 4 months ago (2015-08-11 00:32:13 UTC) #8
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1281113002/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1281113002/60001
5 years, 4 months ago (2015-08-11 02:06:43 UTC) #10
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: chromium_presubmit on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presubmit/builds/86999)
5 years, 4 months ago (2015-08-11 02:18:34 UTC) #12
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1281113002/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1281113002/80001
5 years, 4 months ago (2015-08-11 02:47:08 UTC) #14
wolenetz
I've reworked some things, especially some test support using a new MockMediaLog in SourceBufferStreamTests. Please ...
5 years, 4 months ago (2015-08-11 02:53:31 UTC) #15
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years, 4 months ago (2015-08-11 03:52:49 UTC) #17
xhwang
lgtm https://codereview.chromium.org/1281113002/diff/80001/media/base/mock_media_log.cc File media/base/mock_media_log.cc (right): https://codereview.chromium.org/1281113002/diff/80001/media/base/mock_media_log.cc#newcode1 media/base/mock_media_log.cc:1: // Copyright (c) 2015 The Chromium Authors. All ...
5 years, 4 months ago (2015-08-11 07:04:37 UTC) #18
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1281113002/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1281113002/100001
5 years, 4 months ago (2015-08-11 15:54:08 UTC) #20
wolenetz
Thanks for the review, Xiohan. Chris, please take a look at patch 6, since there ...
5 years, 4 months ago (2015-08-11 15:54:40 UTC) #21
wolenetz
On 2015/08/11 15:54:40, wolenetz wrote: > Thanks for the review, Xiohan. > Chris, please take ...
5 years, 4 months ago (2015-08-11 15:55:22 UTC) #22
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years, 4 months ago (2015-08-11 17:15:15 UTC) #24
wolenetz
https://codereview.chromium.org/1281113002/diff/80001/media/filters/source_buffer_stream.cc File media/filters/source_buffer_stream.cc (right): https://codereview.chromium.org/1281113002/diff/80001/media/filters/source_buffer_stream.cc#newcode214 media/filters/source_buffer_stream.cc:214: num_track_buffer_gap_warning_logs_(0) {} On 2015/08/11 15:54:40, wolenetz wrote: > On ...
5 years, 4 months ago (2015-08-11 17:52:16 UTC) #25
chcunningham
LGTM x2 https://codereview.chromium.org/1281113002/diff/100001/media/base/mock_media_log.cc File media/base/mock_media_log.cc (left): https://codereview.chromium.org/1281113002/diff/100001/media/base/mock_media_log.cc#oldcode9 media/base/mock_media_log.cc:9: JpegDecodeAccelerator::~JpegDecodeAccelerator() { did you git copy this?
5 years, 4 months ago (2015-08-11 19:01:18 UTC) #26
wolenetz
Thanks again for the reviews. https://codereview.chromium.org/1281113002/diff/100001/media/base/mock_media_log.cc File media/base/mock_media_log.cc (left): https://codereview.chromium.org/1281113002/diff/100001/media/base/mock_media_log.cc#oldcode9 media/base/mock_media_log.cc:9: JpegDecodeAccelerator::~JpegDecodeAccelerator() { On 2015/08/11 ...
5 years, 4 months ago (2015-08-11 19:06:05 UTC) #27
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1281113002/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1281113002/100001
5 years, 4 months ago (2015-08-11 19:06:39 UTC) #30
commit-bot: I haz the power
Committed patchset #6 (id:100001)
5 years, 4 months ago (2015-08-11 19:17:53 UTC) #31
commit-bot: I haz the power
5 years, 4 months ago (2015-08-11 19:18:55 UTC) #32
Message was sent while issue was closed.
Patchset 6 (id:??) landed as
https://crrev.com/ba8d79c02368809cab3f17844e93e6ef2cc6b639
Cr-Commit-Position: refs/heads/master@{#342861}

Powered by Google App Engine
This is Rietveld 408576698