Valve is blocking other parts of the pipeline

gimmeamilk gimmeamilkbttf at gmail.com
Fri Jan 25 04:00:08 PST 2013


I'm connecting the each srcpads of a decodebin to its own valve, then
connecting each valve as an input to mpegtsmux. This is my decodebin
on-pad-added function (error checking removed here but everything reported
ok):

int valvenum = 0;
GstElement *pipeline, *mpegtsmux, *valves[4];
static gboolean on_pad_added (GstElement *gstdecodebin, GstPad *pad,
gpointer user_data)
{
    GstPad *tsmux_sinkpad;
    GstPad *valve_srcpad, *valve_sinkpad;
    tsmux_sinkpad = gst_element_get_compatible_pad (mpegtsmux, pad, NULL);
    valves[valvenum++] = gst_element_factory_make ("valve", NULL);
    gst_bin_add (GST_BIN(pipeline), valves[valvenum]);
    valve_srcpad = gst_element_get_static_pad (valves[valvenum], "src");
    valve_sinkpad = gst_element_get_static_pad (valves[valvenum], "sink");
    gst_pad_link (pad, valve_sinkpad);
    gst_pad_link (valve_srcpad, tsmux_sinkpad)
    gst_pad_set_active(valve_srcpad, TRUE);
    gst_pad_set_active(valve_sinkpad, TRUE);
    return TRUE;
}


I have one video and one audio stream in my test file. If I set drop=true on
either of the valves, I don't get any more data on any mpegtsmux input, even
if I then set drop=false. What else should I be doing? Thanks.




--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Valve-is-blocking-other-parts-of-the-pipeline-tp4658158.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.


More information about the gstreamer-devel mailing list