summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2016-12-14 15:53:41 +0200
committerSebastian Dröge <sebastian@centricular.com>2016-12-14 15:53:41 +0200
commit5e3157098ab63b0c4a988f2eef6dd65203b5340e (patch)
tree448391f5df0481fa1aaa105471111c5c8339ed91 /ext
parent951ddc6ece7e8a7aea94e27d71b2f88bc37add1f (diff)
downloadgstreamer-plugins-bad-5e3157098ab63b0c4a988f2eef6dd65203b5340e.tar.gz
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.
Diffstat (limited to 'ext')
-rw-r--r--ext/gl/gstglvideomixer.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/ext/gl/gstglvideomixer.c b/ext/gl/gstglvideomixer.c
index 0cc4c677c..ffb43d4e8 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);