gl: use gst_gl_display_create_context in more elements.

glbasefilter, glbasemixer and gltestsrc.

https://bugzilla.gnome.org/show_bug.cgi?id=750310
This commit is contained in:
Julien Isorce 2015-06-19 11:57:06 +01:00 committed by Tim-Philipp Müller
parent 11f058b1ca
commit f068020645
3 changed files with 12 additions and 21 deletions

View file

@ -469,15 +469,16 @@ gst_gl_base_mixer_decide_allocation (GstGLBaseMixer * mix, GstQuery * query)
if (!mix->context) { if (!mix->context) {
GST_OBJECT_LOCK (mix->display); GST_OBJECT_LOCK (mix->display);
do { do {
if (mix->context) if (mix->context) {
gst_object_unref (mix->context); gst_object_unref (mix->context);
mix->context = NULL;
}
/* just get a GL context. we don't care */ /* just get a GL context. we don't care */
mix->context = mix->context =
gst_gl_display_get_gl_context_for_thread (mix->display, NULL); gst_gl_display_get_gl_context_for_thread (mix->display, NULL);
if (!mix->context) { if (!mix->context) {
mix->context = gst_gl_context_new (mix->display); if (!gst_gl_display_create_context (mix->display,
if (!gst_gl_context_create (mix->context, mix->priv->other_context, mix->priv->other_context, &mix->context, &error)) {
&error)) {
GST_OBJECT_UNLOCK (mix->display); GST_OBJECT_UNLOCK (mix->display);
goto context_error; goto context_error;
} }

View file

@ -779,14 +779,16 @@ gst_gl_test_src_decide_allocation (GstBaseSrc * basesrc, GstQuery * query)
if (!src->context) { if (!src->context) {
GST_OBJECT_LOCK (src->display); GST_OBJECT_LOCK (src->display);
do { do {
if (src->context) if (src->context) {
gst_object_unref (src->context); gst_object_unref (src->context);
src->context = NULL;
}
/* just get a GL context. we don't care */ /* just get a GL context. we don't care */
src->context = src->context =
gst_gl_display_get_gl_context_for_thread (src->display, NULL); gst_gl_display_get_gl_context_for_thread (src->display, NULL);
if (!src->context) { if (!src->context) {
src->context = gst_gl_context_new (src->display); if (!gst_gl_display_create_context (src->display, src->other_context,
if (!gst_gl_context_create (src->context, src->other_context, &error)) { &src->context, &error)) {
GST_OBJECT_UNLOCK (src->display); GST_OBJECT_UNLOCK (src->display);
goto context_error; goto context_error;
} }

View file

@ -339,14 +339,8 @@ gst_gl_base_filter_decide_allocation (GstBaseTransform * trans,
filter->context = filter->context =
gst_gl_display_get_gl_context_for_thread (filter->display, NULL); gst_gl_display_get_gl_context_for_thread (filter->display, NULL);
if (!filter->context) { if (!filter->context) {
filter->context = gst_gl_context_new (filter->display); if (!gst_gl_display_create_context (filter->display,
if (!filter->context) { filter->priv->other_context, &filter->context, &error)) {
GST_OBJECT_UNLOCK (filter->display);
goto context_null_error;
}
if (!gst_gl_context_create (filter->context,
filter->priv->other_context, &error)) {
GST_OBJECT_UNLOCK (filter->display); GST_OBJECT_UNLOCK (filter->display);
goto context_error; goto context_error;
} }
@ -372,12 +366,6 @@ context_error:
(NULL)); (NULL));
return FALSE; return FALSE;
} }
context_null_error:
{
GST_ELEMENT_ERROR (trans, RESOURCE, FAILED,
("Failed to create context."), (NULL));
return FALSE;
}
error: error:
{ {
GST_ELEMENT_ERROR (trans, LIBRARY, INIT, GST_ELEMENT_ERROR (trans, LIBRARY, INIT,