Chromium Code Reviews
DescriptionFix incorrect opus seek preroll and flaky pre-skip removal.
Opus seek preroll was being treated as decoder delay when it really
just means that for seeking to a time T, we need to decode packets
starting from time "T - seek_preroll" and throw them away. Instead
we were discarding time [T, T+seek_preroll] and shifting the
timestamps backwards to accommodate the deletion.
For pre-skip, we would assume the first packet seen by the decoder
was the timestamp for which pre-skip should be applied. However,
this is incorrect and pre-skip should always be dropped because
timestamp zero represents the beginning of the pre-skip, which
causes all future timestamps to be displaced by pre-skip duration.
This patch fixes pre-skip and seek preroll for src= and pre-skip only
for MSE. ChunkDemuxer needs to be modified to support preroll. src=
is fixed by expanding the hacks in place for negative ogg timestamps
to handle negative timestamps from ffmpeg in a more general manner.
This patch also adds test cases for the seeking cases (one of which MSE
can pass because the test clip has a codec delay > seek preroll).
Since these tests would otherwise take some time to run, this also
adds support for clockless hashed pipeline integration tests.
BUG=509894
TEST=OpusAudioDecoder and OPUS PipelineIntegration tests pass
w/o expectations modification. New trimming pipeline tests.
New FFmpegDemuxerTest to verify audio/video timestamp sync.
Committed: https://crrev.com/aa958fd3a80afdfdc2f747a819a1c67605c637e6
Cr-Commit-Position: refs/heads/master@{#342274}
Patch Set 1 : Remove typo. #Patch Set 2 : Add workaround for MSE. #Patch Set 3 : Fix seeking. #Patch Set 4 : Add test cases. #
Total comments: 20
Patch Set 5 : Fix comments. #Patch Set 6 : Don't use duration / 2 since MSE and FFmpeg defer. #Patch Set 7 : Simplify, add tests. #Patch Set 8 : Fix remainder, add test. #Patch Set 9 : Simplify #
Total comments: 43
Patch Set 10 : Comments. #
Total comments: 8
Patch Set 11 : Comments. #Patch Set 12 : Rebase. Comments. #Patch Set 13 : Fix mojo renderer. #Messages
Total messages: 33 (9 generated)
|