How is the _src_create() call-back invoked?
Tim Müller
tim at centricular.com
Fri Jul 3 00:23:15 PDT 2015
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 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
> 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
--
Tim Müller, Centricular Ltd - http://www.centricular.com
More information about the gstreamer-devel
mailing list