Opened 19 years ago
Closed 19 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 , 19 years ago
| Attachment: | ogg_get_length.patch added |
|---|
comment:1 by , 19 years ago
comment:2 by , 19 years ago
| Cc: | added |
|---|
comment:3 by , 19 years ago
| Resolution: | → remind |
|---|---|
| Status: | new → closed |
ffmpeg bug moved to ffmpeg roundup tracker
https://roundup.mplayerhq.hu/roundup/ffmpeg/issue159

Patch against r10293