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 731088 - tsdemux: missing audio after seeking in mpeg transport stream (regression)
tsdemux: missing audio after seeking in mpeg transport stream (regression)
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal blocker
: 1.3.3
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-06-01 22:25 UTC by Wilfried Philips
Modified: 2014-06-10 12:35 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
mpegtspacketizer: Handle early PTS conversion (1.69 KB, patch)
2014-06-02 11:21 UTC, Edward Hervey
committed Details | Review

Description Wilfried Philips 2014-06-01 22:25:26 UTC
In the following transport stream
http://eltodo.ugent.be/~philips/tmp/sdtest.ts
seeking works fine in gstreamer 1.2.4 but not in 1.3.1
or later. The symptom is that audio is not played back after some seeks.

I have traced the problem to the following commit:
2762ead5ef2a16885fbb6918dae9b8df836a361f
mpegtsdemux: New PCR<=>Offset estimation code

The problem can be reproduced with

gst-launch-1.0 filesrc location=sdtest.ts ! tsdemux name=demuxer demuxer. ! queue ! mpegaudioparse ! mad ! pulsesink demuxer. ! queue ! mpeg2dec ! navseek ! autovideosink

and pressing left and right arrows a couple of times (with the playback window
in focus). At some point the audio disappears but it sometimes comes back after more seeking.

The problem is not present in 5017ba84a75bfb0947264374ad6aff095569d25e,
which is the commit just before the one mentioned.
It is NOT the same problem as described in bug 721035.
The path described in that bug (
https://bugzilla.gnome.org/attachment.cgi?id=264992)
does NOT work.
Comment 1 Tim-Philipp Müller 2014-06-01 22:36:53 UTC
Regression from 1.2, marking as blocker for now.
Comment 2 Tim-Philipp Müller 2014-06-01 22:47:20 UTC
I could reproduce this with totem + master (but not totem + 1.2). I could not reproduce it with the gst-launch-1.0 playbin video-sink='navseek ! xvimagesink', for what it's worth.
Comment 3 Edward Hervey 2014-06-02 11:21:50 UTC
Created attachment 277715 [details] [review]
mpegtspacketizer: Handle early PTS conversion

When handling the PTS/DTS conversion in new groups, there's a possibility
that the PTS might be smaller than the first PCR value observed, due to
re-ordering.

When using the current group, only apply the wraparound correction when we
are certain it is one (i.e. differs by more than a second) and not when it's
just a small difference (like out-of-order PTS).
Comment 4 Wilfried Philips 2014-06-02 18:59:42 UTC
The patch seems to work fine on the video sequence.
http://eltodo.ugent.be/~philips/tmp/sdtest.ts

Thanks for the quick response. It is appreciated.
Comment 5 Edward Hervey 2014-06-10 12:34:31 UTC
commit a822517ca94c132104faf484d11aaeaaecf9769a
Author: Edward Hervey <bilboed@bilboed.com>
Date:   Mon Jun 2 11:07:01 2014 +0200

    mpegtspacketizer: Handle early PTS conversion
    
    When handling the PTS/DTS conversion in new groups, there's a possibility
    that the PTS might be smaller than the first PCR value observed, due to
    re-ordering.
    
    When using the current group, only apply the wraparound correction when we
    are certain it is one (i.e. differs by more than a second) and not when it's
    just a small difference (like out-of-order PTS).
    
    https://bugzilla.gnome.org/show_bug.cgi?id=731088