chromaprint: Missing unmap buffer in transform_ip
authorChristophe Fergeau <cfergeau@redhat.com>
Sun, 30 Sep 2012 18:52:30 +0000 (20:52 +0200)
committerTim-Philipp Müller <tim@centricular.net>
Sun, 30 Sep 2012 19:16:54 +0000 (20:16 +0100)
When no samples have to be processed, transform_ip exits early, but
the buffer it uses was not properly unmapped.

https://bugzilla.gnome.org/show_bug.cgi?id=685159

ext/chromaprint/gstchromaprint.c

index a6cb867..ad9d1fd 100644 (file)
@@ -209,7 +209,7 @@ gst_chromaprint_transform_ip (GstBaseTransform * trans, GstBuffer * buf)
   nsamples = map_info.size / (channels * 2);
 
   if (nsamples == 0)
-    return GST_FLOW_OK;
+    goto end;
 
   if (chromaprint->nsamples == 0) {
     chromaprint_start (chromaprint->context, rate, channels);
@@ -225,6 +225,7 @@ gst_chromaprint_transform_ip (GstBaseTransform * trans, GstBuffer * buf)
     gst_chromaprint_create_fingerprint (chromaprint);
   }
 
+end:
   gst_buffer_unmap (buf, &map_info);
 
   return GST_FLOW_OK;