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