Closed Bug 568432 Opened 16 years ago Closed 16 years ago

Assertion while seeking in the WebM backend

Categories

(Core :: Audio/Video, defect)

x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: kinetik, Assigned: kinetik)

References

Details

We're hitting the following assertion infrequently when seeking in the WebM backend: ###!!! ASSERTION: Seek target should lie inside the first frame after seek: 'video->mTime <= seekTime && seekTime <= video->mTime + mReader->GetInfo().mCallbackPeriod', file /Users/kinetik/work/mozilla-central/content/media/nsBuiltinDecoderStateMachine.cpp, line 892 Ignoring the fact that mCallbackPeriod is bogus for WebM files (we hardcode it to 50ms), this assertion appears to be catching a valid problem in some cases: (gdb) p seekTime $13 = 3332739 (gdb) p video.mRawPtr->mTime $14 = 3332746 We've landed at a frame 7ms ahead of the target time. It's possible this is fixed by my seeking patch in bug 568162. I haven't been able to reproduce the assertion with that patch applied, but it's possible I didn't test thoroughly enough.
Assignee: nobody → kinetik
Status: NEW → ASSIGNED
With the file I hit this assertion on, the frame times seem to vary between 33ms and 50ms, so the old code with the hardcoded frame time of 40ms would cause us stop decoding forward after seeking when landing on a 33ms long frame. This explains the 7ms discrepancy. It'd also be possible to decode too far forward if we landed on a 50ms long frame. My seeking patch in bug 568162 fixes both cases by using the start time of the following frame as the end time for the currently inspected frame. This assertion may still fire because it relies on mCallbackPeriod. Fixing that is bug 568431.
Depends on: 568162
Depends on: 568431
Fixed by bug 568431 landing.
Status: ASSIGNED → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.