美文网首页音视频开发我爱编程
android ijkplayer C++/C调试 没按官方的R

android ijkplayer C++/C调试 没按官方的R

作者: 45f0c6e690c1 | 来源:发表于2018-04-15 14:03 被阅读362次

    NDK版本:android-ndk-r10e
    Android版本: android studio 3.0.1
    ijkplayer: branch * latest cced91e3 k0.8.8
    1.切换build.gradle版本

    diff --git a/android/ijkplayer/build.gradle b/android/ijkplayer/build.gradle
    index abc1270f..16f2ccc7 100644
    --- a/android/ijkplayer/build.gradle
    +++ b/android/ijkplayer/build.gradle
    @@ -5,7 +5,8 @@ buildscript {
             jcenter()
         }
         dependencies {
    -        classpath 'com.android.tools.build:gradle:2.1.3'
    +//       classpath 'com.android.tools.build:gradle:2.1.3'
    +        classpath 'com.android.tools.build:gradle:2.3.3'
     
             classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
             classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7'
    @@ -29,7 +30,7 @@ ext {
         versionCode = 800800
         versionName = "0.8.8"
     }
    -
    -wrapper {
    -    gradleVersion = '2.14.1'
    -}
    +//
    +//wrapper {
    +//    gradleVersion = '2.14.1'
    +//}
    

    2.build.gradle支持CmakeList.txt编译且只编译ijkplayer-armv7a

    diff --git a/android/ijkplayer/ijkplayer-example/build.gradle b/android/ijkplayer/ijkplayer-example/build.gradle
    index ae4a0c65..83bb407f 100644
    --- a/android/ijkplayer/ijkplayer-example/build.gradle
    +++ b/android/ijkplayer/ijkplayer-example/build.gradle
    @@ -16,6 +16,27 @@ android {
             targetSdkVersion rootProject.ext.targetSdkVersion
             versionCode rootProject.ext.versionCode
             versionName rootProject.ext.versionName
    +
    +        externalNativeBuild {
    +            cmake {
    +
    +                cppFlags "-frtti -fexceptions -std=gnu++11 -std=c++98  -DWEBRTC_POSIX -DNMDEBUG" +
    +                        " -D__STDC_CONSTANT_MACROS -DUSR_DEF_ENABLE_CONVERTER=1" +
    +                        " -DUSR_CODEC_DEBUG=0" +
    +                        " -DTESR_RUNTIME_COST=0"
    +            }
    +        }
    +
    +        ndk {
    +            abiFilters 'armeabi-v7a'
    +        }
    +
    +    }
    +
    +    externalNativeBuild {
    +        cmake {
    +            path "CMakeLists.txt"
    +        }
         }
         buildTypes {
             release {
    @@ -44,15 +65,15 @@ dependencies {
         compile project(':ijkplayer-java')
         compile project(':ijkplayer-exo')
     
    -    all32Compile project(':ijkplayer-armv5')
    +    //all32Compile project(':ijkplayer-armv5')
         all32Compile project(':ijkplayer-armv7a')
    -    all32Compile project(':ijkplayer-x86')
    +    //all32Compile project(':ijkplayer-x86')
     
    -    all64Compile project(':ijkplayer-armv5')
    -    all64Compile project(':ijkplayer-armv7a')
    -    all64Compile project(':ijkplayer-arm64')
    -    all64Compile project(':ijkplayer-x86')
    -    all64Compile project(':ijkplayer-x86_64')
    +    //all64Compile project(':ijkplayer-armv5')
    +    //all64Compile project(':ijkplayer-armv7a')
    +    //all64Compile project(':ijkplayer-arm64')
    +    //all64Compile project(':ijkplayer-x86')
    +    //all64Compile project(':ijkplayer-x86_64')
     
         // compile 'tv.danmaku.ijk.media:ijkplayer-java:0.8.8'
         // compile 'tv.danmaku.ijk.media:ijkplayer-exo:0.8.8'
    
    diff --git a/android/ijkplayer/settings.gradle b/android/ijkplayer/settings.gradle
    index 758234a4..3b42cb8b 100644
    --- a/android/ijkplayer/settings.gradle
    +++ b/android/ijkplayer/settings.gradle
    @@ -1,7 +1,5 @@
    -include ':ijkplayer-armv5', ':ijkplayer-x86_64'
     include ':ijkplayer-armv7a'
    -include ':ijkplayer-arm64'
    -include ':ijkplayer-x86'
    +//include ':ijkplayer-arm64'
     
     include ':ijkplayer-java'
     include ':ijkplayer-exo'
    

    3.CMakeList.txt把ijkplayer和ijksdl库编译成一个库ijkplayer

    --- a/android/ijkplayer/ijkplayer-java/src/main/java/tv/danmaku/ijk/media/player/IjkMediaPlayer.java
    +++ b/android/ijkplayer/ijkplayer-java/src/main/java/tv/danmaku/ijk/media/player/IjkMediaPlayer.java
    @@ -188,7 +188,7 @@ public final class IjkMediaPlayer extends AbstractMediaPlayer {
                         libLoader = sLocalLibLoader;
     
                     libLoader.loadLibrary("ijkffmpeg");
    -                libLoader.loadLibrary("ijksdl");
    +//                libLoader.loadLibrary("ijksdl");
                     libLoader.loadLibrary("ijkplayer");
                     mIsLibLoaded = true;
                 }
    

    4XXX

    diff --git a/ijkmedia/ijksdl/ijksdl_thread.c b/ijkmedia/ijksdl/ijksdl_thread.c
    index ae367987..df5af82b 100644
    --- a/ijkmedia/ijksdl/ijksdl_thread.c
    +++ b/ijkmedia/ijksdl/ijksdl_thread.c
    @@ -86,7 +86,7 @@ int SDL_SetThreadPriority(SDL_ThreadPriority priority)
     
     void SDL_WaitThread(SDL_Thread *thread, int *status)
     {
    -    assert(thread);
    +    //assert(thread);
         if (!thread)
             return;
     
    
    1. 加上#include <stdint.h> ,不然会报int64_t没定义
    diff --git a/ijkmedia/ijkplayer/ijkavutil/ijkstl.cpp b/ijkmedia/ijkplayer/ijkavutil/ijkstl.cpp
    index eee8b8cf..38e2d059 100644
    --- a/ijkmedia/ijkplayer/ijkavutil/ijkstl.cpp
    +++ b/ijkmedia/ijkplayer/ijkavutil/ijkstl.cpp
    @@ -18,6 +18,7 @@
      * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
      */
     #include <map>
    +#include <stdint.h>
     
     using namespace std;
    

    6.XXX

    diff --git a/ijkmedia/ijksdl/android/android_nativewindow.c b/ijkmedia/ijksdl/android/android_nativewindow.c
    index b9fb3458..11f75b06 100644
    --- a/ijkmedia/ijksdl/android/android_nativewindow.c
    +++ b/ijkmedia/ijksdl/android/android_nativewindow.c
    @@ -99,7 +99,7 @@ static int android_render_on_yv12(ANativeWindow_Buffer *out_buffer, const SDL_Vo
     static int android_render_rgb_on_rgb(ANativeWindow_Buffer *out_buffer, const SDL_VoutOverlay *overlay, int bpp)
     {
         // SDLTRACE("SDL_VoutAndroid: android_render_rgb_on_rgb(%p)", overlay);
    -    assert(overlay->format == SDL_FCC_RV16);
    +    //assert(overlay->format == SDL_FCC_RV16);
         assert(overlay->planes == 1);
     
         int min_height = IJKMIN(out_buffer->height, overlay->h);
    

    7.ijkplayer和ijksdl合成一个库,ijksdl_android_jni.c要借用ijkplayer_jni.c的JVM,防止编译重命名,修改为SDL_JNI_OnLoad

    diff --git a/ijkmedia/ijkplayer/android/ijkplayer_jni.c b/ijkmedia/ijkplayer/android/ijkplayer_jni.c
    index b5a50e7d..3903532f 100755
    --- a/ijkmedia/ijkplayer/android/ijkplayer_jni.c
    +++ b/ijkmedia/ijkplayer/android/ijkplayer_jni.c
    
    @@ -1203,6 +1204,7 @@ JNIEXPORT jint JNI_OnLoad(JavaVM *vm, void *reserved)
     
         FFmpegApi_global_init(env);
     
    +    SDL_JNI_OnLoad(vm, 0);
         return JNI_VERSION_1_4;
     }
     
    --- a/ijkmedia/ijksdl/android/ijksdl_android_jni.c
    +++ b/ijkmedia/ijksdl/android/ijksdl_android_jni.c
    @@ -30,7 +30,7 @@
     
    -JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved)
    +JNIEXPORT jint JNICALL SDL_JNI_OnLoad(JavaVM *vm, void *reserved)
    
     
    -JNIEXPORT void JNICALL JNI_OnUnload(JavaVM *jvm, void *reserved)
    +JNIEXPORT void JNICALL SDL_JNI_OnUnload(JavaVM *jvm, void *reserved)
    
    diff --git a/ijkmedia/ijksdl/android/ijksdl_android_jni.h b/ijkmedia/ijksdl/android/ijksdl_android_jni.h
    index 76477a91..6d40940e 100644
    --- a/ijkmedia/ijksdl/android/ijksdl_android_jni.h
    +++ b/ijkmedia/ijksdl/android/ijksdl_android_jni.h
    @@ -53,6 +53,8 @@
     #define IJK_API_22_LOLLIPOP_MR1             22  // 5.1
     #define IJK_API_23_M                        23  // 6.0
     
    +JNIEXPORT jint JNICALL SDL_JNI_OnLoad(JavaVM *vm, void *reserved);
    

    9..//ijkmedia/ijkyuv/util/psnr.h .//ijkmedia/ijkyuv/util/psnr.cc

    //ijkmedia/ijkyuv/util/psnr.h 
    -double ComputeSumSquareError(const uint8* org, const uint8* rec, int size);
    +//double ComputeSumSquareError(const uint8* org, const uint8* rec, int size);
    
    //ijkmedia/ijkyuv/util/psnr.cc
    -double ComputeSumSquareError(const uint8* org, const uint8* rec, int size);
    +static double ComputeSumSquareError(const uint8* org, const uint8* rec, int size);
    

    10.CMakeLists.txt
    DIR:./ijkplayer/android/ijkplayer/ijkplayer-example/CMakeLists.txt

    # For more information about using CMake with Android Studio, read the
    # documentation: https://d.android.com/studio/projects/add-native-code.html
    
    # Sets the minimum version of CMake required to build the native library.
    #ComputeSumSquareError
    #ADD_DEFINITIONS(-DHAVE_JPEG)
    
    set(BASE_JNI_DIR
        "${CMAKE_SOURCE_DIR}/../ijkplayer-armv7a"
    )
    
    set(
        third-libs
        ${CMAKE_SOURCE_DIR}/../../contrib/build/ffmpeg-armv7a/output/libijkffmpeg.so
    )
    
    cmake_minimum_required(VERSION 3.4.1)
    INCLUDE_DIRECTORIES(
        ${CMAKE_SOURCE_DIR}/../../contrib/build/ffmpeg-armv7a/output/include
        ${BASE_JNI_DIR}/src/main/jni/android-ndk-prof
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkj4a/j4a/class/android/media
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkj4a/j4a/class/android/os
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkj4a/j4a/class/java/nio
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkj4a/j4a/class/java/util
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkj4a/j4a/class/tv/danmaku/ijk/media/player
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkj4a/j4a/class/tv/danmaku/ijk/media/player/misc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkj4a/j4a
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkj4a
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkj4a/j4au/class/android/media
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkj4a/j4au/class/java/nio
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/android
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/android/pipeline
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/pipeline
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/android
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/dummy
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/ffmpeg
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/gles2
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksoundtouch
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksoundtouch/include
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksoundtouch/source/SoundStretch
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksoundtouch/source/SoundTouch
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksoundtouch/source/SoundTouchDLL
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/include
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/util
    )
    
    set( SRC_FILES
        ${BASE_JNI_DIR}/src/main/jni/android-ndk-prof/prof.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkj4a/j4a/class/android/media/AudioTrack.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkj4a/j4a/class/android/media/MediaCodec.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkj4a/j4a/class/android/media/MediaFormat.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkj4a/j4a/class/android/media/PlaybackParams.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkj4a/j4a/class/android/os/Build.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkj4a/j4a/class/android/os/Bundle.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkj4a/j4a/class/java/nio/Buffer.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkj4a/j4a/class/java/nio/ByteBuffer.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkj4a/j4a/class/java/util/ArrayList.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkj4a/j4a/class/tv/danmaku/ijk/media/player/IjkMediaPlayer.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkj4a/j4a/class/tv/danmaku/ijk/media/player/misc/IAndroidIO.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkj4a/j4a/class/tv/danmaku/ijk/media/player/misc/IMediaDataSource.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkj4a/j4a/j4a_allclasses.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkj4a/j4a/j4a_base.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkj4a/j4au/class/android/media/AudioTrack.util.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkj4a/j4au/class/java/nio/ByteBuffer.util.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/android/ffmpeg_api_jni.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/android/ijkplayer_android.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/android/ijkplayer_jni.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/android/pipeline/ffpipeline_android.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/android/pipeline/ffpipenode_android_mediacodec_vdec.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/ff_cmdutils.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/ff_ffpipeline.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/ff_ffpipenode.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/ff_ffplay.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/ijkavformat/allformats.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/ijkavformat/ijkasync.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/ijkavformat/ijkio.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/ijkavformat/ijkioandroidio.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/ijkavformat/ijkioapplication.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/ijkavformat/ijkiocache.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/ijkavformat/ijkioffio.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/ijkavformat/ijkiomanager.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/ijkavformat/ijkioprotocol.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/ijkavformat/ijkiourlhook.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/ijkavformat/ijklivehook.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/ijkavformat/ijklongurl.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/ijkavformat/ijkmediadatasource.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/ijkavformat/ijksegment.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/ijkavformat/ijkurlhook.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/ijkavutil/ijkdict.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/ijkavutil/ijkfifo.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/ijkavutil/ijkthreadpool.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/ijkavutil/ijktree.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/ijkavutil/ijkutils.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/ijkmeta.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/ijkplayer.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/pipeline/ffpipeline_ffplay.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/pipeline/ffpipenode_ffplay_vdec.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/android/android_audiotrack.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/android/android_nativewindow.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/android/ijksdl_android_jni.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/android/ijksdl_aout_android_audiotrack.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/android/ijksdl_aout_android_opensles.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/android/ijksdl_codec_android_mediacodec.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/android/ijksdl_codec_android_mediacodec_dummy.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/android/ijksdl_codec_android_mediacodec_internal.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/android/ijksdl_codec_android_mediacodec_java.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/android/ijksdl_codec_android_mediadef.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/android/ijksdl_codec_android_mediaformat.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/android/ijksdl_codec_android_mediaformat_java.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/android/ijksdl_vout_android_nativewindow.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/android/ijksdl_vout_android_surface.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/android/ijksdl_vout_overlay_android_mediacodec.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/dummy/ijksdl_vout_dummy.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/ffmpeg/abi_all/image_convert.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/ffmpeg/ijksdl_vout_overlay_ffmpeg.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/gles2/color.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/gles2/common.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/gles2/fsh/rgb.fsh.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/gles2/fsh/yuv420p.fsh.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/gles2/fsh/yuv420sp.fsh.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/gles2/fsh/yuv444p10le.fsh.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/gles2/renderer.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/gles2/renderer_rgb.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/gles2/renderer_yuv420p.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/gles2/renderer_yuv420sp.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/gles2/renderer_yuv444p10le.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/gles2/shader.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/gles2/vsh/mvp.vsh.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/ijksdl_aout.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/ijksdl_audio.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/ijksdl_egl.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/ijksdl_error.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/ijksdl_extra_log.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/ijksdl_mutex.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/ijksdl_stdinc.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/ijksdl_thread.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/ijksdl_timer.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksdl/ijksdl_vout.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/util/cpuid.c
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/compare.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/compare_common.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/compare_neon.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/compare_neon64.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/compare_posix.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/compare_win.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/convert.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/convert_argb.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/convert_from.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/convert_from_argb.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/convert_jpeg.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/convert_to_argb.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/convert_to_i420.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/cpu_id.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/format_conversion.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/mjpeg_decoder.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/mjpeg_validate.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/planar_functions.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/rotate.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/rotate_argb.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/rotate_mips.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/rotate_neon.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/rotate_neon64.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/row_any.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/row_common.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/row_mips.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/row_neon.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/row_neon64.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/row_posix.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/row_win.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/scale.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/scale_argb.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/scale_common.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/scale_mips.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/scale_neon.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/scale_neon64.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/scale_posix.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/scale_win.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/source/video_common.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/util/psnr.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkyuv/util/ssim.cc
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijkplayer/ijkavutil/ijkstl.cpp
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksoundtouch/ijksoundtouch_wrap.cpp
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksoundtouch/source/Android-lib/jni/soundtouch-jni.cpp
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksoundtouch/source/SoundStretch/RunParameters.cpp
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksoundtouch/source/SoundStretch/WavFile.cpp
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksoundtouch/source/SoundTouch/AAFilter.cpp
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksoundtouch/source/SoundTouch/BPMDetect.cpp
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksoundtouch/source/SoundTouch/cpu_detect_x86.cpp
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksoundtouch/source/SoundTouch/FIFOSampleBuffer.cpp
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksoundtouch/source/SoundTouch/FIRFilter.cpp
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksoundtouch/source/SoundTouch/InterpolateCubic.cpp
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksoundtouch/source/SoundTouch/InterpolateLinear.cpp
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksoundtouch/source/SoundTouch/InterpolateShannon.cpp
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksoundtouch/source/SoundTouch/mmx_optimized.cpp
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksoundtouch/source/SoundTouch/PeakFinder.cpp
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksoundtouch/source/SoundTouch/RateTransposer.cpp
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksoundtouch/source/SoundTouch/SoundTouch.cpp
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksoundtouch/source/SoundTouch/sse_optimized.cpp
        ${BASE_JNI_DIR}/src/main/jni/ijkmedia/ijksoundtouch/source/SoundTouch/TDStretch.cpp
    )
    
    # Creates and names a library, sets it as either STATIC
    # or SHARED, and provides the relative paths to its source code.
    # You can define multiple libraries, and CMake builds them for you.
    # Gradle automatically packages shared libraries with your APK.
    add_library( # Sets the name of the library.
                 ijkplayer
                 # Sets the library as a shared library.
                 SHARED
    
                 # Provides a relative path to your source file(s).
                 ${SRC_FILES} )
    
    # Searches for a specified prebuilt library and stores the path as a
    # variable. Because CMake includes system libraries in the search path by
    # default, you only need to specify the name of the public NDK library
    # you want to add. CMake verifies that the library exists before
    # completing its build.
    
    find_library( # Sets the name of the path variable.
                  log-lib
    
                  # Specifies the name of the NDK library that
                  # you want CMake to locate.
                  log
                  )
    find_library( android-lib android)
    find_library( EGL-lib EGL)
    find_library( GLESv2-lib GLESv2)
    find_library( GLESv1_CM-lib GLESv1_CM)
    find_library( OpenSLES-lib OpenSLES)
    find_library( dl-lib dl)
    find_library( z-lib z)
    
    # Specifies libraries CMake should link to your target library. You
    # can link multiple libraries, such as libraries you define in this
    # build script, prebuilt third-party libraries, or system libraries.
    
    target_link_libraries( # Specifies the target library.
                           ijkplayer
                           # Links the target library to the log library
                           # included in the NDK.
                           ${log-lib}
                           ${android-lib}
                           ${EGL-lib}
                           ${GLESv2-lib}
                           ${GLESv1_CM-lib}
                           ${OpenSLES-lib}
                           ${dl-lib}
                           ${z-lib}
                           ${third-libs}
                            )
    

    相关文章

      网友评论

        本文标题:android ijkplayer C++/C调试 没按官方的R

        本文链接:https://www.haomeiwen.com/subject/inpdkftx.html