After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 611227 - [oggdemux] no duration or seeking in local big_buck_bunny_427x240.indexed.ogg in pull mode
[oggdemux] no duration or seeking in local big_buck_bunny_427x240.indexed.ogg...
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal normal
: 0.10.27
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2010-02-26 19:52 UTC by Tim-Philipp Müller
Modified: 2010-03-01 11:35 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
diff (803 bytes, patch)
2010-02-27 12:55 UTC, Sebastian Dröge (slomo)
none Details | Review
proposed patch (823 bytes, patch)
2010-03-01 11:21 UTC, Wim Taymans
committed Details | Review

Description Tim-Philipp Müller 2010-02-26 19:52:37 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)
Comment 1 Sebastian Dröge (slomo) 2010-02-27 12:47:15 UTC
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
Comment 2 Sebastian Dröge (slomo) 2010-02-27 12:48:39 UTC
Erm, no valid start but a stop time. Maybe we should just assume 0 in those cases?
Comment 3 Sebastian Dröge (slomo) 2010-02-27 12:55:35 UTC
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.
Comment 4 Sebastian Dröge (slomo) 2010-02-27 13:10:49 UTC
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.
Comment 5 Wim Taymans 2010-03-01 11:21:11 UTC
Created attachment 154940 [details] [review]
proposed patch

a flag was not set correctly in the new mapper code.
Comment 6 Wim Taymans 2010-03-01 11:35:09 UTC
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