[gst-devel] tee src pad buffers

Ron McOuat rmcouat at smartt.com
Fri Feb 27 19:26:01 CET 2009


I am using the tee element to replicate a stream. In seems the buffer 
passed in from gst_tee_chain() to gst_tee_handle_buffer() and then 
gst_tee_do_push() has an extra ref placed on it as it is pushed out each 
src pad. From this I presume tee replicates references and not actual 
contents. I see a function gst_tee_buffer_alloc() and if the alloc fails 
gst_tee_find_buffer_alloc() but do not see where they are called.

My issue is using a live source, downstream from the tee I offset time 
stamps using a buffer probe handler for when recording is turned on or 
off in one of the branches. The time offset changes bleed into the other 
tee branches because of what I think is buffer reference copying instead 
of content copying. Since most users would not want to do this I don't 
feel it is appropriate to treat  his as a defect.

I probably missed something, still learning this great library. Could I 
please get confirmation of my understanding of tee pad buffers? Where is 
gst_tee_buffer_alloc used?

As an alternate I could feed the front end into a multifdsink and then 
pull the data out for the different purposes by connecting to that 
element using a UNIX socket. I would prefer to not do this for 
efficiency reasons but the system use is minimal for moving data around 
so maybe not a good reason to avoid this approach.

Thanks

Ron McOuat




More information about the gstreamer-devel mailing list