[FFmpeg-user] [FFmpeg-devel] make: *** [ffbuild/common.mak:67: libavfilter/vf_nnedi.o] Error 1

Hongyi Zhao hongyi.zhao at gmail.com
Fri Jan 22 15:13:18 EET 2021


On Wed, Jan 20, 2021 at 12:21 PM Hongyi Zhao <hongyi.zhao at gmail.com> wrote:
>
> On Wed, Jan 20, 2021 at 11:32 AM James Almer <jamrial at gmail.com> wrote:
> >
> > On 1/20/2021 12:29 AM, Hongyi Zhao wrote:
> > > On Wed, Jan 20, 2021 at 10:52 AM James Almer <jamrial at gmail.com> wrote:
> > >>
> > >> On 1/19/2021 11:24 PM, Hongyi Zhao wrote:
> > >>> On Wed, Jan 20, 2021 at 12:19 AM Derek Buitenhuis
> > >>> <derek.buitenhuis at gmail.com> wrote:
> > >>>>
> > >>>> On 19/01/2021 09:21, Hongyi Zhao wrote:
> > >>>>> libavfilter/vf_nnedi.c: At top level:
> > >>>>> libavfilter/vf_nnedi.c:819:13: error: conflicting types for ‘read’
> > >>>>>     819 | static void read(float *dst, size_t n, const float **data)
> > >>>>
> > >>>> I thought this might happen when I saw it go in.
> > >>>>
> > >>>> We shouldn't be naming functions things that clash with standard POSIX
> > >>>> or stdlib functions like 'read'.
> > >>>
> > >>> I didn't make any changes to the source code, so how to fix the problem?
> > >>>
> > >>> Best,
> > >>
> > >> It was already fixed in f3f5ba0bf8, so simply pull the latest changes.
> > >
> > > But I still meet the following problem:
> > >
> > > make: *** [ffbuild/common.mak:67: libavutil/hwcontext_vulkan.o] Error 1
> > >
> > > Best regards,
> >
> > That line alone is not very descriptive of the compilation issue you're
> > experiencing.
> >
> > This is in any case not the correct list to report this kind of problem.
> > Either ask in ffmpeg-user, or open a ticket in https://trac.ffmpeg.org/
> > with a more detailed explanation of the problem.
>
> I cont'd with this issue and cc'ed it to ffmpeg-user as shown below:
>
> $ make
> [...]
> libavutil/hwcontext_vulkan.c:3273:11: note: in expansion of macro ‘CHECK_CU’
>  3273 |     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 | A_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:3273:11: note: in expansion of macro ‘CHECK_CU’
>  3273 |     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:3297:15: note: in expansion of macro ‘CHECK_CU’
>  3297 |         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 | A_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:3297:15: note: in expansion of macro ‘CHECK_CU’
>  3297 |         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:3304:11: note: in expansion of macro ‘CHECK_CU’
>  3304 |     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 | A_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:3304:11: note: in expansion of macro ‘CHECK_CU’
>  3304 |     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:3311:5: note: in expansion of macro ‘CHECK_CU’
>  3311 |     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 | A_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:3311:5: note: in expansion of macro ‘CHECK_CU’
>  3311 |     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:3318:5: note: in expansion of macro ‘CHECK_CU’
>  3318 |     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 | A_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:3318:5: note: in expansion of macro ‘CHECK_CU’
>  3318 |     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:3347:55: warning: unused parameter
> ‘src_fc’ [-Wunused-parameter]
>  3347 |                                    AVHWFramesContext *src_fc, int flags)
>       |                                    ~~~~~~~~~~~~~~~~~~~^~~~~~
> libavutil/hwcontext_vulkan.c:3347:67: warning: unused parameter
> ‘flags’ [-Wunused-parameter]
>  3347 |                                    AVHWFramesContext *src_fc, int flags)
>       |                                                               ~~~~^~~~~
> libavutil/hwcontext_vulkan.c: At top level:
> libavutil/hwcontext_vulkan.c:3387:1: warning: missing initializer for
> field ‘frames_derive_from’ of ‘HWContextType’
> [-Wmissing-field-initializers]
>  3387 | };
>       | ^
> 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:2714:12: warning: this statement may fall
> through [-Wimplicit-fallthrough=]
>  2714 |         if (p->extensions & EXT_EXTERNAL_DMABUF_MEMORY)
>       |            ^
> libavutil/hwcontext_vulkan.c:2717:5: note: here
>  2717 |     case AV_PIX_FMT_VAAPI:
>       |     ^~~~
> libavutil/hwcontext_vulkan.c:2718:12: warning: this statement may fall
> through [-Wimplicit-fallthrough=]
>  2718 |         if (p->extensions & EXT_EXTERNAL_DMABUF_MEMORY)
>       |            ^
> libavutil/hwcontext_vulkan.c:2722:5: note: here
>  2722 |     default:
>       |     ^~~~~~~
> libavutil/hwcontext_vulkan.c: In function ‘vulkan_map_to’:
> libavutil/hwcontext_vulkan.c:2542:12: warning: this statement may fall
> through [-Wimplicit-fallthrough=]
>  2542 |         if (p->extensions & EXT_EXTERNAL_DMABUF_MEMORY)
>       |            ^
> libavutil/hwcontext_vulkan.c:2545:5: note: here
>  2545 |     case AV_PIX_FMT_DRM_PRIME:
>       |     ^~~~
> libavutil/hwcontext_vulkan.c:2546:12: warning: this statement may fall
> through [-Wimplicit-fallthrough=]
>  2546 |         if (p->extensions & EXT_EXTERNAL_DMABUF_MEMORY)
>       |            ^
> libavutil/hwcontext_vulkan.c:2549:5: note: here
>  2549 |     default:
>       |     ^~~~~~~
> libavutil/hwcontext_vulkan.c: In function ‘vulkan_transfer_data_from’:
> libavutil/hwcontext_vulkan.c:3334:12: warning: this statement may fall
> through [-Wimplicit-fallthrough=]
>  3334 |         if ((p->extensions & EXT_EXTERNAL_FD_MEMORY) &&
>       |            ^
> libavutil/hwcontext_vulkan.c:3338:5: note: here
>  3338 |     default:
>       |     ^~~~~~~
> libavutil/hwcontext_vulkan.c: In function ‘vulkan_transfer_data_to’:
> libavutil/hwcontext_vulkan.c:3227:12: warning: this statement may fall
> through [-Wimplicit-fallthrough=]
>  3227 |         if ((p->extensions & EXT_EXTERNAL_FD_MEMORY) &&
>       |            ^
> libavutil/hwcontext_vulkan.c:3231:5: note: here
>  3231 |     default:
>       |     ^~~~~~~
> make: *** [ffbuild/common.mak:67: libavutil/hwcontext_vulkan.o] Error 1

I fininally find this problem is caused by `--enable-extra-warnings'.
If I don't use this option, the problem will be fixed.

Regards,
HY


>
>
> Other relevant information is as follows:
>
> $ git log -1
> commit f359575c0b890b66ccdeca1c8f83061a1525782b (HEAD -> master,
> origin/master, origin/HEAD)
> Author: Paul B Mahol <onemda at gmail.com>
> Date:   Tue Jan 19 20:20:35 2021 +0100
>
>     avfilter/vf_nnedi: unbreak nsize=0:nns=0 output
>
> $ lsb_release -a
> No LSB modules are available.
> Distributor ID:    Ubuntu
> Description:    Ubuntu 20.10
> Release:    20.10
> Codename:    groovy
>
> Best,
> --
> Assoc. Prof. Hongyi Zhao <hongyi.zhao at gmail.com>
> Theory and Simulation of Materials
> Hebei Polytechnic University of Science and Technology engineering
> NO. 552 North Gangtie Road, Xingtai, China



-- 
Assoc. Prof. Hongyi Zhao <hongyi.zhao at gmail.com>
Theory and Simulation of Materials
Hebei Polytechnic University of Science and Technology engineering
NO. 552 North Gangtie Road, Xingtai, China


More information about the ffmpeg-user mailing list