I'm running Parole 0.3.0 on Archlinux.
When I play a video and there is a .srt file with a different name, I can't select this srt file in Parole because the option "Select text subtitles" cannot be clicked.
If I rename the .srt file to have the same name as the video, parole will load it automatically and play the video with the subtitles, but it will freeze as soon as it is launched: the video continue being played but I cannot click the menu and the buttons, the interface is not responding.
It took two screenshots to show you better:
when "Select text subtitles" cannot be clicked
when Parole is frozen
The "Select Subtitles" menu item is always disabled presently. The functionality to choose an external subtitle is not yet available.
As for the interface freezing, that is a problem. I'll investigate.
(In reply to comment #1)
> The "Select Subtitles" menu item is always disabled presently. The
> functionality to choose an external subtitle is not yet available.
> As for the interface freezing, that is a problem. I'll investigate.
Thank you, tell me if you need more information.
I'm currently running a fully-updated Arch Linux with just the XFCE and gstreamer dependencies and am seeing no crash with external subtitles. Please try the latest git master and see if it works better for you.
(In reply to comment #3)
> I'm currently running a fully-updated Arch Linux with just the XFCE and
> gstreamer dependencies and am seeing no crash with external subtitles.
> Please try the latest git master and see if it works better for you.
I have tried the latest git master from git://git.xfce.org/apps/parole and I have the same problem with it.
I have the same problem with 0.3.0 on FreeBSD. To be clear, the program doesn't crash. The interface just locks up while the video continues to play. I have included a backtrace of the thread that seems dead-locked (libthr is the pthread library on FreeBSD):
(gdb) thr 11
[Switching to thread 11 (Thread 2b003080 (LWP 100706))]
#0 0x2953a04f in ?? () from /lib/libthr.so.3
#0 0x2953a04f in ?? () from /lib/libthr.so.3
#1 0x2952fadf in ?? () from /lib/libthr.so.3
#2 0x295342b8 in ?? () from /lib/libthr.so.3
#3 0x29534323 in pthread_mutex_lock () from /lib/libthr.so.3
#4 0x28e7a22d in g_static_rec_mutex_lock ()
#5 0x28d2b575 in post_activate (pad=pad@entry=0x2c0b1800,
new_mode=<optimized out>) at gstpad.c:660
#6 0x28d329b0 in gst_pad_activate_push (pad=pad@entry=0x2c0b1800,
active=active@entry=0) at gstpad.c:993
#7 0x28d33541 in gst_pad_set_active (pad=0x2c0b1800, active=active@entry=0)
#8 0x2b4e3e0e in gst_stream_synchronizer_release_stream (
#9 0x2b4e4232 in gst_stream_synchronizer_release_pad (element=0x2b1c5850,
pad=0x2c0b1800) at gststreamsynchronizer.c:856
#10 0x28d1599f in gst_element_release_request_pad (element=0x2b1c5850,
pad=0x2c0b1800) at gstelement.c:350
#11 0x2b4c9d73 in gst_play_sink_reconfigure (playsink=0x2b335000)
#12 0x2b4c1f49 in gst_play_bin_set_flags (flags=<optimized out>,
playbin=0x2b016900) at gstplaybin2.c:1398
#13 gst_play_bin_set_property (object=0x2b016900, prop_id=4, value=0xbfbfd920,
pspec=0x2b31fc90) at gstplaybin2.c:1904
#14 0x28dd3c39 in g_object_set_valist ()
#15 0x28dd47d7 in g_object_set () from /usr/local/lib/libgobject-2.0.so.0
#16 0x08074271 in gst_set_current_subtitle_track (gst=0x2b1c8800, track_no=-1)
#17 0x0805db79 in parole_player_combo_box_subtitles_changed_cb (
widget=0x2b1c7118, player=0x2b1c8060) at parole-player.c:2691
#18 0x28de7a41 in g_cclosure_marshal_VOID__VOID ()
#19 0x28dcda87 in g_closure_invoke () from /usr/local/lib/libgobject-2.0.so.0
#20 0x28dde468 in ?? () from /usr/local/lib/libgobject-2.0.so.0
#21 0x28de7131 in g_signal_emit_valist ()
#22 0x28de729d in g_signal_emit () from /usr/local/lib/libgobject-2.0.so.0
#23 0x281f0a2f in ?? () from /usr/local/lib/libgtk-x11-2.0.so.0
#24 0x281f53fa in gtk_combo_box_set_active ()
#25 0x080586c7 in parole_player_clear_subtitles (player=0x2b1c8060)
#26 0x0805878d in parole_player_set_subtitles_list (player=0x2b1c8060,
subtitle_list=0x2b223850) at parole-player.c:592
#27 0x08058edd in parole_player_update_subtitles (player=0x2b1c8060,
gst=0x2b1c8800) at parole-player.c:752
#28 0x08058fb3 in parole_player_update_languages (player=0x2b1c8060,
gst=0x2b1c8800) at parole-player.c:772
#29 0x08059985 in parole_player_playing (player=0x2b1c8060, stream=0x2b1faa90)
#30 0x0805a02d in parole_player_media_state_cb (gst=0x2b1c8800,
stream=0x2b1faa90, state=PAROLE_STATE_PLAYING, player=0x2b1c8060)
#31 0x08074c4c in _gmarshal_VOID__OBJECT_ENUM (closure=0x2b8f9360,
return_value=0x0, n_param_values=3, param_values=0x2b201080,
invocation_hint=0xbfbfe04c, marshal_data=0x0) at gstmarshal.c:84
#32 0x28dcda87 in g_closure_invoke () from /usr/local/lib/libgobject-2.0.so.0
#33 0x28dde468 in ?? () from /usr/local/lib/libgobject-2.0.so.0
#34 0x28de7131 in g_signal_emit_valist ()
#35 0x28de729d in g_signal_emit () from /usr/local/lib/libgobject-2.0.so.0
#36 0x08070bba in parole_gst_evaluate_state (gst=0x2b1c8800,
pending=GST_STATE_VOID_PENDING) at parole-gst.c:935
#37 0x08071708 in parole_gst_bus_event (bus=bus@entry=0x2b0e22b0,
msg=0x2c05bf00, data=data@entry=0x2b1c8800) at parole-gst.c:1197
#38 0x28d08183 in marshal_VOID__MINIOBJECT (closure=0x2b3380e0,
return_value=0x0, n_param_values=2, param_values=0x2bbce340,
invocation_hint=0xbfbfe38c, marshal_data=0x0) at gstbus.c:134
#39 0x28dcda87 in g_closure_invoke () from /usr/local/lib/libgobject-2.0.so.0
#40 0x28dde468 in ?? () from /usr/local/lib/libgobject-2.0.so.0
#41 0x28de7131 in g_signal_emit_valist ()
#42 0x28de729d in g_signal_emit () from /usr/local/lib/libgobject-2.0.so.0
#43 0x28d08389 in gst_bus_async_signal_func (bus=bus@entry=0x2b0e22b0,
message=message@entry=0x2c05bf00, data=data@entry=0x0) at gstbus.c:1118
#44 0x28d09196 in gst_bus_source_dispatch (source=0x2b339200,
callback=0x28d082f3 <gst_bus_async_signal_func>, user_data=0x0)
#45 0x28e551e2 in g_main_context_dispatch ()
#46 0x28e559da in ?? () from /usr/local/lib/libglib-2.0.so.0
#47 0x28e55fb6 in g_main_loop_run () from /usr/local/lib/libglib-2.0.so.0
#48 0x28278e73 in gtk_main () from /usr/local/lib/libgtk-x11-2.0.so.0
#49 0x08057b12 in main (argc=1, argv=0xbfbfe9a4) at main.c:369
Created attachment 4710
Don't set gstreamer subtitle when playing starts
The attached patch fixes the problem for me, but I'm not sufficiently familiar with the code to be sure it's a good patch.
It'd be nice if someone could confirm that this patch works (I can't reproduce the bug), mbresson?
I'm sorry, I cannot try this patch at the moment, I will tell you when I try it and whether it works.
(In reply to comment #7)
> It'd be nice if someone could confirm that this patch works (I can't
> reproduce the bug), mbresson?
At least it worked for me. After applying the patch, UI doesn't freeze anymore and I can use buttons/menus.
This patch seems to work nicely, and it makes a lot of sense. I have included it with the latest parole git master. Please test and let me know if the issue is resolved for everyone.
I was finally able to confirm the bug and then also that the patch works.
This bug should be history now, if not, please add a new report or I can re-open this report.
This bug reappeared in 0.5.1, because the fix for bug 9880 reverts the fix for this bug.
I have reverted that fix in git master. Please let me know if the freezing is gone again.
Yes, that fixes it.
Glad to know this is working now!