/* Convert to caps that can be accepted by this element... */ static GstCaps * get_converted_caps (GstGLStereoMix * mix, GstCaps * caps) { #if 0 GstGLContext *context = GST_GL_BASE_MIXER (mix)->context; GstCaps *result, *tmp; GST_LOG_OBJECT (mix, "Converting caps %" GST_PTR_FORMAT, caps); result = gst_gl_upload_transform_caps (context, GST_PAD_SINK, caps, NULL); tmp = result; GST_TRACE_OBJECT (mix, "transfer returned caps %" GST_PTR_FORMAT, tmp); result = gst_gl_color_convert_transform_caps (context, GST_PAD_SINK, tmp, NULL); gst_caps_unref (tmp); GST_TRACE_OBJECT (mix, "convert returned caps %" GST_PTR_FORMAT, tmp); tmp = result; result = gst_gl_view_convert_transform_caps (mix->viewconvert, GST_PAD_SINK, tmp, NULL); gst_caps_unref (tmp); #else GstCaps *result; GST_LOG_OBJECT (mix, "Converting caps %" GST_PTR_FORMAT, caps); result = gst_gl_view_convert_transform_caps (mix->viewconvert, GST_PAD_SINK, caps, NULL); #endif GST_LOG_OBJECT (mix, "returning caps %" GST_PTR_FORMAT, result); return result; }
static GstCaps * stereosplit_transform_caps (GstGLStereoSplit * self, GstPadDirection direction, GstCaps * caps, GstCaps * filter) { GstCaps *next_caps; /* FIXME: Is this the right way to ensure a context here ? */ if (!ensure_context (self)) return NULL; if (direction == GST_PAD_SINK) { next_caps = gst_gl_upload_transform_caps (self->context, direction, caps, filter); caps = next_caps; next_caps = gst_gl_color_convert_transform_caps (self->context, direction, caps, NULL); gst_caps_unref (caps); caps = next_caps; next_caps = gst_gl_view_convert_transform_caps (self->viewconvert, direction, caps, NULL); gst_caps_unref (caps); } else { next_caps = gst_gl_view_convert_transform_caps (self->viewconvert, direction, caps, filter); caps = next_caps; next_caps = gst_gl_color_convert_transform_caps (self->context, direction, caps, NULL); gst_caps_unref (caps); caps = next_caps; next_caps = gst_gl_upload_transform_caps (self->context, direction, caps, NULL); gst_caps_unref (caps); } return next_caps; }