appunite / AndroidFFmpeg

[DEPRECATED] FFmpeg build for android random architectures with example jni
Apache License 2.0
1.07k stars 471 forks source link

java.lang.UnsatisfiedLinkError : Crash FFmpegExample #80

Closed mohammadkhatri closed 9 years ago

mohammadkhatri commented 9 years ago

Thank you for the amazing tutorial. I have successfully compiled ffmpeg lib with your instructions for "armeabi","armeabi-v7a","mips" and "x86" on ubuntu 12.04 LTS.

I got success in creating debug apk of FFmpegExample using ant by referencing FFmpegLibrary as library project.

But when running `FFmpegExample` I got java.lang.UnsatisfiedLinkError on lines `System.loadLibrary("ffmpeg-neon")` and `System.loadLibrary("ffmpeg")`.

stacktrace

E/AndroidRuntime(28829): FATAL EXCEPTION: main
E/AndroidRuntime(28829): java.lang.ExceptionInInitializerError
E/AndroidRuntime(28829):    at com.ffmpegtest.VideoActivity.onCreate(VideoActivity.java:138)
E/AndroidRuntime(28829):    at android.app.Activity.performCreate(Activity.java:4465)
E/AndroidRuntime(28829):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1059)
E/AndroidRuntime(28829):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
E/AndroidRuntime(28829):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
E/AndroidRuntime(28829):    at android.app.ActivityThread.access$600(ActivityThread.java:123)
E/AndroidRuntime(28829):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
E/AndroidRuntime(28829):    at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(28829):    at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(28829):    at android.app.ActivityThread.main(ActivityThread.java:4429)
E/AndroidRuntime(28829):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(28829):    at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(28829):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
E/AndroidRuntime(28829):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
E/AndroidRuntime(28829):    at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(28829): Caused by: java.lang.UnsatisfiedLinkError: Cannot load library: reloc_library[1285]:    76 cannot locate 'log2f'...
E/AndroidRuntime(28829): 
E/AndroidRuntime(28829):    at java.lang.Runtime.loadLibrary(Runtime.java:370)
E/AndroidRuntime(28829):    at java.lang.System.loadLibrary(System.java:535)
E/AndroidRuntime(28829):    at com.appunite.ffmpeg.FFmpegPlayer.<clinit>(FFmpegPlayer.java:186)
E/AndroidRuntime(28829):    ... 15 more
W/ActivityManager(  146):   Force finishing activity com.ffmpegtest/.VideoActivity
W/ActivityManager(  146):   Force finishing activity com.ffmpegtest/.MainActivity

No luck on devices like asus zenfone 5 , hcl me tablet.

My build script is this.

#!/bin/bash
#
# build_android.sh
# Copyright (c) 2012 Jacek Marchwicki
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

if [ "$NDK" = "" ]; then
    echo NDK variable not set, exiting
    echo "Use: export NDK=/your/path/to/android-ndk"
    exit 1
fi

OS=`uname -s | tr '[A-Z]' '[a-z]'`
function build_x264
{
    PLATFORM=$NDK/platforms/$PLATFORM_VERSION/arch-$ARCH/
    export PATH=${PATH}:$PREBUILT/bin/
    CROSS_COMPILE=$PREBUILT/bin/$EABIARCH-
    CFLAGS=$OPTIMIZE_CFLAGS
#CFLAGS=" -I$ARM_INC -fpic -DANDROID -fpic -mthumb-interwork -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__  -Wno-psabi -march=armv5te -mtune=xscale -msoft-float -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -DANDROID  -Wa,--noexecstack -MMD -MP "
    export CPPFLAGS="$CFLAGS"
    export CFLAGS="$CFLAGS"
    export CXXFLAGS="$CFLAGS"
    export CXX="${CROSS_COMPILE}g++ --sysroot=$PLATFORM"
    export AS="${CROSS_COMPILE}gcc --sysroot=$PLATFORM"
    export CC="${CROSS_COMPILE}gcc --sysroot=$PLATFORM"
    export NM="${CROSS_COMPILE}nm"
    export STRIP="${CROSS_COMPILE}strip"
    export RANLIB="${CROSS_COMPILE}ranlib"
    export AR="${CROSS_COMPILE}ar"
    export LDFLAGS="-Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -nostdlib -lc -lm -ldl -llog"

    cd x264
    ./configure --prefix=$(pwd)/$PREFIX --host=$ARCH-linux --enable-static $ADDITIONAL_CONFIGURE_FLAG || exit 1

    make clean || exit 1
    make -j4 install || exit 1
    cd ..
}

