[Bug 750033] basetransform - allow collation/separation of buffers

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Fri May 29 12:57:33 PDT 2015


https://bugzilla.gnome.org/show_bug.cgi?id=750033

--- Comment #4 from Sebastian Dröge (slomo) <slomo at coaxion.net> ---
Review of attachment 304157:
 --> (https://bugzilla.gnome.org/review?bug=750033&attachment=304157)

The submit_input_buffer() (you could maybe call the queue_input_buffer()?) and
generate_output_buffer() API also seems a bit suboptimal to me.

It seems more optimal to the default submit_input_buffer() queue one buffer,
and then call generate_output_buffer() until that is done, and call some kind
of finish_buffer() with the result(s). Instead of having the call to
generate_output_buffer() directly in the chain/getrange functions, and
magically forward the results.

That way you could have subclasses that override submit_input_buffer() to take
control over the complete data flow (e.g. queue things up, have some other
thread generate output and call finish()), or subclasses that have the default
submit_input_buffer() and override just generate_output_buffer() to produce 0,
1 or many output buffers from one single input buffer. It seems like a more
generic data flow model that can be customized more.

::: libs/gst/base/gstbasetransform.h
@@ +93,3 @@
+  /* Default submit_input_buffer places the buffer here,
+   * for consumption by the generate_output method: */
+  GstBuffer      *queued_buf;

Or what about buffer lists :)

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list