diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2016-12-14 15:53:41 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2016-12-14 15:53:41 +0200 |
commit | 5e3157098ab63b0c4a988f2eef6dd65203b5340e (patch) | |
tree | 448391f5df0481fa1aaa105471111c5c8339ed91 /ext | |
parent | 951ddc6ece7e8a7aea94e27d71b2f88bc37add1f (diff) | |
download | gstreamer-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.c | 24 |
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); |