mfc: Don't reconfigure if we get compatible caps
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Mon, 31 Dec 2012 11:42:31 +0000 (12:42 +0100)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Mon, 31 Dec 2012 14:59:08 +0000 (15:59 +0100)
sys/mfc/gstmfcdec.c

index c2507ae..2668f5c 100644 (file)
@@ -185,6 +185,11 @@ gst_mfc_dec_set_format (GstVideoDecoder * decoder, GstVideoCodecState * state)
 
   GST_DEBUG_OBJECT (self, "Setting format: %" GST_PTR_FORMAT, state->caps);
 
+  if (self->input_state && gst_caps_can_intersect (self->input_state->caps, state->caps)) {
+    GST_DEBUG_OBJECT (self, "Compatible caps");
+    goto done;
+  }
+
   s = gst_caps_get_structure (state->caps, 0);
 
   if (self->context) {
@@ -220,6 +225,7 @@ gst_mfc_dec_set_format (GstVideoDecoder * decoder, GstVideoCodecState * state)
 
   gst_buffer_replace (&self->codec_data, state->codec_data);
 
+done:
   if (self->input_state)
     gst_video_codec_state_unref (self->input_state);
   self->input_state = gst_video_codec_state_ref (state);