diff options
author | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2013-02-22 13:07:07 +0100 |
---|---|---|
committer | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2013-03-03 12:31:05 +0100 |
commit | a47f52bb962299244537bb0ca8b7c09ecf829785 (patch) | |
tree | 4a727f295e8143f72d3a3a8f5a5f68b942ce79cb /ext/eglgles | |
parent | 0a5ff713e709f41a54e6ed844849c33f8274d7a0 (diff) | |
download | gstreamer-plugins-bad-a47f52bb962299244537bb0ca8b7c09ecf829785.tar.gz |
egl: Mark memory as not mappable if it isn't
Diffstat (limited to 'ext/eglgles')
-rw-r--r-- | ext/eglgles/gsteglglessink.c | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/ext/eglgles/gsteglglessink.c b/ext/eglgles/gsteglglessink.c index 77b419cd3..74f535fa0 100644 --- a/ext/eglgles/gsteglglessink.c +++ b/ext/eglgles/gsteglglessink.c @@ -1540,7 +1540,8 @@ gst_eglglessink_init_egl_display (GstEglGlesSink * eglglessink) #ifdef USE_EGL_RPI /* See https://github.com/raspberrypi/firmware/issues/99 */ - if (!eglMakeCurrent ((EGLDisplay) 1, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT)) { + if (!eglMakeCurrent ((EGLDisplay) 1, EGL_NO_SURFACE, EGL_NO_SURFACE, + EGL_NO_CONTEXT)) { got_egl_error ("eglMakeCurrent"); GST_ERROR_OBJECT (eglglessink, "Couldn't unbind context"); return FALSE; @@ -3048,8 +3049,9 @@ gst_eglglessink_allocate_eglimage (GstEglGlesSink * eglglessink, mem[0] = gst_egl_image_allocator_wrap (GST_EGL_IMAGE_BUFFER_POOL (eglglessink->pool)->allocator, eglglessink->eglglesctx.display, - image, GST_EGL_IMAGE_MEMORY_TYPE_RGB, size, data, - (GDestroyNotify) gst_egl_gles_image_data_free); + image, GST_EGL_IMAGE_MEMORY_TYPE_RGB, + (gst_egl_image_memory_can_map ()? 0 : GST_MEMORY_FLAG_NOT_MAPPABLE), + size, data, (GDestroyNotify) gst_egl_gles_image_data_free); n_mem = 1; } break; @@ -3111,8 +3113,9 @@ gst_eglglessink_allocate_eglimage (GstEglGlesSink * eglglessink, mem[0] = gst_egl_image_allocator_wrap (GST_EGL_IMAGE_BUFFER_POOL (eglglessink->pool)->allocator, eglglessink->eglglesctx.display, - image, GST_EGL_IMAGE_MEMORY_TYPE_RGB, size, data, - (GDestroyNotify) gst_egl_gles_image_data_free); + image, GST_EGL_IMAGE_MEMORY_TYPE_RGB, + (gst_egl_image_memory_can_map ()? 0 : GST_MEMORY_FLAG_NOT_MAPPABLE), + size, data, (GDestroyNotify) gst_egl_gles_image_data_free); n_mem = 1; } break; @@ -3203,7 +3206,9 @@ gst_eglglessink_allocate_eglimage (GstEglGlesSink * eglglessink, image, (i == 0 ? GST_EGL_IMAGE_MEMORY_TYPE_LUMINANCE : - GST_EGL_IMAGE_MEMORY_TYPE_LUMINANCE_ALPHA), size[i], data, + GST_EGL_IMAGE_MEMORY_TYPE_LUMINANCE_ALPHA), + (gst_egl_image_memory_can_map ()? 0 : + GST_MEMORY_FLAG_NOT_MAPPABLE), size[i], data, (GDestroyNotify) gst_egl_gles_image_data_free); } @@ -3303,7 +3308,9 @@ gst_eglglessink_allocate_eglimage (GstEglGlesSink * eglglessink, mem[i] = gst_egl_image_allocator_wrap (GST_EGL_IMAGE_BUFFER_POOL (eglglessink->pool)->allocator, eglglessink->eglglesctx.display, - image, GST_EGL_IMAGE_MEMORY_TYPE_LUMINANCE, size[i], data, + image, GST_EGL_IMAGE_MEMORY_TYPE_LUMINANCE, + (gst_egl_image_memory_can_map ()? 0 : + GST_MEMORY_FLAG_NOT_MAPPABLE), size[i], data, (GDestroyNotify) gst_egl_gles_image_data_free); } @@ -3375,8 +3382,10 @@ gst_eglglessink_allocate_eglimage (GstEglGlesSink * eglglessink, mem[0] = gst_egl_image_allocator_wrap (GST_EGL_IMAGE_BUFFER_POOL (eglglessink->pool)->allocator, eglglessink->eglglesctx.display, - image, GST_EGL_IMAGE_MEMORY_TYPE_RGBA, size, data, - (GDestroyNotify) gst_egl_gles_image_data_free); + image, GST_EGL_IMAGE_MEMORY_TYPE_RGBA, + (gst_egl_image_memory_can_map ()? 0 : GST_MEMORY_FLAG_NOT_MAPPABLE), + size, data, (GDestroyNotify) gst_egl_gles_image_data_free); + n_mem = 1; } break; |