dtsdec: Fix reference leak on all input buffers in 'dvd mode'
authorJan Schmidt <thaytan@noraisin.net>
Tue, 13 Oct 2009 12:04:47 +0000 (13:04 +0100)
committerJan Schmidt <thaytan@noraisin.net>
Tue, 13 Oct 2009 14:10:09 +0000 (15:10 +0100)
https://bugzilla.gnome.org/show_bug.cgi?id=598274

ext/dts/gstdtsdec.c

index 08695936f15414bc9788bd1286ed095441064c07..a91ab5544888b899cc6599c370aa66fdab23ac29 100644 (file)
@@ -740,10 +740,12 @@ gst_dtsdec_chain (GstPad * pad, GstBuffer * buf)
       ret = gst_dtsdec_chain_raw (pad, subbuf);
     }
   } else {
+    gst_object_ref (buf);
     ret = gst_dtsdec_chain_raw (pad, buf);
   }
 
 done:
+  gst_object_unref (buf);
   return ret;
 
 /* ERRORS */
@@ -751,12 +753,14 @@ not_enough_data:
   {
     GST_ELEMENT_ERROR (GST_ELEMENT (dts), STREAM, DECODE, (NULL),
         ("Insufficient data in buffer. Can't determine first_acess"));
+    gst_object_unref (buf);
     return GST_FLOW_ERROR;
   }
 bad_first_access_parameter:
   {
     GST_ELEMENT_ERROR (GST_ELEMENT (dts), STREAM, DECODE, (NULL),
         ("Bad first_access parameter (%d) in buffer", first_access));
+    gst_object_unref (buf);
     return GST_FLOW_ERROR;
   }
 }