From 1d9d3c1c302d724a7a2a23e5f29ad4434f850906 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Mon, 22 Oct 2012 13:21:12 +0200 Subject: [PATCH] androidmedia: Remember and use input state --- sys/androidmedia/gstamcvideodec.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/sys/androidmedia/gstamcvideodec.c b/sys/androidmedia/gstamcvideodec.c index e316b34c33..5e702ee75e 100644 --- a/sys/androidmedia/gstamcvideodec.c +++ b/sys/androidmedia/gstamcvideodec.c @@ -1242,6 +1242,9 @@ gst_amc_video_dec_stop (GstVideoDecoder * decoder) g_mutex_unlock (self->drain_lock); g_free (self->codec_data); self->codec_data_size = 0; + if (self->input_state) + gst_video_codec_state_unref (self->input_state); + self->input_state = NULL; GST_DEBUG_OBJECT (self, "Stopped decoder"); return TRUE; } @@ -1296,6 +1299,9 @@ gst_amc_video_dec_set_format (GstVideoDecoder * decoder, /* Framerate or something minor changed */ self->input_state_changed = TRUE; + if (self->input_state) + gst_video_codec_state_unref (self->input_state); + self->input_state = gst_video_codec_state_ref (state); GST_DEBUG_OBJECT (self, "Already running and caps did not change the format"); return TRUE; @@ -1317,6 +1323,9 @@ gst_amc_video_dec_set_format (GstVideoDecoder * decoder, } } /* srcpad task is not running at this point */ + if (self->input_state) + gst_video_codec_state_unref (self->input_state); + self->input_state = NULL; g_free (self->codec_data); self->codec_data = codec_data; @@ -1366,6 +1375,7 @@ gst_amc_video_dec_set_format (GstVideoDecoder * decoder, } self->started = TRUE; + self->input_state = gst_video_codec_state_ref (state); self->input_state_changed = TRUE; /* Start the srcpad loop again */