As we don't need frame anymore instead of attaching to the buffer free it. --- src/channel-display-gst.c | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/src/channel-display-gst.c b/src/channel-display-gst.c index a29af3f..7783393 100644 --- a/src/channel-display-gst.c +++ b/src/channel-display-gst.c @@ -91,12 +91,6 @@ static SpiceGstFrame *create_gst_frame(GstBuffer *buffer, SpiceFrame *frame) return gstframe; } -static void free_spice_frame(SpiceFrame *frame) -{ - frame->unref_data(frame->data_opaque); - frame->free(frame); -} - static void free_gst_frame(SpiceGstFrame *gstframe) { gstframe->frame->free(gstframe->frame); @@ -562,8 +556,6 @@ static gboolean spice_gst_decoder_queue_frame(VideoDecoder *video_decoder, SpiceFrame *frame, int latency) { SpiceGstDecoder *decoder = (SpiceGstDecoder*)video_decoder; - gpointer data_opaque; - GDestroyNotify data_unref; if (frame->size == 0) { SPICE_DEBUG("got an empty frame buffer!"); @@ -605,16 +597,9 @@ static gboolean spice_gst_decoder_queue_frame(VideoDecoder *video_decoder, /* ref() the frame data for the buffer */ frame->ref_data(frame->data_opaque); - if (decoder->gstvideooverlay) { - data_opaque = frame; - data_unref = (void*)free_spice_frame; - } else { - data_opaque = frame->data_opaque; - data_unref = frame->unref_data; - } GstBuffer *buffer = gst_buffer_new_wrapped_full(GST_MEMORY_FLAG_PHYSICALLY_CONTIGUOUS, frame->data, frame->size, 0, frame->size, - data_opaque, data_unref); + frame->data_opaque, frame->unref_data); GST_BUFFER_DURATION(buffer) = GST_CLOCK_TIME_NONE; GST_BUFFER_DTS(buffer) = GST_CLOCK_TIME_NONE; @@ -624,6 +609,8 @@ static gboolean spice_gst_decoder_queue_frame(VideoDecoder *video_decoder, g_mutex_lock(&decoder->queues_mutex); g_queue_push_tail(decoder->decoding_queue, create_gst_frame(buffer, frame)); g_mutex_unlock(&decoder->queues_mutex); + } else { + frame->free(frame); } if (gst_app_src_push_buffer(decoder->appsrc, buffer) != GST_FLOW_OK) { -- 2.14.3 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel