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.
This commit is contained in:
Sebastian Dröge 2016-12-14 15:53:41 +02:00 committed by Tim-Philipp Müller
parent aeb5d4edaf
commit faf1e388f7

View file

@ -998,6 +998,30 @@ static GstCaps *
_update_caps (GstVideoAggregator * vagg, GstCaps * caps, GstCaps * filter) _update_caps (GstVideoAggregator * vagg, GstCaps * caps, GstCaps * filter)
{ {
GstCaps *ret; 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) { if (filter) {
ret = gst_caps_intersect (caps, filter); ret = gst_caps_intersect (caps, filter);