function build_amr
{
    PLATFORM=$NDK/platforms/$PLATFORM_VERSION/arch-$ARCH/
    export PATH=${PATH}:$PREBUILT/bin/
    CROSS_COMPILE=$PREBUILT/bin/$EABIARCH-
    CFLAGS=$OPTIMIZE_CFLAGS
#CFLAGS=" -I$ARM_INC -fpic -DANDROID -fpic -mthumb-interwork -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__  -Wno-psabi -march=armv5te -mtune=xscale -msoft-float -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -DANDROID  -Wa,--noexecstack -MMD -MP "
    export CPPFLAGS="$CFLAGS"
    export CFLAGS="$CFLAGS"
    export CXXFLAGS="$CFLAGS"
    export CXX="${CROSS_COMPILE}g++ --sysroot=$PLATFORM"
    export CC="${CROSS_COMPILE}gcc --sysroot=$PLATFORM"
    export NM="${CROSS_COMPILE}nm"
    export STRIP="${CROSS_COMPILE}strip"
    export RANLIB="${CROSS_COMPILE}ranlib"
    export AR="${CROSS_COMPILE}ar"
    export LDFLAGS="-Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -nostdlib -lc -lm -ldl -llog"

    cd vo-amrwbenc
    ./configure \
        --prefix=$(pwd)/$PREFIX \
        --host=$ARCH-linux \
        --disable-dependency-tracking \
        --disable-shared \
        --enable-static \
        --with-pic \
        $ADDITIONAL_CONFIGURE_FLAG \
        || exit 1

    make clean || exit 1
    make -j4 install || exit 1
    cd ..
}

