diff options
author | Wim Taymans <wim.taymans@gmail.com> | 2008-02-29 14:52:02 +0000 |
---|---|---|
committer | Wim Taymans <wim.taymans@gmail.com> | 2008-02-29 14:52:02 +0000 |
commit | bdf20026e819ab69f73922304cdb765c4766fe22 (patch) | |
tree | f9d78e5681e960e54bec63e88fc28c27adbaaf3d | |
parent | 472162d1b131f37c46d69587137dafcd3b4cc34d (diff) | |
download | gstreamer-plugins-base-bdf20026e819ab69f73922304cdb765c4766fe22.tar.gz |
ext/libvisual/visual.c: When negotiating, actually start from a format that we can support instead of from the too ge...
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.
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | ext/libvisual/visual.c | 10 |
2 files changed, 12 insertions, 4 deletions
@@ -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. diff --git a/ext/libvisual/visual.c b/ext/libvisual/visual.c index 692769b59..d13851686 100644 --- a/ext/libvisual/visual.c +++ b/ext/libvisual/visual.c @@ -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 |