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 always use the stream with the lowest order timestamp. This
means we will sometime use the audio stream where previously we
used the video stream.
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:
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.
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=277348
Patch Set 1 #
Total comments: 1
Patch Set 2 : FFmpeg only start time. #
Total comments: 21
Patch Set 3 : Comments. #
Total comments: 6
Patch Set 4 : Include DEPS. Comments. #Patch Set 5 : Rebase. #Patch Set 6 : Fixes. #
Messages
Total messages: 19 (0 generated)
|