[Gstreamer-bugs] [Bug 141906] New: - hang on removing ximagesink from a pipeline

bugzilla-daemon at widget.gnome.org bugzilla-daemon at widget.gnome.org
Wed May 5 06:36:20 PDT 2004


http://bugzilla.gnome.org/show_bug.cgi?id=141906
GStreamer | gst-plugins | Ver: 0.8.1

           Summary: hang on removing ximagesink from a pipeline
           Product: GStreamer
           Version: 0.8.1
          Platform: Other
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins
        AssignedTo: gstreamer-maint at bugzilla.gnome.org
        ReportedBy: zaheerabbas at merali.org
         QAContact: gstreamer-maint at bugzilla.gnome.org


This function:

int stop_visualisation_substream(struct stream_details* sd)
{
	if (sd->sub_stream_status[3]) {
		
	#ifdef GST_06
	
	  	gst_pad_disconnect (gst_element_get_pad (sd->pe->color,"src"),
	#else
		gst_x_overlay_set_xwindow_id(GST_X_OVERLAY(sd->pe->vsink),0);
		gst_pad_disconnect (gst_element_get_pad (sd->pe->color,"src"),
	#endif
							gst_element_get_pad (sd->pe->vsink,"sink"));	
		gst_pad_disconnect (gst_element_get_pad (sd->pe->queue,"src"),
							gst_element_get_pad (sd->pe->color,"sink"));
		gst_pad_disconnect (gst_element_get_pad (sd->pe->vis,"src"),
							gst_element_get_pad (sd->pe->queue,"sink"));
		gst_pad_disconnect (gst_element_get_pad (sd->pe->s2m,"src"),
							gst_element_get_pad (sd->pe->vis,"sink"));
		gst_pad_disconnect(sd->pe->tee1_src3, 
							gst_element_get_pad (sd->pe->s2m, "sink"));
		gst_bin_remove (GST_BIN (sd->pe->vis_thread), sd->pe->queue);
	  	gst_bin_remove (GST_BIN (sd->pe->vis_thread), sd->pe->color);
	  	gst_bin_remove (GST_BIN (sd->pe->vis_thread), sd->pe->vsink);
	
	  	gst_bin_remove (GST_BIN (sd->pe->pipeline), sd->pe->s2m);
	  	gst_bin_remove (GST_BIN (sd->pe->pipeline), sd->pe->vis);
	
	  	gst_bin_remove (GST_BIN (sd->pe->pipeline), sd->pe->vis_thread);
	  
	  	gst_element_release_request_pad(sd->pe->tee, sd->pe->tee1_src3);
	 	sd->sub_stream_status[3]=0;
	 	return 0;
	
	}
	return -1;
}

That function hangs on gst_bin_remove (GST_BIN (sd->pe->vis_thread),
sd->pe->vsink);.  The pipeline state is PAUSED and vis_thread is a GstThread. 
Here is the last debug output:

DEBUG   GST_PARENTAGE(24432) gstbin.c(579):gst_bin_remove: [visthread]: trying
to remove child vsink
DEBUG  GST_SCHEDULING(24432) gstbin.c(360):gst_bin_unset_element_sched: removing
element "vsink" from its sched 0x81e4ac0
DEBUG       scheduler(24432)
gstoptimalscheduler.c(1761):gst_opt_scheduler_remove_element:<GstOptScheduler at 0x81e4ac0>
removing element "vsink"
DEBUG   GST_PARENTAGE(24432)
gstelement.c(3210):gst_element_set_scheduler:<vsink> setting scheduler to (nil)
INFO    GST_PARENTAGE(24432) gstbin.c(544):gst_bin_remove_func:<visthread>
removed child "vsink"
DEBUG       scheduler(24432)
gstoptimalscheduler.c(1439):gst_opt_scheduler_state_transition: element
"visthread" state change 1025
INFO  GST_REFCOUNTING(24432) gstelement.c(2980):gst_element_dispose:<vsink> dispose
INFO       GST_STATES(24432) gstelement.c(2684):gst_element_set_state:<vsink>
setting state from PAUSED to NULL
DEBUG      GST_STATES(24432) gstelement.c(2703):gst_element_set_state:<vsink>
intermediate: setting state from PAUSED to READY
DEBUG        GST_CAPS(24432)
gstelement.c(2816):gst_element_clear_pad_caps:<vsink> clearing pad caps

------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
You are the QA contact for the bug, or are watching the QA contact.




More information about the Gstreamer-bugs mailing list