Opened 17 years ago

Closed 17 years ago

#892 closed defect (remind)

ogg_get_length() in libavformat doesn't initialise all streams

Reported by: tstarling@… Owned by: mans@…
Priority: normal Component: libavformat
Version: unspecified Severity: normal
Keywords: Cc: tstarling@…
Blocked By: Blocking:
Reproduced by developer: no Analyzed by developer: no

Description

ogg_get_length() in libavformat/ogg2.c doesn't initialise the duration field for all streams, it only initialises it for one random stream. This means that a seek on the uninitialised stream doesn't work, and is ignored. This in turn means that the -ss option to ffmpeg is broken for multiplexed theora/vorbis streams, it decodes the whole stream up to the requested point instead of doing a fast seek. The performance impact of this is especially obvious when doing still image capture.

A patch to fix this will shortly be attached to this bug report and is also available at:

http://noc.wikimedia.org/~tstarling/patches/ogg_get_length.patch

It's a partial rewrite of ogg_get_length(), lightly tested.

There is still a keyframe issue when seeking in Theora videos, but it's not important for our application.

Attachments (1)

ogg_get_length.patch (2.8 KB ) - added by tstarling@… 17 years ago.
Patch against r10293

Download all attachments as: .zip

Change History (4)

by tstarling@…, 17 years ago

Attachment: ogg_get_length.patch added

Patch against r10293

comment:1 by tstarling@…, 17 years ago

comment:2 by tstarling@…, 17 years ago

Cc: tstarling@… added

comment:3 by compn, 17 years ago

Resolution: remind
Status: newclosed

ffmpeg bug moved to ffmpeg roundup tracker
https://roundup.mplayerhq.hu/roundup/ffmpeg/issue159

Note: See TracTickets for help on using tickets.