[Bug 661648] New: Playbin2 deadlock when settings off the TEXT bit in play flags

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Thu Oct 13 04:26:37 PDT 2011


https://bugzilla.gnome.org/show_bug.cgi?id=661648
  GStreamer | gst-plugins-base | 0.10.35

           Summary: Playbin2 deadlock when settings off the TEXT bit in
                    play flags
    Classification: Platform
           Product: GStreamer
           Version: 0.10.35
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-base
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: lionel.g.landwerlin at linux.intel.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


Hi,

I'm having a deadlock when using playbin2. My use case might be a bit brain
damage, but still.
So I have a video stream containing 1 video and 2 audio streams and also have a
.srt subtitle file. I start up the playbin pipeline this way :

1- set the "uri" property
2- set the "suburi" property
3- set the pipeline state to playing

The subtitles are displayed and the video is playing.

Then I try to hide the subtitles by removing the TEXT bit from the play flags :


  g_object_get (priv->pipeline, "flags", &flags, NULL);     
  flags &= ~GST_PLAY_FLAG_TEXT;                             
  g_object_set (priv->pipeline, "flags", flags, NULL);      


And my application ends up in a dead lock :


Program received signal SIGINT, Interrupt.
__lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136
136    ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: No such file or
directory.
    in ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
(gdb) bt
#0  __lll_lock_wait () at
../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136
#1  0x00007ffff36f6329 in _L_lock_926 () from
/lib/x86_64-linux-gnu/libpthread.so.0
#2  0x00007ffff36f614b in __pthread_mutex_lock (mutex=0x6ab64c8) at
pthread_mutex_lock.c:61
#3  0x00007ffff23d5526 in g_static_rec_mutex_lock (mutex=0x6ab64c0) at
gthread.c:1450
#4  0x00007ffff4139951 in post_activate (pad=0x6ab19b0,
new_mode=GST_ACTIVATE_NONE) at gstpad.c:657
#5  0x00007ffff413aae7 in gst_pad_activate_push (pad=0x6ab19b0, active=0) at
gstpad.c:960
#6  0x00007ffff4139c57 in gst_pad_set_active (pad=0x6ab19b0, active=0) at
gstpad.c:715
#7  0x00007fffe897f5a0 in gst_stream_synchronizer_release_stream
(self=0x19427e0, stream=0x5ef3af0) at gststreamsynchronizer.c:792
#8  0x00007fffe897f9ba in gst_stream_synchronizer_release_pad
(element=0x19427e0, pad=0x6ab19b0) at gststreamsynchronizer.c:840
#9  0x00007ffff411a401 in gst_element_release_request_pad (element=0x19427e0,
pad=0x6ab19b0) at gstelement.c:344
#10 0x00007fffe89638ea in gst_play_sink_reconfigure (playsink=0x1b8c120) at
gstplaysink.c:2569
#11 0x00007fffe8952007 in gst_play_bin_set_flags (playbin=0x1c26860, flags=19)
at gstplaybin2.c:1317
#12 0x00007fffe89530da in gst_play_bin_set_property (object=0x1c26860,
prop_id=4, value=0x7fffffffb7a0, pspec=0x1bf9060) at gstplaybin2.c:1811
#13 0x00007ffff2cc2fa2 in object_set_property (object=0x1c26860,
pspec=0x1bf9060, value=0x7fffffffb870, nqueue=0x4737b60) at gobject.c:1199
#14 0x00007ffff2cc493a in g_object_set_valist (object=0x1c26860,
first_property_name=0x7ffff7212ebc "flags", var_args=0x7fffffffb918) at
gobject.c:1727
#15 0x00007ffff2cc5116 in g_object_set (_object=0x1c26860,
first_property_name=0x7ffff7212ebc "flags") at gobject.c:1833
#16 0x00007ffff720e153 in clutter_gst_player_set_subtitle_track_impl
(player=0x1b97000, index_=-1) at ./clutter-gst-player.c:2196
#17 0x00007ffff720f566 in clutter_gst_player_set_subtitle_track
(player=0x1b97000, index_=-1) at ./clutter-gst-player.c:2831
#18 0x00007ffff7b85f84 in subtitle_combo_box_notify (box=0x1e24170,
pspec=0x1de4de0, panel=0x1c3a620) at mex-info-panel.c:381
#19 0x00007ffff2cdb282 in g_cclosure_marshal_VOID__PARAMv (closure=0x1bcbb40,
return_value=0x0, instance=0x1e24170, args=0x7fffffffbf58,
invocation_hint=0x7fffffffbd40, marshal_data=0x0) at gmarshal.c:1092
#20 0x00007ffff2cbee81 in g_closure_invoke_valist (closure=0x1bcbb40,
return_value=0x0, instance=0x1e24170, n_param_values=1,
param_values=0x7fffffffbf58, invocation_hint=0x7fffffffbd40) at gclosure.c:927
#21 0x00007ffff2cd8cee in signal_emit_unlocked_R (node=0x61e640, detail=2968,
instance=0x1e24170, emission_return=0x0, instance_and_params=0x0,
have_var_args=1, var_args=0x7fffffffbf58) at gsignal.c:3428
#22 0x00007ffff2cd78bb in g_signal_emit_valist (instance=0x1e24170,
signal_id=1, detail=2968, var_args=0x7fffffffbf58) at gsignal.c:3073
#23 0x00007ffff2cd80f1 in g_signal_emit (instance=0x1e24170, signal_id=1,
detail=2968) at gsignal.c:3193
#24 0x00007ffff2cc2674 in g_object_dispatch_properties_changed
(object=0x1e24170, n_pspecs=1, pspecs=0x7fffffffc0c0) at gobject.c:925
#25 0x00007ffff2cc1418 in g_object_notify_dispatcher (object=0x1e24170,
n_pspecs=1, pspecs=0x7fffffffc0c0) at gobject.c:331
#26 0x00007ffff2cc106e in g_object_notify_queue_thaw (object=0x1e24170,
nqueue=0x7fffe4a4c880) at gobjectnotifyqueue.c:132
#27 0x00007ffff2cc2895 in g_object_notify_by_spec_internal (object=0x1e24170,
pspec=0x1de4de0) at gobject.c:983
#28 0x00007ffff2cc29ee in g_object_notify (object=0x1e24170,
property_name=0x7ffff7912b8f "index") at gobject.c:1024
#29 0x00007ffff78b4aba in mx_combo_box_set_index (box=0x1e24170, index=0) at
../mx/mx-combo-box.c:1048
#30 0x00007ffff78b3942 in mx_combo_box_action_activated_cb (menu=0x1dafb80,
action=0x682c4a0, box=0x1e24170) at ../mx/mx-combo-box.c:487
#31 0x00007ffff2cdb80d in g_cclosure_marshal_VOID__OBJECTv (closure=0x1b63cd0,
return_value=0x0, instance=0x1dafb80, args=0x7fffffffc6d8,
invocation_hint=0x7fffffffc4c0, marshal_data=0x0) at gmarshal.c:1326
#32 0x00007ffff2cbee81 in g_closure_invoke_valist (closure=0x1b63cd0,
return_value=0x0, instance=0x1dafb80, n_param_values=1,
param_values=0x7fffffffc6d8, invocation_hint=0x7fffffffc4c0) at gclosure.c:927
#33 0x00007ffff2cd8cee in signal_emit_unlocked_R (node=0x1a913c0, detail=0,
instance=0x1dafb80, emission_return=0x0, instance_and_params=0x0,
have_var_args=1, var_args=0x7fffffffc6d8) at gsignal.c:3428
#34 0x00007ffff2cd78bb in g_signal_emit_valist (instance=0x1dafb80,
signal_id=190, detail=0, var_args=0x7fffffffc6d8) at gsignal.c:3073
#35 0x00007ffff2cd80f1 in g_signal_emit (instance=0x1dafb80, signal_id=190,
detail=0) at gsignal.c:3193
#36 0x00007ffff78e24d5 in mx_menu_button_clicked_cb (box=0x6af3020,
action=0x682c4a0) at ../mx/mx-menu.c:684
#37 0x00007ffff2cd9aa2 in g_cclosure_marshal_VOID__VOIDv (closure=0x6af63d0,
return_value=0x0, instance=0x6af3020, args=0x7fffffffcc38,
invocation_hint=0x7fffffffca20, marshal_data=0x0) at gmarshal.c:81
#38 0x00007ffff2cbee81 in g_closure_invoke_valist (closure=0x6af63d0,
return_value=0x0, instance=0x6af3020, n_param_values=0,
param_values=0x7fffffffcc38, invocation_hint=0x7fffffffca20) at gclosure.c:927
#39 0x00007ffff2cd8cee in signal_emit_unlocked_R (node=0x1a37d10, detail=0,
instance=0x6af3020, emission_return=0x0, instance_and_params=0x0,
have_var_args=1, var_args=0x7fffffffcc38) at gsignal.c:3428
#40 0x00007ffff2cd78bb in g_signal_emit_valist (instance=0x6af3020,
signal_id=98, detail=0, var_args=0x7fffffffcc38) at gsignal.c:3073
#41 0x00007ffff2cd80f1 in g_signal_emit (instance=0x6af3020, signal_id=98,
detail=0) at gsignal.c:3193
#42 0x00007ffff78b5249 in mx_button_pull (button=0x6af3020) at
../mx/mx-button.c:318
#43 0x00007ffff78b53c5 in mx_button_key_release (actor=0x6af3020,
event=0x7fffac6baaa0) at ../mx/mx-button.c:386
#44 0x00007ffff6fad752 in _clutter_marshal_BOOLEAN__BOXEDv (closure=0x1a2d510,
return_value=0x7fffffffcfc0, instance=0x6af3020, args=0x7fffffffd208,
invocation_hint=0x7fffffffcff0, marshal_data=0x7ffff78b5373) at
clutter-marshal.c:90
#45 0x00007ffff2cbf257 in _g_type_class_meta_marshal_valist (closure=0x1a2d510,
return_value=0x7fffffffcfc0, instance=0x6af3020, param_values=0x7fffffffd208,
invocation_hint=0x7fffffffcff0, marshal_data=0x138) at gclosure.c:1079
#46 0x00007ffff2cbee81 in g_closure_invoke_valist (closure=0x1a2d510,
return_value=0x7fffffffcfc0, instance=0x6af3020, n_param_values=1,
param_values=0x7fffffffd208, invocation_hint=0x7fffffffcff0) at gclosure.c:927
#47 0x00007ffff2cd9015 in signal_emit_unlocked_R (node=0x1a2d1f0, detail=0,
instance=0x6af3020, emission_return=0x7fffffffd130, instance_and_params=0x0,
have_var_args=1, var_args=0x7fffffffd208) at gsignal.c:3484
#48 0x00007ffff2cd7957 in g_signal_emit_valist (instance=0x6af3020,
signal_id=72, detail=0, var_args=0x7fffffffd208) at gsignal.c:3085
#49 0x00007ffff2cd80f1 in g_signal_emit (instance=0x6af3020, signal_id=72,
detail=0) at gsignal.c:3193
#50 0x00007ffff6f0d7fb in clutter_actor_event (actor=0x6af3020,
event=0x7fffac6baaa0, capture=0) at ./clutter-actor.c:8702
#51 0x00007ffff6f5a31b in emit_event (event=0x7fffac6baaa0, is_key_event=1) at
./clutter-main.c:1968
#52 0x00007ffff6f5a46e in emit_keyboard_event (event=0x7fffac6baaa0) at
./clutter-main.c:2018
#53 0x00007ffff6f5a64f in _clutter_process_event_details (stage=0x1a31620,
context=0x61e070, event=0x7fffac6baaa0) at ./clutter-main.c:2108
#54 0x00007ffff6f5ab7a in _clutter_process_event (event=0x7fffac6baaa0) at
./clutter-main.c:2331
#55 0x00007ffff6f7b930 in _clutter_stage_process_queued_events
(stage=0x1a31620) at ./clutter-stage.c:898
#56 0x00007ffff6f5bf06 in clutter_clock_dispatch (source=0x1a32d70, callback=0,
user_data=0x0) at ./clutter-master-clock.c:374
#57 0x00007ffff23a49d9 in g_main_dispatch (context=0x62ba50) at gmain.c:2441
#58 0x00007ffff23a5f1f in g_main_context_dispatch (context=0x62ba50) at
gmain.c:3011
#59 0x00007ffff23a63cc in g_main_context_iterate (context=0x62ba50, block=1,
dispatch=1, self=0x611390) at gmain.c:3089
#60 0x00007ffff23a6b25 in g_main_loop_run (loop=0x3090800) at gmain.c:3297
#61 0x00007ffff6f58902 in clutter_main () at ./clutter-main.c:677
#62 0x00007ffff78a8c09 in mx_application_run (application=0x1945840) at
../mx/mx-application.c:704
#63 0x000000000040c749 in main (argc=1, argv=0x7fffffffdc78) at mex-main.c:2609

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list