gst_structure_free (config);
}
- if (!gst_gl_ensure_display (mix, &mix->display))
+ if (!gst_gl_ensure_element_data (mix, &mix->display, &mix->other_context))
return FALSE;
if (!mix->context) {
case GST_QUERY_CONTEXT:
{
ret = gst_gl_handle_context_query ((GstElement *) mix, query,
- &mix->display);
+ &mix->display, &mix->other_context);
break;
}
default:
enum
{
- PROP_0,
- PROP_OTHER_CONTEXT
+ PROP_0
};
static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src",
gobject_class->get_property = gst_gl_mixer_get_property;
gobject_class->set_property = gst_gl_mixer_set_property;
- g_object_class_install_property (gobject_class, PROP_OTHER_CONTEXT,
- g_param_spec_object ("other-context",
- "External OpenGL context",
- "Give an external OpenGL context with which to share textures",
- GST_GL_TYPE_CONTEXT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-
gst_element_class_add_pad_template (element_class,
gst_static_pad_template_get (&src_factory));
gst_element_class_add_pad_template (element_class,
{
GstGLMixer *mix = GST_GL_MIXER (element);
- gst_gl_handle_set_context (element, context, &mix->display);
+ gst_gl_handle_set_context (element, context, &mix->display, &mix->context);
}
static gboolean
gboolean result = TRUE;
if (active) {
- if (!gst_gl_ensure_display (mix, &mix->display))
+ if (!gst_gl_ensure_element_data (mix, &mix->display, &mix->other_context))
result = FALSE;
}
case GST_QUERY_CONTEXT:
{
res = gst_gl_handle_context_query ((GstElement *) mix, query,
- &mix->display);
+ &mix->display, &mix->other_context);
break;
}
case GST_QUERY_CAPS:
GstGLContext *other_context = NULL;
GstVideoAggregator *vagg = GST_VIDEO_AGGREGATOR (mix);
- if (!gst_gl_ensure_display (mix, &mix->display))
+ if (!gst_gl_ensure_element_data (mix, &mix->display, &mix->other_context))
return FALSE;
if (gst_query_find_allocation_meta (query,
gst_gl_mixer_get_property (GObject * object,
guint prop_id, GValue * value, GParamSpec * pspec)
{
- GstGLMixer *mix = GST_GL_MIXER (object);
-
switch (prop_id) {
- case PROP_OTHER_CONTEXT:
- g_value_set_object (value, mix->other_context);
- break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
gst_gl_mixer_set_property (GObject * object,
guint prop_id, const GValue * value, GParamSpec * pspec)
{
- GstGLMixer *mix = GST_GL_MIXER (object);
-
switch (prop_id) {
- case PROP_OTHER_CONTEXT:
- {
- if (mix->other_context)
- gst_object_unref (mix->other_context);
- mix->other_context = g_value_dup_object (value);
- break;
- }
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;