[gst-devel] problem while pushing data to multiple srcpads.

Vinayak vinayak.pane at gmail.com
Fri Feb 2 05:32:36 CET 2007


Hi all,
I am implementing the demuxer which will divide the input stream into
multiple.
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.

I'm using default handlers for event passing ( which apparently passes the
down-stream events to all srcpads in that element)

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 ?
Could it be a PreRolling issue ?

thanks in advance,
--vinayak

Here is snappet of my code :
_request_new_pad()
{
  MySplit *split= .....;
  splitpad = gst_pad_new_from_template(templ, padname);
  GST_PAD_ELEMENT_PRIVATE (splitpad) = split;
  gst_pad_use_fixed_caps (splitpad);
  gst_pad_set_event_function(splitpad, gst_src_event);
  .
  .
  gst_element_add_pad(element, splitpad);
  srcpads[index++] = splitpad;
}

_chain_func(GstPad *pad, GstBuffer *buffer)
{

  for(i=0; i < n_srcpads; i++) {
   if(somecondition) {
      outbuf = gst_buffer_new();
   }
   .
   .
  (!GST_PAD_PEER (srcpads[i]))
     return;

   gst_pad_push (srcpads[i], outbuf);
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20070202/834f9c31/attachment.htm>


More information about the gstreamer-devel mailing list