Hello. I need to build ffmpeg as library for android. I use slightly modified bambuser script and I made it work on current ffmpeg version (I needed some ADPCM and H264 decoders). Recently I found out I need Speex decoder (and possibly encoder) as well, so I tried adding it to project. However this is where I find problems. I can easily run configure without cross-compile but with libspeex added, I can cross-compile without libspeex, but when I try to cross-compile with libspeex I get an error “speex not found using pkg-config”. I downloaded Speex and compiled it - no success. I installed it by Brew - no success. I tried adding prefix when compiling Speex - still nothing. Same with adding CFLAGS and LDFLAGS. I tried numerous ways of adding it to the project, but no matter what do I do I get the same error, every single time.
Long story short: how can I compile ffmpeg to Android .so library with Speex decoder inside? If that matters I use OS X system. My build script: #!/bin/bash if [ "$NDK" = "" ]; then echo NDK variable not set, assuming ${HOME}/android-ndk export NDK=${HOME}/Library/Android/sdk/ndk-bundle fi SYSROOT=$NDK/platforms/android-16/arch-arm # Expand the prebuilt/* path into the correct one TOOLCHAIN=`echo $NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64` export PATH=$TOOLCHAIN/bin:$PATH rm -rf build/ffmpeg mkdir -p build/ffmpeg cd ffmpeg # Don't build any neon version for now for version in armv5te armv7a; do DEST=../build/ffmpeg FLAGS="--target-os=linux --cross-prefix=arm-linux-androideabi- --arch=arm" FLAGS="$FLAGS --sysroot=$SYSROOT" #FLAGS="$FLAGS --soname-prefix=/data/data/com.bambuser.broadcaster/lib/" FLAGS="$FLAGS --enable-shared --disable-symver" FLAGS="$FLAGS --enable-small" #--optimization-flags=-O2" FLAGS="$FLAGS --disable-everything" # FLAGS="$FLAGS --enable-encoder=mpeg2video --enable-encoder=nellymoser" FLAGS="$FLAGS --enable-decoder=h264 --enable-decoder=adpcm_ima_oki --enable-decoder=adpcm_ima_ws" FLAGS="$FLAGS --enable-encoder=adpcm_ima_qt --enable-encoder=adpcm_ima_wav --enable-encoder=adpcm_g726" FLAGS="$FLAGS --enable-encoder=adpcm_g722 --enable-libspeex" case "$version" in armv7a) EXTRA_CFLAGS="-march=armv7-a -mfloat-abi=softfp" EXTRA_LDFLAGS="" ABI="armeabi-v7a" ;; *) EXTRA_CFLAGS="" EXTRA_LDFLAGS="" ABI="armeabi" ;; esac DEST="$DEST/$ABI" FLAGS="$FLAGS --prefix=$DEST" EXTRA_CFLAGS="$EXTRA_CFLAGS -I/usr/local/include/" EXTRA_LDFLAGS="$EXTRA_LDFLAGS -L/usr/local/lib" mkdir -p $DEST echo $FLAGS --extra-cflags="$EXTRA_CFLAGS" --extra-ldflags="$EXTRA_LDFLAGS" > $DEST/info.txt ./configure $FLAGS --extra-cflags="$EXTRA_CFLAGS" --extra-ldflags="$EXTRA_LDFLAGS" | tee $DEST/configuration.txt [ $PIPESTATUS == 0 ] || exit 1 rm compat/strtod.o rm compat/strtod.d make clean make -j4 || exit 1 make install || exit 1 done Config.log fragment with error: arm-linux-androideabi-gcc --sysroot=/Users/mgriszbacher/Library/Android/sdk/ndk-bundle/platforms/android-16/arch-arm -isysroot /Users/mgriszbacher/Library/Android/sdk/ndk-bundle/platforms/android-16/arch-arm -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Dstrtod=avpriv_strtod -DPIC -I/usr/local/include/ -march=armv5te -std=c99 -fomit-frame-pointer -fPIC -marm -pthread -c -o /tmp/ffconf.rYieelIt.o /tmp/ffconf.6y5cL6p4.c arm-linux-androideabi-gcc -L/usr/local/lib --sysroot=/Users/mgriszbacher/Library/Android/sdk/ndk-bundle/platforms/android-16/arch-arm -isysroot /Users/mgriszbacher/Library/Android/sdk/ndk-bundle/platforms/android-16/arch-arm -march=armv5te -Wl,--as-needed -Wl,-z,noexecstack -o /tmp/ffconf.TDeNtAx9 /tmp/ffconf.rYieelIt.o -lm -lz -pthread check_complexfunc cabs 1 check_ld cc check_cc BEGIN /tmp/ffconf.6y5cL6p4.c 1 #include <complex.h> 2 #include <math.h> 3 float foo(complex float f, complex float g) { return cabs(f * I); } 4 int main(void){ return (int) foo; } END /tmp/ffconf.6y5cL6p4.c arm-linux-androideabi-gcc --sysroot=/Users/mgriszbacher/Library/Android/sdk/ndk-bundle/platforms/android-16/arch-arm -isysroot /Users/mgriszbacher/Library/Android/sdk/ndk-bundle/platforms/android-16/arch-arm -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Dstrtod=avpriv_strtod -DPIC -I/usr/local/include/ -march=armv5te -std=c99 -fomit-frame-pointer -fPIC -marm -pthread -c -o /tmp/ffconf.rYieelIt.o /tmp/ffconf.6y5cL6p4.c /tmp/ffconf.6y5cL6p4.c:1:21: fatal error: complex.h: No such file or directory #include <complex.h> ^ compilation terminated. check_complexfunc cexp 1 check_ld cc check_cc BEGIN /tmp/ffconf.6y5cL6p4.c 1 #include <complex.h> 2 #include <math.h> 3 float foo(complex float f, complex float g) { return cexp(f * I); } 4 int main(void){ return (int) foo; } END /tmp/ffconf.6y5cL6p4.c arm-linux-androideabi-gcc --sysroot=/Users/mgriszbacher/Library/Android/sdk/ndk-bundle/platforms/android-16/arch-arm -isysroot /Users/mgriszbacher/Library/Android/sdk/ndk-bundle/platforms/android-16/arch-arm -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Dstrtod=avpriv_strtod -DPIC -I/usr/local/include/ -march=armv5te -std=c99 -fomit-frame-pointer -fPIC -marm -pthread -c -o /tmp/ffconf.rYieelIt.o /tmp/ffconf.6y5cL6p4.c /tmp/ffconf.6y5cL6p4.c:1:21: fatal error: complex.h: No such file or directory #include <complex.h> ^ compilation terminated. check_pkg_config speex speex/speex.h speex_decoder_init -lspeex false --exists --print-errors speex ERROR: speex not found using pkg-config _______________________________________________ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".