ext/libvisual/visual.c: When negotiating, actually start from a format that we can...
authorWim Taymans <wim.taymans@gmail.com>
Fri, 29 Feb 2008 14:52:02 +0000 (14:52 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Fri, 29 Feb 2008 14:52:02 +0000 (14:52 +0000)
Original commit message from CVS:
* ext/libvisual/visual.c: (gst_vis_src_negotiate):
When negotiating, actually start from a format that we can support
instead of from the too generic template.

ChangeLog
ext/libvisual/visual.c

index 661af9376a8df4f40ff4274c75e08c648faab6e3..466394831b295e4bbc61e5ed9b245811069935a1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-02-29  Wim Taymans  <wim.taymans@collabora.co.uk>
+
+       * ext/libvisual/visual.c: (gst_vis_src_negotiate):
+       When negotiating, actually start from a format that we can support
+       instead of from the too generic template.
+
 2008-02-29  Wim Taymans  <wim.taymans@collabora.co.uk>
 
        * gst/playback/gstplaybin2.c: (gst_play_bin_set_property):
index 692769b591ba6bd8554f170f9cd415c1f5a3cf00..d1385168699404df5d1adb8d900e6a47d0ed93d9 100644 (file)
@@ -387,15 +387,16 @@ gst_vis_src_negotiate (GstVisual * visual)
 {
   GstCaps *othercaps, *target, *intersect;
   GstStructure *structure;
-  const GstCaps *templ;
+  GstCaps *caps;
 
-  templ = gst_pad_get_pad_template_caps (visual->srcpad);
+  caps = gst_pad_get_caps (visual->srcpad);
 
   /* see what the peer can do */
   othercaps = gst_pad_peer_get_caps (visual->srcpad);
   if (othercaps) {
-    intersect = gst_caps_intersect (othercaps, templ);
+    intersect = gst_caps_intersect (othercaps, caps);
     gst_caps_unref (othercaps);
+    gst_caps_unref (caps);
 
     if (gst_caps_is_empty (intersect))
       goto no_format;
@@ -404,7 +405,8 @@ gst_vis_src_negotiate (GstVisual * visual)
     gst_caps_unref (intersect);
   } else {
     /* need a copy, we'll be modifying it when fixating */
-    target = gst_caps_copy (templ);
+    target = gst_caps_copy (caps);
+    gst_caps_unref (caps);
   }
 
   /* fixate in case something is not fixed. This does nothing if the value is