vaapivideomemory: add explanation about the call 'dup (dmabuf_fd)'
authorJulien Isorce <j.isorce@samsung.com>
Wed, 19 Oct 2016 14:39:54 +0000 (15:39 +0100)
committerVíctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
Wed, 19 Oct 2016 17:45:08 +0000 (19:45 +0200)
In short GstFdMemory is configured to call close when using
GstDmabufMemory.

https://bugzilla.gnome.org/show_bug.cgi?id=755072

gst/vaapi/gstvaapivideomemory.c

index 3b2b4d8..7545149 100644 (file)
@@ -825,6 +825,9 @@ gst_vaapi_dmabuf_memory_new (GstAllocator * allocator, GstVaapiVideoMeta * meta)
   gst_vaapi_video_meta_set_surface_proxy (meta, proxy);
   gst_vaapi_surface_proxy_unref (proxy);
 
+  /* Need dup because GstDmabufMemory creates the GstFdMemory with flag
+   * GST_FD_MEMORY_FLAG_NONE. So when being freed it calls close on the fd
+   * because GST_FD_MEMORY_FLAG_DONT_CLOSE is not set. */
   dmabuf_fd = gst_vaapi_buffer_proxy_get_handle (dmabuf_proxy);
   if (dmabuf_fd < 0 || (dmabuf_fd = dup (dmabuf_fd)) < 0)
     goto error_create_dmabuf_handle;