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 652541 - playbin2: video freezes shortly after switching subtitle streams
playbin2: video freezes shortly after switching subtitle streams
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal normal
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2011-06-14 11:09 UTC by Tim-Philipp Müller
Modified: 2013-08-19 06:24 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Tim-Philipp Müller 2011-06-14 11:09:20 UTC
To reproduce:

 - download http://erikslag.home.xs4all.nl/test-2.mp4
 - play in totem
 - switch to the other subtitle stream

Effect:

 - new subtitles are not shown
 - video freezes at some point (N-15 secs) after switching


Also see: http://lists.freedesktop.org/archives/gstreamer-devel/2011-June/031845.html :

"
The problem is this: an mp4 file with one (1) subtitle track works like 
a charm. As soon as more are present, problems come. Sometimes the file 
plays until the end, sometimes it freezes. If I select the second 
subtitle track, at least I don't get the subtitles, also sooner or later 
it freezes as well.

The problem of not getting subs after switching sub track can be worked 
around by seeking to the start of the file and back, as recommended by a 
developer for older versions of gstreamer. Enigma2 uses 0.10.32 though, 
which doesn't seem that old to me?

But then the freezing is appearing even more. I've done a lot of 
debugging on the enigma2 source code lately and I now can dismiss any 
bugs in that code causing this. It's very simple. Every time I activate 
the second subtitle track ("current-text" = 2), and then do a seek 
(something like this:)

rv = gst_element_seek_simple(GST_ELEMENT(m_gst_playbin), 
GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH, 0);

The call doesn't return and the pipeline halts after some time.

This does *not* happen when subtitle track 1 or no subtitle track is 
selected. The actual seek position doesn't matter, it always freezes. 
Also in the meantime no significant messages are delivered to the app. 
It's just... frozen.

Is this a known problem, has this been fixed in newer versions? I can't 
find any references to this problem, so I guess not.

Can somebody try it?

Here you can find example files: http://www.xs4all.nl/~erikslag. The -x 
part describes how many subtitle tracks are present.

I also noticed that subtitles of the first subtitle track are delivered, 
even if no subtitle is actually selected, is this is a known problem? 
("current-text" = -1).
"
Comment 1 Jan ONDREJ (SAL) 2013-03-16 10:15:19 UTC
I have similar problem with gst-1.0.5. Switching to 2nd and next subtitle tracks will freeze immediately after set_property. It will never return from set_property("current-text", X) function.
Comment 2 Sebastian Dröge (slomo) 2013-08-16 11:36:16 UTC
The original files are not available anymore but I can't reproduce this problem with many files I tried here and latest GIT master. Please reopen if it still exists and provide the relevant media file.
Comment 3 Tim-Philipp Müller 2013-08-16 16:07:40 UTC
Yeah, it works now. I think it's been solved by making qtdemux send GAP events for subtitle streams.
Comment 4 Jan ONDREJ (SAL) 2013-08-19 06:24:32 UTC
I have still same problem here with gstreamer-1.0.9 and my player in python.
Using set_property("current-text", X) function will never return and video stops playing. My application freezes. This happens in an mkv video with multiple subtitles. I can't upload it, but can run some tests if needed.

Any chance to fix this in 1.0 branch too?