gst_buffer_unref fails on appsink callback for local variables
ign bra
enternald at gmail.com
Mon Dec 1 06:29:02 PST 2014
Hello folks, I am playing with appsink and try to get buffer from appsink.
This part OK.
Problem is when I do cleaning. GstBuffer fails to unref after pull:
static GstFlowReturn gstre_pull_sample_cb(GstElement* gstappsink,
gpointer data){
GstSample* sample;
GstBuffer* buffer;
GstCaps* caps;
g_signal_emit_by_name (gstappsink, "pull-sample", &sample);
if (sample) {
buffer = gst_sample_get_buffer(sample);
caps = gst_sample_get_caps(sample);
gst_buffer_unref(buffer);
g_print ("*");
gst_sample_unref(sample);
}
return GST_FLOW_OK;
}
I think I am missing something trivial about memory managment, because unref
call simply fails for buffer push:
** (GstReencoderTest:1624): CRITICAL **: gst_video_frame_map_id: assertion
'GST_IS_BUFFER (buffer)' failed
(GstReencoderTest:1624): GStreamer-CRITICAL **: gst_pad_push: assertion
'GST_IS_BUFFER (buffer)' failed
(GstReencoderTest:1624): GStreamer-CRITICAL **: gst_mini_object_unref:
assertion 'mini_object->refcount > 0' failed
How to properly release buffer in callback, I seem to fail and overunref it,
I don't know how.
--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/gst-buffer-unref-fails-on-appsink-callback-for-local-variables-tp4669760.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.
More information about the gstreamer-devel
mailing list