Dynamic pipelines: how to remove sinks?

Tal Liron tal.liron at gmail.com
Sat Dec 29 23:32:30 PST 2012


Dear list,

I have implemented a dynamic pipeline with GStreamer 1.0, and it seems 
quite stable! (Had lot of problems with this in 0.10). However, I have 
two questions, regarding the documentation available here:

http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/section-dynamic-pipelines.html

1) How do I safely remove sink elements? I understand the neat trick of 
sending an EOS at the sink pad and waiting for it to arrive at the src 
pad on the other end, effectively "draining" all data from the element. 
A sink, however, by definition does not have a src pad on the other end. 
So far, I've just ignored that part of the guide when dealing with 
sinks: I send an EOS at the sink pad, and immediately remove the element 
without waiting for it to "drain." It works and is stable... but I can't 
help thinking that this is a fluke. Is there another way to wait for a 
sink element to "drain"?

2) This is a smaller detail, but in the example code in the page above, 
there's this:

gst_pad_add_probe (blockpad, GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM, 
pad_probe_cb, user_data, NULL);

Now, I am using the Vala "bindings" (actually through Genie), where the 
PadProbeType.BLOCK_DOWNSTREAM constant does not exist. Am I right in 
assuming that PadProbeType.BLOCK has the same function? I'm wondering if 
the code in example is from a pre-1.0 GStreamer and this enum const was 
deprecated.



More information about the gstreamer-devel mailing list