Is that possible for a source element pushing GstBufferList?

Shu-Yu Fu shuyufu at gmail.com
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
*GStreamer,
embedded and low latency are a bad combination* (*
http://felipec.wordpress.com/2010/10/07/gstreamer-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?).

Thanks.

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

> 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
> > (
> http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#gst-pad-push-list)
> or chain a GstBufferList to a pad (
> http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#gst-pad-chain-list
> ).
> >
> > 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 lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>



-- 
Sincerely,
Bobby
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20110613/c6fe69ab/attachment.htm>


More information about the gstreamer-devel mailing list