[FFmpeg-cvslog] hwcontext_vulkan: do not dup() semaphore FDs for CUDA

Lynne git at videolan.org
Sat Nov 13 01:34:01 EET 2021


ffmpeg | branch: master | Lynne <dev at lynne.ee> | Sat Nov 13 00:14:10 2021 +0100| [015b487777cc3bd540f7d77e7ce902a3ab4a7239] | committer: Lynne

hwcontext_vulkan: do not dup() semaphore FDs for CUDA

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=015b487777cc3bd540f7d77e7ce902a3ab4a7239
---

 libavutil/hwcontext_vulkan.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c
index 4ab8a3f6ad..0dbbb9d12f 100644
--- a/libavutil/hwcontext_vulkan.c
+++ b/libavutil/hwcontext_vulkan.c
@@ -123,7 +123,6 @@ typedef struct AVVkFrameInternal {
     CUmipmappedArray cu_mma[AV_NUM_DATA_POINTERS];
     CUarray cu_array[AV_NUM_DATA_POINTERS];
     CUexternalSemaphore cu_sem[AV_NUM_DATA_POINTERS];
-    int exp_sem[AV_NUM_DATA_POINTERS];
 #endif
 } AVVkFrameInternal;
 
@@ -1572,7 +1571,6 @@ static void vulkan_free_internal(AVVkFrameInternal *internal)
                 CHECK_CU(cu->cuMipmappedArrayDestroy(internal->cu_mma[i]));
             if (internal->ext_mem[i])
                 CHECK_CU(cu->cuDestroyExternalMemory(internal->ext_mem[i]));
-            close(internal->exp_sem[i]);
         }
 
         av_buffer_unref(&internal->cuda_fc_ref);
@@ -2698,7 +2696,7 @@ static int vulkan_export_to_cuda(AVHWFramesContext *hwfc,
             }
 
             ret = vk->GetSemaphoreFdKHR(hwctx->act_dev, &sem_export,
-                                        &dst_int->exp_sem[i]);
+                                        &ext_sem_desc.handle.fd);
             if (ret != VK_SUCCESS) {
                 av_log(ctx, AV_LOG_ERROR, "Failed to export semaphore: %s\n",
                        vk_ret2str(ret));
@@ -2706,8 +2704,6 @@ static int vulkan_export_to_cuda(AVHWFramesContext *hwfc,
                 goto fail;
             }
 
-            ext_sem_desc.handle.fd = dup(dst_int->exp_sem[i]);
-
             ret = CHECK_CU(cu->cuImportExternalSemaphore(&dst_int->cu_sem[i],
                                                          &ext_sem_desc));
             if (ret < 0) {



More information about the ffmpeg-cvslog mailing list