From 633c26884eba5b6eff415b8cc851d042b9d412e7 Mon Sep 17 00:00:00 2001 From: Matthew Waters Date: Wed, 30 Dec 2015 12:12:17 +1100 Subject: [PATCH] glmemorypbo: fix wrapping data on GL 2.1 GL 2.1 only supports pbo upload. The wrapped data pointer was only being set on the pbo memory and on the glmemory so when a download was requested (in GL 2.1), glmemory was allocating a new data pointer and thus not returning the wrapped data. --- gst-libs/gst/gl/gstglmemorypbo.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gst-libs/gst/gl/gstglmemorypbo.c b/gst-libs/gst/gl/gstglmemorypbo.c index 15e9110c9b..c4f4e47de3 100644 --- a/gst-libs/gst/gl/gstglmemorypbo.c +++ b/gst-libs/gst/gl/gstglmemorypbo.c @@ -743,8 +743,12 @@ _gl_mem_pbo_alloc (GstGLBaseMemoryAllocator * allocator, } if (alloc_flags & GST_GL_ALLOCATION_PARAMS_ALLOC_FLAG_WRAP_SYSMEM) { GST_MINI_OBJECT_FLAG_SET (mem, GST_GL_BASE_MEMORY_TRANSFER_NEED_UPLOAD); - GST_MINI_OBJECT_FLAG_SET (mem->pbo, - GST_GL_BASE_MEMORY_TRANSFER_NEED_UPLOAD); + if (mem->pbo) { + GST_MINI_OBJECT_FLAG_SET (mem->pbo, + GST_GL_BASE_MEMORY_TRANSFER_NEED_UPLOAD); + mem->pbo->mem.data = params->parent.wrapped_data; + } + mem->mem.mem.data = params->parent.wrapped_data; } return mem;