DJI-Mobile-SDK-Tutorials / Android-VideoStreamDecodingSample

This sample project demonstrates how to use FFmpeg for video frame parsing and to use MediaCodec for hardware decoding on DJI Products.
MIT License
170 stars 81 forks source link

NativeHelper methods does not work. #29

Open saikrishnarao2 opened 6 years ago

saikrishnarao2 commented 6 years ago

When i integrated with other application, No implementation found for boolean com.dji.sdk.sample.media.NativeHelper.parse(byte[], int) (tried Java_com_dji_sdk_sample_media_NativeHelper_parse and Java_com_dji_sdk_sample_media_NativeHelper_parse___3BI)

oliverou commented 6 years ago

Hi @saikrishnarao2 , could you help to provide the following infos for us to help investigate the issue:

Thanks!

IgMart commented 6 years ago

Hi @saikrishnarao2 , You need to change the name of the method with the new route of your project. Java_new_route_project_media_NativeHelper_parse In every function in dji_video_jni.c and then recompile with ndk-build in order to generate new .so files.

Regards

mordka commented 6 years ago

You also need to point the *.so libs in the gradle config.

android {
 sourceSets {
        main {
            jniLibs.srcDir 'libs'
        }
    }
}
jeryini commented 3 years ago

Hello @IgMart !

I've updated function names in dji_video_jni.c to reflect different package name for NativeHelper location in my project. I'm using the following command to recompile: /home/jernej/Android/Sdk/ndk/22.0.7026061/ndk-build and get the following output:

jernej@jernej-ThinkPad-T480:~/git/drone-control-android/jni$ /home/jernej/Android/Sdk/ndk/22.0.7026061/ndk-build
/home/jernej/Android/Sdk/ndk/22.0.7026061/build/core/build-binary.mk:751: warning: overriding recipe for target '/home/jernej/git/drone-control-android/obj/local/armeabi-v7a/libffmpeg.so'
/home/jernej/Android/Sdk/ndk/22.0.7026061/build/core/build-binary.mk:751: warning: ignoring old recipe for target '/home/jernej/git/drone-control-android/obj/local/armeabi-v7a/libffmpeg.so'
/home/jernej/Android/Sdk/ndk/22.0.7026061/build/core/build-binary.mk:775: warning: overriding recipe for target '/home/jernej/git/drone-control-android/libs/armeabi-v7a/libffmpeg.so'
/home/jernej/Android/Sdk/ndk/22.0.7026061/build/core/build-binary.mk:775: warning: ignoring old recipe for target '/home/jernej/git/drone-control-android/libs/armeabi-v7a/libffmpeg.so'
/home/jernej/Android/Sdk/ndk/22.0.7026061/build/core/build-binary.mk:751: warning: overriding recipe for target '/home/jernej/git/drone-control-android/obj/local/x86/libffmpeg.so'
/home/jernej/Android/Sdk/ndk/22.0.7026061/build/core/build-binary.mk:751: warning: ignoring old recipe for target '/home/jernej/git/drone-control-android/obj/local/x86/libffmpeg.so'
/home/jernej/Android/Sdk/ndk/22.0.7026061/build/core/build-binary.mk:775: warning: overriding recipe for target '/home/jernej/git/drone-control-android/libs/x86/libffmpeg.so'
/home/jernej/Android/Sdk/ndk/22.0.7026061/build/core/build-binary.mk:775: warning: ignoring old recipe for target '/home/jernej/git/drone-control-android/libs/x86/libffmpeg.so'
/home/jernej/Android/Sdk/ndk/22.0.7026061/build/core/build-binary.mk:751: warning: overriding recipe for target '/home/jernej/git/drone-control-android/obj/local/arm64-v8a/libffmpeg.so'
/home/jernej/Android/Sdk/ndk/22.0.7026061/build/core/build-binary.mk:751: warning: ignoring old recipe for target '/home/jernej/git/drone-control-android/obj/local/arm64-v8a/libffmpeg.so'
/home/jernej/Android/Sdk/ndk/22.0.7026061/build/core/build-binary.mk:775: warning: overriding recipe for target '/home/jernej/git/drone-control-android/libs/arm64-v8a/libffmpeg.so'
/home/jernej/Android/Sdk/ndk/22.0.7026061/build/core/build-binary.mk:775: warning: ignoring old recipe for target '/home/jernej/git/drone-control-android/libs/arm64-v8a/libffmpeg.so'
[armeabi-v7a] Install        : libdjivideojni.so => libs/armeabi-v7a/libdjivideojni.so
[armeabi-v7a] Install        : libffmpeg.so => libs/armeabi-v7a/libffmpeg.so
[armeabi-v7a] Install        : libyuv2.so => libs/armeabi-v7a/libyuv2.so
[x86] Install        : libdjivideojni.so => libs/x86/libdjivideojni.so
[x86] Install        : libffmpeg.so => libs/x86/libffmpeg.so
[x86] Install        : libyuv2.so => libs/x86/libyuv2.so
[arm64-v8a] Install        : libdjivideojni.so => libs/arm64-v8a/libdjivideojni.so
[arm64-v8a] Install        : libffmpeg.so => libs/arm64-v8a/libffmpeg.so
[arm64-v8a] Install        : libyuv2.so => libs/arm64-v8a/libyuv2.so

I can see that .so files have been built successfully, but when I run the example, the main surface video is not working anymore. Should I use some additional options when recompiling?

Michael-DJI commented 3 years ago

DUSDK-13639

DJI-William commented 2 years ago

Is problem solved?