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

Issue 335273002: Fix seeking when the start time is non-zero. (Closed)

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

Description

Fix seeking when the start time is non-zero. The seek timestamp should always be adjusted by the start time, though this manipulation should not be visible to external (web) clients. Since this is an FFmpeg only problem, I've removed the concept of start time from the Demuxer interface in favor of local method only for FFmpegDemuxer. FFmpegDemuxerStream's will now use this value to adjust timestamps such that external clients always see a zero based timeline. Doing so required moving some of our ogg vorbis discard code into the FFmpegDemuxerStream, which actually makes it more accurate and more narrowly scoped to ogg w/ vorbis instead of all vorbis. These changes subtly change how we handle seeking. Previously we would let FFmpeg choose the stream to perform seeking within. Now we will use the video stream only if it contains the seek timestamp, if none exists or does not contain the seek timestamp, we'll use the stream with the lowest start time. I've extended the tests around non-zero start times to verify the new behavior. An FFmpeg DEPS roll is required for the new tests to pass: 5c3de80 Pass remaining command-line arguments to ffmpeg's configure de80875 Change the sigs file to use c-style comments. cb19b2d Update ffmpeg's GN build to use new yasm assemble format. 9c12290 Revert "avformat/mp3dec: fix start time in light of initial skip samples" 1e661a6 avcodec/vorbisdec: Reset first_frame 7d88be4 avformat/oggparsevorbis: Dont attempt to calculate timestamps from gp=0 BUG=377295 TEST=New unittests. Demo page from bug works. Layout tests pass. Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=278046

Patch Set 1 #

Patch Set 2 : Fixes. #

Total comments: 7

Patch Set 3 : Rebase. Remove vector. #

Total comments: 4

Patch Set 4 : Comments. New DEPS. #

Total comments: 4

Patch Set 5 : Comments. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+323 lines, -138 lines) Patch
M DEPS View 1 2 3 1 chunk +1 line, -1 line 0 comments Download
M media/base/demuxer.h View 1 chunk +0 lines, -3 lines 0 comments Download
M media/base/mock_filters.h View 1 chunk +0 lines, -1 line 0 comments Download
M media/base/pipeline.cc View 4 chunks +4 lines, -5 lines 0 comments Download
M media/base/pipeline_unittest.cc View 3 chunks +1 line, -41 lines 0 comments Download
M media/filters/chunk_demuxer.h View 1 chunk +0 lines, -1 line 0 comments Download
M media/filters/chunk_demuxer.cc View 2 chunks +1 line, -5 lines 0 comments Download
M media/filters/ffmpeg_audio_decoder.cc View 1 chunk +0 lines, -10 lines 0 comments Download
M media/filters/ffmpeg_demuxer.h View 1 2 8 chunks +30 lines, -10 lines 0 comments Download
M media/filters/ffmpeg_demuxer.cc View 1 2 3 4 11 chunks +163 lines, -41 lines 0 comments Download
M media/filters/ffmpeg_demuxer_unittest.cc View 1 2 3 4 4 chunks +123 lines, -20 lines 0 comments Download

Messages

