Is that possible for a source element pushing GstBufferList?

Stefan Kost ensonic at hora-obscura.de
Mon Jun 13 14:58:05 PDT 2011


On 06/13/2011 01:26 PM, Shu-Yu Fu wrote:
> 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.

Just as a headsup, numerous improvemnts went into gstreamer as a
reaction to that post. Unfortunately felipe did not had time so far to
rerun the measuremrnts and give an update.

>
> 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?).

If aggregating data in rtspsrc and using a bufferlist improved the
situation, I think the best place to add the changes would be basesrc
and rtspsrc. Writing another rtspsrc sound like a not so good idea to me.

Stefan

>
> Thanks.
>
> 2011/6/13 Tim-Philipp Müller <t.i.m at zen.co.uk <mailto: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
>     <mailto:gstreamer-devel at lists.freedesktop.org>
>     http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
>
>
> -- 
> Sincerely,
> Bobby
>
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>   

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20110614/6401cfdd/attachment-0001.htm>


More information about the gstreamer-devel mailing list