From bdf20026e819ab69f73922304cdb765c4766fe22 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Fri, 29 Feb 2008 14:52:02 +0000 Subject: [PATCH] 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. --- ChangeLog | 6 ++++++ ext/libvisual/visual.c | 10 ++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 661af9376a..466394831b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-02-29 Wim Taymans + + * 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 * gst/playback/gstplaybin2.c: (gst_play_bin_set_property): diff --git a/ext/libvisual/visual.c b/ext/libvisual/visual.c index 692769b591..d138516869 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