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 362845 - [subparse] add support for tmplayer format
[subparse] add support for tmplayer format
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal enhancement
: 0.10.11
Assigned To: Tim-Philipp Müller
Maintainer alias for GStreamer component of Totem
Depends on:
Blocks:
 
 
Reported: 2006-10-17 13:04 UTC by Sebastien Bacher
Modified: 2006-10-23 12:09 UTC
See Also:
GNOME target: ---
GNOME version: 2.15/2.16



Description Sebastien Bacher 2006-10-17 13:04:12 UTC
That bug has been opened on https://launchpad.net/distros/ubuntu/+source/totem/+bug/66482

"Totem hangs when trying to play avi file with an external subtitle file (example.avi and example.{txt|sub} in the same directory).
The last line of strace shows:
futex(0x846847c, FUTEX_WAIT, 1, NULL

I think it can be somehow connected with bug #30517.

Steps to reproduce:
1. take any example.avi file
2. create example.txt file containing:
00:00:01:TOTEM CRASH
3. play avi file

totem-gstreamer-2.16.2-0ubuntu1
gstreamer0.10-alsa-0.10.10-1ubuntu1
gstreamer0.10-esd-0.10.4-0ubuntu3
gstreamer0.10-ffmpeg-0.10.1-2ubuntu1
gstreamer0.10-fluendo-mp3-0.10.2.debian-1
gstreamer0.10-fluendo-mpegdemux-0.10.4-0ubuntu1
gstreamer0.10-gnomevfs-0.10.10-1ubuntu1
gstreamer0.10-pitfdll-0.9.1.1+cvs20060515-1
gstreamer0.10-plugins-bad-0.10.3+cvs20060918-0ubuntu1
gstreamer0.10-plugins-bad-multiverse-0.10.3+cvs20060918-1
gstreamer0.10-plugins-base-0.10.10-1ubuntu1
gstreamer0.10-plugins-base-apps-0.10.10-1ubuntu1
gstreamer0.10-plugins-good-0.10.4-0ubuntu3
gstreamer0.10-plugins-ugly-0.10.4-0ubuntu3
gstreamer0.10-plugins-ugly-multiverse-0.10.4-2
gstreamer0.10-tools-0.10.10-1ubuntu2
gstreamer0.10-x-0.10.10-1ubuntu1

(sorry for my english :)"

Backtrace of the hang:

"Program received signal SIGINT, Interrupt.
[Switching to Thread 47827247042256 (LWP 31892)]
0x00002b7fa49558e6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
(gdb) thread apply all bt


Comment 1 Nelson Benitez 2006-10-17 14:45:53 UTC
According to step 2, that is tmplayer subtitle format[1], and GStreamer says here[2] that only microDVD, MPsub and Subrip formats are supported in external files, so this might be the cause although Totem should'nt hang on unsupported subtitle...

[1] You can find examples of different subtitle formats in http://svn.gna.org/viewcvs/gaupol/trunk/doc/formats/

[2] http://gstreamer.freedesktop.org/tasks/gstreamer.html

By the way the subparse cvs path on [2] is wrong and should be http://webcvs.freedesktop.org/gstreamer/gst-plugins-base/gst/subparse/?pathrev=HEAD

Comment 2 Tim-Philipp Müller 2006-10-18 09:43:42 UTC
The hang is bug #339366 (there's another similar bug as well), will therefore re-label this as feature request for tmplayer subtitle format support.
Comment 3 Tim-Philipp Müller 2006-10-18 13:01:40 UTC
The hang has been fixed in -base CVS now.
Comment 4 Tim-Philipp Müller 2006-10-23 12:09:04 UTC
This subtitle format should be supported in -base CVS as well now (not extensively tested though, please file bugs about any issues you find):

 2006-10-23  Tim-Philipp Müller  <tim at centricular dot net>

        * gst/subparse/Makefile.am:
        * gst/subparse/gstsubparse.c:
        (gst_sub_parse_data_format_autodetect),
        (gst_sub_parse_format_autodetect), (handle_buffer),
        (gst_sub_parse_chain), (gst_subparse_type_find), (plugin_init):
        * gst/subparse/gstsubparse.h:
        * gst/subparse/tmplayerparse.c: (tmplayer_parse_line),
        (parse_tmplayer):
        * gst/subparse/tmplayerparse.h:
          Add support for TMPlayer-type subtitles (#362845).

        * tests/check/elements/subparse.c: (test_tmplayer_do_test),
        (GST_START_TEST), (subparse_suite):
          Add some basic unit tests for the above.