Hi all, <br>I am implementing the demuxer which will divide the input stream into multiple.<br>I wrote a function for request_new_pad which creates a new srcpad new_from_template, now this one is associated with my element by "gst_element_add_pad". And after that I keep a pointers to alll such newly created srcpads.
<br><br>I'm using default handlers for event passing ( which apparently passes the down-stream events to all srcpads in that element) <br><br>In my chain function: When I try to push data to first srcpad that fails..... it never returns and the next element never gets a pushed buffer.. may be its waiting for some events tobe passed down ?
<br>Could it be a PreRolling issue ?<br><br>thanks in advance, <br>--vinayak <br><br>Here is snappet of my code : <br>_request_new_pad() <br>{<br> MySplit *split= .....;<br> splitpad = gst_pad_new_from_template(templ, padname);
<br> GST_PAD_ELEMENT_PRIVATE (splitpad) = split;<br> gst_pad_use_fixed_caps (splitpad);<br> gst_pad_set_event_function(splitpad, gst_src_event);<br> .<br> .<br> gst_element_add_pad(element, splitpad);<br> srcpads[index++] = splitpad;
<br>}<br><br>_chain_func(GstPad *pad, GstBuffer *buffer)<br>{<br><br> for(i=0; i < n_srcpads; i++) {<br> if(somecondition) { <br> outbuf = gst_buffer_new();<br> } <br> .<br> .<br> (!GST_PAD_PEER (srcpads[i]))
<br> return;<br><br> gst_pad_push (srcpads[i], outbuf);<br>}<br><br>