diff --git a/gst-libs/gst/gl/gstglbufferpool.c b/gst-libs/gst/gl/gstglbufferpool.c index 4b3cf28ccb..a12f750e10 100644 --- a/gst-libs/gst/gl/gstglbufferpool.c +++ b/gst-libs/gst/gl/gstglbufferpool.c @@ -115,8 +115,13 @@ gst_gl_buffer_pool_set_config (GstBufferPool * pool, GstStructure * config) if (priv->allocator) gst_object_unref (priv->allocator); - if (allocator /* && GST_IS_GL_MEMORY_ALLOCATOR (allocator) FIXME EGLImage */ ) { - priv->allocator = gst_object_ref (allocator); + if (allocator) { + if (!GST_IS_GL_MEMORY_ALLOCATOR (allocator)) { + gst_object_unref (allocator); + goto wrong_allocator; + } else { + priv->allocator = gst_object_ref (allocator); + } } else { priv->allocator = GST_ALLOCATOR (gst_gl_memory_allocator_get_default (glpool->context)); @@ -241,6 +246,11 @@ wrong_caps: "failed getting geometry from caps %" GST_PTR_FORMAT, caps); return FALSE; } +wrong_allocator: + { + GST_WARNING_OBJECT (pool, "Incorrect allocator type for this pool"); + return FALSE; + } } static gboolean