GNOME Bugzilla – Bug 731088
tsdemux: missing audio after seeking in mpeg transport stream (regression)
Last modified: 2014-06-10 12:35:17 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.
Regression from 1.2, marking as blocker for now.
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.
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).
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.
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