From 8b80d60648332124a5d648abd5ae3a4683274ac9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Olivier=20Cr=C3=AAte?= Date: Sun, 28 Jul 2013 17:25:10 +0200 Subject: [PATCH] uvch264_mjpgdemux: Don't unmap/unref buffer if it's pushed out as-is --- sys/uvch264/gstuvch264_mjpgdemux.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sys/uvch264/gstuvch264_mjpgdemux.c b/sys/uvch264/gstuvch264_mjpgdemux.c index cb2ea2b..431ba98 100644 --- a/sys/uvch264/gstuvch264_mjpgdemux.c +++ b/sys/uvch264/gstuvch264_mjpgdemux.c @@ -462,8 +462,7 @@ gst_uvc_h264_mjpg_demux_chain (GstPad * pad, { GstUvcH264MjpgDemux *self; GstFlowReturn ret = GST_FLOW_OK; - GstBuffer *jpeg_buf = gst_buffer_copy_region (buf, GST_BUFFER_COPY_METADATA, - 0, 0); + GstBuffer *jpeg_buf = NULL; GstBuffer *aux_buf = NULL; AuxiliaryStreamHeader aux_header = { 0 }; guint32 aux_size = 0; @@ -480,12 +479,13 @@ gst_uvc_h264_mjpg_demux_chain (GstPad * pad, last_offset = 0; size = gst_buffer_get_size (buf); if (size == 0) { - ret = gst_pad_push (self->priv->jpeg_pad, buf); - goto done; + return gst_pad_push (self->priv->jpeg_pad, buf); } gst_buffer_map (buf, &info, GST_MAP_READ); + jpeg_buf = gst_buffer_copy_region (buf, GST_BUFFER_COPY_METADATA, 0, 0); + data = info.data; for (i = 0; i < size - 1; i++) { -- 2.7.4