glbasefilter: actually indicate start internally
Otherwise when we stop, the necessary stop functions will not be called and things may be leaked. https://bugzilla.gnome.org/show_bug.cgi?id=788280
This commit is contained in:
parent
c85b825bb2
commit
b495af21ac
@ -280,7 +280,7 @@ gst_gl_base_filter_gl_start (GstGLContext * context, gpointer data)
|
|||||||
gst_gl_insert_debug_marker (filter->context,
|
gst_gl_insert_debug_marker (filter->context,
|
||||||
"starting element %s", GST_OBJECT_NAME (filter));
|
"starting element %s", GST_OBJECT_NAME (filter));
|
||||||
|
|
||||||
filter->priv->gl_result = filter_class->gl_start (filter);
|
filter->priv->gl_started = filter_class->gl_start (filter);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -360,14 +360,16 @@ gst_gl_base_filter_decide_allocation (GstBaseTransform * trans,
|
|||||||
gst_gl_context_thread_add (filter->context, gst_gl_base_filter_gl_start,
|
gst_gl_context_thread_add (filter->context, gst_gl_base_filter_gl_start,
|
||||||
filter);
|
filter);
|
||||||
|
|
||||||
if (!filter->priv->gl_result)
|
if (!filter->priv->gl_started)
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (filter_class->gl_set_caps) {
|
||||||
gst_gl_context_thread_add (filter->context,
|
gst_gl_context_thread_add (filter->context,
|
||||||
(GstGLContextThreadFunc) _gl_set_caps, filter);
|
(GstGLContextThreadFunc) _gl_set_caps, filter);
|
||||||
if (!filter->priv->gl_result)
|
if (!filter->priv->gl_result)
|
||||||
goto error;
|
goto error;
|
||||||
|
}
|
||||||
|
|
||||||
return GST_BASE_TRANSFORM_CLASS (parent_class)->decide_allocation (trans,
|
return GST_BASE_TRANSFORM_CLASS (parent_class)->decide_allocation (trans,
|
||||||
query);
|
query);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user