v4l2allocator: Don't dup imported DMABuf FD
authorNicolas Dufresne <nicolas.dufresne@collabora.com>
Fri, 19 Oct 2018 21:14:15 +0000 (17:14 -0400)
committerNicolas Dufresne <nicolas.dufresne@collabora.com>
Wed, 24 Oct 2018 10:55:32 +0000 (11:55 +0100)
There is no specific needs to duplicate the FD. Unlike the exportation,
we don't depend on code that will call close. This will make debugging
easyer since the traced FD will match the exporter.

sys/v4l2/gstv4l2allocator.c

index 19c78ba478ebf7f9d9feb1dd091487bee80ed8b1..5dcfd024f8b1dd71a98dfee0af9635910bcf3196 100644 (file)
@@ -936,9 +936,6 @@ gst_v4l2_allocator_clear_dmabufin (GstV4l2Allocator * allocator,
     GST_LOG_OBJECT (allocator, "[%i] clearing DMABUF import, fd %i plane %d",
         group->buffer.index, mem->dmafd, i);
 
-    if (mem->dmafd >= 0)
-      close (mem->dmafd);
-
     /* Update memory */
     mem->mem.maxsize = 0;
     mem->mem.offset = 0;
@@ -1078,8 +1075,7 @@ gst_v4l2_allocator_import_dmabuf (GstV4l2Allocator * allocator,
 
     size = gst_memory_get_sizes (dma_mem[i], &offset, &maxsize);
 
-    if ((dmafd = dup (gst_dmabuf_memory_get_fd (dma_mem[i]))) < 0)
-      goto dup_failed;
+    dmafd = gst_dmabuf_memory_get_fd (dma_mem[i]);
 
     GST_LOG_OBJECT (allocator, "[%i] imported DMABUF as fd %i plane %d",
         group->buffer.index, dmafd, i);
@@ -1124,12 +1120,6 @@ not_dmabuf:
     GST_ERROR_OBJECT (allocator, "Memory %i is not of DMABUF", i);
     return FALSE;
   }
-dup_failed:
-  {
-    GST_ERROR_OBJECT (allocator, "Failed to dup DMABUF descriptor: %s",
-        g_strerror (errno));
-    return FALSE;
-  }
 }
 
 gboolean