function build_aac
{
    PLATFORM=$NDK/platforms/$PLATFORM_VERSION/arch-$ARCH/
    export PATH=${PATH}:$PREBUILT/bin/
    CROSS_COMPILE=$PREBUILT/bin/$EABIARCH-
    CFLAGS=$OPTIMIZE_CFLAGS
#CFLAGS=" -I$ARM_INC -fpic -DANDROID -fpic -mthumb-interwork -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__  -Wno-psabi -march=armv5te -mtune=xscale -msoft-float -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -DANDROID  -Wa,--noexecstack -MMD -MP "
    export CPPFLAGS="$CFLAGS"
    export CFLAGS="$CFLAGS"
    export CXXFLAGS="$CFLAGS"
    export CXX="${CROSS_COMPILE}g++ --sysroot=$PLATFORM"
    export CC="${CROSS_COMPILE}gcc --sysroot=$PLATFORM"
    export NM="${CROSS_COMPILE}nm"
    export STRIP="${CROSS_COMPILE}strip"
    export RANLIB="${CROSS_COMPILE}ranlib"
    export AR="${CROSS_COMPILE}ar"
    export LDFLAGS="-Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -nostdlib -lc -lm -ldl -llog"

    cd vo-aacenc
    export PKG_CONFIG_LIBDIR=$(pwd)/$PREFIX/lib/pkgconfig/
    export PKG_CONFIG_PATH=$(pwd)/$PREFIX/lib/pkgconfig/
    ./configure \
        --prefix=$(pwd)/$PREFIX \
        --host=$ARCH-linux \
        --disable-dependency-tracking \
        --disable-shared \
        --enable-static \
        --with-pic \
        $ADDITIONAL_CONFIGURE_FLAG \
        || exit 1

    make clean || exit 1
    make -j4 install || exit 1
    cd ..
}
function build_freetype2
{
    PLATFORM=$NDK/platforms/$PLATFORM_VERSION/arch-$ARCH/
    export PATH=${PATH}:$PREBUILT/bin/
    CROSS_COMPILE=$PREBUILT/bin/$EABIARCH-
    CFLAGS=$OPTIMIZE_CFLAGS
#CFLAGS=" -I$ARM_INC -fpic -DANDROID -fpic -mthumb-interwork -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__  -Wno-psabi -march=armv5te -mtune=xscale -msoft-float -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -DANDROID  -Wa,--noexecstack -MMD -MP "
    export CPPFLAGS="$CFLAGS"
    export CFLAGS="$CFLAGS"
    export CXXFLAGS="$CFLAGS"
    export CXX="${CROSS_COMPILE}g++ --sysroot=$PLATFORM"
    export CC="${CROSS_COMPILE}gcc --sysroot=$PLATFORM"
    export NM="${CROSS_COMPILE}nm"
    export STRIP="${CROSS_COMPILE}strip"
    export RANLIB="${CROSS_COMPILE}ranlib"
    export AR="${CROSS_COMPILE}ar"
    export LDFLAGS="-Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib  -nostdlib -lc -lm -ldl -llog"

    cd freetype2
    export PKG_CONFIG_LIBDIR=$(pwd)/$PREFIX/lib/pkgconfig/
    export PKG_CONFIG_PATH=$(pwd)/$PREFIX/lib/pkgconfig/
    ./configure \
        --prefix=$(pwd)/$PREFIX \
        --host=$ARCH-linux \
        --disable-dependency-tracking \
        --disable-shared \
        --enable-static \
        --with-pic \
        $ADDITIONAL_CONFIGURE_FLAG \
        || exit 1

    make clean || exit 1
    make -j4 install || exit 1
    cd ..
}
function build_ass
{
    PLATFORM=$NDK/platforms/$PLATFORM_VERSION/arch-$ARCH/
    export PATH=${PATH}:$PREBUILT/bin/
    CROSS_COMPILE=$PREBUILT/bin/$EABIARCH-
    CFLAGS="$OPTIMIZE_CFLAGS"
#CFLAGS=" -I$ARM_INC -fpic -DANDROID -fpic -mthumb-interwork -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__  -Wno-psabi -march=armv5te -mtune=xscale -msoft-float -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -DANDROID  -Wa,--noexecstack -MMD -MP "
    export CPPFLAGS="$CFLAGS"
    export CFLAGS="$CFLAGS"
    export CXXFLAGS="$CFLAGS"
    export CXX="${CROSS_COMPILE}g++ --sysroot=$PLATFORM"
    export CC="${CROSS_COMPILE}gcc --sysroot=$PLATFORM"
    export NM="${CROSS_COMPILE}nm"
    export STRIP="${CROSS_COMPILE}strip"
    export RANLIB="${CROSS_COMPILE}ranlib"
    export AR="${CROSS_COMPILE}ar"
    export LDFLAGS="-Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib  -nostdlib -lc -lm -ldl -llog"

    cd libass
    export PKG_CONFIG_LIBDIR=$(pwd)/$PREFIX/lib/pkgconfig/
    export PKG_CONFIG_PATH=$(pwd)/$PREFIX/lib/pkgconfig/
    ./configure \
        --prefix=$(pwd)/$PREFIX \
        --host=$ARCH-linux \
        --disable-fontconfig \
        --disable-dependency-tracking \
        --disable-shared \
        --enable-static \
        --with-pic \
        $ADDITIONAL_CONFIGURE_FLAG \
        || exit 1

    make clean || exit 1
    make V=1 -j4 install || exit 1
    cd ..
}
function build_fribidi
{
    PLATFORM=$NDK/platforms/$PLATFORM_VERSION/arch-$ARCH/
    export PATH=${PATH}:$PREBUILT/bin/
    CROSS_COMPILE=$PREBUILT/bin/$EABIARCH-
    CFLAGS="$OPTIMIZE_CFLAGS -std=gnu99"
#CFLAGS=" -I$ARM_INC -fpic -DANDROID -fpic -mthumb-interwork -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__  -Wno-psabi -march=armv5te -mtune=xscale -msoft-float -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -DANDROID  -Wa,--noexecstack -MMD -MP "
    export CPPFLAGS="$CFLAGS"
    export CFLAGS="$CFLAGS"
    export CXXFLAGS="$CFLAGS"
    export CXX="${CROSS_COMPILE}g++ --sysroot=$PLATFORM"
    export CC="${CROSS_COMPILE}gcc --sysroot=$PLATFORM"
    export NM="${CROSS_COMPILE}nm"
    export STRIP="${CROSS_COMPILE}strip"
    export RANLIB="${CROSS_COMPILE}ranlib"
    export AR="${CROSS_COMPILE}ar"
    export LDFLAGS="-Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -nostdlib -lc -lm -ldl -llog"

    cd fribidi
    ./configure \
        --prefix=$(pwd)/$PREFIX \
        --host=$ARCH-linux \
        --disable-bin \
        --disable-dependency-tracking \
        --disable-shared \
        --enable-static \
        --with-pic \
        $ADDITIONAL_CONFIGURE_FLAG \
        || exit 1

    make clean || exit 1
    make -j4 install || exit 1
    cd ..
}
function build_ffmpeg
{
    PLATFORM=$NDK/platforms/$PLATFORM_VERSION/arch-$ARCH/
    CC=$PREBUILT/bin/$EABIARCH-gcc
    CROSS_PREFIX=$PREBUILT/bin/$EABIARCH-
    PKG_CONFIG=${CROSS_PREFIX}pkg-config
    if [ ! -f $PKG_CONFIG ];
    then
        cat > $PKG_CONFIG << EOF
#!/bin/bash
pkg-config \$*
EOF
        chmod u+x $PKG_CONFIG
    fi
    NM=$PREBUILT/bin/$EABIARCH-nm
    cd ffmpeg
    export PKG_CONFIG_LIBDIR=$(pwd)/$PREFIX/lib/pkgconfig/
    export PKG_CONFIG_PATH=$(pwd)/$PREFIX/lib/pkgconfig/
    ./configure --target-os=linux \
        --prefix=$PREFIX \
        --enable-cross-compile \
        --extra-libs="-lgcc" \
        --arch=$ARCH \
        --cc=$CC \
        --cross-prefix=$CROSS_PREFIX \
        --nm=$NM \
        --sysroot=$PLATFORM \
        --extra-cflags=" -O3 -fpic -DANDROID -DHAVE_SYS_UIO_H=1 -Dipv6mr_interface=ipv6mr_ifindex -fasm -Wno-psabi -fno-short-enums  -fno-strict-aliasing -finline-limit=300 $OPTIMIZE_CFLAGS " \
        --disable-shared \
        --enable-static \
        --enable-runtime-cpudetect \
        --extra-ldflags="-Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib  -nostdlib -lc -lm -ldl -llog -L$PREFIX/lib" \
        --extra-cflags="-I$PREFIX/include" \
        --disable-everything \
        --enable-libass \
        --enable-libvo-aacenc \
        --enable-libvo-amrwbenc \
        --enable-hwaccel=h264_vaapi \
        --enable-hwaccel=h264_vaapi \
        --enable-hwaccel=h264_dxva2 \
        --enable-hwaccel=mpeg4_vaapi \
        --enable-demuxer=mov \
        --enable-demuxer=h264 \
        --enable-demuxer=mpegvideo \
        --enable-demuxer=h263 \
        --enable-demuxer=mpegps \
        --enable-demuxer=mjpeg \
        --enable-demuxer=rtsp \
        --enable-demuxer=rtp \
        --enable-demuxer=hls \
        --enable-demuxer=matroska \
        --enable-muxer=rtsp \
        --enable-muxer=mp4 \
        --enable-muxer=mov \
        --enable-muxer=mjpeg \
        --enable-muxer=matroska \
        --enable-protocol=crypto \
        --enable-protocol=jni \
        --enable-protocol=file \
        --enable-protocol=rtp \
        --enable-protocol=tcp \
        --enable-protocol=udp \
        --enable-protocol=applehttp \
        --enable-protocol=hls \
        --enable-protocol=http \
        --enable-decoder=xsub \
        --enable-decoder=jacosub \
        --enable-decoder=dvdsub \
        --enable-decoder=dvbsub \
        --enable-decoder=subviewer \
        --enable-decoder=rawvideo \
        --enable-encoder=rawvideo \
        --enable-decoder=mjpeg \
        --enable-encoder=mjpeg \
        --enable-decoder=h263 \
        --enable-decoder=mpeg4 \
        --enable-encoder=mpeg4 \
        --enable-decoder=h264 \
        --enable-encoder=h264 \
        --enable-decoder=aac \
        --enable-encoder=aac \
        --enable-parser=h264 \
        --enable-encoder=mp2 \
        --enable-decoder=mp2 \
        --enable-encoder=libvo_amrwbenc \
        --enable-decoder=amrwb \
        --enable-muxer=mp2 \
        --enable-bsfs \
        --enable-decoders \
        --enable-encoders \
        --enable-parsers \
        --enable-hwaccels \
        --enable-muxers \
        --enable-avformat \
        --enable-avcodec \
        --enable-avresample \
        --enable-zlib \
        --disable-doc \
        --disable-ffplay \
        --disable-ffmpeg \
        --disable-ffplay \
        --disable-ffprobe \
        --disable-ffserver \
        --disable-avfilter \
        --disable-avdevice \
        --enable-nonfree \
        --enable-version3 \
        --enable-memalign-hack \
        --enable-asm \
        $ADDITIONAL_CONFIGURE_FLAG \
        || exit 1
    make clean || exit 1
    make -j4 install || exit 1

    cd ..
}

