[gst-devel] Linking elements with dynamic pads.

Wim Taymans wim at fluendo.com
Tue Nov 15 10:13:02 CET 2005


On Tue, 2005-11-15 at 12:07 -0500, Louis Bouchard wrote:
> Hi,
> 
> I am trying to set up a pipeline to capture video from a dv camera. 
> The pipeline goes like this:
> 
> dv1394src -> ffdemux_dv -> ffdec_dvvideo - > fakesink
> 
> (the fakesink uses a handoff function to save the buffers)
> 
> My problem is with ffdemux_dv:  since it's got dynamic source pads, I
> need to link it after the first pipeline iteration, which I do.  But
> it seems that linking the video source of the demuxer to the sink of
> the decoder breaks the whole pipeline.  But the tests I run tells me
> everything is connected properly.
> 
> The flow of the program goes like this:
> 
> 1 - connect dv1394src to the sink of ffdemux_dv w/ filtered caps -- works fine
> 2 - connect  ffdec_dvvideo's source to the sink of fakesink w/
> filtered caps -- works fine
> 3 - start iterating -> ffdemux_dv calls it's callback function to
> create the sources 'video_00' and 'audio_00'.
> 4 - in the callback function connects ffdemux_dv's video_00 pad to the
> sink of ffdec_dvvideo -- works fine...
> 5 - the pipeline doesn't do anyting anymore and i don't know why.
> 
<snip>

>   gst_element_set_state (source, GST_STATE_READY);
>   gst_element_set_state (decoder, GST_STATE_READY);
>   gst_element_set_state (demuxer, GST_STATE_READY);
>   gst_element_set_state (fakesink, GST_STATE_READY);

This is in the callback function, setting the elements to READY stops
all flow.

Wim

-- 
Wim Taymans <wim at fluendo.com>





More information about the gstreamer-devel mailing list