Closed Bug 991448 Opened 11 years ago Closed 11 years ago

HTMLMediaElement.fastSeek() gets visual artifacts on Ogg videos

Categories

(Core :: Audio/Video, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla31

People

(Reporter: cpearce, Assigned: cpearce)

Details

Attachments

(1 file)

I discovered that we get visual artifacts when using fastSeek in Ogg videos. This is because the ogg page in which a theora keyframe lies can also contain frames which are not keyframes before the keyframe. So we can't assume that the first frame we decode on an ogg page after a seek is a keyframe, we need to decode until we get a keyframe.
Attached patch PatchSplinter Review
* Skip Ogg video decode to next keyframe after seek. This ensures we trim off non keyframes after seeking, prevents visual artifacts after a fastSeek. * Add ogg fastSeek testcase. The reason I wasn't sure it was working is that I wasn't taking into account that the sync points for an ogg video aren't actually the ogg page containing keyframes, as the audio required to playback the frames in those pages may actually lie before them.
Attachment #8401053 - Flags: review?(cajbir.bugzilla)
Comment on attachment 8401053 [details] [diff] [review] Patch Review of attachment 8401053 [details] [diff] [review]: ----------------------------------------------------------------- ::: content/media/ogg/OggReader.cpp @@ +1383,5 @@ > + // Decode forwards until we find the next keyframe. This is required, > + // as although the seek should finish on a page containing a keyframe, > + // there may be non-keyframes in the page before the keyframe. > + // When doing fastSeek we display the first frame after the seek, so > + // we need to advance the decode to the keyframere otherwise we'll get keyframere spelt wrong.
Attachment #8401053 - Flags: review?(cajbir.bugzilla) → review+
Status: NEW → RESOLVED
Closed: 11 years ago
Flags: in-testsuite+
Resolution: --- → FIXED
Target Milestone: --- → mozilla31
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: