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 608990 - [qtdemux] Segment start timestamps can be broken
[qtdemux] Segment start timestamps can be broken
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other Linux
: Normal blocker
: 0.10.18
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2010-02-04 13:56 UTC by Robert Swain
Modified: 2010-02-04 20:39 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Fix the time returned for an index at a byte offset (1.01 KB, patch)
2010-02-04 13:57 UTC, Robert Swain
committed Details | Review
Set the segment start time to the requested seek time for non-keyframe seeks (2.38 KB, patch)
2010-02-04 13:58 UTC, Robert Swain
none Details | Review
Set the segment start time to the requested seek time for non-keyframe seeks (2.64 KB, patch)
2010-02-04 14:40 UTC, Robert Swain
committed Details | Review

Description Robert Swain 2010-02-04 13:56:29 UTC
As I've added progressive download support in qtdemux since the last release, it would be very nice if we could make its debut as good as possible.

When testing I found that with -good at master the following sample did not seek properly: http://samples.mplayerhq.hu/mobileVideo_3gp/Kylie_Live.3gp

Rather than seeking to the requested position, it was doing two things wrong:
- Displaying the keyframe seeked to and playing audio from the beginning of the file.
- Seeking to the keyframe position and playing from there rather than clipping buffers from before the requested seek position for non-keyframe seeks.

Patches incoming for both issues...
Comment 1 Robert Swain 2010-02-04 13:57:47 UTC
Created attachment 153005 [details] [review]
Fix the time returned for an index at a byte offset

The logic for searching forwards/backwards was swapped.
Comment 2 Robert Swain 2010-02-04 13:58:43 UTC
Created attachment 153006 [details] [review]
Set the segment start time to the requested seek time for non-keyframe seeks
Comment 3 Robert Swain 2010-02-04 14:40:56 UTC
Created attachment 153011 [details] [review]
Set the segment start time to the requested seek time for non-keyframe seeks

I missed a lock when reading seek_offset from the context. This patch makes it more robust.
Comment 4 Tim-Philipp Müller 2010-02-04 15:23:24 UTC
If it looks good to Wim, it's fine with me. Please push once Wim has signed off on these patches.
Comment 5 Wim Taymans 2010-02-04 15:54:04 UTC
ok for me.
Comment 6 Tim-Philipp Müller 2010-02-04 20:39:27 UTC
(Argh, forgot to commit --amend the messages to mention the bug numbers, oh well):

commit 9ed6c58006704b3ac049503cc9ea9808d7447c48
Author: Robert Swain <robert.swain@collabora.co.uk>
Date:   Thu Feb 4 14:46:56 2010 +0100

    qtdemux: Set the segment start time to the requested seek time for non-keyframe seeks

commit 8d4f70c5ce9c4998edc4a9e32e2d65ae87946684
Author: Robert Swain <robert.swain@collabora.co.uk>
Date:   Thu Feb 4 12:00:03 2010 +0100

    qtdemux: Fix time returned for index at a byte offset
    
    The logic for searching forwards/backwards was swapped