Is that possible for a source element pushing GstBufferList?

Tim-Philipp Müller t.i.m at
Mon Jun 13 02:50:07 PDT 2011

On Mon, 2011-06-13 at 17:12 +0800, Shu-Yu Fu wrote:


> Currently, I need to implement a source element which pushes a
> GstBufferList.

Out of curiosity, what kind of element is this?

> But, a sub-class (GstPushSrc) of GstBaseSrc is expected to generate a
> GstBuffer in the create function. Returning a GstBufferList is
> not valided at all.
> I am also grep the source code packages (gstreamer-0.10.34,
> gst-plugins-base-0.10.34 and gst-plugins-good-0.10.29), but didn't
> find any thing helpful.
> But,the document says I can push a GstBufferList to the peer pad
> ( or chain a GstBufferList to a pad (
> So, I was wondering does that means I have to write my own source
> element (like GstBaseSrc did)?
> Or, there is an easy way to do that?
> Or, there are some examples I missed?

You're right, the GstBaseSrc/GstPushSrc API currently doesn't cater for
buffer lists, which is mostly for historical reasons, and because no one
really needed that functionality yet (as far as I know, anyway).

I think it'd be best if you tried to add that functionality to
GstBaseSrc. Don't try to write your own source that doesn't use

Alternatively, you could do something like gst_pad_push_list() from your
create() function and then return a buffer of 0 size or so to the base
class. That's a bit hackish though.


More information about the gstreamer-devel mailing list