function build_one {
    cd ffmpeg
    PLATFORM=$NDK/platforms/$PLATFORM_VERSION/arch-$ARCH/
    $PREBUILT/bin/$EABIARCH-ld -rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -L$PREFIX/lib  -soname $SONAME -shared -nostdlib  -z noexecstack -Bsymbolic --whole-archive --no-undefined -o $OUT_LIBRARY -lavcodec -lavformat -lavresample -lavutil -lswresample -lass -lfreetype -lfribidi -lswscale -lvo-aacenc -lvo-amrwbenc -lc -lm -lz -ldl -llog  --warn-common  --dynamic-linker=/system/bin/linker -z muldefs $PREBUILT/lib/gcc/$EABIARCH/4.9/libgcc.a || exit 1
    cd ..
}

#arm v5
echo "==========================build armv5"
EABIARCH=arm-linux-androideabi
ARCH=arm
CPU=armv5
OPTIMIZE_CFLAGS="-marm -march=$CPU"
PREFIX=../ffmpeg-build/armeabi
OUT_LIBRARY=$PREFIX/libffmpeg.so
ADDITIONAL_CONFIGURE_FLAG=
SONAME=libffmpeg.so
PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/$OS-x86
PLATFORM_VERSION=android-L
echo "--------------build amr armv5"
build_amr
echo "--------------build aac armv5"
build_aac
echo "--------------build fribidi armv5"
build_fribidi
echo "--------------build freetype2 armv5"
build_freetype2
echo "--------------build ass armv5"
build_ass
echo "--------------build ffmpeg armv5"
build_ffmpeg
echo "--------------build one armv5"
build_one

