<div dir="ltr"><div><span style="font-family:monospace,monospace">bool demuxDone = false;<br></span></div><div><span style="font-family:monospace,monospace"><br>gboolean<br>autopluggerCallback (GstElement * elem, GstPad *pad, GstCaps * caps)<br>{<br>    if (cmpType(caps, "video/x-h264")) {<br>        relayVideoPad = pad;<br>        demuxDone = true;<br>    }<br>    if (cmpType(caps, "audio/x-ac3")) {<br>        relayAudioPad = pad;<br>        demuxDone = true;<br>    }<br><br>    if (demuxDone) {<br>        return FALSE;<br>    }<br>    return TRUE;<br>}<br></span><br>I connected the autoplug-continue signal handler to uridecodebin. My goal is to prevent it from creating anything after the tsdemux or matroskademux (whatever is present) and then connect to flvmux.<br><br></div><div>But the problem I am having is that one more element is still created, the `multiqueue` that is connected right after the demuxer. Why? I tried to detect the creation of a demuxer by catching the `element-added` signal, but the result is the same.<br><br>The resulting pipeline is dumped to dot: <br>        <a href="http://pastebin.com/acBUdfpi">http://pastebin.com/acBUdfpi</a><br></div><div><br></div><div>Well, I can probably just connect multiqueue to the muxer, but then I do not know how to get the multiqueue pointer. I tried gst_pad_get_peer->gst_get_pad_parent_element, (to go from demuxer src-video-pad to the next element), but get_pad_parent_elem returns 0 even though the peer is non 0.<br></div><div><br> I already spent two days on that, any help is greatly appreciated.<br><br></div></div>