On Thu, Jan 08, 2004 at 04:10:00PM +0100, Julien MOUTTE wrote: > > Hi David, > > I'd like to implement bufferpools again in x[v]imagesink asap.. Could > you please point me to a template/doc on how to do that ? > > The best for me would be a simple testcase showing how to use the buffer > free methods to replace bufferpools. x[v]imagesink should call gst_pad_set_bufferalloc_function() on their sink pads with a bufferalloc implementation. This bufferalloc function is to allocate buffers that _peers_ will send _to_ that pad. A trivial version of a bufferalloc function, i.e., one that just allocates normal buffers: static GstBuffer * gst_ximagesink_sink_bufferalloc (GstPad *pad, guint64 offset, guint size) { GstBuffer *buffer; buffer = gst_buffer_new_and_alloc (size); GST_DATA_FREE_FUNC (data) = gst_ximagesink_buffer_free; GST_BUFFER_POOL_PRIVATE (data) = ximagesink; /* whatever */ return buffer; } static void gst_ximagesink_buffer_free (GstData *data) { g_free (GST_BUFFER_DATA (data)); } The hard part is going through each element, and every time it allocates a buffer using gst_buffer_new_and_alloc () that is then sent to a sink pad, the call should be replaced with gst_pad_alloc_buffer (sinkpad, offset, size). dave... ------------------------------------------------------- This SF.net email is sponsored by: Perforce Software. Perforce is the Fast Software Configuration Management System offering advanced branching capabilities and atomic changes on 50+ platforms. Free Eval! http://www.perforce.com/perforce/loadprog.html _______________________________________________ gstreamer-devel mailing list gstreamer-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gstreamer-devel