[FFmpeg-trac] #9076(ffmpeg:new): Using the `--enable-extra-warnings' option will cause the compilation to fail.

FFmpeg trac at avcodec.org
Fri Jan 22 16:15:21 EET 2021


#9076: Using the `--enable-extra-warnings' option will cause the compilation to
fail.
-------------------------------------+-------------------------------------
             Reporter:  hongyi-zhao  |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:  ffmpeg       |                  Version:  git-
                                     |  master
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 On Ubuntu 20.10, I try to compile the latest git master version of ffmpeg
 according to the guidance given by the official website
 <https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu>.

 The configuration are listed as below:

 {{{

 $ ./configure --enable-gpl \
 --enable-nonfree \
 --enable-version3 \
 --enable-debug \
 --enable-ffplay \
 --enable-indev=sndio \
 --enable-outdev=sndio \
 --enable-fontconfig \
 --enable-frei0r \
 --enable-openssl \
 --enable-gmp \
 --enable-libgme \
 --enable-gray \
 --enable-libaom \
 --enable-libfribidi \
 --enable-libass \
 --enable-libvmaf \
 --enable-libfreetype \
 --enable-libmp3lame \
 --enable-libopencore-amrnb \
 --enable-libopencore-amrwb \
 --enable-libopenjpeg \
 --enable-librubberband \
 --enable-libsoxr \
 --enable-libspeex \
 --enable-libsrt \
 --enable-libvorbis \
 --enable-libopus \
 --enable-libtheora \
 --enable-libvidstab \
 --enable-libvo-amrwbenc \
 --enable-libvpx \
 --enable-libwebp \
 --enable-libx264 \
 --enable-libx265 \
 --enable-libxml2 \
 --enable-libdav1d \
 --enable-libxvid \
 --enable-libzvbi \
 --enable-libzimg \
 --enable-rpath \
 --enable-shared \
 --enable-avisynth \
 --enable-chromaprint \
 --enable-gcrypt \
 --enable-ladspa \
 --enable-libaribb24 \
 --enable-libbluray \
 --enable-libbs2b \
 --enable-libcaca \
 --enable-libcelt \
 --enable-libcdio \
 --enable-libcodec2 \
 --enable-libdc1394 \
 --enable-libfdk-aac \
 --enable-libflite \
 --enable-libfontconfig \
 --enable-libgsm \
 --enable-libiec61883 \
 --enable-libjack \
 --enable-libklvanc \
 --enable-liblensfun \
 --enable-libmodplug \
 --enable-libopenh264 \
 --enable-libopenmpt \
 --enable-libpulse \
 --enable-librabbitmq \
 --enable-librsvg \
 --enable-librtmp \
 --enable-libshine \
 --enable-libsnappy \
 --enable-libssh \
 --enable-libtesseract \
 --enable-libtwolame \
 --enable-libv4l2 \
 --enable-libxavs2 \
 --enable-libdavs2 \
 --enable-libxcb \
 --enable-libxcb-shm \
 --enable-libxcb-xfixes \
 --enable-libxcb-shape \
 --enable-libzmq \
 --enable-lv2 \
 --enable-libmysofa \
 --enable-openal \
 --enable-opencl \
 --enable-opengl \
 --enable-pocketsphinx \
 --enable-vulkan \
 --enable-libdrm \
 --enable-libmfx \
 --enable-pic \
 --enable-lto \
 --enable-hardcoded-tables \
 --enable-memory-poisoning \
 --enable-ftrapv \
 --enable-linux-perf \
 --enable-extra-warnings

 }}}


 With the above configuration, I will meet the following compilation
 errors:

 {{{
 CC      libavutil/hwcontext_vulkan.o
 In file included from libavutil/hwcontext_vulkan.c:40:
 libavutil/cuda_check.h: In function ‘ff_cuda_check’:
 libavutil/cuda_check.h:43:6: warning: ISO C forbids conversion of object
 pointer to function pointer type [-Wpedantic]
    43 |     ((cuda_check_GetErrorName *)cuGetErrorName_fn)(err,
 &err_name);
       |      ^
 libavutil/cuda_check.h:44:6: warning: ISO C forbids conversion of object
 pointer to function pointer type [-Wpedantic]
    44 |     ((cuda_check_GetErrorString *)cuGetErrorString_fn)(err,
 &err_string);
       |      ^
 libavutil/hwcontext_vulkan.c: In function ‘av_vkfmt_from_pixfmt’:
 libavutil/hwcontext_vulkan.c:214:38: warning: comparison of integer
 expressions of different signedness: ‘enum AVPixelFormat’ and ‘long
 unsigned int’ [-Wsign-compare]
   214 |     for (enum AVPixelFormat i = 0; i <
 FF_ARRAY_ELEMS(vk_pixfmt_map); i++)
       |                                      ^
 libavutil/hwcontext_vulkan.c: At top level:
 libavutil/hwcontext_vulkan.c:253:34: warning: ISO C restricts enumerator
 values to range of ‘int’ [-Wpedantic]
   253 |     EXT_NO_FLAG                = 1ULL << 63,
       |                                  ^~~~
 libavutil/hwcontext_vulkan.c:261:60: warning: ISO C forbids empty
 initializer braces [-Wpedantic]
   261 | static const VulkanOptExtension optional_instance_exts[] = {
       |                                                            ^
 libavutil/hwcontext_vulkan.c:261:33: error: zero or negative size array
 ‘optional_instance_exts’
   261 | static const VulkanOptExtension optional_instance_exts[] = {
       |                                 ^~~~~~~~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c: In function ‘vk_dbg_callback’:
 libavutil/hwcontext_vulkan.c:333:23: warning: comparison of integer
 expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘const
 unsigned int’} [-Wsign-compare]
   333 |     for (int i = 0; i < data->cmdBufLabelCount; i++)
       |                       ^
 libavutil/hwcontext_vulkan.c:317:65: warning: unused parameter
 ‘messageType’ [-Wunused-parameter]
   317 |                                 VkDebugUtilsMessageTypeFlagsEXT
 messageType,
       |
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
 libavutil/hwcontext_vulkan.c: In function ‘check_extensions’:
 libavutil/hwcontext_vulkan.c:397:27: warning: comparison of integer
 expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned
 int’} [-Wsign-compare]
   397 |         for (int j = 0; j < sup_ext_count; j++) {
       |                           ^
 libavutil/hwcontext_vulkan.c:414:27: warning: comparison of integer
 expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned
 int’} [-Wsign-compare]
   414 |         for (int j = 0; j < sup_ext_count; j++) {
       |                           ^
 libavutil/hwcontext_vulkan.c:435:31: warning: comparison of integer
 expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned
 int’} [-Wsign-compare]
   435 |             for (int j = 0; j < sup_ext_count; j++) {
       |                               ^
 libavutil/hwcontext_vulkan.c:462:21: warning: cast discards ‘const’
 qualifier from pointer target type [-Wcast-qual]
   462 |             av_free((void *)extension_names[i]);
       |                     ^
 libavutil/hwcontext_vulkan.c: In function ‘create_instance’:
 libavutil/hwcontext_vulkan.c:510:27: warning: comparison of integer
 expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned
 int’} [-Wsign-compare]
   510 |         for (int i = 0; i < inst_props.enabledExtensionCount; i++)
       |                           ^
 libavutil/hwcontext_vulkan.c:511:21: warning: cast discards ‘const’
 qualifier from pointer target type [-Wcast-qual]
   511 |             av_free((void
 *)inst_props.ppEnabledExtensionNames[i]);
       |                     ^
 libavutil/hwcontext_vulkan.c:512:17: warning: cast discards ‘const’
 qualifier from pointer target type [-Wcast-qual]
   512 |         av_free((void *)inst_props.ppEnabledExtensionNames);
       |                 ^
 libavutil/hwcontext_vulkan.c: In function ‘find_device’:
 libavutil/hwcontext_vulkan.c:603:23: warning: comparison of integer
 expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned
 int’} [-Wsign-compare]
   603 |     for (int i = 0; i < num; i++) {
       |                       ^
 libavutil/hwcontext_vulkan.c:616:27: warning: comparison of integer
 expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned
 int’} [-Wsign-compare]
   616 |         for (int i = 0; i < num; i++) {
       |                           ^
 libavutil/hwcontext_vulkan.c:627:27: warning: comparison of integer
 expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned
 int’} [-Wsign-compare]
   627 |         for (int i = 0; i < num; i++) {
       |                           ^
 libavutil/hwcontext_vulkan.c:639:27: warning: comparison of integer
 expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned
 int’} [-Wsign-compare]
   639 |         for (int i = 0; i < num; i++) {
       |                           ^
 libavutil/hwcontext_vulkan.c:651:27: warning: comparison of integer
 expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned
 int’} [-Wsign-compare]
   651 |         for (int i = 0; i < num; i++) {
       |                           ^
 libavutil/hwcontext_vulkan.c:662:27: warning: comparison of integer
 expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned
 int’} [-Wsign-compare]
   662 |         if (select->index < num) {
       |                           ^
 libavutil/hwcontext_vulkan.c: In function ‘search_queue_families’:
 libavutil/hwcontext_vulkan.c:690:35: warning: cast discards ‘const’
 qualifier from pointer target type [-Wcast-qual]
   690 |     VkDeviceQueueCreateInfo *pc = (VkDeviceQueueCreateInfo
 *)cd->pQueueCreateInfos;
       |                                   ^
 libavutil/hwcontext_vulkan.c:708:23: warning: comparison of integer
 expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned
 int’} [-Wsign-compare]
   708 |     for (int i = 0; i < num; i++) {
 \
       |                       ^
 libavutil/hwcontext_vulkan.c:716:5: note: in expansion of macro
 ‘SEARCH_FLAGS’
   716 |     SEARCH_FLAGS(flags & VK_QUEUE_GRAPHICS_BIT, graph_index)
       |     ^~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:708:23: warning: comparison of integer
 expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned
 int’} [-Wsign-compare]
   708 |     for (int i = 0; i < num; i++) {
 \
       |                       ^
 libavutil/hwcontext_vulkan.c:718:5: note: in expansion of macro
 ‘SEARCH_FLAGS’
   718 |     SEARCH_FLAGS((flags &  VK_QUEUE_COMPUTE_BIT) && (i !=
 graph_index),
       |     ^~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:708:23: warning: comparison of integer
 expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned
 int’} [-Wsign-compare]
   708 |     for (int i = 0; i < num; i++) {
 \
       |                       ^
 libavutil/hwcontext_vulkan.c:721:5: note: in expansion of macro
 ‘SEARCH_FLAGS’
   721 |     SEARCH_FLAGS((flags & VK_QUEUE_TRANSFER_BIT) && (i !=
 graph_index) &&
       |     ^~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:740:23: warning: comparison of integer
 expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned
 int’} [-Wsign-compare]
   740 |     for (int i = 0; i < qs[fidx].queueCount; i++)
 \
       |                       ^
 libavutil/hwcontext_vulkan.c:744:5: note: in expansion of macro
 ‘ADD_QUEUE’
   744 |     ADD_QUEUE(graph_index, 1, comp_index < 0, tx_index < 0 &&
 comp_index < 0)
       |     ^~~~~~~~~
 libavutil/hwcontext_vulkan.c:740:23: warning: comparison of integer
 expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned
 int’} [-Wsign-compare]
   740 |     for (int i = 0; i < qs[fidx].queueCount; i++)
 \
       |                       ^
 libavutil/hwcontext_vulkan.c:751:9: note: in expansion of macro
 ‘ADD_QUEUE’
   751 |         ADD_QUEUE(comp_index, 0, 1, tx_index < 0)
       |         ^~~~~~~~~
 libavutil/hwcontext_vulkan.c:740:23: warning: comparison of integer
 expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned
 int’} [-Wsign-compare]
   740 |     for (int i = 0; i < qs[fidx].queueCount; i++)
 \
       |                       ^
 libavutil/hwcontext_vulkan.c:758:9: note: in expansion of macro
 ‘ADD_QUEUE’
   758 |         ADD_QUEUE(tx_index, 0, 0, 1)
       |         ^~~~~~~~~
 libavutil/hwcontext_vulkan.c: In function ‘get_buf_exec_ctx’:
 libavutil/hwcontext_vulkan.c:868:60: warning: unused parameter ‘hwfc’
 [-Wunused-parameter]
   868 | static VkCommandBuffer get_buf_exec_ctx(AVHWFramesContext *hwfc,
 VulkanExecCtx *cmd)
       |                                         ~~~~~~~~~~~~~~~~~~~^~~~
 libavutil/hwcontext_vulkan.c: In function ‘unref_exec_ctx_deps’:
 libavutil/hwcontext_vulkan.c:873:52: warning: unused parameter ‘hwfc’
 [-Wunused-parameter]
   873 | static void unref_exec_ctx_deps(AVHWFramesContext *hwfc,
 VulkanExecCtx *cmd)
       |                                 ~~~~~~~~~~~~~~~~~~~^~~~
 libavutil/hwcontext_vulkan.c: In function ‘vulkan_device_free’:
 libavutil/hwcontext_vulkan.c:1006:17: warning: cast discards ‘const’
 qualifier from pointer target type [-Wcast-qual]
  1006 |         av_free((void *)hwctx->enabled_inst_extensions[i]);
       |                 ^
 libavutil/hwcontext_vulkan.c:1007:13: warning: cast discards ‘const’
 qualifier from pointer target type [-Wcast-qual]
  1007 |     av_free((void *)hwctx->enabled_inst_extensions);
       |             ^
 libavutil/hwcontext_vulkan.c:1010:17: warning: cast discards ‘const’
 qualifier from pointer target type [-Wcast-qual]
  1010 |         av_free((void *)hwctx->enabled_dev_extensions[i]);
       |                 ^
 libavutil/hwcontext_vulkan.c:1011:13: warning: cast discards ‘const’
 qualifier from pointer target type [-Wcast-qual]
  1011 |     av_free((void *)hwctx->enabled_dev_extensions);
       |             ^
 libavutil/hwcontext_vulkan.c: In function ‘vulkan_device_create_internal’:
 libavutil/hwcontext_vulkan.c:1064:17: warning: cast discards ‘const’
 qualifier from pointer target type [-Wcast-qual]
  1064 |         av_free((void *)queue_create_info[0].pQueuePriorities);
       |                 ^
 libavutil/hwcontext_vulkan.c:1065:17: warning: cast discards ‘const’
 qualifier from pointer target type [-Wcast-qual]
  1065 |         av_free((void *)queue_create_info[1].pQueuePriorities);
       |                 ^
 libavutil/hwcontext_vulkan.c:1066:17: warning: cast discards ‘const’
 qualifier from pointer target type [-Wcast-qual]
  1066 |         av_free((void *)queue_create_info[2].pQueuePriorities);
       |                 ^
 libavutil/hwcontext_vulkan.c:1073:13: warning: cast discards ‘const’
 qualifier from pointer target type [-Wcast-qual]
  1073 |     av_free((void *)queue_create_info[0].pQueuePriorities);
       |             ^
 libavutil/hwcontext_vulkan.c:1074:13: warning: cast discards ‘const’
 qualifier from pointer target type [-Wcast-qual]
  1074 |     av_free((void *)queue_create_info[1].pQueuePriorities);
       |             ^
 libavutil/hwcontext_vulkan.c:1075:13: warning: cast discards ‘const’
 qualifier from pointer target type [-Wcast-qual]
  1075 |     av_free((void *)queue_create_info[2].pQueuePriorities);
       |             ^
 libavutil/hwcontext_vulkan.c:1080:27: warning: comparison of integer
 expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned
 int’} [-Wsign-compare]
  1080 |         for (int i = 0; i < dev_info.enabledExtensionCount; i++)
       |                           ^
 libavutil/hwcontext_vulkan.c:1081:21: warning: cast discards ‘const’
 qualifier from pointer target type [-Wcast-qual]
  1081 |             av_free((void *)dev_info.ppEnabledExtensionNames[i]);
       |                     ^
 libavutil/hwcontext_vulkan.c:1082:17: warning: cast discards ‘const’
 qualifier from pointer target type [-Wcast-qual]
  1082 |         av_free((void *)dev_info.ppEnabledExtensionNames);
       |                 ^
 libavutil/hwcontext_vulkan.c:1016:66: warning: unused parameter ‘flags’
 [-Wunused-parameter]
  1016 |                                          AVDictionary *opts, int
 flags)
       |
 ~~~~^~~~~
 libavutil/hwcontext_vulkan.c: In function ‘vulkan_device_init’:
 libavutil/hwcontext_vulkan.c:1107:27: warning: comparison of integer
 expressions of different signedness: ‘int’ and ‘long unsigned int’
 [-Wsign-compare]
  1107 |         for (int j = 0; j < FF_ARRAY_ELEMS(optional_device_exts);
 j++) {
       |                           ^
 libavutil/hwcontext_vulkan.c:1143:7: warning: comparison of integer
 expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned
 int’} [-Wsign-compare]
  1143 | if (n >= queue_num) {
 \
       |       ^~
 libavutil/hwcontext_vulkan.c:1149:5: note: in expansion of macro
 ‘CHECK_QUEUE’
  1149 |     CHECK_QUEUE("graphics", hwctx->queue_family_index)
       |     ^~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:1143:7: warning: comparison of integer
 expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned
 int’} [-Wsign-compare]
  1143 | if (n >= queue_num) {
 \
       |       ^~
 libavutil/hwcontext_vulkan.c:1150:5: note: in expansion of macro
 ‘CHECK_QUEUE’
  1150 |     CHECK_QUEUE("upload",   hwctx->queue_family_tx_index)
       |     ^~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:1143:7: warning: comparison of integer
 expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned
 int’} [-Wsign-compare]
  1143 | if (n >= queue_num) {
 \
       |       ^~
 libavutil/hwcontext_vulkan.c:1151:5: note: in expansion of macro
 ‘CHECK_QUEUE’
  1151 |     CHECK_QUEUE("compute",  hwctx->queue_family_comp_index)
       |     ^~~~~~~~~~~
 In file included from libavutil/hwcontext_vulkan.c:40:
 libavutil/hwcontext_vulkan.c: In function ‘vulkan_device_derive’:
 libavutil/cuda_check.h:64:71: warning: ISO C forbids passing argument 2 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:1239:19: note: in expansion of macro
 ‘CHECK_CU’
  1239 |         int ret = CHECK_CU(cu->cuDeviceGetUuid((CUuuid
 *)&dev_select.uuid,
       |                   ^~~~~~~~
 libavutil/cuda_check.h:32:39: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |                                 ~~~~~~^~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:93: warning: ISO C forbids passing argument 3 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:1239:19: note: in expansion of macro
 ‘CHECK_CU’
  1239 |         int ret = CHECK_CU(cu->cuDeviceGetUuid((CUuuid
 *)&dev_select.uuid,
       |                   ^~~~~~~~
 libavutil/cuda_check.h:32:64: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |
 ~~~~~~^~~~~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c: In function ‘vulkan_frames_get_constraints’:
 libavutil/hwcontext_vulkan.c:1257:54: warning: unused parameter ‘hwconfig’
 [-Wunused-parameter]
  1257 |                                          const void *hwconfig,
       |                                          ~~~~~~~~~~~~^~~~~~~~
 libavutil/hwcontext_vulkan.c: In function ‘alloc_mem’:
 libavutil/hwcontext_vulkan.c:1319:23: warning: comparison of integer
 expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned
 int’} [-Wsign-compare]
  1319 |     for (int i = 0; i < p->mprops.memoryTypeCount; i++) {
       |                       ^
 In file included from libavutil/hwcontext_vulkan.c:40:
 libavutil/hwcontext_vulkan.c: In function ‘vulkan_free_internal’:
 libavutil/cuda_check.h:64:71: warning: ISO C forbids passing argument 2 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:1376:17: note: in expansion of macro
 ‘CHECK_CU’
  1376 |
 CHECK_CU(cu->cuDestroyExternalSemaphore(internal->cu_sem[i]));
       |                 ^~~~~~~~
 libavutil/cuda_check.h:32:39: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |                                 ~~~~~~^~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:93: warning: ISO C forbids passing argument 3 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:1376:17: note: in expansion of macro
 ‘CHECK_CU’
  1376 |
 CHECK_CU(cu->cuDestroyExternalSemaphore(internal->cu_sem[i]));
       |                 ^~~~~~~~
 libavutil/cuda_check.h:32:64: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |
 ~~~~~~^~~~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:71: warning: ISO C forbids passing argument 2 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:1378:17: note: in expansion of macro
 ‘CHECK_CU’
  1378 |
 CHECK_CU(cu->cuMipmappedArrayDestroy(internal->cu_mma[i]));
       |                 ^~~~~~~~
 libavutil/cuda_check.h:32:39: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |                                 ~~~~~~^~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:93: warning: ISO C forbids passing argument 3 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:1378:17: note: in expansion of macro
 ‘CHECK_CU’
  1378 |
 CHECK_CU(cu->cuMipmappedArrayDestroy(internal->cu_mma[i]));
       |                 ^~~~~~~~
 libavutil/cuda_check.h:32:64: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |
 ~~~~~~^~~~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:71: warning: ISO C forbids passing argument 2 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:1380:17: note: in expansion of macro
 ‘CHECK_CU’
  1380 |
 CHECK_CU(cu->cuDestroyExternalMemory(internal->ext_mem[i]));
       |                 ^~~~~~~~
 libavutil/cuda_check.h:32:39: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |                                 ~~~~~~^~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:93: warning: ISO C forbids passing argument 3 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:1380:17: note: in expansion of macro
 ‘CHECK_CU’
  1380 |
 CHECK_CU(cu->cuDestroyExternalMemory(internal->ext_mem[i]));
       |                 ^~~~~~~~
 libavutil/cuda_check.h:32:64: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |
 ~~~~~~^~~~~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c: In function ‘alloc_bind_mem’:
 libavutil/hwcontext_vulkan.c:1455:57: warning: cast discards ‘const’
 qualifier from pointer target type [-Wcast-qual]
  1455 |                              use_ded_mem ? &ded_alloc : (void
 *)ded_alloc.pNext,
       |                                                         ^
 libavutil/hwcontext_vulkan.c: In function ‘vulkan_pool_alloc’:
 libavutil/hwcontext_vulkan.c:1696:57: warning: unused parameter ‘size’
 [-Wunused-parameter]
  1696 | static AVBufferRef *vulkan_pool_alloc(void *opaque, int size)
       |                                                     ~~~~^~~~
 libavutil/hwcontext_vulkan.c: In function ‘vulkan_transfer_get_formats’:
 libavutil/hwcontext_vulkan.c:1830:72: warning: unused parameter ‘dir’
 [-Wunused-parameter]
  1830 |                                        enum
 AVHWFrameTransferDirection dir,
       |
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
 libavutil/hwcontext_vulkan.c: In function ‘drm_to_vulkan_fmt’:
 libavutil/hwcontext_vulkan.c:2005:23: warning: comparison of integer
 expressions of different signedness: ‘int’ and ‘long unsigned int’
 [-Wsign-compare]
  2005 |     for (int i = 0; i < FF_ARRAY_ELEMS(vulkan_drm_format_map);
 i++)
       |                       ^
 In file included from libavutil/hwcontext_vulkan.c:40:
 libavutil/hwcontext_vulkan.c: In function ‘vulkan_export_to_cuda’:
 libavutil/cuda_check.h:64:71: warning: ISO C forbids passing argument 2 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:2401:19: note: in expansion of macro
 ‘CHECK_CU’
  2401 |             ret =
 CHECK_CU(cu->cuImportExternalMemory(&dst_int->ext_mem[i], &ext_desc));
       |                   ^~~~~~~~
 libavutil/cuda_check.h:32:39: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |                                 ~~~~~~^~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:93: warning: ISO C forbids passing argument 3 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:2401:19: note: in expansion of macro
 ‘CHECK_CU’
  2401 |             ret =
 CHECK_CU(cu->cuImportExternalMemory(&dst_int->ext_mem[i], &ext_desc));
       |                   ^~~~~~~~
 libavutil/cuda_check.h:32:64: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |
 ~~~~~~^~~~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:71: warning: ISO C forbids passing argument 2 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:2407:19: note: in expansion of macro
 ‘CHECK_CU’
  2407 |             ret =
 CHECK_CU(cu->cuExternalMemoryGetMappedMipmappedArray(&dst_int->cu_mma[i],
       |                   ^~~~~~~~
 libavutil/cuda_check.h:32:39: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |                                 ~~~~~~^~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:93: warning: ISO C forbids passing argument 3 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:2407:19: note: in expansion of macro
 ‘CHECK_CU’
  2407 |             ret =
 CHECK_CU(cu->cuExternalMemoryGetMappedMipmappedArray(&dst_int->cu_mma[i],
       |                   ^~~~~~~~
 libavutil/cuda_check.h:32:64: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |
 ~~~~~~^~~~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:71: warning: ISO C forbids passing argument 2 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:2415:19: note: in expansion of macro
 ‘CHECK_CU’
  2415 |             ret =
 CHECK_CU(cu->cuMipmappedArrayGetLevel(&dst_int->cu_array[i],
       |                   ^~~~~~~~
 libavutil/cuda_check.h:32:39: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |                                 ~~~~~~^~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:93: warning: ISO C forbids passing argument 3 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:2415:19: note: in expansion of macro
 ‘CHECK_CU’
  2415 |             ret =
 CHECK_CU(cu->cuMipmappedArrayGetLevel(&dst_int->cu_array[i],
       |                   ^~~~~~~~
 libavutil/cuda_check.h:32:64: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |
 ~~~~~~^~~~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:71: warning: ISO C forbids passing argument 2 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:2431:19: note: in expansion of macro
 ‘CHECK_CU’
  2431 |             ret =
 CHECK_CU(cu->cuImportExternalSemaphore(&dst_int->cu_sem[i],
       |                   ^~~~~~~~
 libavutil/cuda_check.h:32:39: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |                                 ~~~~~~^~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:93: warning: ISO C forbids passing argument 3 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:2431:19: note: in expansion of macro
 ‘CHECK_CU’
  2431 |             ret =
 CHECK_CU(cu->cuImportExternalSemaphore(&dst_int->cu_sem[i],
       |                   ^~~~~~~~
 libavutil/cuda_check.h:32:64: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |
 ~~~~~~^~~~~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c: In function
 ‘vulkan_transfer_data_from_cuda’:
 libavutil/cuda_check.h:64:71: warning: ISO C forbids passing argument 2 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:2465:11: note: in expansion of macro
 ‘CHECK_CU’
  2465 |     ret = CHECK_CU(cu->cuCtxPushCurrent(cuda_dev->cuda_ctx));
       |           ^~~~~~~~
 libavutil/cuda_check.h:32:39: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |                                 ~~~~~~^~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:93: warning: ISO C forbids passing argument 3 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:2465:11: note: in expansion of macro
 ‘CHECK_CU’
  2465 |     ret = CHECK_CU(cu->cuCtxPushCurrent(cuda_dev->cuda_ctx));
       |           ^~~~~~~~
 libavutil/cuda_check.h:32:64: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |
 ~~~~~~^~~~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:71: warning: ISO C forbids passing argument 2 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:2473:9: note: in expansion of macro
 ‘CHECK_CU’
  2473 |         CHECK_CU(cu->cuCtxPopCurrent(&dummy));
       |         ^~~~~~~~
 libavutil/cuda_check.h:32:39: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |                                 ~~~~~~^~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:93: warning: ISO C forbids passing argument 3 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:2473:9: note: in expansion of macro
 ‘CHECK_CU’
  2473 |         CHECK_CU(cu->cuCtxPopCurrent(&dummy));
       |         ^~~~~~~~
 libavutil/cuda_check.h:32:64: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |
 ~~~~~~^~~~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:71: warning: ISO C forbids passing argument 2 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:2479:11: note: in expansion of macro
 ‘CHECK_CU’
  2479 |     ret =
 CHECK_CU(cu->cuWaitExternalSemaphoresAsync(dst_int->cu_sem, s_w_par,
       |           ^~~~~~~~
 libavutil/cuda_check.h:32:39: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |                                 ~~~~~~^~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:93: warning: ISO C forbids passing argument 3 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:2479:11: note: in expansion of macro
 ‘CHECK_CU’
  2479 |     ret =
 CHECK_CU(cu->cuWaitExternalSemaphoresAsync(dst_int->cu_sem, s_w_par,
       |           ^~~~~~~~
 libavutil/cuda_check.h:32:64: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |
 ~~~~~~^~~~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:71: warning: ISO C forbids passing argument 2 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:2503:15: note: in expansion of macro
 ‘CHECK_CU’
  2503 |         ret = CHECK_CU(cu->cuMemcpy2DAsync(&cpy,
 cuda_dev->stream));
       |               ^~~~~~~~
 libavutil/cuda_check.h:32:39: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |                                 ~~~~~~^~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:93: warning: ISO C forbids passing argument 3 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:2503:15: note: in expansion of macro
 ‘CHECK_CU’
  2503 |         ret = CHECK_CU(cu->cuMemcpy2DAsync(&cpy,
 cuda_dev->stream));
       |               ^~~~~~~~
 libavutil/cuda_check.h:32:64: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |
 ~~~~~~^~~~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:71: warning: ISO C forbids passing argument 2 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:2510:11: note: in expansion of macro
 ‘CHECK_CU’
  2510 |     ret =
 CHECK_CU(cu->cuSignalExternalSemaphoresAsync(dst_int->cu_sem, s_s_par,
       |           ^~~~~~~~
 libavutil/cuda_check.h:32:39: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |                                 ~~~~~~^~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:93: warning: ISO C forbids passing argument 3 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:2510:11: note: in expansion of macro
 ‘CHECK_CU’
  2510 |     ret =
 CHECK_CU(cu->cuSignalExternalSemaphoresAsync(dst_int->cu_sem, s_s_par,
       |           ^~~~~~~~
 libavutil/cuda_check.h:32:64: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |
 ~~~~~~^~~~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:71: warning: ISO C forbids passing argument 2 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:2517:5: note: in expansion of macro
 ‘CHECK_CU’
  2517 |     CHECK_CU(cu->cuCtxPopCurrent(&dummy));
       |     ^~~~~~~~
 libavutil/cuda_check.h:32:39: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |                                 ~~~~~~^~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:93: warning: ISO C forbids passing argument 3 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:2517:5: note: in expansion of macro
 ‘CHECK_CU’
  2517 |     CHECK_CU(cu->cuCtxPopCurrent(&dummy));
       |     ^~~~~~~~
 libavutil/cuda_check.h:32:64: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |
 ~~~~~~^~~~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:71: warning: ISO C forbids passing argument 2 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:2524:5: note: in expansion of macro
 ‘CHECK_CU’
  2524 |     CHECK_CU(cu->cuCtxPopCurrent(&dummy));
       |     ^~~~~~~~
 libavutil/cuda_check.h:32:39: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |                                 ~~~~~~^~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:93: warning: ISO C forbids passing argument 3 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:2524:5: note: in expansion of macro
 ‘CHECK_CU’
  2524 |     CHECK_CU(cu->cuCtxPopCurrent(&dummy));
       |     ^~~~~~~~
 libavutil/cuda_check.h:32:64: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |
 ~~~~~~^~~~~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c: In function ‘vulkan_unmap_to_drm’:
 libavutil/hwcontext_vulkan.c:2559:52: warning: unused parameter ‘hwfc’
 [-Wunused-parameter]
  2559 | static void vulkan_unmap_to_drm(AVHWFramesContext *hwfc,
 HWMapDescriptor *hwmap)
       |                                 ~~~~~~~~~~~~~~~~~~~^~~~
 libavutil/hwcontext_vulkan.c: In function ‘vulkan_fmt_to_drm’:
 libavutil/hwcontext_vulkan.c:2571:23: warning: comparison of integer
 expressions of different signedness: ‘int’ and ‘long unsigned int’
 [-Wsign-compare]
  2571 |     for (int i = 0; i < FF_ARRAY_ELEMS(vulkan_drm_format_map);
 i++)
       |                       ^
 libavutil/hwcontext_vulkan.c: In function ‘vulkan_map_to_drm’:
 libavutil/hwcontext_vulkan.c:2578:54: warning: unused parameter ‘flags’
 [-Wunused-parameter]
  2578 |                              const AVFrame *src, int flags)
       |                                                  ~~~~^~~~~
 libavutil/hwcontext_vulkan.c: In function ‘create_buf’:
 libavutil/hwcontext_vulkan.c:2818:48: warning: cast discards ‘const’
 qualifier from pointer target type [-Wcast-qual]
  2818 |                     use_ded_mem ? &ded_alloc : (void
 *)ded_alloc.pNext,
       |                                                ^
 libavutil/hwcontext_vulkan.c: In function ‘vulkan_transfer_data’:
 libavutil/hwcontext_vulkan.c:3102:29: warning: cast discards ‘const’
 qualifier from pointer target type [-Wcast-qual]
  3102 |         err = av_frame_copy((AVFrame *)(from ? swf : map), from ?
 map : swf);
       |                             ^
 In file included from libavutil/hwcontext_vulkan.c:40:
 libavutil/hwcontext_vulkan.c: In function ‘vulkan_transfer_data_to_cuda’:
 libavutil/cuda_check.h:64:71: warning: ISO C forbids passing argument 2 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:3258:11: note: in expansion of macro
 ‘CHECK_CU’
  3258 |     ret = CHECK_CU(cu->cuCtxPushCurrent(cuda_dev->cuda_ctx));
       |           ^~~~~~~~
 libavutil/cuda_check.h:32:39: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |                                 ~~~~~~^~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:93: warning: ISO C forbids passing argument 3 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:3258:11: note: in expansion of macro
 ‘CHECK_CU’
  3258 |     ret = CHECK_CU(cu->cuCtxPushCurrent(cuda_dev->cuda_ctx));
       |           ^~~~~~~~
 libavutil/cuda_check.h:32:64: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |
 ~~~~~~^~~~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:71: warning: ISO C forbids passing argument 2 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:3266:9: note: in expansion of macro
 ‘CHECK_CU’
  3266 |         CHECK_CU(cu->cuCtxPopCurrent(&dummy));
       |         ^~~~~~~~
 libavutil/cuda_check.h:32:39: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |                                 ~~~~~~^~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:93: warning: ISO C forbids passing argument 3 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:3266:9: note: in expansion of macro
 ‘CHECK_CU’
  3266 |         CHECK_CU(cu->cuCtxPopCurrent(&dummy));
       |         ^~~~~~~~
 libavutil/cuda_check.h:32:64: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |
 ~~~~~~^~~~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:71: warning: ISO C forbids passing argument 2 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:3272:11: note: in expansion of macro
 ‘CHECK_CU’
  3272 |     ret =
 CHECK_CU(cu->cuWaitExternalSemaphoresAsync(dst_int->cu_sem, s_w_par,
       |           ^~~~~~~~
 libavutil/cuda_check.h:32:39: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |                                 ~~~~~~^~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:93: warning: ISO C forbids passing argument 3 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:3272:11: note: in expansion of macro
 ‘CHECK_CU’
  3272 |     ret =
 CHECK_CU(cu->cuWaitExternalSemaphoresAsync(dst_int->cu_sem, s_w_par,
       |           ^~~~~~~~
 libavutil/cuda_check.h:32:64: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |
 ~~~~~~^~~~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:71: warning: ISO C forbids passing argument 2 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:3296:15: note: in expansion of macro
 ‘CHECK_CU’
  3296 |         ret = CHECK_CU(cu->cuMemcpy2DAsync(&cpy,
 cuda_dev->stream));
       |               ^~~~~~~~
 libavutil/cuda_check.h:32:39: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |                                 ~~~~~~^~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:93: warning: ISO C forbids passing argument 3 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:3296:15: note: in expansion of macro
 ‘CHECK_CU’
  3296 |         ret = CHECK_CU(cu->cuMemcpy2DAsync(&cpy,
 cuda_dev->stream));
       |               ^~~~~~~~
 libavutil/cuda_check.h:32:64: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |
 ~~~~~~^~~~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:71: warning: ISO C forbids passing argument 2 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:3303:11: note: in expansion of macro
 ‘CHECK_CU’
  3303 |     ret =
 CHECK_CU(cu->cuSignalExternalSemaphoresAsync(dst_int->cu_sem, s_s_par,
       |           ^~~~~~~~
 libavutil/cuda_check.h:32:39: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |                                 ~~~~~~^~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:93: warning: ISO C forbids passing argument 3 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:3303:11: note: in expansion of macro
 ‘CHECK_CU’
  3303 |     ret =
 CHECK_CU(cu->cuSignalExternalSemaphoresAsync(dst_int->cu_sem, s_s_par,
       |           ^~~~~~~~
 libavutil/cuda_check.h:32:64: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |
 ~~~~~~^~~~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:71: warning: ISO C forbids passing argument 2 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:3310:5: note: in expansion of macro
 ‘CHECK_CU’
  3310 |     CHECK_CU(cu->cuCtxPopCurrent(&dummy));
       |     ^~~~~~~~
 libavutil/cuda_check.h:32:39: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |                                 ~~~~~~^~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:93: warning: ISO C forbids passing argument 3 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:3310:5: note: in expansion of macro
 ‘CHECK_CU’
  3310 |     CHECK_CU(cu->cuCtxPopCurrent(&dummy));
       |     ^~~~~~~~
 libavutil/cuda_check.h:32:64: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |
 ~~~~~~^~~~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:71: warning: ISO C forbids passing argument 2 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:3317:5: note: in expansion of macro
 ‘CHECK_CU’
  3317 |     CHECK_CU(cu->cuCtxPopCurrent(&dummy));
       |     ^~~~~~~~
 libavutil/cuda_check.h:32:39: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |                                 ~~~~~~^~~~~~~~~~~~~~~~~
 libavutil/cuda_check.h:64:93: warning: ISO C forbids passing argument 3 of
 ‘ff_cuda_check’ between function pointer and ‘void *’ [-Wpedantic]
    64 | #define FF_CUDA_CHECK_DL(avclass, cudl, x) ff_cuda_check(avclass,
 cudl->cuGetErrorName, cudl->cuGetErrorString, (x), #x)
 libavutil/hwcontext_vulkan.c:41:21: note: in expansion of macro
 ‘FF_CUDA_CHECK_DL’
    41 | #define CHECK_CU(x) FF_CUDA_CHECK_DL(cuda_cu, cu, x)
       |                     ^~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c:3317:5: note: in expansion of macro
 ‘CHECK_CU’
  3317 |     CHECK_CU(cu->cuCtxPopCurrent(&dummy));
       |     ^~~~~~~~
 libavutil/cuda_check.h:32:64: note: expected ‘void *’ but argument is of
 type ‘CUresult (*)(CUresult,  const char **)’ {aka ‘enum cudaError_enum
 (*)(enum cudaError_enum,  const char **)’}
    32 |                                 void *cuGetErrorName_fn, void
 *cuGetErrorString_fn,
       |
 ~~~~~~^~~~~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c: In function ‘vulkan_frames_derive_to’:
 libavutil/hwcontext_vulkan.c:3346:55: warning: unused parameter ‘src_fc’
 [-Wunused-parameter]
  3346 |                                    AVHWFramesContext *src_fc, int
 flags)
       |                                    ~~~~~~~~~~~~~~~~~~~^~~~~~
 libavutil/hwcontext_vulkan.c:3346:67: warning: unused parameter ‘flags’
 [-Wunused-parameter]
  3346 |                                    AVHWFramesContext *src_fc, int
 flags)
       |
 ~~~~^~~~~
 libavutil/hwcontext_vulkan.c: At top level:
 libavutil/hwcontext_vulkan.c:3386:1: warning: missing initializer for
 field ‘frames_derive_from’ of ‘HWContextType’ [-Wmissing-field-
 initializers]
  3386 | };
       | ^
 In file included from libavutil/hwcontext_vulkan.c:24:
 libavutil/hwcontext_internal.h:99:24: note: ‘frames_derive_from’ declared
 here
    99 |     int              (*frames_derive_from)(AVHWFramesContext
 *dst_ctx,
       |                        ^~~~~~~~~~~~~~~~~~
 libavutil/hwcontext_vulkan.c: In function ‘vulkan_map_from’:
 libavutil/hwcontext_vulkan.c:2713:12: warning: this statement may fall
 through [-Wimplicit-fallthrough=]
  2713 |         if (p->extensions & EXT_EXTERNAL_DMABUF_MEMORY)
       |            ^
 libavutil/hwcontext_vulkan.c:2716:5: note: here
  2716 |     case AV_PIX_FMT_VAAPI:
       |     ^~~~
 libavutil/hwcontext_vulkan.c:2717:12: warning: this statement may fall
 through [-Wimplicit-fallthrough=]
  2717 |         if (p->extensions & EXT_EXTERNAL_DMABUF_MEMORY)
       |            ^
 libavutil/hwcontext_vulkan.c:2721:5: note: here
  2721 |     default:
       |     ^~~~~~~
 libavutil/hwcontext_vulkan.c: In function ‘vulkan_map_to’:
 libavutil/hwcontext_vulkan.c:2541:12: warning: this statement may fall
 through [-Wimplicit-fallthrough=]
  2541 |         if (p->extensions & EXT_EXTERNAL_DMABUF_MEMORY)
       |            ^
 libavutil/hwcontext_vulkan.c:2544:5: note: here
  2544 |     case AV_PIX_FMT_DRM_PRIME:
       |     ^~~~
 libavutil/hwcontext_vulkan.c:2545:12: warning: this statement may fall
 through [-Wimplicit-fallthrough=]
  2545 |         if (p->extensions & EXT_EXTERNAL_DMABUF_MEMORY)
       |            ^
 libavutil/hwcontext_vulkan.c:2548:5: note: here
  2548 |     default:
       |     ^~~~~~~
 libavutil/hwcontext_vulkan.c: In function ‘vulkan_transfer_data_from’:
 libavutil/hwcontext_vulkan.c:3333:12: warning: this statement may fall
 through [-Wimplicit-fallthrough=]
  3333 |         if ((p->extensions & EXT_EXTERNAL_FD_MEMORY) &&
       |            ^
 libavutil/hwcontext_vulkan.c:3337:5: note: here
  3337 |     default:
       |     ^~~~~~~
 libavutil/hwcontext_vulkan.c: In function ‘vulkan_transfer_data_to’:
 libavutil/hwcontext_vulkan.c:3226:12: warning: this statement may fall
 through [-Wimplicit-fallthrough=]
  3226 |         if ((p->extensions & EXT_EXTERNAL_FD_MEMORY) &&
       |            ^
 libavutil/hwcontext_vulkan.c:3230:5: note: here
  3230 |     default:
       |     ^~~~~~~
 make: *** [ffbuild/common.mak:67: libavutil/hwcontext_vulkan.o] Error 1

 }}}

 But if I remove the `--enable-extra-warnings' configuration option, the
 problem will be fixed. Any hints for this problem will be highly
 appreciated.

 Regards,
 HY

--
Ticket URL: <https://trac.ffmpeg.org/ticket/9076>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list