Example #1
0
EGLImageKHR
gst_egl_image_get_image (GstEGLImage * image)
{
  g_return_val_if_fail (GST_IS_EGL_IMAGE (image), EGL_NO_IMAGE_KHR);

  return image->image;
}
Example #2
0
static GstGLMemoryEGL *
_gl_mem_egl_alloc (GstGLBaseMemoryAllocator * allocator,
                   GstGLVideoAllocationParams * params)
{
    guint alloc_flags = params->parent.alloc_flags;
    GstGLMemoryEGL *mem;

    g_return_val_if_fail (alloc_flags & GST_GL_ALLOCATION_PARAMS_ALLOC_FLAG_VIDEO,
                          NULL);
    g_return_val_if_fail ((alloc_flags &
                           GST_GL_ALLOCATION_PARAMS_ALLOC_FLAG_WRAP_SYSMEM) == 0, NULL);
    if (alloc_flags & GST_GL_ALLOCATION_PARAMS_ALLOC_FLAG_WRAP_GPU_HANDLE) {
        g_return_val_if_fail (GST_IS_EGL_IMAGE (params->parent.gl_handle), NULL);
    }

    mem = g_new0 (GstGLMemoryEGL, 1);
    if (alloc_flags & GST_GL_ALLOCATION_PARAMS_ALLOC_FLAG_WRAP_GPU_HANDLE) {
        if (params->target != GST_GL_TEXTURE_TARGET_2D) {
            g_free (mem);
            GST_CAT_ERROR (GST_CAT_GL_MEMORY, "GstGLMemoryEGL only supports wrapping "
                           "2D textures");
            return NULL;
        }
        mem->image = gst_egl_image_ref (params->parent.gl_handle);
    }

    gst_gl_memory_init (GST_GL_MEMORY_CAST (mem), GST_ALLOCATOR_CAST (allocator),
                        NULL, params->parent.context, params->target, params->tex_type,
                        params->parent.alloc_params, params->v_info, params->plane,
                        params->valign, params->parent.user_data, params->parent.notify);

    return mem;
}
Example #3
0
GstVideoGLTextureOrientation
gst_egl_image_get_orientation (GstEGLImage * image)
{
  g_return_val_if_fail (GST_IS_EGL_IMAGE (image),
      GST_VIDEO_GL_TEXTURE_ORIENTATION_X_NORMAL_Y_NORMAL);

  return image->orientation;
}