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 661af93..4663948 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 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):
        Enable vis setting.
 
index 692769b..d138516 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