jpegenc: should not return caps ANY based on downstream
authorAndré Dieb Martins <andre.dieb@gmail.com>
Sun, 4 Apr 2010 23:31:38 +0000 (20:31 -0300)
committerThiago Santos <thiago.sousa.santos@collabora.co.uk>
Mon, 5 Apr 2010 00:30:06 +0000 (21:30 -0300)
When downstream has a sink pad with ANY caps, jpegenc should
treat it the same as NULL and return its template caps.

Fixes #614842

ext/jpeg/gstjpegenc.c

index 931f3a2..08a7467 100644 (file)
@@ -322,10 +322,15 @@ gst_jpegenc_getcaps (GstPad * pad)
      other end of the element */
 
   caps = gst_pad_peer_get_caps (jpegenc->srcpad);
-  if (caps == NULL)
+
+  if (caps == NULL) {
+    caps = gst_caps_copy (gst_pad_get_pad_template_caps (pad));
+  } else if (gst_caps_is_any (caps)) {
+    gst_caps_unref (caps);
     caps = gst_caps_copy (gst_pad_get_pad_template_caps (pad));
-  else
+  } else {
     caps = gst_caps_make_writable (caps);
+  }
 
   for (i = 0; i < gst_caps_get_size (caps); i++) {
     structure = gst_caps_get_structure (caps, i);