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 696333 - qtmux should use provided DTS and not make up its own
qtmux should use provided DTS and not make up its own
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other All
: Normal normal
: 1.1.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2013-03-21 21:16 UTC by Matej Knopp
Modified: 2013-04-24 09:23 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Patch (20.22 KB, patch)
2013-03-21 21:18 UTC, Matej Knopp
none Details | Review
Fixed patch to use proper duration for last frame (20.40 KB, patch)
2013-03-21 21:28 UTC, Matej Knopp
none Details | Review
patch (1.19 KB, patch)
2013-04-23 20:31 UTC, Matej Knopp
none Details | Review

Description Matej Knopp 2013-03-21 21:16:33 UTC
Instead of trying to figure out what the DTS should be, muxer should just use provided DTS now that we have it on buffer.
Comment 1 Matej Knopp 2013-03-21 21:18:33 UTC
Created attachment 239499 [details] [review]
Patch

The patch will use provided DTS. If there is no DTS, it will use buffer PTS as fallback. This will work for audio streams and video without reordered frames. All other cases require valid DTS from upstream and will print warning.
Comment 2 Matej Knopp 2013-03-21 21:28:38 UTC
Created attachment 239501 [details] [review]
Fixed patch to use proper duration for last frame
Comment 3 David Schleef 2013-03-21 22:37:22 UTC
I have patches pending for this that are extensively tested.
Comment 4 David Schleef 2013-03-22 21:14:43 UTC
commit 364433c105055988133ebfca3190c7c23792ec64
Author: David Schleef <ds@schleef.org>
Date:   Fri Mar 22 11:54:08 2013 -0700

    qtmux: Remove documentation for dts-method

commit 6571e388be9da409185bb986ec786cff9a655631
Author: David Schleef <ds@schleef.org>
Date:   Fri Mar 22 13:24:33 2013 -0700

    qtmux: deprecate dts-method property

commit ee56a7cb99641804c573665ac551490c96e79f90
Author: David Schleef <ds@schleef.org>
Date:   Wed Mar 13 17:08:03 2013 -0700

    qtmux: Fix problems causing bad durations in file
    
    - Fix up out-of-order incoming DTS values.
    - Fix duration of initial sample.

commit 816e18602929bca9bb371e35be9c5a0289b1ae00
Author: David Schleef <ds@schleef.org>
Date:   Tue Mar 12 19:08:26 2013 -0700

    qtmux: fix all timestamps once first_ts is determined

commit 258c40c6dded80bc857132c3594043748bd37057
Author: David Schleef <ds@schleef.org>
Date:   Thu Feb 14 16:34:34 2013 -0800

    qtmux: Use PTS/DTS from incoming buffers
    
    Remove old DTS guessing code.
Comment 5 Matej Knopp 2013-04-23 20:31:05 UTC
Created attachment 242293 [details] [review]
patch
Comment 6 Matej Knopp 2013-04-23 20:31:16 UTC
For streams with bframes the first few buffers currently have invalid DTS (because there is no way to express negative running/stream time). Muxer doesn't check for -1, it takes current value and scales it, resulting in invalid sample duration. Checking for GST_CLOCK_TIME_NONE and using 0 instead fixes this (although proper fix would be to allow negative running time and perhaps shift the timestamps using edit list atom)
Comment 7 Nicolas Dufresne (ndufresne) 2013-04-24 09:23:39 UTC
Isn't the offset in GstSegment been added to address that ?