if (gst_egl_image_export_dmabuf (image, &fd, &stride, &offset)) {
GstGLDownloadElement *download = transfer->download;
struct DmabufInfo *info;
- gsize maxsize;
+ gsize size;
- gst_memory_get_sizes (GST_MEMORY_CAST (transfer->glmem), NULL, &maxsize);
+ size =
+ gst_gl_memory_get_texture_height (transfer->glmem) * stride + offset;
info = g_new0 (struct DmabufInfo, 1);
info->dmabuf =
- gst_dmabuf_allocator_alloc (download->dmabuf_allocator, fd, maxsize);
+ gst_dmabuf_allocator_alloc (download->dmabuf_allocator, fd, size);
info->stride = stride;
info->offset = offset;
if (num_planes > 1)
return FALSE;
- GST_DEBUG_OBJECT (image->context, "Export DMABuf with fourcc %"
- GST_FOURCC_FORMAT " and modififers %" G_GUINT64_FORMAT,
- GST_FOURCC_ARGS (fourcc), modifier);
-
/* FIXME We don't support modifiers */
if (modifier != DRM_FORMAT_MOD_LINEAR)
return FALSE;
&egl_stride, &egl_offset))
return FALSE;
+ GST_DEBUG_OBJECT (image->context, "Export DMABuf with fourcc %"
+ GST_FOURCC_FORMAT ", modififers %" G_GUINT64_FORMAT
+ ", stride %i and offset %i", GST_FOURCC_ARGS (fourcc), modifier,
+ egl_stride, egl_offset);
+
*fd = egl_fd;
*stride = egl_stride;
*offset = egl_offset;