#x86
echo "==========================build x86"
EABIARCH=i686-linux-android
ARCH=x86
OPTIMIZE_CFLAGS="-m32"
PREFIX=../ffmpeg-build/x86
OUT_LIBRARY=$PREFIX/libffmpeg.so
ADDITIONAL_CONFIGURE_FLAG=--disable-asm
SONAME=libffmpeg.so
PREBUILT=$NDK/toolchains/x86-4.9/prebuilt/$OS-x86
PLATFORM_VERSION=android-L
echo "--------------build amr x86"
build_amr
echo "--------------build aac x86"
build_aac
echo "--------------build fribidi x86"
build_fribidi
echo "--------------build freetype2 x86"
build_freetype2
echo "--------------build ass x86"
build_ass
echo "--------------build ffmpeg x86"
build_ffmpeg
echo "--------------build one x86"
build_one

#mips
echo "==========================build mips mips"
EABIARCH=mipsel-linux-android
ARCH=mips
OPTIMIZE_CFLAGS="-EL -march=mips32 -mips32 -mhard-float"
PREFIX=../ffmpeg-build/mips
OUT_LIBRARY=$PREFIX/libffmpeg.so
ADDITIONAL_CONFIGURE_FLAG="--disable-mips32r2"
SONAME=libffmpeg.so
PREBUILT=$NDK/toolchains/mipsel-linux-android-4.9/prebuilt/$OS-x86
PLATFORM_VERSION=android-L
echo "--------------build amr mips"
build_amr
echo "--------------build aac mips"
build_aac
echo "--------------build fribidi mips"
build_fribidi
echo "--------------build freetype2 mips"
build_freetype2
echo "--------------build ass mips"
build_ass
echo "--------------build ffmpeg mips"
build_ffmpeg
echo "--------------build one mips"
build_one

