imagefreeze: avoid assertion when using accept caps query
authorThiago Santos <thiago.sousa.santos@collabora.com>
Thu, 25 Oct 2012 03:43:51 +0000 (00:43 -0300)
committerThiago Santos <thiago.sousa.santos@collabora.com>
Thu, 25 Oct 2012 12:39:36 +0000 (09:39 -0300)
This query must receive a fixed caps, so imagefreeze should
fixate its framerate before sending the query downstream.

https://bugzilla.gnome.org/show_bug.cgi?id=686837

gst/imagefreeze/gstimagefreeze.c

index a7134c94d24fc14de3d198b3de66664c05a62b90..43150475a62a08048841aef8fc27c208a5d9ec00 100644 (file)
@@ -216,9 +216,9 @@ gst_image_freeze_sink_setcaps (GstImageFreeze * self, GstCaps * caps)
     GstStructure *s = gst_structure_copy (gst_caps_get_structure (caps, i));
 
     gst_caps_append_structure (candidate, s);
-    if (gst_pad_peer_query_accept_caps (self->srcpad, candidate)) {
-      if (gst_structure_has_field_typed (s, "framerate", GST_TYPE_FRACTION) ||
-          gst_structure_fixate_field_nearest_fraction (s, "framerate", 25, 1)) {
+    if (gst_structure_has_field_typed (s, "framerate", GST_TYPE_FRACTION) ||
+        gst_structure_fixate_field_nearest_fraction (s, "framerate", 25, 1)) {
+      if (gst_pad_peer_query_accept_caps (self->srcpad, candidate)) {
         gst_structure_get_fraction (s, "framerate", &fps_n, &fps_d);
         if (fps_d != 0) {
           g_mutex_lock (&self->lock);