[gst-cvs] gst-plugins-good: jpegenc: should not return caps ANY based on downstream

Thiago Sousa Santos thiagoss at kemper.freedesktop.org
Sun Apr 4 17:41:11 PDT 2010


Module: gst-plugins-good
Branch: master
Commit: 74ac172bc20e1ae657484aeb37fbaf08ad2a2b28
URL:    http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=74ac172bc20e1ae657484aeb37fbaf08ad2a2b28

Author: André Dieb Martins <andre.dieb at gmail.com>
Date:   Sun Apr  4 20:31:38 2010 -0300

jpegenc: should not return caps ANY based on downstream

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 |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/ext/jpeg/gstjpegenc.c b/ext/jpeg/gstjpegenc.c
index 931f3a2..08a7467 100644
--- a/ext/jpeg/gstjpegenc.c
+++ b/ext/jpeg/gstjpegenc.c
@@ -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);





More information about the Gstreamer-commits mailing list