[gst-devel] Re: [gst-cvs] thomasvs gst-plugins: gst-plugins/ gst-plugins/sys/v4l/

David Schleef ds at schleef.org
Tue Apr 27 10:46:03 CEST 2004


On Tue, Apr 27, 2004 at 05:06:42PM +0200, Ronald Bultje wrote:
> Given the amount of allocations (low) and their lifespan (low), I guess
> this is a perfect example of a case where we should use g_alloca(). That
> way, v4lsrc is realtime.

Are you insane?  Using alloca() at that point creates a chunk of
memory that disappears in 'return GST_DATA (buf);'.

> When I tried out this fix for qc-usb cams some time ago (on a computer
> that's now in storage, so uncommitted... :-( ), I fixed this by simply
> allocating the buffers (using g_malloc()) in the capture-init functions in
> v4lsrc_calls.c. But please don't allocate in-a-row in the _get() function,
> that seems fairly heavy and makes v4lsrc non-realtime.

Ok, repeat after me:

  GStreamer is not real-time
  GStreamer is not real-time
  GStreamer is not real-time

It's not going to be real-time-capable until a smart developer
spends a significant amount of time setting up infrastructure
and auditing a lot of code.  Given that in the last 2 years,
nobody has stepped up to do this, I don't see it happening any
time soon, and do not wish to constrain current developers to
a model that we may not support any time soon.

Nevertheless, in many cases, I avoid coding in such a way that
I know will cause real-time issues.  This is not one of those
cases.

(Also, memory allocation is not inherintly non-real-time.  The
particular implementation of malloc() in this case may occasionally
have a much higher latency than the average case.  But then, so
might alloca().)



dave...





More information about the gstreamer-devel mailing list