How is the _src_create() call-back invoked?

John P Poet jppoet at gmail.com
Fri Jul 3 07:32:42 PDT 2015


On Fri, Jul 3, 2015 at 1:23 AM, Tim Müller <tim at centricular.com> wrote:

> On Thu, 2015-07-02 at 18:56 -0600, John P Poet wrote:
>
> Hi,
>
> > I am working on a new src plugin for a 16 input Euresys Picolo H.264
> > card.  It is based on GstPushSrc.  It works pretty well if I only only
> > access a few inputs.  However, if I create sixteen separate pipelines
> > to read from all sixteen input, then I start dropping audio packets.
> >
> >
> > I added a thread specifically for reading from the audio input, and
> > that solved the problem with not reading from the card quick enough,
> > but my _src_create() call-back is not being invoked often enough to
> > keep up.  My GstBufferList slowly grows in size because my 'read'
> > thread is filling it up faster than the _src_create() is emptying it.
>
> It sounds like downstream is not reading/processing buffers fast enough
> then. What's your full pipeline? Do you have a queue after the source?
>

I am using:

gst-launch-1.0 picoloh264videosrc location="/mnt/picolo_u16" connector=0 !
h264parse ! queue ! mux. picoloh264audiosrc location="/mnt/picolo_u16"
connector=0 ! audioconvert ! lamemp3enc ! queue ! mux. mpegtsmux name=mux !
filesink location=picolo.ts

Would it help to add some more queue elements?


>
> > I came across gst_pad_push_list(), but I get the impress that that is
> > not usable from within a _src_create() call-back.  Is that correct?
>
> That's correct. Also see
> https://bugzilla.gnome.org/show_bug.cgi?id=750241
>


That looks useful.  Is it stable enough for me to try?



> > How can I either get the _src_create() routine to be called more
> > often, or push more buffers per invocation?  Should I not be using
> > _src_create(), but some other method?
> >
> >
> > The load on the machine is less than 1, so I don't think it is a
> > resource problem.
>
> I think you need to figure out why downstream is processing buffers
> slower than you create them, or if a queue helps.
>
>  Cheers
>   -Tim



Thank you, Tim.   I will add logging for the lamemp3enc and see if anything
obvious shows up.

John
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20150703/5f5d6e27/attachment.html>


More information about the gstreamer-devel mailing list