summaryrefslogtreecommitdiff
path: root/gst-libs
diff options
context:
space:
mode:
authorThiago Santos <thiagoss@osg.samsung.com>2016-02-18 10:57:51 -0300
committerThiago Santos <thiagoss@osg.samsung.com>2016-02-25 11:43:43 -0300
commitf231598370ebc4364d16eab1c7e3dbdd7001668a (patch)
tree908895200f10c1a220be553fd9191c8c667a1fbf /gst-libs
parent924795c85c319ea1accf00ee97ac14aeecaf375e (diff)
downloadgstreamer-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')
-rw-r--r--gst-libs/gst/video/gstvideoaggregator.c10
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);