pushing stream-start event in wrong direction

Lee Matthews lma at spaceapplications.com
Wed Jun 11 06:58:32 PDT 2014


Ok, I managed to get the correct src pads using :

pad1 = gst_element_get_static_pad (output_selector, "src_0");
pad2 = gst_element_get_static_pad (output_selector, "src_1");

Lee

----- Original Message -----
From: "Lee Matthews" <lma at spaceapplications.com>
To: "Discussion of the development of and with GStreamer" <gstreamer-devel at lists.freedesktop.org>
Sent: Wednesday, 11 June, 2014 2:50:49 PM
Subject: Re: pushing stream-start event in wrong direction

How is it possible to request the source pads for a particular element ?

I have tried 

output_selector_pad_template = gst_element_class_get_pad_template (GST_ELEMENT_GET_CLASS (output_selector), "src%d");
pad1 = gst_element_request_pad (output_selector, output_selector_pad_template, NULL, NULL);
pad2 = gst_element_request_pad (output_selector, output_selector_pad_template, NULL, NULL);
  
and
	
GstIterator* it = gst_element_iterate_src_pads(output_selector); 
gpointer p; 
	
if(gst_iterator_next(it, &p) == GST_ITERATOR_OK) 
{ 
   pad1 = GST_PAD(p); 
} 
	
if(gst_iterator_next(it, &p) == GST_ITERATOR_OK) 
{
    pad2 = GST_PAD(p); 
} 

but everytime pad1 is always set to NULL. 

Cheers
Lee


----- Original Message -----
From: "Lee Matthews" <lma at spaceapplications.com>
To: "Discussion of the development of and with GStreamer" <gstreamer-devel at lists.freedesktop.org>
Sent: Wednesday, 11 June, 2014 1:41:48 PM
Subject: Re: pushing stream-start event in wrong direction

--
> 
> g_object_set(G_OBJECT(output_selector), "active-pad", filesink_sinkpad, NULL); 
> or 
> g_object_set(G_OBJECT(output_selector), "active-pad", fakesink_sinkpad, NULL); 
> 
> When I wish to start recording by setting g_object_set(G_OBJECT(output_selector), "active-pad", filesink_sinkpad, NULL); 
> 
> I get the following error :
> 
> W/GLib+GStreamer( 4416): pad filesink:sink pushing stream-start event in wrong direction
> W/GLib+GStreamer( 4416): pad filesink:sink pushing caps event in wrong direction
> W/GLib+GStreamer( 4416): pad filesink:sink pushing segment event in wrong direction
> W/GLib+GStreamer( 4416): pad filesink:sink pushing segment event in wrong direction
> W/GStreamer+output-selector( 4416): 0:01:22.497417365 0x77b31af0 gstoutputselector.c:399:gst_output_selector_switch:<s> newsegment handling failed in <filesink:sink>
> W/GStreamer+basesrc( 4416): 0:01:22.531647156 0x77b31b20 gstbasesrc.c:2933:gst_base_src_loop:<v4l2src0> error: Internal data flow error.
> W/GStreamer+basesrc( 4416): 0:01:22.531772573 0x77b31b20 gstbasesrc.c:2933:gst_base_src_loop:<v4l2src0> error: streaming task paused, reason error (-5)

Is the filesink_sinkpad/fakesink_sinkpad pad that you're setting as
"active-pad" on outputselector actually one of *outputselector*'s source
pads, or is it the sink pad of the sink element? "active-pad" wants one
of the selector pads I think.

Cheers
 -Tim


I was setting "active-pad" to the sink of the sink elements. It looks like I need to set it to a src element of output-selector.

Thanks
Lee


-- 
Tim Müller, Centricular Ltd - http://www.centricular.com

_______________________________________________
gstreamer-devel mailing list
gstreamer-devel at lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
gstreamer-devel at lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
gstreamer-devel at lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


More information about the gstreamer-devel mailing list