Is that possible for a source element pushing GstBufferList?

Shu-Yu Fu shuyufu at
Mon Jun 13 03:26:47 PDT 2011

Hi Tim,

Thanks for response so quickly.

Actually, what I am trying to do is a alternative to rtspsrc (in
gst-plugins-good package).

The difference is that it collects GstBuffers, for a 30ms or 30 GstBuffers
(for example), into a GstBufferList and then push.

No offense, but, gstreamer takes too much CPU in some circumstances as
embedded and low latency are a bad combination* (*
*) mentioned.

So, I try to avoid that issue and I still like gstreamer.

I think adding the functionality to GstBaseSrc is a good idea and will try
to do that (any thing I should pay attention to?).


2011/6/13 Tim-Philipp Müller <t.i.m at>

> On Mon, 2011-06-13 at 17:12 +0800, Shu-Yu Fu wrote:
> Hi,
> > 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
> GstBaseSrc.
> 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.
> Cheers
>  -Tim
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the gstreamer-devel mailing list