DescriptionFix 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. #
Messages
Total messages: 13 (0 generated)
|