glbasefilter, glbasemixer and gltestsrc.
https://bugzilla.gnome.org/show_bug.cgi?id=750310
if (!mix->context) {
GST_OBJECT_LOCK (mix->display);
do {
- if (mix->context)
+ if (mix->context) {
gst_object_unref (mix->context);
+ mix->context = NULL;
+ }
/* just get a GL context. we don't care */
mix->context =
gst_gl_display_get_gl_context_for_thread (mix->display, NULL);
if (!mix->context) {
- mix->context = gst_gl_context_new (mix->display);
- if (!gst_gl_context_create (mix->context, mix->priv->other_context,
- &error)) {
+ if (!gst_gl_display_create_context (mix->display,
+ mix->priv->other_context, &mix->context, &error)) {
GST_OBJECT_UNLOCK (mix->display);
goto context_error;
}
if (!src->context) {
GST_OBJECT_LOCK (src->display);
do {
- if (src->context)
+ if (src->context) {
gst_object_unref (src->context);
+ src->context = NULL;
+ }
/* just get a GL context. we don't care */
src->context =
gst_gl_display_get_gl_context_for_thread (src->display, NULL);
if (!src->context) {
- src->context = gst_gl_context_new (src->display);
- if (!gst_gl_context_create (src->context, src->other_context, &error)) {
+ if (!gst_gl_display_create_context (src->display, src->other_context,
+ &src->context, &error)) {
GST_OBJECT_UNLOCK (src->display);
goto context_error;
}
filter->context =
gst_gl_display_get_gl_context_for_thread (filter->display, NULL);
if (!filter->context) {
- filter->context = gst_gl_context_new (filter->display);
- if (!filter->context) {
- GST_OBJECT_UNLOCK (filter->display);
- goto context_null_error;
- }
-
- if (!gst_gl_context_create (filter->context,
- filter->priv->other_context, &error)) {
+ if (!gst_gl_display_create_context (filter->display,
+ filter->priv->other_context, &filter->context, &error)) {
GST_OBJECT_UNLOCK (filter->display);
goto context_error;
}
(NULL));
return FALSE;
}
-context_null_error:
- {
- GST_ELEMENT_ERROR (trans, RESOURCE, FAILED,
- ("Failed to create context."), (NULL));
- return FALSE;
- }
error:
{
GST_ELEMENT_ERROR (trans, LIBRARY, INIT,