Recherche avancée

Médias (0)

Mot : - Tags -/flash

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (112)

  • Ecrire une actualité

    21 juin 2013, par

    Présentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
    Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
    Vous pouvez personnaliser le formulaire de création d’une actualité.
    Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...)

  • Encoding and processing into web-friendly formats

    13 avril 2011, par

    MediaSPIP automatically converts uploaded files to internet-compatible formats.
    Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
    Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
    Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
    All uploaded files are stored online in their original format, so you can (...)

  • Script d’installation automatique de MediaSPIP

    25 avril 2011, par

    Afin de palier aux difficultés d’installation dues principalement aux dépendances logicielles coté serveur, un script d’installation "tout en un" en bash a été créé afin de faciliter cette étape sur un serveur doté d’une distribution Linux compatible.
    Vous devez bénéficier d’un accès SSH à votre serveur et d’un compte "root" afin de l’utiliser, ce qui permettra d’installer les dépendances. Contactez votre hébergeur si vous ne disposez pas de cela.
    La documentation de l’utilisation du script d’installation (...)

Sur d’autres sites (9185)

  • Build FFmpeg for All Android architecture correctly

    26 octobre 2017, par fthopkins

    I built ffmpeg libraries for all android architecture. But some details are confusing my mind. First of all let me explain step by step how i built.

    • I downloaded latest version of libx264 from
      https://www.videolan.org/developers/x264.html
    • Created and run build_all.sh script (in x264 folder) for creating libs for (almost) all android platforms. Then i got android folder in x264 folder. e.g android/arm android/arm64 android/x86 android/x86_64 in x264 folder.
    • I download the ffmpeg3.3.4 from https://ffmpeg.org/download.html
    • I created 4 copies of ffmpeg3.3.4 folder. Named them with android architectures names.
      Like ffmpeg3.3.4-arm64 ffmpeg3.3.4-arm ffmpeg3.3.4-x86 ffmpeg3.3.4-x86_64
    • Created build_(architecture-name).sh for each platforms of android. Than move each one of 'named'.sh files to the named ffmpeg folders according to their architecture names.
      E.g build_android_x86.sh => ffmpeg3.3.4-x86

    build_android_arm64.sh example

    #!/bin/bash
    #Change NDK to your Android NDK location
    NDK=$HOME/Android/Sdk/ndk-bundle
    PLATFORM=$NDK/platforms/android-21/arch-arm64/
    PREBUILT=$NDK/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64

    GENERAL="\
    --enable-small \
    --enable-cross-compile \
    --extra-libs="-lgcc" \
    --arch=aarch64 \
    --cc=$PREBUILT/bin/aarch64-linux-android-gcc \
    --cross-prefix=$PREBUILT/bin/aarch64-linux-android- \
    --nm=$PREBUILT/bin/aarch64-linux-android-nm \
    --extra-cflags="-I../x264/android/arm64/include" \
    --extra-ldflags="-L../x264/android/arm64/lib" "

    MODULES="\
    --enable-gpl \
    --enable-libx264"



    function build_arm64
    {
     ./configure \
     --logfile=conflog.txt \
     --target-os=linux \
     --prefix=./android/arm64-v8a \
     ${GENERAL} \
     --sysroot=$PLATFORM \
     --extra-cflags="" \
     --extra-ldflags="-lx264 -Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -nostdlib -lc -lm -ldl -llog" \
     --enable-shared \
     --disable-static \
     --disable-doc \
     --enable-zlib \
     ${MODULES}

     make clean
     make
     make install
    }

    build_arm64


    echo Android ARM64 builds finished
    • Moved all ffmpeg3.3.4-arm64 ffmpeg3.3.4-arm ffmpeg3.3.4-x86 ffmpeg3.3.4-x86_64 folders to the NDK_PATH (C:\Users\MyName\AppData\Local\Android\sdk\ndk-bundle)
    • Put x264 folder at same level of hierarchy with ffmpeg folders
      in (C:\Users\MyName\AppData\Local\Android\sdk\ndk-bundle)
    • Run each of build_android_x86.sh, build_android_x86_64.sh.. scripts one by one in their own ffmpeg folder. Then i got android folders in ffmpeg folders. (created android folders have library folders)
      e.g ffmpeg3.3.4-x86/android/x86/(bin,inlude,lib,share)
    • Created Android.mk files for all created android folders and moved each one of them to android/armName folder. e.g Android.mk => ffmpeg3.3.4-x86/android/x86/

      LOCAL_PATH:= $(call my-dir)

      include $(CLEAR_VARS)
      LOCAL_MODULE:= libavcodec
      LOCAL_SRC_FILES:= lib/libavcodec-57.so
      LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
      include $(PREBUILT_SHARED_LIBRARY)

      include $(CLEAR_VARS)
      LOCAL_MODULE:= libavformat
      LOCAL_SRC_FILES:= lib/libavformat-57.so
      LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
      include $(PREBUILT_SHARED_LIBRARY)

      include $(CLEAR_VARS)
      LOCAL_MODULE:= libswscale
      LOCAL_SRC_FILES:= lib/libswscale-4.so
      LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
      include $(PREBUILT_SHARED_LIBRARY)

      include $(CLEAR_VARS)
      LOCAL_MODULE:= libavutil
      LOCAL_SRC_FILES:= lib/libavutil-55.so
      LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
      include $(PREBUILT_SHARED_LIBRARY)

      include $(CLEAR_VARS)
      LOCAL_MODULE:= libavfilter
      LOCAL_SRC_FILES:= lib/libavfilter-6.so
      LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
      include $(PREBUILT_SHARED_LIBRARY)

      include $(CLEAR_VARS)
      LOCAL_MODULE:= libswresample
      LOCAL_SRC_FILES:= lib/libswresample-2.so
      LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
      include $(PREBUILT_SHARED_LIBRARY)

      include $(CLEAR_VARS)
      LOCAL_MODULE := postproc
      LOCAL_SRC_FILES := lib/libpostproc-54.so
      LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
      include $(PREBUILT_SHARED_LIBRARY)

      include $(CLEAR_VARS)
      LOCAL_MODULE := avdevice
      LOCAL_SRC_FILES := lib/libavdevice-57.so
      LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
      include $(PREBUILT_SHARED_LIBRARY)
    • Create "arm named" folders e.g x86 x86_4 arm64 arm7 in jni folder of my project (myproject/app/jni/x86, myproject/app/jni/x86_64).

    • Go to ndk path open named ffmpeg folders one by one and copy ffmpeg.c ffmpeg_filter.c ffmpeg_opt.c cmdutils.c files from ffmpeg folders to the "arm named" folders. e.g ffmpeg.c => myproject/app/jni/x86

    • Created Android.mk file in my project.

      LOCAL_PATH := $(call my-dir)
      #$(warning $(LOCAL_PATH))

      include $(CLEAR_VARS)
      LOCAL_MODULE    := videoEdit
      LOCAL_LDLIBS := -llog -ljnigraphics -lz -landroid
      LOCAL_CFLAGS := -Wdeprecated-declarations
      ANDROID_LIB := -landroid

      $(info $(TARGET_ARCH_ABI))

      ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
         LOCAL_C_INCLUDES:=/Users/MyName/AppData/Local/Android/sdk/ndk-bundle/sources/ffmpeg-3.3.4-armeabi
         LOCAL_SRC_FILES :=  videoEdit.c arm7/ffmpeg.c arm7/ffmpeg_filter.c arm7/ffmpeg_opt.c arm7/cmdutils.c
         LOCAL_CFLAGS += -lx264 -Wl,--no-merge-exidx-entries
      else

         ifeq ($(TARGET_ARCH_ABI),arm64-v8a)
                 LOCAL_C_INCLUDES:=/Users/MyName/AppData/Local/Android/sdk/ndk-bundle/sources/ffmpeg-3.3.4-arm64-v8a
                 LOCAL_SRC_FILES :=  videoEdit.c arm64/ffmpeg.c arm64/ffmpeg_filter.c arm64/ffmpeg_opt.c arm64/cmdutils.c
                 LOCAL_CFLAGS += -funwind-tables -Wl,--no-merge-exidx-entries
         else

             ifeq ($(TARGET_ARCH_ABI),x86_64)
                    LOCAL_C_INCLUDES:=/Users/MyName/AppData/Local/Android/sdk/ndk-bundle/sources/ffmpeg3.3.4-x86_64
                    LOCAL_SRC_FILES :=  videoEdit.c x86_64/ffmpeg.c x86_64/ffmpeg_filter.c x86_64/ffmpeg_opt.c x86_64/cmdutils.c
             else
                     LOCAL_C_INCLUDES:=/Users/MyName/AppData/Local/Android/sdk/ndk-bundle/sources/ffmpeg3.3.4-x86
                     LOCAL_SRC_FILES :=  videoEdit.c x86/ffmpeg.c x86/ffmpeg_filter.c x86/ffmpeg_opt.c x86/cmdutils.c
             endif

         endif

      endif

      LOCAL_SHARED_LIBRARIES := libavformat libavcodec libswscale libavutil libswresample libavfilter libavdevice libpostproc

      include $(BUILD_SHARED_LIBRARY)

      ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)

         $(call import-module,ffmpeg-3.3.4-armeabi/android/armeabi-v7a)

      else

         ifeq ($(TARGET_ARCH_ABI),arm64-v8a)
                 $(call import-module,ffmpeg-3.3.4-arm64-v8a/android/arm64-v8a)
         else

             ifeq ($(TARGET_ARCH_ABI),x86_64)
                    $(call import-module,ffmpeg3.3.4-x86_64/android/x86_64)
             else
                 $(call import-module,ffmpeg3.3.4-x86/android/i686-diasm)
             endif

         endif

      endif
    • Created Application.mk file in my project.

      APP_ABI := armeabi-v7a, arm64-v8a, x86_64, x86
      APP_PLATFORM := android-14
    • Created videoEdit.c than run ndk-build build command.

    Built with no error. I can run ffmpeg commands but it takes too much time i think. E.g when i try to run hflip it flips the video with 15 seconds.

    Code example :

    JNIEXPORT jint JNICALL Java_com_name_app_library_VideoEditer_natives_VideoEditer_flipHorizontally
    (JNIEnv *env, jclass someclass, jstring inputFile, jstring outFile) {

       int numberOfArgs = 14;

       char** arguments = calloc(numberOfArgs, sizeof(char*));
       const char *in, *out;

       in = (*env)->GetStringUTFChars(env, inputFile, 0);
       out = (*env)->GetStringUTFChars(env, outFile, 0);

       arguments[0] = "ffmpeg";
       arguments[1] = "-i";
       arguments[2] = in;
       arguments[3] = "-c:v";
       arguments[4] = "libx264";
       arguments[5] = "-preset";
       arguments[6] = "ultrafast";
       arguments[7] = "-threads";
       arguments[8] = "5";
       arguments[9] = "-c:a";
       arguments[10] = "copy";
       arguments[11] = "-vf";
       arguments[12] = "hflip";
       arguments[13] = out;

       int i;
       for (i = 0; i < numberOfArgs; i++) {
           log_message(arguments[i]);
       }
       log_message("Printed all");

       main(numberOfArgs, arguments);
       free(arguments);
       (*env)->ReleaseStringUTFChars(env, inputFile, in);
       (*env)->ReleaseStringUTFChars(env, outFile, out);

       return 0;
    }

    FFmpeg Commands that runs on android, working very fast on emaulator but very slow on real device.

    Also another thing to confusing my mind is output of ./configure command.
    When i open the (e.g) ffmpeg-3.3.4-arm64-v8a folder and run ./configure command in terminal. Output says ARCH   x86 (generic). For all platform output is the same ARCH   x86 (generic).

    Output of ./configure command in ffmpeg-3.3.4-arm64-v8a folder

    install prefix            /usr/local
    source path               .
    C compiler                gcc
    C library                 glibc
    ARCH                      x86 (generic)
    big-endian                no
    runtime cpu detection     yes
    yasm                      yes
    MMX enabled               yes
    MMXEXT enabled            yes
    3DNow! enabled            yes
    3DNow! extended enabled   yes
    SSE enabled               yes
    SSSE3 enabled             yes
    AESNI enabled             yes
    AVX enabled               yes
    XOP enabled               yes
    FMA3 enabled              yes
    FMA4 enabled              yes
    i686 features enabled     yes
    CMOV is fast              yes
    EBX available             yes
    EBP available             yes
    debug symbols             yes
    strip symbols             yes
    optimize for size         no
    optimizations             yes
    static                    yes
    shared                    no
    postprocessing support    no
    network support           yes
    threading support         pthreads
    safe bitstream reader     yes
    texi2html enabled         no
    perl enabled              yes
    pod2man enabled           yes
    makeinfo enabled          no
    makeinfo supports HTML    no

    External libraries:
    iconv            xlib

    EDIT all of these steps made on ubuntu then moved all folders to the windows. So dont be confuse about paths.

    With all of these steps i want to ask is, is there anything wrong on my steps. Should i follow any other way or not ? Why the ffmpeg is running slower on real device. I am wondering one thing badly, how retrica, snapchat, instagram recording video as mirrored flipping ? Are they flipping after recorded (if they are how are they doing this in a second) or are they recording a video as flipped in run time ? I guess building ffmpeg for android is bit messy and making wrong things is very easy. If you look my steps, questions and give me an advice, i will be much appreciated.

  • Merge commit '41df62fd674bd0c67f7b6952381d235a393245d6'

    11 novembre 2017, par James Almer
    Merge commit '41df62fd674bd0c67f7b6952381d235a393245d6'
    

    * commit '41df62fd674bd0c67f7b6952381d235a393245d6' :
    configure : Set the default assembler to armasm64 for MSVC for arm64

    Merged-by : James Almer <jamrial@gmail.com>

    • [DH] configure
  • When I build ndk with .a files it comes like this `error adding symbols : File in wrong format`

    2 avril 2020, par Pradeep Simba

    When I build ndk with .a files it comes like this error adding symbols: File in wrong format.

    &#xA;&#xA;

    WORKING_DIR := $(call my-dir)&#xA;&#xA;include $(CLEAR_VARS)&#xA;LOCAL_PATH := $(WORKING_DIR)/../third_party/lame/libmp3lame&#xA;LOCAL_MODULE    := lame&#xA;LOCAL_C_INCLUDES := $(WORKING_DIR)/../third_party/lame/libmp3lame \&#xA;                $(WORKING_DIR)/../third_party/lame/include&#xA;LOCAL_CFLAGS := -DSTDC_HEADERS -std=c99&#xA;LOCAL_ARM_MODE := arm&#xA;APP_OPTIM := release&#xA;&#xA;LOCAL_SRC_FILES := VbrTag.c \&#xA;               bitstream.c \&#xA;               encoder.c \&#xA;               fft.c \&#xA;               gain_analysis.c \&#xA;               id3tag.c \&#xA;               lame.c \&#xA;               mpglib_interface.c \&#xA;               newmdct.c \&#xA;               presets.c \&#xA;               psymodel.c \&#xA;               quantize.c \&#xA;               quantize_pvt.c \&#xA;               reservoir.c \&#xA;               set_get.c \&#xA;               tables.c \&#xA;               takehiro.c \&#xA;               util.c \&#xA;               vbrquantize.c \&#xA;               version.c&#xA;&#xA;&#xA;#include $(BUILD_STATIC_LIBRARY)&#xA;&#xA;include $(BUILD_STATIC_LIBRARY)&#xA;&#xA;#include $(CLEAR_VARS)&#xA;#LOCAL_MODULE  := mp3lame_a&#xA;#LOCAL_STATIC_LIBRARIES := lame&#xA;&#xA;#include $(BUILD_EXECUTABLE) &#xA;&#xA;include $(CLEAR_VARS)&#xA;LOCAL_PATH := $(WORKING_DIR)&#xA;LOCAL_MODULE    := ffmpeg&#xA;LOCAL_CFLAGS := -DHAVE_AV_CONFIG_H -std=c99 -D__STDC_CONSTANT_MACROS -DSTDC_HEADERS -Wno-deprecated-declarations&#xA;LOCAL_SRC_FILES := ffmpeg-jni.c&#xA;LOCAL_C_INCLUDES := $(WORKING_DIR)/libavcodec $(WORKING_DIR)/libavcodec/arm      $(WORKING_DIR)/libavformat $(WORKING_DIR)/libavutil $(WORKING_DIR)/libavutil/arm&#xA;&#xA;LOCAL_STATIC_LIBRARIES := lame&#xA;&#xA;LOCAL_LDLIBS := -llog -lm -lz $(WORKING_DIR)/../third_party/lib/libavformat.a $(WORKING_DIR)/../third_party/lib/libavcodec.a $(WORKING_DIR)/../third_party/lib/libavfilter.a $(WORKING_DIR)/../third_party/lib/libavresample.a $(WORKING_DIR)/../third_party/lib/libswscale.a $(WORKING_DIR)/../third_party/lib/libavutil.a $(WORKING_DIR)/../third_party/lib/libx264.a $(WORKING_DIR)/../third_party/lib/libpostproc.a $(WORKING_DIR)/../third_party/lib/libswresample.a $(WORKING_DIR)/../third_party/lib/libfdk-aac.a&#xA;&#xA;APP_OPTIM := release&#xA;&#xA;include $(BUILD_SHARED_LIBRARY)&#xA;

    &#xA;&#xA;

    enter image description here&#xA;enter image description here&#xA;enter image description here

    &#xA;&#xA;

    When I build ndk the error occurs

    &#xA;&#xA;

    enter image description here

    &#xA;&#xA;

    Microsoft Windows [Version 10.0.18363.418]&#xA;(c) 2019 Microsoft Corporation. All rights reserved.&#xA;&#xA;C:\Users\prade>d:&#xA;&#xA;D:\>cd D:\Github\n&#xA;&#xA;D:\Github\n>ndk-build&#xA;Android NDK: APP_PLATFORM not set. Defaulting to minimum supported version android-16.&#xA;Android NDK: WARNING:jni/Android.mk:ffmpeg: non-system libraries in linker flags: jni/../third_party/lib/libavformat.a jni/../third_party/lib/libavcodec.a jni/../third_party/lib/libavfilter.a jni/../third_party/lib/libavresample.a jni/../third_party/lib/libswscale.a jni/../third_party/lib/libavutil.a jni/../third_party/lib/libx264.a jni/../third_party/lib/libpostproc.a jni/../third_party/lib/libswresample.a jni/../third_party/lib/libfdk-aac.a&#xA;Android NDK:     This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES&#xA;Android NDK:     or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the&#xA;Android NDK:     current module&#xA;Android NDK: WARNING:jni/Android.mk:ffmpeg: non-system libraries in linker flags: jni/../third_party/lib/libavformat.a jni/../third_party/lib/libavcodec.a jni/../third_party/lib/libavfilter.a jni/../third_party/lib/libavresample.a jni/../third_party/lib/libswscale.a jni/../third_party/lib/libavutil.a jni/../third_party/lib/libx264.a jni/../third_party/lib/libpostproc.a jni/../third_party/lib/libswresample.a jni/../third_party/lib/libfdk-aac.a&#xA;Android NDK:     This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES&#xA;Android NDK:     or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the&#xA;Android NDK:     current module&#xA;Android NDK: WARNING:jni/Android.mk:ffmpeg: non-system libraries in linker flags: jni/../third_party/lib/libavformat.a jni/../third_party/lib/libavcodec.a jni/../third_party/lib/libavfilter.a jni/../third_party/lib/libavresample.a jni/../third_party/lib/libswscale.a jni/../third_party/lib/libavutil.a jni/../third_party/lib/libx264.a jni/../third_party/lib/libpostproc.a jni/../third_party/lib/libswresample.a jni/../third_party/lib/libfdk-aac.a&#xA;Android NDK:     This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES&#xA;Android NDK:     or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the&#xA;Android NDK:     current module&#xA;Android NDK: WARNING:jni/Android.mk:ffmpeg: non-system libraries in linker flags: jni/../third_party/lib/libavformat.a jni/../third_party/lib/libavcodec.a jni/../third_party/lib/libavfilter.a jni/../third_party/lib/libavresample.a jni/../third_party/lib/libswscale.a jni/../third_party/lib/libavutil.a jni/../third_party/lib/libx264.a jni/../third_party/lib/libpostproc.a jni/../third_party/lib/libswresample.a jni/../third_party/lib/libfdk-aac.a&#xA;Android NDK:     This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES&#xA;Android NDK:     or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the&#xA;Android NDK:     current module&#xA;[arm64-v8a] Compile        : ffmpeg &lt;= ffmpeg-jni.c&#xA;jni/ffmpeg-jni.c:248:16: warning: initializing &#x27;const jbyte *&#x27; (aka &#x27;const signed char *&#x27;) with an expression of type&#xA;  &#x27;const char *&#x27; converts between pointers to integer types with different sign [-Wpointer-sign]&#xA;const jbyte *url = (*env)->GetStringUTFChars(env, rtmp_url, NULL);&#xA;           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#xA;jni/ffmpeg-jni.c:252:37: warning: passing &#x27;const jbyte *&#x27; (aka &#x27;const signed char *&#x27;) to parameter of type&#xA;  &#x27;const char *&#x27; converts between pointers to integer types with different sign [-Wpointer-sign]&#xA;if (avio_open(&amp;fmt_context->pb, url, URL_WRONLY) &lt; 0) {&#xA;                                ^~~&#xA;jni/libavformat/avio.h:391:44: note: passing argument to parameter &#x27;url&#x27; here&#xA; int avio_open(AVIOContext **s, const char *url, int flags);&#xA;                                       ^&#xA;jni/ffmpeg-jni.c:257:48: warning: passing &#x27;const jbyte *&#x27; (aka &#x27;const signed char *&#x27;) to parameter of type&#xA;  &#x27;const char *&#x27; converts between pointers to integer types with different sign [-Wpointer-sign]&#xA;(*env)->ReleaseStringUTFChars(env, rtmp_url, url);&#xA;                                           ^~~&#xA;jni/ffmpeg-jni.c:297:18: warning: initializing &#x27;unsigned char *&#x27; with an expression of type &#x27;jbyte *&#x27;&#xA;  (aka &#x27;signed char *&#x27;) converts between pointers to integer types with different sign [-Wpointer-sign]&#xA; unsigned char *yuv_data = (*env)->GetByteArrayElements(env, yuv_image, 0);&#xA;             ^          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#xA; jni/ffmpeg-jni.c:330:52: warning: passing &#x27;unsigned char *&#x27; to parameter of type &#x27;jbyte *&#x27; (aka &#x27;signed char *&#x27;)&#xA;  converts between pointers to integer types with different sign [-Wpointer-sign]&#xA; (*env)->ReleaseByteArrayElements(env, yuv_image, yuv_data, 0);&#xA;                                               ^~~~~~~~&#xA;5 warnings generated.&#xA;[arm64-v8a] Compile        : lame &lt;= VbrTag.c&#xA;jni/../third_party/lame/libmp3lame/VbrTag.c:263:5: warning: shifting a negative signed value is undefined&#xA;  [-Wshift-negative-value]&#xA;SHIFT_IN_BITS_VALUE(buffer[0], 8u, 0xffu);&#xA;^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#xA;jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro &#x27;SHIFT_IN_BITS_VALUE&#x27;&#xA;#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x &lt;&lt; (n)) | ( (v) &amp; ~(-1 &lt;&lt; (n)) ) )&#xA;                                                            ~~ ^&#xA;jni/../third_party/lame/libmp3lame/VbrTag.c:265:5: warning: shifting a negative signed value is undefined&#xA;  [-Wshift-negative-value]&#xA;SHIFT_IN_BITS_VALUE(buffer[1], 3u, 7);&#xA;^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#xA;jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro &#x27;SHIFT_IN_BITS_VALUE&#x27;&#xA;#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x &lt;&lt; (n)) | ( (v) &amp; ~(-1 &lt;&lt; (n)) ) )&#xA;                                                            ~~ ^&#xA;jni/../third_party/lame/libmp3lame/VbrTag.c:266:5: warning: shifting a negative signed value is undefined&#xA;  [-Wshift-negative-value]&#xA;SHIFT_IN_BITS_VALUE(buffer[1], 1u, (gfp->out_samplerate &lt; 16000) ? 0 : 1);&#xA;^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#xA;jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro &#x27;SHIFT_IN_BITS_VALUE&#x27;&#xA;#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x &lt;&lt; (n)) | ( (v) &amp; ~(-1 &lt;&lt; (n)) ) )&#xA;                                                            ~~ ^&#xA;jni/../third_party/lame/libmp3lame/VbrTag.c:267:5: warning: shifting a negative signed value is undefined&#xA;  [-Wshift-negative-value]&#xA;SHIFT_IN_BITS_VALUE(buffer[1], 1u, gfp->version);&#xA;^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#xA;jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro &#x27;SHIFT_IN_BITS_VALUE&#x27;&#xA;#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x &lt;&lt; (n)) | ( (v) &amp; ~(-1 &lt;&lt; (n)) ) )&#xA;                                                            ~~ ^&#xA;jni/../third_party/lame/libmp3lame/VbrTag.c:268:5: warning: shifting a negative signed value is undefined&#xA;  [-Wshift-negative-value]&#xA;SHIFT_IN_BITS_VALUE(buffer[1], 2u, 4 - 3);&#xA;^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#xA;jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro &#x27;SHIFT_IN_BITS_VALUE&#x27;&#xA;#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x &lt;&lt; (n)) | ( (v) &amp; ~(-1 &lt;&lt; (n)) ) )&#xA;                                                            ~~ ^&#xA;jni/../third_party/lame/libmp3lame/VbrTag.c:269:5: warning: shifting a negative signed value is undefined&#xA;  [-Wshift-negative-value]&#xA;SHIFT_IN_BITS_VALUE(buffer[1], 1u, (!gfp->error_protection) ? 1 : 0);&#xA;^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#xA;jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro &#x27;SHIFT_IN_BITS_VALUE&#x27;&#xA;#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x &lt;&lt; (n)) | ( (v) &amp; ~(-1 &lt;&lt; (n)) ) )&#xA;                                                            ~~ ^&#xA;jni/../third_party/lame/libmp3lame/VbrTag.c:271:5: warning: shifting a negative signed value is undefined&#xA;  [-Wshift-negative-value]&#xA;SHIFT_IN_BITS_VALUE(buffer[2], 4u, gfc->bitrate_index);&#xA;^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#xA;jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro &#x27;SHIFT_IN_BITS_VALUE&#x27;&#xA;#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x &lt;&lt; (n)) | ( (v) &amp; ~(-1 &lt;&lt; (n)) ) )&#xA;                                                            ~~ ^&#xA;jni/../third_party/lame/libmp3lame/VbrTag.c:272:5: warning: shifting a negative signed value is undefined&#xA;  [-Wshift-negative-value]&#xA;SHIFT_IN_BITS_VALUE(buffer[2], 2u, gfc->samplerate_index);&#xA;^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#xA;jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro &#x27;SHIFT_IN_BITS_VALUE&#x27;&#xA;#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x &lt;&lt; (n)) | ( (v) &amp; ~(-1 &lt;&lt; (n)) ) )&#xA;                                                            ~~ ^&#xA;jni/../third_party/lame/libmp3lame/VbrTag.c:273:5: warning: shifting a negative signed value is undefined&#xA;  [-Wshift-negative-value]&#xA;SHIFT_IN_BITS_VALUE(buffer[2], 1u, 0);&#xA;^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#xA;jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro &#x27;SHIFT_IN_BITS_VALUE&#x27;&#xA;#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x &lt;&lt; (n)) | ( (v) &amp; ~(-1 &lt;&lt; (n)) ) )&#xA;                                                            ~~ ^&#xA;jni/../third_party/lame/libmp3lame/VbrTag.c:274:5: warning: shifting a negative signed value is undefined&#xA;  [-Wshift-negative-value]&#xA;SHIFT_IN_BITS_VALUE(buffer[2], 1u, gfp->extension);&#xA;^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#xA;jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro &#x27;SHIFT_IN_BITS_VALUE&#x27;&#xA;#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x &lt;&lt; (n)) | ( (v) &amp; ~(-1 &lt;&lt; (n)) ) )&#xA;                                                            ~~ ^&#xA;jni/../third_party/lame/libmp3lame/VbrTag.c:276:5: warning: shifting a negative signed value is undefined&#xA;  [-Wshift-negative-value]&#xA;SHIFT_IN_BITS_VALUE(buffer[3], 2u, gfp->mode);&#xA;^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#xA;jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro &#x27;SHIFT_IN_BITS_VALUE&#x27;&#xA;#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x &lt;&lt; (n)) | ( (v) &amp; ~(-1 &lt;&lt; (n)) ) )&#xA;                                                            ~~ ^&#xA;jni/../third_party/lame/libmp3lame/VbrTag.c:277:5: warning: shifting a negative signed value is undefined&#xA;  [-Wshift-negative-value]&#xA;SHIFT_IN_BITS_VALUE(buffer[3], 2u, gfc->mode_ext);&#xA;^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#xA;jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro &#x27;SHIFT_IN_BITS_VALUE&#x27;&#xA;#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x &lt;&lt; (n)) | ( (v) &amp; ~(-1 &lt;&lt; (n)) ) )&#xA;                                                            ~~ ^&#xA;jni/../third_party/lame/libmp3lame/VbrTag.c:278:5: warning: shifting a negative signed value is undefined&#xA;  [-Wshift-negative-value]&#xA;SHIFT_IN_BITS_VALUE(buffer[3], 1u, gfp->copyright);&#xA;^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#xA;jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro &#x27;SHIFT_IN_BITS_VALUE&#x27;&#xA;#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x &lt;&lt; (n)) | ( (v) &amp; ~(-1 &lt;&lt; (n)) ) )&#xA;                                                            ~~ ^&#xA;jni/../third_party/lame/libmp3lame/VbrTag.c:279:5: warning: shifting a negative signed value is undefined&#xA;  [-Wshift-negative-value]&#xA;SHIFT_IN_BITS_VALUE(buffer[3], 1u, gfp->original);&#xA;^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#xA;jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro &#x27;SHIFT_IN_BITS_VALUE&#x27;&#xA;#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x &lt;&lt; (n)) | ( (v) &amp; ~(-1 &lt;&lt; (n)) ) )&#xA;                                                            ~~ ^&#xA;jni/../third_party/lame/libmp3lame/VbrTag.c:280:5: warning: shifting a negative signed value is undefined&#xA;  [-Wshift-negative-value]&#xA;SHIFT_IN_BITS_VALUE(buffer[3], 2u, gfp->emphasis);&#xA;^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#xA;jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro &#x27;SHIFT_IN_BITS_VALUE&#x27;&#xA;#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x &lt;&lt; (n)) | ( (v) &amp; ~(-1 &lt;&lt; (n)) ) )&#xA;                                                            ~~ ^&#xA;jni/../third_party/lame/libmp3lame/VbrTag.c:421:23: warning: comparison of array &#x27;pTagData->toc&#x27; not equal to a null&#xA;  pointer is always true [-Wtautological-pointer-compare]&#xA;    if (pTagData->toc != NULL) {&#xA;        ~~~~~~~~~~^~~    ~~~~&#xA;16 warnings generated.&#xA;[arm64-v8a] Compile        : lame &lt;= bitstream.c&#xA;[arm64-v8a] Compile        : lame &lt;= encoder.c&#xA;[arm64-v8a] Compile        : lame &lt;= fft.c&#xA;[arm64-v8a] Compile        : lame &lt;= gain_analysis.c&#xA;[arm64-v8a] Compile        : lame &lt;= id3tag.c&#xA;[arm64-v8a] Compile        : lame &lt;= lame.c&#xA;jni/../third_party/lame/libmp3lame/lame.c:603:13: warning: using floating point absolute value function &#x27;fabs&#x27; when&#xA;  argument is of integer type [-Wabsolute-value]&#xA;    if (EQ(gfp->compression_ratio, 0))&#xA;        ^&#xA;jni/../third_party/lame/libmp3lame/machine.h:168:12: note: expanded from macro &#x27;EQ&#x27;&#xA;(fabs(a) > fabs(b)) \&#xA;       ^&#xA;jni/../third_party/lame/libmp3lame/lame.c:603:13: note: use function &#x27;abs&#x27; instead&#xA;jni/../third_party/lame/libmp3lame/machine.h:168:12: note: expanded from macro &#x27;EQ&#x27;&#xA;(fabs(a) > fabs(b)) \&#xA;       ^&#xA;jni/../third_party/lame/libmp3lame/lame.c:603:13: warning: using floating point absolute value function &#x27;fabs&#x27; when&#xA;  argument is of integer type [-Wabsolute-value]&#xA;    if (EQ(gfp->compression_ratio, 0))&#xA;        ^&#xA;jni/../third_party/lame/libmp3lame/machine.h:170:23: note: expanded from macro &#x27;EQ&#x27;&#xA;: (fabs((a)-(b)) &lt;= (fabs(b) * 1e-6f)))&#xA;                  ^&#xA;jni/../third_party/lame/libmp3lame/lame.c:603:13: note: use function &#x27;abs&#x27; instead&#xA;jni/../third_party/lame/libmp3lame/machine.h:170:23: note: expanded from macro &#x27;EQ&#x27;&#xA;: (fabs((a)-(b)) &lt;= (fabs(b) * 1e-6f)))&#xA;                  ^&#xA;jni/../third_party/lame/libmp3lame/lame.c:1559:9: warning: using floating point absolute value function &#x27;fabs&#x27; when&#xA;  argument is of integer type [-Wabsolute-value]&#xA;if (NEQ(gfp->scale, 0) &amp;&amp; NEQ(gfp->scale, 1.0)) {&#xA;    ^&#xA;jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro &#x27;NEQ&#x27;&#xA;#define NEQ(a,b) (!EQ(a,b))&#xA;               ^&#xA;jni/../third_party/lame/libmp3lame/machine.h:168:12: note: expanded from macro &#x27;EQ&#x27;&#xA;(fabs(a) > fabs(b)) \&#xA;       ^&#xA;jni/../third_party/lame/libmp3lame/lame.c:1559:9: note: use function &#x27;abs&#x27; instead&#xA;jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro &#x27;NEQ&#x27;&#xA;#define NEQ(a,b) (!EQ(a,b))&#xA;               ^&#xA;jni/../third_party/lame/libmp3lame/machine.h:168:12: note: expanded from macro &#x27;EQ&#x27;&#xA;(fabs(a) > fabs(b)) \&#xA;       ^&#xA;jni/../third_party/lame/libmp3lame/lame.c:1559:9: warning: using floating point absolute value function &#x27;fabs&#x27; when&#xA;  argument is of integer type [-Wabsolute-value]&#xA;if (NEQ(gfp->scale, 0) &amp;&amp; NEQ(gfp->scale, 1.0)) {&#xA;    ^&#xA;jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro &#x27;NEQ&#x27;&#xA;#define NEQ(a,b) (!EQ(a,b))&#xA;               ^&#xA; jni/../third_party/lame/libmp3lame/machine.h:170:23: note: expanded from macro &#x27;EQ&#x27;&#xA; : (fabs((a)-(b)) &lt;= (fabs(b) * 1e-6f)))&#xA;                  ^&#xA; jni/../third_party/lame/libmp3lame/lame.c:1559:9: note: use function &#x27;abs&#x27; instead&#xA; jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro &#x27;NEQ&#x27;&#xA; #define NEQ(a,b) (!EQ(a,b))&#xA;               ^&#xA; jni/../third_party/lame/libmp3lame/machine.h:170:23: note: expanded from macro &#x27;EQ&#x27;&#xA; : (fabs((a)-(b)) &lt;= (fabs(b) * 1e-6f)))&#xA;                  ^&#xA;  jni/../third_party/lame/libmp3lame/lame.c:1568:9: warning: using floating point absolute value function &#x27;fabs&#x27; when&#xA;   argument is of integer type [-Wabsolute-value]&#xA; if (NEQ(gfp->scale_left, 0) &amp;&amp; NEQ(gfp->scale_left, 1.0)) {&#xA;    ^&#xA; jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro &#x27;NEQ&#x27;&#xA; #define NEQ(a,b) (!EQ(a,b))&#xA;               ^&#xA; jni/../third_party/lame/libmp3lame/machine.h:168:12: note: expanded from macro &#x27;EQ&#x27;&#xA; (fabs(a) > fabs(b)) \&#xA;       ^&#xA; jni/../third_party/lame/libmp3lame/lame.c:1568:9: note: use function &#x27;abs&#x27; instead&#xA; jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro &#x27;NEQ&#x27;&#xA; #define NEQ(a,b) (!EQ(a,b))&#xA;               ^&#xA; jni/../third_party/lame/libmp3lame/machine.h:168:12: note: expanded from macro &#x27;EQ&#x27;&#xA; (fabs(a) > fabs(b)) \&#xA;       ^&#xA; jni/../third_party/lame/libmp3lame/lame.c:1568:9: warning: using floating point absolute value function &#x27;fabs&#x27; when&#xA;  argument is of integer type [-Wabsolute-value]&#xA; if (NEQ(gfp->scale_left, 0) &amp;&amp; NEQ(gfp->scale_left, 1.0)) {&#xA;    ^&#xA; jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro &#x27;NEQ&#x27;&#xA; #define NEQ(a,b) (!EQ(a,b))&#xA;               ^&#xA; jni/../third_party/lame/libmp3lame/machine.h:170:23: note: expanded from macro &#x27;EQ&#x27;&#xA; : (fabs((a)-(b)) &lt;= (fabs(b) * 1e-6f)))&#xA;                  ^&#xA; jni/../third_party/lame/libmp3lame/lame.c:1568:9: note: use function &#x27;abs&#x27; instead&#xA; jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro &#x27;NEQ&#x27;&#xA; #define NEQ(a,b) (!EQ(a,b))&#xA;               ^&#xA; jni/../third_party/lame/libmp3lame/machine.h:170:23: note: expanded from macro &#x27;EQ&#x27;&#xA; : (fabs((a)-(b)) &lt;= (fabs(b) * 1e-6f)))&#xA;                  ^&#xA; jni/../third_party/lame/libmp3lame/lame.c:1575:9: warning: using floating point absolute value function &#x27;fabs&#x27; when&#xA;  argument is of integer type [-Wabsolute-value]&#xA; if (NEQ(gfp->scale_right, 0) &amp;&amp; NEQ(gfp->scale_right, 1.0)) {&#xA;    ^&#xA; jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro &#x27;NEQ&#x27;&#xA; #define NEQ(a,b) (!EQ(a,b))&#xA;               ^&#xA; jni/../third_party/lame/libmp3lame/machine.h:168:12: note: expanded from macro &#x27;EQ&#x27;&#xA; (fabs(a) > fabs(b)) \&#xA;       ^&#xA; jni/../third_party/lame/libmp3lame/lame.c:1575:9: note: use function &#x27;abs&#x27; instead&#xA; jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro &#x27;NEQ&#x27;&#xA; #define NEQ(a,b) (!EQ(a,b))&#xA;               ^&#xA; jni/../third_party/lame/libmp3lame/machine.h:168:12: note: expanded from macro &#x27;EQ&#x27;&#xA; (fabs(a) > fabs(b)) \&#xA;       ^&#xA; jni/../third_party/lame/libmp3lame/lame.c:1575:9: warning: using floating point absolute value function &#x27;fabs&#x27; when&#xA;  argument is of integer type [-Wabsolute-value]&#xA; if (NEQ(gfp->scale_right, 0) &amp;&amp; NEQ(gfp->scale_right, 1.0)) {&#xA;    ^&#xA; jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro &#x27;NEQ&#x27;&#xA; #define NEQ(a,b) (!EQ(a,b))&#xA;               ^&#xA; jni/../third_party/lame/libmp3lame/machine.h:170:23: note: expanded from macro &#x27;EQ&#x27;&#xA; : (fabs((a)-(b)) &lt;= (fabs(b) * 1e-6f)))&#xA;                  ^&#xA; jni/../third_party/lame/libmp3lame/lame.c:1575:9: note: use function &#x27;abs&#x27; instead&#xA; jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro &#x27;NEQ&#x27;&#xA; #define NEQ(a,b) (!EQ(a,b))&#xA;               ^&#xA; jni/ ../third_party/lame/libmp3lame/machine.h:170:23: note: expanded from macro &#x27;EQ&#x27;&#xA; : (fabs((a)-(b)) &lt;= (fabs(b) * 1e-6f)))&#xA;                  ^&#xA; 8 warnings generated.&#xA; [arm64-v8a] Compile        : lame &lt;= mpglib_interface.c&#xA; [arm64-v8a] Compile        : lame &lt;= newmdct.c&#xA; [arm64-v8a] Compile        : lame &lt;= presets.c&#xA; jni/../third_party/lame/libmp3lame/presets.c:145:5: warning: using floating point absolute value function &#x27;fabs&#x27; when&#xA;  argument is of integer type [-Wabsolute-value]&#xA; SET_OPTION(quant_comp, set->quant_comp, -1);&#xA; ^&#xA; jni/../third_party/lame/libmp3lame/presets.c:36:16: note: expanded from macro &#x27;SET_OPTION&#x27;&#xA; else if (!(fabs(lame_get_##opt(gfp) - def) > 0)) \&#xA;           ^&#xA; jni/../third_party/lame/libmp3lame/presets.c:145:5: note: use function &#x27;abs&#x27; instead&#xA; jni/../third_party/lame/libmp3lame/presets.c:36:16: note: expanded from macro &#x27;SET_OPTION&#x27;&#xA; else if (!(fabs(lame_get_##opt(gfp) - def) > 0)) \&#xA;           ^&#xA; jni/../third_party/lame/libmp3lame/presets.c:146:5: warning: using floating point absolute value function &#x27;fabs&#x27; when&#xA;  argument is of integer type [-Wabsolute-value]&#xA; SET_OPTION(quant_comp_short, set->quant_comp_s, -1);&#xA; ^&#xA; jni/../third_party/lame/libmp3lame/presets.c:36:16: note: expanded from macro &#x27;SET_OPTION&#x27;&#xA; else if (!(fabs(lame_get_##opt(gfp) - def) > 0)) \&#xA;           ^&#xA; jni/../third_party/lame/libmp3lame/presets.c:146:5: note: use function &#x27;abs&#x27; instead&#xA; jni/../third_party/lame/libmp3lame/presets.c:36:16: note: expanded from macro &#x27;SET_OPTION&#x27;&#xA; else if (!(fabs(lame_get_##opt(gfp) - def) > 0)) \&#xA;           ^&#xA; jni/../third_party/lame/libmp3lame/presets.c:259:5: warning: using floating point absolute value function &#x27;fabs&#x27; when&#xA;  argument is of integer type [-Wabsolute-value]&#xA; SET_OPTION(quant_comp, abr_switch_map[r].quant_comp, -1);&#xA; ^&#xA; jni/../third_party/lame/libmp3lame/presets.c:36:16: note: expanded from macro &#x27;SET_OPTION&#x27;&#xA; else if (!(fabs(lame_get_##opt(gfp) - def) > 0)) \&#xA;           ^&#xA; jni/../third_party/lame/libmp3lame/presets.c:259:5: note: use function &#x27;abs&#x27; instead&#xA; jni/../third_party/lame/libmp3lame/presets.c:36:16: note: expanded from macro &#x27;SET_OPTION&#x27;&#xA; else if (!(fabs(lame_get_##opt(gfp) - def) > 0)) \&#xA;           ^&#xA; jni/../third_party/lame/libmp3lame/presets.c:260:5: warning: using floating point absolute value function &#x27;fabs&#x27; when&#xA;  argument is of integer type [-Wabsolute-value]&#xA; SET_OPTION(quant_comp_short, abr_switch_map[r].quant_comp_s, -1);&#xA; ^&#xA; jni/../third_party/lame/libmp3lame/presets.c:36:16: note: expanded from macro &#x27;SET_OPTION&#x27;&#xA; else if (!(fabs(lame_get_##opt(gfp) - def) > 0)) \&#xA;           ^&#xA; jni/../third_party/lame/libmp3lame/presets.c:260:5: note: use function &#x27;abs&#x27; instead&#xA; jni/../third_party/lame/libmp3lame/presets.c:36:16: note: expanded from macro &#x27;SET_OPTION&#x27;&#xA; else if (!(fabs(lame_get_##opt(gfp) - def) > 0)) \&#xA;           ^&#xA; 4 warnings generated.&#xA; [arm64-v8a] Compile        : lame &lt;= psymodel.c&#xA; [arm64-v8a] Compile        : lame &lt;= quantize.c&#xA; [arm64-v8a] Compile        : lame &lt;= quantize_pvt.c&#xA; jni/../third_party/lame/libmp3lame/quantize_pvt.c:664:23: warning: using floating point absolute value function &#x27;fabs&#x27;&#xA;  when argument is of integer type [-Wabsolute-value]&#xA;    while (k-- &amp;&amp; EQ(xr[k], 0)) {&#xA;                  ^&#xA; jni/../third_party/lame/libmp3lame/machine.h:168:12: note: expanded from macro &#x27;EQ&#x27;&#xA; (fabs(a) > fabs(b)) \&#xA;       ^&#xA; jni/../third_party/lame/libmp3lame/quantize_pvt.c:664:23: note: use function &#x27;abs&#x27; instead&#xA; jni/../third_party/lame/libmp3lame/machine.h:168:12: note: expanded from macro &#x27;EQ&#x27;&#xA; (fabs(a) > fabs(b)) \&#xA;       ^&#xA; jni/../third_party/lame/libmp3lame/quantize_pvt.c:664:23: warning: using floating point absolute value function &#x27;fabs&#x27;&#xA;  when argument is of integer type [-Wabsolute-value]&#xA;    while (k-- &amp;&amp; EQ(xr[k], 0)) {&#xA;                  ^&#xA; jni/../third_party/lame/libmp3lame/machine.h:170:23: note: expanded from macro &#x27;EQ&#x27;&#xA; :  (fabs((a)-(b)) &lt;= (fabs(b) * 1e-6f)))&#xA;                  ^&#xA; jni/../third_party/lame/libmp3lame/quantize_pvt.c:664:23: note: use function &#x27;abs&#x27; instead&#xA; jni/../third_party/lame/libmp3lame/machine.h:170:23: note: expanded from macro &#x27;EQ&#x27;&#xA; : (fabs((a)-(b)) &lt;= (fabs(b) * 1e-6f)))&#xA;                  ^&#xA; 2 warnings generated.&#xA; [arm64-v8a] Compile        : lame &lt;= reservoir.c&#xA; [arm64-v8a] Compile        : lame &lt;= set_get.c&#xA; [arm64-v8a] Compile        : lame &lt;= tables.c&#xA; [arm64-v8a] Compile        : lame &lt;= takehiro.c&#xA; [arm64-v8a] Compile        : lame &lt;= util.c&#xA; [arm64-v8a] Compile        : lame &lt;= vbrquantize.c&#xA; [arm64-v8a] Compile        : lame &lt;= version.c&#xA; [ arm64-v8a] StaticLibrary  : liblame.a&#xA; [ arm64-v8a] SharedLibrary  : libffmpeg.so&#xA; jni/../third_party/lib/libavformat.a: error adding symbols: File in wrong format&#xA; clang&#x2B;&#x2B;: error: linker command failed with exit code 1 (use -v to see invocation)&#xA; make: *** [D:/install/sdk/ndk/21.0.6113669/build//../build/core/build-binary.mk:725: obj/local/arm64-v8a/libffmpeg.so] Error 1&#xA;&#xA;  D:\Github\n>&#xA;

    &#xA;&#xA;

    How can I solve this ?

    &#xA;