faad: do not access frame buffer following _finish_frame call
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Thu, 2 Aug 2012 12:40:55 +0000 (14:40 +0200)
committerMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Thu, 2 Aug 2012 12:40:55 +0000 (14:40 +0200)
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=680494

ext/faad/gstfaad.c

index 46661fc..4434e40 100644 (file)
@@ -749,6 +749,9 @@ init:
 
     out = faacDecDecode (faad->handle, &info, input_data, input_size);
 
+    gst_buffer_unmap (buffer, &map);
+    buffer = NULL;
+
     if (info.error > 0) {
       /* give up on frame and bail out */
       gst_audio_decoder_finish_frame (dec, NULL, 1);
@@ -792,8 +795,6 @@ init:
         memcpy (omap.data, out, omap.size);
       }
       gst_buffer_unmap (outbuf, &omap);
-      gst_buffer_unmap (buffer, &map);
-      buffer = NULL;
 
       ret = gst_audio_decoder_finish_frame (dec, outbuf, 1);
     }