GStreamer does not give up her secrets very easily :-)

Tim Müller tim at centricular.com
Fri Feb 12 18:07:01 UTC 2016


On Fri, 2016-02-12 at 09:18 -0800, Andres Gonzalez wrote:

> If the _push() takes ownership of the buffer, then I do NOT call
> gst_buffer_unref() after I call the _push() because it now has
> ownership of the buffer.

Correct. (Mind you, this is just if you use gst_app_src_push_buffer(),
if you use g_signal_emit(appsrc, 'push-buffer', buffer) it won't/can't
take ownership, just to add to the confusion).

> Then I should expect the GDestroyNotify routine to be called
> when the pipeline is done with that individual buffer.

Correct.

> However, it is never called at all during normal processing. The
> pipeline appears to be operating correctly, in that no bus errors
> occur, all state transitions appear normal, and I am indeed receiving
> the RTP stream on another local host and displaying the video
> correctly (which has frame number and stream time overlays).  But the
> GDestroyNotify routine is never called during normal processing.

Maybe there's just a leak somewhere.

Did you try the minimal example I suggested last time?

 appsrc ! fakesink last-sample=false

?

Cheers
 -Tim

-- 
Tim Müller, Centricular Ltd - http://www.centricular.com




More information about the gstreamer-devel mailing list