[FFmpeg-user] Android NDK r18b support

Taner Sener tanersener at gmail.com
Thu Dec 6 23:38:11 EET 2018


Hello,

I’m trying to compile git master with Android NDK r18b but having the
following errors. The same method works on the older NDK releases, so it
looks like something has changed in the new NDK r18b. Do you have any ideas
how to resolve it? Also I don’t need v4l2 actually, disabling the
compilation of libavdevice/v4l2.c will also help me but I guess it is not
possible.

I'm using the following steps to cross-compile ffmpeg:



cd $ANDROID_NDK_ROOT/build/tools

./make_standalone_toolchain.py --arch arm --api 21 --stl libc++
--install-dir $ANDROID_NDK_ROOT/toolchains/test-arm

./configure
--cross-prefix=$ANDROID_NDK_ROOT/toolchains/test-arm/bin/arm-linux-androideabi-
--sysroot=$ANDROID_NDK_ROOT/toolchains/test-arm/sysroot --arch=arm
--target-os=android

make

---------------------------------------------

...

libavdevice/v4l2.c:135:9: error: assigning to 'int (*)(int, unsigned long,
...)' from incompatible type

      '<overloaded function type>'

        SET_WRAPPERS();

        ^~~~~~~~~~~~~~

libavdevice/v4l2.c:121:17: note: expanded from macro 'SET_WRAPPERS'

    s->ioctl_f  = prefix ## ioctl;      \

                ^           ~~~~~

/Users/taner/Library/Android/sdk/ndk-bundle/toolchains/test-arm/sysroot/usr/include/bits/ioctl.h:56:5:
note: candidate function

      has type mismatch at 2nd parameter (expected 'unsigned long' but has
'unsigned int')

int ioctl(int __fd, unsigned __request, ...) __overloadable __enable_if(1,
"") __RENAME(ioctl);

    ^

/Users/taner/Library/Android/sdk/ndk-bundle/toolchains/test-arm/sysroot/usr/include/bits/ioctl.h:36:5:
note: candidate function

      has type mismatch at 2nd parameter (expected 'unsigned long' but has
'int')

int ioctl(int __fd, int __request, ...);

    ^

1 error generated.

make: *** [libavdevice/v4l2.o] Error 1



Thanks


More information about the ffmpeg-user mailing list