[FFmpeg-trac] #8866(avfilter:new): libavfilter/vf_yadif_cuda fails to compile

FFmpeg trac at avcodec.org
Wed Aug 26 23:30:22 EEST 2020


#8866: libavfilter/vf_yadif_cuda fails to compile
-------------------------------------+-------------------------------------
             Reporter:  Canta        |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:  avfilter     |                  Version:  git-
             Keywords:  yadif_cuda   |  master
  yadif csp                          |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:

 Today I can't compile ffmpeg with `yadif_cuda` filter.
 It was fine yesterday, but it's not working today.

 Here's the error log:

 {{{
 (...)
 CC      libavfilter/vf_yadif.o
 CC      libavfilter/vf_yadif_cuda.o
 NVCC    libavfilter/vf_yadif_cuda.ptx
 src/libavfilter/vf_yadif_cuda.c: In function 'filter':
 src/libavfilter/vf_yadif_cuda.c:134:22: error: 'YADIFContext {aka struct
 YADIFContext}' has no member named 'csp'
      for (i = 0; i < y->csp->nb_components; i++) {
                       ^~
 src/libavfilter/vf_yadif_cuda.c:138:47: error: 'YADIFContext {aka struct
 YADIFContext}' has no member named 'csp'
          const AVComponentDescriptor *comp = &y->csp->comp[i];
                                                ^~
 src/libavfilter/vf_yadif_cuda.c:149:74: error: 'YADIFContext {aka struct
 YADIFContext}' has no member named 'csp'
              av_log(ctx, AV_LOG_ERROR, "Unsupported pixel format: %s\n",
 y->csp->name);
 ^~
 src/libavfilter/vf_yadif_cuda.c:162:74: error: 'YADIFContext {aka struct
 YADIFContext}' has no member named 'csp'
              av_log(ctx, AV_LOG_ERROR, "Unsupported pixel format: %s\n",
 y->csp->name);
 ^~
 In file included from src/libavutil/avutil.h:296:0,
                  from src/libavutil/avassert.h:31,
                  from src/libavfilter/vf_yadif_cuda.c:21:
 src/libavfilter/vf_yadif_cuda.c:173:56: error: 'YADIFContext {aka struct
 YADIFContext}' has no member named 'csp'
                      AV_CEIL_RSHIFT(y->cur->width, i ?
 y->csp->log2_chroma_w : 0),
                                                         ^
 src/libavutil/common.h:58:53: note: in definition of macro
 'AV_CEIL_RSHIFT'
  #define AV_CEIL_RSHIFT(a,b) (!av_builtin_constant_p(b) ? -((-(a)) >> (b))
 \
                                                      ^
 src/libavfilter/vf_yadif_cuda.c:173:56: error: 'YADIFContext {aka struct
 YADIFContext}' has no member named 'csp'
                      AV_CEIL_RSHIFT(y->cur->width, i ?
 y->csp->log2_chroma_w : 0),
                                                         ^
 src/libavutil/common.h:58:71: note: in definition of macro
 'AV_CEIL_RSHIFT'
  #define AV_CEIL_RSHIFT(a,b) (!av_builtin_constant_p(b) ? -((-(a)) >> (b))
 \
                                                                        ^
 src/libavfilter/vf_yadif_cuda.c:173:56: error: 'YADIFContext {aka struct
 YADIFContext}' has no member named 'csp'
                      AV_CEIL_RSHIFT(y->cur->width, i ?
 y->csp->log2_chroma_w : 0),
                                                         ^
 src/libavutil/common.h:59:70: note: in definition of macro
 'AV_CEIL_RSHIFT'
                                                         : ((a) + (1<<(b))
 - 1) >> (b))
                                                                       ^
 src/libavfilter/vf_yadif_cuda.c:173:56: error: 'YADIFContext {aka struct
 YADIFContext}' has no member named 'csp'
                      AV_CEIL_RSHIFT(y->cur->width, i ?
 y->csp->log2_chroma_w : 0),
                                                         ^
 src/libavutil/common.h:59:83: note: in definition of macro
 'AV_CEIL_RSHIFT'
                                                         : ((a) + (1<<(b))
 - 1) >> (b))
 ^
 src/libavfilter/vf_yadif_cuda.c:174:57: error: 'YADIFContext {aka struct
 YADIFContext}' has no member named 'csp'
                      AV_CEIL_RSHIFT(y->cur->height, i ?
 y->csp->log2_chroma_h : 0),
                                                          ^
 src/libavutil/common.h:58:53: note: in definition of macro
 'AV_CEIL_RSHIFT'
  #define AV_CEIL_RSHIFT(a,b) (!av_builtin_constant_p(b) ? -((-(a)) >> (b))
 \
                                                      ^
 src/libavfilter/vf_yadif_cuda.c:174:57: error: 'YADIFContext {aka struct
 YADIFContext}' has no member named 'csp'
                      AV_CEIL_RSHIFT(y->cur->height, i ?
 y->csp->log2_chroma_h : 0),
                                                          ^
 src/libavutil/common.h:58:71: note: in definition of macro
 'AV_CEIL_RSHIFT'
  #define AV_CEIL_RSHIFT(a,b) (!av_builtin_constant_p(b) ? -((-(a)) >> (b))
 \
                                                                        ^
 src/libavfilter/vf_yadif_cuda.c:174:57: error: 'YADIFContext {aka struct
 YADIFContext}' has no member named 'csp'
                      AV_CEIL_RSHIFT(y->cur->height, i ?
 y->csp->log2_chroma_h : 0),
                                                          ^
 src/libavutil/common.h:59:70: note: in definition of macro
 'AV_CEIL_RSHIFT'
                                                         : ((a) + (1<<(b))
 - 1) >> (b))
                                                                       ^
 src/libavfilter/vf_yadif_cuda.c:174:57: error: 'YADIFContext {aka struct
 YADIFContext}' has no member named 'csp'
                      AV_CEIL_RSHIFT(y->cur->height, i ?
 y->csp->log2_chroma_h : 0),
                                                          ^
 src/libavutil/common.h:59:83: note: in definition of macro
 'AV_CEIL_RSHIFT'
                                                         : ((a) + (1<<(b))
 - 1) >> (b))
 ^
 src/libavfilter/vf_yadif_cuda.c:177:53: error: 'YADIFContext {aka struct
 YADIFContext}' has no member named 'csp'
                      AV_CEIL_RSHIFT(dst->width, i ? y->csp->log2_chroma_w
 : 0),
                                                      ^
 src/libavutil/common.h:58:53: note: in definition of macro
 'AV_CEIL_RSHIFT'
  #define AV_CEIL_RSHIFT(a,b) (!av_builtin_constant_p(b) ? -((-(a)) >> (b))
 \
                                                      ^
 src/libavfilter/vf_yadif_cuda.c:177:53: error: 'YADIFContext {aka struct
 YADIFContext}' has no member named 'csp'
                      AV_CEIL_RSHIFT(dst->width, i ? y->csp->log2_chroma_w
 : 0),
                                                      ^
 src/libavutil/common.h:58:71: note: in definition of macro
 'AV_CEIL_RSHIFT'
  #define AV_CEIL_RSHIFT(a,b) (!av_builtin_constant_p(b) ? -((-(a)) >> (b))
 \
                                                                        ^
 src/libavfilter/vf_yadif_cuda.c:177:53: error: 'YADIFContext {aka struct
 YADIFContext}' has no member named 'csp'
                      AV_CEIL_RSHIFT(dst->width, i ? y->csp->log2_chroma_w
 : 0),
                                                      ^
 src/libavutil/common.h:59:70: note: in definition of macro
 'AV_CEIL_RSHIFT'
                                                         : ((a) + (1<<(b))
 - 1) >> (b))
                                                                       ^
 src/libavfilter/vf_yadif_cuda.c:177:53: error: 'YADIFContext {aka struct
 YADIFContext}' has no member named 'csp'
                      AV_CEIL_RSHIFT(dst->width, i ? y->csp->log2_chroma_w
 : 0),
                                                      ^
 src/libavutil/common.h:59:83: note: in definition of macro
 'AV_CEIL_RSHIFT'
                                                         : ((a) + (1<<(b))
 - 1) >> (b))
 ^
 src/libavfilter/vf_yadif_cuda.c:178:54: error: 'YADIFContext {aka struct
 YADIFContext}' has no member named 'csp'
                      AV_CEIL_RSHIFT(dst->height, i ? y->csp->log2_chroma_h
 : 0),
                                                       ^
 src/libavutil/common.h:58:53: note: in definition of macro
 'AV_CEIL_RSHIFT'
  #define AV_CEIL_RSHIFT(a,b) (!av_builtin_constant_p(b) ? -((-(a)) >> (b))
 \
                                                      ^
 src/libavfilter/vf_yadif_cuda.c:178:54: error: 'YADIFContext {aka struct
 YADIFContext}' has no member named 'csp'
                      AV_CEIL_RSHIFT(dst->height, i ? y->csp->log2_chroma_h
 : 0),
                                                       ^
 src/libavutil/common.h:58:71: note: in definition of macro
 'AV_CEIL_RSHIFT'
  #define AV_CEIL_RSHIFT(a,b) (!av_builtin_constant_p(b) ? -((-(a)) >> (b))
 \
                                                                        ^
 src/libavfilter/vf_yadif_cuda.c:178:54: error: 'YADIFContext {aka struct
 YADIFContext}' has no member named 'csp'
                      AV_CEIL_RSHIFT(dst->height, i ? y->csp->log2_chroma_h
 : 0),
                                                       ^
 src/libavutil/common.h:59:70: note: in definition of macro
 'AV_CEIL_RSHIFT'
                                                         : ((a) + (1<<(b))
 - 1) >> (b))
                                                                       ^
 src/libavfilter/vf_yadif_cuda.c:178:54: error: 'YADIFContext {aka struct
 YADIFContext}' has no member named 'csp'
                      AV_CEIL_RSHIFT(dst->height, i ? y->csp->log2_chroma_h
 : 0),
                                                       ^
 src/libavutil/common.h:59:83: note: in definition of macro
 'AV_CEIL_RSHIFT'
                                                         : ((a) + (1<<(b))
 - 1) >> (b))
 ^
 src/libavfilter/vf_yadif_cuda.c: In function 'config_output':
 src/libavfilter/vf_yadif_cuda.c:315:6: error: 'YADIFContext {aka struct
 YADIFContext}' has no member named 'csp'
      y->csp = av_pix_fmt_desc_get(output_frames->sw_format);
       ^~
 /opt/src/build/ffmpeg/ffbuild/common.mak:67: recipe for target
 'libavfilter/vf_yadif_cuda.o' failed
 make: *** [libavfilter/vf_yadif_cuda.o] Error 1
 }}}



 I believe the cause may be this, which is from minutes ago:
 https://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=2a9b934675b9e2d3850b46f8a618c19b03f02551

 Looks like a code simplification that broke the interface `yadif_cuda`
 filter uses. But I'm no expert, so please take a look at it if you can.




 How to reproduce:
 {{{
 wget -O ffmpeg-snapshot.tar.bz2 https://ffmpeg.org/releases/ffmpeg-
 snapshot.tar.bz2 && tar xjvf ffmpeg-snapshot.tar.bz2

 mkdir -v ffmpeg_build
 cd ffmpeg_build
 ../ffmpeg/configure --prefix="./" --disable-shared --extra-
 cflags=-I/usr/local/include \
 --extra-cflags=-I/usr/local/cuda/targets/x86_64-linux/include --extra-
 cflags=-I../nvidia/cudautils \
 --extra-ldflags=-L/usr/local/cuda/targets/x86_64-linux/lib --extra-
 ldflags=-L../nvidia/cudautils \
 --enable-nonfree --enable-gpl --enable-version3 --enable-avresample
 --enable-avisynth --enable-openal \
 --enable-opencl --enable-opengl --enable-libnpp --enable-nvenc --enable-
 libxvid --enable-libxml2 \
 --enable-cuda --enable-cuda-sdk --enable-vaapi --enable-vdpau --enable-
 libx264 --enable-libx265 \
 --enable-libass --enable-libwavpack --enable-libsoxr --enable-libfdk-aac
 --enable-libfreetype \
 --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis
 --enable-libvpx \
 --enable-libssh --enable-openssl --enable-libsrt --enable-libzmq

 }}}



 Thanks.

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


More information about the FFmpeg-trac mailing list