diff options
author | Thiago Santos <thiagoss@osg.samsung.com> | 2016-02-18 10:57:51 -0300 |
---|---|---|
committer | Thiago Santos <thiagoss@osg.samsung.com> | 2016-02-25 11:43:43 -0300 |
commit | f231598370ebc4364d16eab1c7e3dbdd7001668a (patch) | |
tree | 908895200f10c1a220be553fd9191c8c667a1fbf /gst-libs/gst | |
parent | 924795c85c319ea1accf00ee97ac14aeecaf375e (diff) | |
download | gstreamer-plugins-bad-f231598370ebc4364d16eab1c7e3dbdd7001668a.tar.gz |
videoaggregator: fix caps queries to allow proper renegotiation
When caps are already negotiated it should be possible to
select formats other than the one that was negotiated. If downstream
allows alpha video caps and it has already negotiated to a non-alpha
format, caps queries should still return the alpha caps as a possible
format as caps renegotiation can happen.
Includes tests (for compositor) to check that caps queries done after
a caps has been negotiated returns complete results
https://bugzilla.gnome.org/show_bug.cgi?id=757610
Diffstat (limited to 'gst-libs/gst')
-rw-r--r-- | gst-libs/gst/video/gstvideoaggregator.c | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/gst-libs/gst/video/gstvideoaggregator.c b/gst-libs/gst/video/gstvideoaggregator.c index 2b0c87630..1bf6ea0b2 100644 --- a/gst-libs/gst/video/gstvideoaggregator.c +++ b/gst-libs/gst/video/gstvideoaggregator.c @@ -892,15 +892,7 @@ gst_videoaggregator_pad_sink_getcaps (GstPad * pad, GstVideoAggregator * vagg, GST_DEBUG_OBJECT (pad, "Get caps with filter: %" GST_PTR_FORMAT, filter); - srccaps = gst_pad_get_current_caps (srcpad); - if (srccaps == NULL) { - srccaps = gst_pad_peer_query_caps (srcpad, template_caps); - GST_DEBUG_OBJECT (pad, "No output caps, using possible formats: %" - GST_PTR_FORMAT, srccaps); - } else { - GST_DEBUG_OBJECT (pad, "Using output caps: %" GST_PTR_FORMAT, srccaps); - } - + srccaps = gst_pad_peer_query_caps (srcpad, template_caps); srccaps = gst_caps_make_writable (srccaps); has_alpha = gst_videoaggregator_caps_has_alpha (srccaps); |