[FFmpeg-devel] libavfilter: build failure in vf_lensfun.c

Hanspeter Niederstrasser niederstrasser at gmail.com
Sat Feb 20 05:01:41 EET 2021


On macOS 10.13,libavfilter/vf_lensfun.c fails like this:

clang -I. -Isrc/ -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64
-D_LARGEFILE_SOURCE -Isrc/compat/dispatch_semaphore -DPIC -DZLIB_CONST
-DHAVE_AV_CONFIG_H -DBUILDING_avfilter -I/sw/include -std=c11
-Werror=partial-availability -fomit-frame-pointer -fPIC -pthread
-I/sw/include -I/sw/include -I/sw/include/bs2b -I/sw/include
-I/sw/include -I/sw/include/freetype2 -I/sw/include/fribidi
-I/sw/include -I/sw/include -I/sw/include -I/sw/include/lensfun
-I/sw/include/glib-2.0 -I/sw/lib/glib-2.0/include -I/sw/include
-I/sw/include/openjpeg-2.1 -I/sw/include -I/sw/include/opus
-I/sw/include/opus -I/sw/include -I/sw/include -I/sw/include
-I/sw/include -I/sw/include -I/sw/include -I/sw/include -I/sw/include
-I/sw/include -I/sw/include -I/sw/include -I/sw/include -I/sw/include
-I/sw/include -I/sw/include -I/sw/include -I/sw/include -I/sw/include
-I/sw/lib/libcdio-2.1/include -I/opt/X11/include -I/opt/X11/include
-I/opt/X11/include -I/opt/X11/include -g -Wdeclaration-after-statement
-Wall -Wdisabled-optimization -Wpointer-arith -Wredundant-decls
-Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes
-Wno-pointer-to-int-cast -Wstrict-prototypes -Wempty-body
-Wno-parentheses -Wno-switch -Wno-format-zero-length -Wno-pointer-sign
-Wno-unused-const-variable -Wno-char-subscripts -O3 -fno-math-errno
-fno-signed-zeros -mstack-alignment=16 -Qunused-arguments
-Werror=implicit-function-declaration -Werror=missing-prototypes
-Werror=return-type -I/sw/include/SDL2 -D_THREAD_SAFE   -MMD -MF
libavfilter/vf_lensfun.d -MT libavfilter/vf_lensfun.o -c -o
libavfilter/vf_lensfun.o src/libavfilter/vf_lensfun.c
In file included from src/libavfilter/vf_lensfun.c:40:
/sw/include/lensfun/lensfun.h:252:33: warning: this function
declaration is not a prototype [-Wstrict-prototypes]
LF_EXPORT lfMount *lf_mount_new ();
                                ^
                                 void
/sw/include/lensfun/lensfun.h:397:35: warning: this function
declaration is not a prototype [-Wstrict-prototypes]
LF_EXPORT lfCamera *lf_camera_new ();
                                  ^
                                   void
/sw/include/lensfun/lensfun.h:1177:31: warning: this function
declaration is not a prototype [-Wstrict-prototypes]
LF_EXPORT lfLens *lf_lens_new ();
                              ^
                               void
src/libavfilter/vf_lensfun.c:139:10: error: implicit declaration of
function 'lf_db_create' is invalid in C99
      [-Werror,-Wimplicit-function-declaration]
    db = lf_db_create();
         ^

There are a bunch of other implicit declaration errors against several
other lf_* functions. Furthermore, there is another error:
```
src/libavfilter/vf_lensfun.c:181:59: error: too many arguments to
function call, expected 3, have 5
    lenses = lf_db_find_lenses(db, lensfun->camera, NULL,
lensfun->lens_model, 0);
```

I run configure with this:
```
../configure --prefix=/usr/local/ffmpeg-clang --enable-autodetect
--enable-gpl --enable-version3 --disable-static --enable-shared <bunch
of other --enable-libFOO> --enable-liblensfun
```

I have lensfun-0.3.1 installed and none of those functions are
declared in lensfun.h. Should there be a versioned check for lensfun
in configure or a check for other functions besides lf_db_new ?

Hanspeter

--


More information about the ffmpeg-devel mailing list