Total messages: 13 (0 generated)
DaleCurtis
PTAL.
6 years, 6 months ago (2014-06-17 00:47:16 UTC) #1
acolwell GONE FROM CHROMIUM
https://codereview.chromium.org/335273002/diff/20001/media/filters/ffmpeg_demuxer.cc File media/filters/ffmpeg_demuxer.cc (right): https://codereview.chromium.org/335273002/diff/20001/media/filters/ffmpeg_demuxer.cc#newcode80 media/filters/ffmpeg_demuxer.cc:80: while (packet_buffer != format_context->packet_buffer_end) { How deep could this ...
6 years, 6 months ago (2014-06-17 17:41:22 UTC) #2
DaleCurtis
https://codereview.chromium.org/335273002/diff/20001/media/filters/ffmpeg_demuxer.cc File media/filters/ffmpeg_demuxer.cc (right): https://codereview.chromium.org/335273002/diff/20001/media/filters/ffmpeg_demuxer.cc#newcode80 media/filters/ffmpeg_demuxer.cc:80: while (packet_buffer != format_context->packet_buffer_end) { On 2014/06/17 17:41:22, acolwell ...
6 years, 6 months ago (2014-06-17 20:52:31 UTC) #3
DaleCurtis
https://codereview.chromium.org/335273002/diff/20001/media/filters/ffmpeg_demuxer.cc File media/filters/ffmpeg_demuxer.cc (right): https://codereview.chromium.org/335273002/diff/20001/media/filters/ffmpeg_demuxer.cc#newcode80 media/filters/ffmpeg_demuxer.cc:80: while (packet_buffer != format_context->packet_buffer_end) { On 2014/06/17 20:52:30, DaleCurtis ...
6 years, 6 months ago (2014-06-17 21:12:52 UTC) #4
acolwell GONE FROM CHROMIUM
https://codereview.chromium.org/335273002/diff/20001/media/filters/ffmpeg_demuxer.cc File media/filters/ffmpeg_demuxer.cc (right): https://codereview.chromium.org/335273002/diff/20001/media/filters/ffmpeg_demuxer.cc#newcode80 media/filters/ffmpeg_demuxer.cc:80: while (packet_buffer != format_context->packet_buffer_end) { On 2014/06/17 21:12:51, DaleCurtis ...
6 years, 6 months ago (2014-06-17 21:39:43 UTC) #5
DaleCurtis
https://codereview.chromium.org/335273002/diff/20001/media/filters/ffmpeg_demuxer.cc File media/filters/ffmpeg_demuxer.cc (right): https://codereview.chromium.org/335273002/diff/20001/media/filters/ffmpeg_demuxer.cc#newcode80 media/filters/ffmpeg_demuxer.cc:80: while (packet_buffer != format_context->packet_buffer_end) { On 2014/06/17 21:39:43, acolwell ...
6 years, 6 months ago (2014-06-17 22:30:42 UTC) #6
acolwell GONE FROM CHROMIUM
lgtm https://codereview.chromium.org/335273002/diff/60001/media/filters/ffmpeg_demuxer.cc File media/filters/ffmpeg_demuxer.cc (right): https://codereview.chromium.org/335273002/diff/60001/media/filters/ffmpeg_demuxer.cc#newcode271 media/filters/ffmpeg_demuxer.cc:271: // Discard the entier packet if it's entirely ...
6 years, 6 months ago (2014-06-17 22:58:55 UTC) #7
DaleCurtis
Thanks for review! https://codereview.chromium.org/335273002/diff/60001/media/filters/ffmpeg_demuxer.cc File media/filters/ffmpeg_demuxer.cc (right): https://codereview.chromium.org/335273002/diff/60001/media/filters/ffmpeg_demuxer.cc#newcode271 media/filters/ffmpeg_demuxer.cc:271: // Discard the entier packet if ...
6 years, 6 months ago (2014-06-17 23:04:05 UTC) #8
DaleCurtis
The CQ bit was checked by dalecurtis@chromium.org
6 years, 6 months ago (2014-06-17 23:04:28 UTC) #9
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/dalecurtis@chromium.org/335273002/80001
6 years, 6 months ago (2014-06-17 23:06:53 UTC) #10
commit-bot: I haz the power
Change committed as 278046
6 years, 6 months ago (2014-06-18 13:00:41 UTC) #11
alex.oshchepkov
On 2014/06/18 13:00:41, I haz the power (commit-bot) wrote: > Change committed as 278046 When ...
6 years, 6 months ago (2014-06-20 18:21:21 UTC) #12
DaleCurtis
6 years, 6 months ago (2014-06-20 18:28:34 UTC) #13
Message was sent while issue was closed.
It's available on Chrome Canary now, but probably won't be on Chrome Dev Channel
for a week or so (since M36 should be going stable shortly).

Powered by Google App Engine
This is Rietveld 408576698