[gst-devel] know when a buffer has been processed by a sink element

Luca Ognibene skaboy81 at virgilio.it
Thu Jan 27 06:48:32 CET 2005


Let me explain my program, it can also be usefull as a gstreamer use
case. I'm using a gst pipeline to acquire a video from a web cam and
then stream it as multipart-mixed with a server-push technology (when
the browser/or the applet receives a frame it displays it). The browser
has no cache. I want to implement a step-by-step functionality with this
pipeline. When a user press a button i want to stream only one frame so
the applet will display the next frame. So i want to know how can i know
if a buffer has been processed by a tcpserversink (or any sink in
general). BBB told me that there is no way.. so i'm asking here :) If i
patch tcpserversink to send a signal when a buffer has been processed to
a user, will this patch be accepted? Or it's better to do a more general
solution (like adding a fake src pad to sinks element :))? 
Another use case can be the following:
I have a pipeline streaming video but i want also to get the current
frame from a browser. So i do a cgi script to connect to a
tcpserversink output and get the current buffer/frame. 

 something ! tee name=t t.src0 ! tcpserversink name=streamingvideo
 t.src1 ! filter that let pass only one frame ! tcpserversink
 name=getsingleframe

When the application sees that someone has connected to
"getgsingleframe" it puts t.src1, the filter and the tcpserversink to
PLAYING state. When "getsingleframe" send the signal that the buffer has
been processed i can put it back to READY state. Ok, this will work with
only one connection but can be extended...

sorry for the long mail :) hope to hear back something or be prepared
for a "[PATCH] add buffer-processed signal to tcpserversink" bug report
:)

ciao
Luca




More information about the gstreamer-devel mailing list