[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