Open Khubaib96 opened 5 years ago
@Quadattack Did you manage to solve this?
@Quadattack Remove -DDISABLE_FLOAT_API
and include OPUS_SOURCES += $(OPUS_SOURCES_FLOAT)
.
@ppamorim same case on my end.
I can understand the:
Remove -DDISABLE_FLOAT_API
But could you please elaborate on:
include OPUS_SOURCES += $(OPUS_SOURCES_FLOAT)
As OPUS_SOURCES_FLOAT, I couldn't find it.
It's not in the Android.mk file. It's imported externally. Please try to add this flag before its usage and compile.
@ppamorim my apologise, but I'm quite new in this thing.
Is there any way to get a rather detail step?
I mean,
it's imported externally
What does it mean? External in terms of what? Is there a command to do it? Or a code to add? And if it's a code, which file to be modified?
Please try to add this flag before its usage and compile.
What flag? What usage? and in which context is its usage? Compile? You mean gradle compile? Or ndk build compile? Or ./configure and make kinda thing?
So sorry, but I just don't simply understand your answer.
Further help is appreciated @ppamorim .
@fadils I think it's easier to share the script I am using to compile opus, it was "verified" by @mark4o.
Compile opus + libopusenc: https://gist.github.com/ppamorim/d6468fc4b8ba3ea2d17bef16b58ed72c
I've added comments explaining the changes needed to compile it.
Hey @ppamorim , thanks so much! For sure, the ndk-build was successfully executed.
However, two things:
I received this warning:
/app/src/main/jni/libopusenc/../: No such file or directory
Should I be worried about it?
I cannot also find the .so
files after the ndk-build
is executed.
You have to clone the source code of libopusenc inside a format of the same name, the script will find this folder and compile it.
To build .so
you need to run this in the line 50 of the script above, you can move this to the end of the file and include libopusenc too:
include $(CLEAR_VARS)
LOCAL_MODULE := opus-share
# LOCAL_SRC_FILES := libopus.a
LOCAL_STATIC_LIBRARIES := opus
include $(BUILD_SHARED_LIBRARY)
Hey, thanks again.
Downloaded the libopusenc
. Run ndk-build, still unsuccessful with the following:
make: *** No rule to make target
`/Users/fadils/voice-project/app/src/main/jni/libopusenc/
..//Users/fadils/voice-project/app/src/main/jni/libopusenc/src/ogg_packer.c',
needed by
`/Users/fadils/voice-project/app/src/main/obj/local/arm64-v8a/objs/opusenc/__//Users/fadils/voice-project/app/src/main/jni/libopusenc/src/ogg_packer.o'.
Stop.
Hello, Yeah i managed to solve it by careful analysis (updated files with respect to latest Opus files) of files included in Android.mk. Moreover, there are some C files which include demo in the name. Please exclude all those files from android.mk
@Quadattack Please close the issue if you sorted it.
Hello, I have followed this tutorial in compiling and using opus with NDK.
Its working fine with the opus version he is using but when I follow the same procedure step by step for Opus 1.3.1 , I have encountered following errors while using ndk-build command.
I am using Android Studio 3.4 NDK is android-ndk-r13b
Error occuring is:
E:/Projects/Android/opustest/app/src/main/obj/local/arm64-v8a/objs/senz/E_/Projects/Android/opustest/app/src/main/jni/opus/silk/NLSF2A.o: In function
silk_NLSF2A': E:/Projects/Android/opustest/app/src/main/jni/opus/silk/NLSF2A.c:130: undefined reference to
silk_LPCfit' E:/Projects/Android/opustest/app/src/main/obj/local/arm64-v8a/objs/senz/E/Projects/Android/opustest/app/src/main/jni/opus/src/opus_decoder.o: In functionopus_decoder_get_size': E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_decoder.c:112: undefined reference to
celt_decoder_get_size' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_decoder.c:112: undefined reference tocelt_decoder_get_size' E:/Projects/Android/opustest/app/src/main/obj/local/arm64-v8a/objs/senz/E_/Projects/Android/opustest/app/src/main/jni/opus/src/opus_decoder.o: In function
opus_decoder_init': E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_decoder.c:148: undefined reference tocelt_decoder_init' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_decoder.c:151: undefined reference to
opus_custom_decoderctl' E:/Projects/Android/opustest/app/src/main/obj/local/arm64-v8a/objs/senz/E/Projects/Android/opustest/app/src/main/jni/opus/src/opus_decoder.o: In functionopus_decoder_get_size': E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_decoder.c:112: undefined reference to
celt_decoder_getsize' E:/Projects/Android/opustest/app/src/main/obj/local/arm64-v8a/objs/senz/E/Projects/Android/opustest/app/src/main/jni/opus/src/opus_decoder.o: In functionopus_decode_frame': E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_decoder.c:491: undefined reference to
opus_custom_decoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_decoder.c:493: undefined reference toopus_custom_decoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_decoder.c:502: undefined reference to
opus_custom_decoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_decoder.c:503: undefined reference tocelt_decode_with_ec' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_decoder.c:505: undefined reference to
opus_custom_decoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_decoder.c:509: undefined reference toopus_custom_decoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_decoder.c:531: undefined reference to
opus_custom_decoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_decoder.c:532: undefined reference tocelt_decode_with_ec' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_decoder.c:516: undefined reference to
opus_custom_decoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_decoder.c:518: undefined reference tocelt_decode_with_ec' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_decoder.c:549: undefined reference to
opus_custom_decoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_decoder.c:556: undefined reference toopus_custom_decoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_decoder.c:557: undefined reference to
opus_custom_decoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_decoder.c:559: undefined reference tocelt_decode_with_ec' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_decoder.c:560: undefined reference to
opus_custom_decoderctl' E:/Projects/Android/opustest/app/src/main/obj/local/arm64-v8a/objs/senz/E/Projects/Android/opustest/app/src/main/jni/opus/src/opus_decoder.o: In functionopus_decoder_ctl': E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_decoder.c:874: undefined reference to
opus_custom_decoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_decoder.c:940: undefined reference toopus_custom_decoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_decoder.c:950: undefined reference to
opus_custom_decoderctl' E:/Projects/Android/opustest/app/src/main/obj/local/arm64-v8a/objs/senz/E/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.o: In functionopus_encoder_get_size': E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:178: undefined reference to
celt_encoder_get_size' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:178: undefined reference tocelt_encoder_get_size' E:/Projects/Android/opustest/app/src/main/obj/local/arm64-v8a/objs/senz/E_/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.o: In function
opus_encoder_init': E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:232: undefined reference tocelt_encoder_init' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:235: undefined reference to
opus_custom_encoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:236: undefined reference toopus_custom_encoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:266: undefined reference to
tonality_analysisinit' E:/Projects/Android/opustest/app/src/main/obj/local/arm64-v8a/objs/senz/E/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.o: In functionopus_encoder_get_size': E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:178: undefined reference to
celt_encoder_getsize' E:/Projects/Android/opustest/app/src/main/obj/local/arm64-v8a/objs/senz/E/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.o: In functionopus_encode_native': E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:1134: undefined reference to
opus_custom_encoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:1155: undefined reference totonality_analysis_reset' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:1146: undefined reference to
run_analysis' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:1549: undefined reference toopus_custom_encoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:1906: undefined reference to
opus_custom_encoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:1907: undefined reference toopus_custom_encoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:1909: undefined reference to
opus_custom_encoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:1913: undefined reference toopus_custom_encoder_ctl' E:/Projects/Android/opustest/app/src/main/obj/local/arm64-v8a/objs/senz/E_/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.o:E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:1917: more undefined references to
opus_custom_encoderctl' follow E:/Projects/Android/opustest/app/src/main/obj/local/arm64-v8a/objs/senz/E/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.o: In functionopus_encode_native': E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:2048: undefined reference to
celt_encode_with_ec'E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:2054: undefined reference toopus_custom_encoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:2055: undefined reference to
opus_custom_encoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:2058: undefined reference toopus_custom_encoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:2065: undefined reference to
opus_custom_encoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:2068: undefined reference tocelt_encode_with_ec'E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:2069: undefined reference to
opus_custom_encoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:2076: undefined reference toopus_custom_encoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:2077: undefined reference to
opus_custom_encoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:2078: undefined reference tocelt_encode_with_ec'E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:2102: undefined reference to
opus_custom_encoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:2103: undefined reference toopus_custom_encoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:2104: undefined reference to
opus_custom_encoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:2105: undefined reference toopus_custom_encoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:2106: undefined reference to
opus_custom_encoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:2115: undefined reference tocelt_encode_with_ec'E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:2117: undefined reference to
celt_encode_with_ec'E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:2123: undefined reference toopus_custom_encoder_ctl' E:/Projects/Android/opustest/app/src/main/obj/local/arm64-v8a/objs/senz/E_/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.o: In function
opus_encoder_ctl': E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:2689: undefined reference totonality_analysis_reset' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:2695: undefined reference to
opus_custom_encoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:2669: undefined reference toopus_custom_encoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:2679: undefined reference to
opus_custom_encoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:2765: undefined reference toopus_custom_encoder_ctl' E:/Projects/Android/opustest/app/src/main/jni/opus/src/opus_encoder.c:2720: undefined reference to
opus_custom_encoder_ctl' clang++.exe: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [E:/Projects/Android/opustest/app/src/main/obj/local/arm64-v8a/libsenz.so] Error 1