#arm v7vfpv3
echo "==========================build v7vfpv3"
EABIARCH=arm-linux-androideabi
ARCH=arm
CPU=armv7-a
OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfpv3-d16 -marm -march=$CPU "
PREFIX=../ffmpeg-build/armeabi-v7a
OUT_LIBRARY=$PREFIX/libffmpeg.so
ADDITIONAL_CONFIGURE_FLAG=
SONAME=libffmpeg.so
PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/$OS-x86
PLATFORM_VERSION=android-L
echo "--------------build amr v7vfpv3"
build_amr
echo "--------------build aac v7vfpv3"
build_aac
echo "--------------build fribidi v7vfpv3"
build_fribidi
echo "--------------build freetype2 v7vfpv3"
build_freetype2
echo "--------------build ass v7vfpv3"
build_ass
echo "--------------build ffmpeg v7vfpv3"
build_ffmpeg
echo "--------------build one v7vfpv3"
build_one

#arm v7 + neon (neon also include vfpv3-32)
echo "==========================build armv7 + neon"
EABIARCH=arm-linux-androideabi
ARCH=arm
CPU=armv7-a
OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=neon -marm -march=$CPU -mtune=cortex-a8 -mthumb -D__thumb__ "
PREFIX=../ffmpeg-build/armeabi-v7a-neon
OUT_LIBRARY=../ffmpeg-build/armeabi-v7a/libffmpeg-neon.so
ADDITIONAL_CONFIGURE_FLAG=--enable-neon
SONAME=libffmpeg-neon.so
PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/$OS-x86
PLATFORM_VERSION=android-L
echo "--------------build amr armv7 + neon"
build_amr
echo "--------------build aac armv7 + neon"
build_aac
echo "--------------build fribidi armv7 + neon"
build_fribidi
echo "--------------build freetype2 armv7 + neon"
build_freetype2
echo "--------------build ass armv7 + neon"
build_ass
echo "--------------build ffmpeg armv7 + neon"
build_ffmpeg
echo "--------------build one armv7 + neon"
build_one

I can't figure out what is happening. Any help will be appreciated.

mtcdn-gmail commented 9 years ago

Is your issue resolved ? I am also getting the same issue

jacek-marchwicki commented 9 years ago

This issue happen because you didn't compiled ndk library

mohittadhiyalcdn commented 9 years ago

@jacek-marchwicki : Can i increase the speed of player ,for now it is not rendering HD video on the same time. It took 20 seconds more to complete one video as compared to MX player

jacek-marchwicki commented 9 years ago

@mohammadkhatri does your question refers to problem with compiling ndk-library? please look at: https://github.com/appunite/AndroidFFmpeg/issues/13 but there are no working solution - just MX player is better