Opened 17 years ago
Closed 17 years ago
#892 closed defect (remind)
ogg_get_length() in libavformat doesn't initialise all streams
Reported by: | Owned by: | ||
---|---|---|---|
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)
Change History (4)
by , 17 years ago
Attachment: | ogg_get_length.patch added |
---|
comment:1 by , 17 years ago
comment:2 by , 17 years ago
Cc: | added |
---|
comment:3 by , 17 years ago
Resolution: | → remind |
---|---|
Status: | new → closed |
ffmpeg bug moved to ffmpeg roundup tracker
https://roundup.mplayerhq.hu/roundup/ffmpeg/issue159
Patch against r10293