From 0f4ed7e2d66442dd7f73be650c42ed98435c9837 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Wed, 14 Dec 2016 15:53:41 +0200 Subject: [PATCH] glvideomixer: Reject multiview video glvideomixer does not support it currently and it needs special support for handling this correctly, and is rather non-trivial to implement for all formats. --- ext/gl/gstglvideomixer.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/ext/gl/gstglvideomixer.c b/ext/gl/gstglvideomixer.c index 0cc4c677cb..ffb43d4e82 100644 --- a/ext/gl/gstglvideomixer.c +++ b/ext/gl/gstglvideomixer.c @@ -998,6 +998,30 @@ static GstCaps * _update_caps (GstVideoAggregator * vagg, GstCaps * caps, GstCaps * filter) { GstCaps *ret; + GList *l; + + GST_OBJECT_LOCK (vagg); + for (l = GST_ELEMENT (vagg)->sinkpads; l; l = l->next) { + GstVideoAggregatorPad *vaggpad = l->data; + + if (!vaggpad->info.finfo) + continue; + + if (GST_VIDEO_INFO_FORMAT (&vaggpad->info) == GST_VIDEO_FORMAT_UNKNOWN) + continue; + + if (GST_VIDEO_INFO_MULTIVIEW_MODE (&vaggpad->info) != + GST_VIDEO_MULTIVIEW_MODE_NONE + && GST_VIDEO_INFO_MULTIVIEW_MODE (&vaggpad->info) != + GST_VIDEO_MULTIVIEW_MODE_MONO) { + GST_FIXME_OBJECT (vaggpad, "Multiview support is not implemented yet"); + GST_OBJECT_UNLOCK (vagg); + return NULL; + } + + } + + GST_OBJECT_UNLOCK (vagg); if (filter) { ret = gst_caps_intersect (caps, filter);