GNOME Bugzilla – Bug 611227
[oggdemux] no duration or seeking in local big_buck_bunny_427x240.indexed.ogg in pull mode
Last modified: 2010-03-01 11:35:25 UTC
1. Download http://pearce.org.nz/video/big_buck_bunny_427x240.indexed.ogg (referenced from http://wiki.xiph.org/Ogg_Index) 2. ./gst-plugins-base/tests/examples/seek/seek 16 file:///path/to/big_buck_bunny_427x240.indexed.ogg 3. No duration 4. Seeking is broken (just seeks back to start)
oggdemux can't seek if it has no duration, so that's probably the same problem. The unknown duration is caused by the chains not having information about the start and stop time. See gstoggdemux.c:2628
Erm, no valid start but a stop time. Maybe we should just assume 0 in those cases?
Created attachment 154830 [details] [review] diff This "fixes" it but this is definitely not the correct fix. In gstoggdemux.c:799 the pad->start_time is properly set at a later point to 0... so that total_time calculation should probably be deferred a bit.
The reason why this happens probably is, that the first ~30 ogg packets of every stream have a granulepos of -1 but the pad->start_time is only set when the first non--1 granulepos appears.
Created attachment 154940 [details] [review] proposed patch a flag was not set correctly in the new mapper code.
commit 6eef04c1cb6beeafb5b8d4b57b902c5a2ab39178 Author: Wim Taymans <wim.taymans@collabora.co.uk> Date: Mon Mar 1 12:17:40 2010 +0100 oggstream: mark skeleton streams correctly Mark skeleton streams because we need to ignore them for calculating the duration of the stream. Fixes #611227