theoradec: Unref state when we're done with it
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Wed, 25 Apr 2012 12:34:43 +0000 (14:34 +0200)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Wed, 25 Apr 2012 12:34:43 +0000 (14:34 +0200)
ext/theora/gsttheoradec.c

index 16b03ae..5b81a24 100644 (file)
@@ -798,12 +798,14 @@ static gboolean
 theora_dec_decide_allocation (GstVideoDecoder * decoder, GstQuery * query)
 {
   GstTheoraDec *dec = GST_THEORA_DEC (decoder);
-  GstVideoCodecState *state = gst_video_decoder_get_output_state (decoder);
+  GstVideoCodecState *state;
   GstBufferPool *pool;
   gboolean update;
   guint size, min, max;
   GstStructure *config;
 
+  state = gst_video_decoder_get_output_state (decoder);
+
   if (gst_query_get_n_allocation_pools (query) > 0) {
     gst_query_parse_nth_allocation_pool (query, 0, &pool, &size, &min, &max);
 
@@ -850,6 +852,8 @@ theora_dec_decide_allocation (GstVideoDecoder * decoder, GstQuery * query)
   if (pool)
     gst_object_unref (pool);
 
+  gst_video_codec_state_unref (state);
+
   return GST_VIDEO_DECODER_CLASS (parent_class)->decide_allocation (decoder,
       query);
 }