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

Issue 213253006: MSE: Populate WebM missing duration with DefaultDuration, derived, or default (Closed)

Created:
6 years, 9 months ago by wolenetz
Modified:
6 years, 9 months ago
CC:
chromium-reviews, feature-media-reviews_chromium.org, DaleCurtis
Visibility:
Public.

Description

MSE: Populate WebM missing duration with DefaultDuration, derived, or default This change modifes WebM stream parser to estimate missing WebM frame durations using the following logic: 1) If the frame was a BlockGroup, it should already have a duration. Use it. (This is previous behavior; no other WebM frames previously had duration.) 2) If the frame was a SimpleBlock, derive its duration as follows: 2a) If the frame's TrackEntry had a DefaultDuration, use that value capped at a precision no greater than TimeCodes with TimeCodeScale applied. 2b) Otherwise, if there is a subsequent frame in the cluster, set the duration to the difference in timestamps. 2c) Otherwise, use the maximum frame duration for the track encountered so far, if any. 2d) Otherwise, use a hardcoded value. Note, 2b-2c, for WebM audio, ideally would be calculated based on the track's codebook. This is left for a future CL. Adds related WebM track parser unit tests. Adjusts existing ChunkDemuxerTests, PipelineIntegrationTests, and WebMClusterParserTests based on new duration logic. R=acolwell@chromium.org TEST=All media_unittests and http/tests/media layout tests pass locally on Linux BUG=351166 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=260247

Patch Set 1 #

Total comments: 11

Patch Set 2 : Addressed comments and rebased (GenerateSpliceFrame() is now disabled in WMPI/WMPA in ToT) #

Total comments: 6

Patch Set 3 : Addressed PS2 comments #

Patch Set 4 : Use the longer default video frame duration of 24fps vs 25fps #

Unified diffs Side-by-side diffs Delta from patch set Stats (+239 lines, -51 lines) Patch
M media/filters/chunk_demuxer_unittest.cc View 1 3 chunks +9 lines, -5 lines 0 comments Download
M media/filters/pipeline_integration_test.cc View 1 4 chunks +11 lines, -5 lines 0 comments Download
M media/formats/webm/webm_cluster_parser.h View 1 2 5 chunks +47 lines, -4 lines 0 comments Download
M media/formats/webm/webm_cluster_parser.cc View 1 2 3 8 chunks +134 lines, -11 lines 0 comments Download
M media/formats/webm/webm_cluster_parser_unittest.cc View 15 chunks +30 lines, -22 lines 0 comments Download
M media/formats/webm/webm_stream_parser.cc View 3 chunks +8 lines, -4 lines 0 comments Download

Messages

Total messages: 16 (0 generated)
wolenetz
PTAL (acolwell@: everything, dalecurtis@: FYI). This change requires https://codereview.chromium.org/213153008/ to land first. A Blink MediaSource ...
6 years, 9 months ago (2014-03-26 22:14:44 UTC) #1
DaleCurtis
Splicing requires exact durations, so even guesses are not good enough. In practice this may ...
6 years, 9 months ago (2014-03-26 22:18:20 UTC) #2
acolwell GONE FROM CHROMIUM
On 2014/03/26 22:18:20, DaleCurtis wrote: > Splicing requires exact durations, so even guesses are not ...
6 years, 9 months ago (2014-03-26 22:41:39 UTC) #3
DaleCurtis
I'm not sure that's practical when talking about a duration of 5ms for splices. In ...
6 years, 9 months ago (2014-03-26 23:29:26 UTC) #4
acolwell GONE FROM CHROMIUM
looks pretty good. Just a few comments. https://codereview.chromium.org/213253006/diff/1/media/filters/chunk_demuxer_unittest.cc File media/filters/chunk_demuxer_unittest.cc (right): https://codereview.chromium.org/213253006/diff/1/media/filters/chunk_demuxer_unittest.cc#newcode573 media/filters/chunk_demuxer_unittest.cc:573: CheckExpectedRanges(kSourceId, "{ ...
6 years, 9 months ago (2014-03-26 23:32:04 UTC) #5
wolenetz
PTAL @ PS3. Thanks! https://codereview.chromium.org/213253006/diff/1/media/filters/chunk_demuxer_unittest.cc File media/filters/chunk_demuxer_unittest.cc (right): https://codereview.chromium.org/213253006/diff/1/media/filters/chunk_demuxer_unittest.cc#newcode573 media/filters/chunk_demuxer_unittest.cc:573: CheckExpectedRanges(kSourceId, "{ [0,2736) }"); On ...
6 years, 9 months ago (2014-03-27 18:01:48 UTC) #6
wolenetz
On 2014/03/27 18:01:48, wolenetz wrote: > PTAL @ PS3. Thanks! > > https://codereview.chromium.org/213253006/diff/1/media/filters/chunk_demuxer_unittest.cc > File ...
6 years, 9 months ago (2014-03-27 18:02:54 UTC) #7
acolwell GONE FROM CHROMIUM
lgtm. You might want to land a temporary TestExpectations change that allows appropriate LayoutTests to ...
6 years, 9 months ago (2014-03-27 18:28:09 UTC) #8
wolenetz
Thank you. I'll send this to CQ once the Blink-side (https://codereview.chromium.org/212593007/) TestExpectations update has landed ...
6 years, 9 months ago (2014-03-27 19:56:39 UTC) #9
wolenetz
On 2014/03/27 19:56:39, wolenetz wrote: > Thank you. > I'll send this to CQ once ...
6 years, 9 months ago (2014-03-27 19:59:05 UTC) #10
wolenetz
Ok. I'll send PS4 to CQ once the Blink-side (https://codereview.chromium.org/212593007/) TestExpectations update has landed and ...
6 years, 9 months ago (2014-03-27 20:02:27 UTC) #11
wolenetz
On 2014/03/27 20:02:27, wolenetz wrote: > Ok. I'll send PS4 to CQ once the Blink-side ...
6 years, 9 months ago (2014-03-27 20:06:34 UTC) #12
wolenetz
On 2014/03/27 20:06:34, wolenetz wrote: > On 2014/03/27 20:02:27, wolenetz wrote: > > Ok. I'll ...
6 years, 9 months ago (2014-03-28 17:13:10 UTC) #13
wolenetz
The CQ bit was checked by wolenetz@chromium.org
6 years, 9 months ago (2014-03-28 17:13:26 UTC) #14
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/wolenetz@chromium.org/213253006/60001
6 years, 9 months ago (2014-03-28 17:17:25 UTC) #15
commit-bot: I haz the power
6 years, 9 months ago (2014-03-28 20:03:58 UTC) #16
Message was sent while issue was closed.
Change committed as 260247

Powered by Google App Engine
This is Rietveld 408576698