Closed Larryyuan2015 closed 6 months ago
I didn't find any exception information the log from android.
D:\temp\23.txt(124): 06-16 12:19:55.339 1118 1211 I PackageManager: /data/app/com.example.fltgst-1 changed; collecting certs D:\temp\23.txt(138): 06-16 12:19:55.137 1118 1211 W PackageManager: Package com.example.fltgst desires unavailable shared library androidx.window.extensions; ignoring! D:\temp\23.txt(139): 06-16 12:19:55.137 1118 1211 W PackageManager: Package com.example.fltgst desires unavailable shared library androidx.window.sidecar; ignoring! D:\temp\23.txt(154): 06-16 12:19:57.521 1118 1118 W PackageManager: Package com.example.fltgst desires unavailable shared library androidx.window.extensions; ignoring! D:\temp\23.txt(155): 06-16 12:19:57.521 1118 1118 W PackageManager: Package com.example.fltgst desires unavailable shared library androidx.window.sidecar; ignoring! D:\temp\23.txt(1000): 06-16 12:20:41.895 1118 1942 I ActivityManager: START u0 {act=android.intent.action.DELETE dat=package:com.example.fltgst flg=0x10800000 cmp=com.android.packageinstaller/.UninstallerActivity (has extras)} from uid 10048 on display 0 D:\temp\23.txt(1003): 06-16 12:20:42.745 1118 1158 I ActivityManager: Force stopping com.example.fltgst appid=10085 user=0: deletePackageX D:\temp\23.txt(1005): 06-16 12:20:42.628 1118 1194 I ActivityManager: Force stopping com.example.fltgst appid=10085 user=0: pkg removed D:\temp\23.txt(1018): 06-16 12:20:56.295 1118 1194 W PackageManager: Package com.example.fltgst desires unavailable shared library androidx.window.extensions; ignoring! D:\temp\23.txt(1019): 06-16 12:20:56.295 1118 1194 W PackageManager: Package com.example.fltgst desires unavailable shared library androidx.window.sidecar; ignoring! D:\temp\23.txt(1021): 06-16 12:20:56.257 1118 1194 W PackageManager.DexOptimizer: com.android.internal.os.InstallerConnection$InstallerException: Failed to execute dexopt [/data/app/vmdl888199500.tmp/base.apk, 39999, com.example.fltgst, arm64, 1, /data/app/vmdl888199500.tmp/oat, 18, interpret-only, null, null]: -1 D:\temp\23.txt(1036): 06-16 12:20:56.247 1118 1194 W PackageManager: Package com.example.fltgst desires unavailable shared library androidx.window.extensions; ignoring! D:\temp\23.txt(1037): 06-16 12:20:56.247 1118 1194 W PackageManager: Package com.example.fltgst desires unavailable shared library androidx.window.sidecar; ignoring! D:\temp\23.txt(1038): 06-16 12:20:56.105 1118 1194 V BackupManagerService: restoreAtInstall pkg=com.example.fltgst token=1 restoreSet=0 D:\temp\23.txt(1092): 06-16 12:21:01.393 1118 3041 W PackageManager.DexOptimizer: com.android.internal.os.InstallerConnection$InstallerException: Failed to execute dexopt [/data/app/com.example.fltgst-1/base.apk, 50090, com.example.fltgst, arm64, 1, /data/app/com.example.fltgst-1/oat, 48, verify-profile, null, null]: -1 D:\temp\23.txt(1118): 06-16 12:21:07.877 1118 1145 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.example.fltgst/.MainActivity bnds=[704,386][960,586] (has extras)} from uid 10048 on display 0 D:\temp\23.txt(1119): 06-16 12:21:07.828 1118 1916 I ActivityManager: Start proc 3081:com.example.fltgst/u0a90 for activity com.example.fltgst/.MainActivity D:\temp\23.txt(1126): 06-16 12:21:44.062 1118 1942 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.example.fltgst/.MainActivity bnds=[704,386][960,586] (has extras)} from uid 10048 on display 0 D:\temp\23.txt(1130): 06-16 12:22:27.777 1118 1570 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.example.fltgst/.MainActivity bnds=[704,386][960,586] (has extras)} from uid 10048 on display 0 D:\temp\23.txt(1148): 06-16 12:27:51.792 1118 1914 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.example.fltgst/.MainActivity bnds=[704,386][960,586] (has extras)} from uid 10048 on display 0 D:\temp\23.txt(1150): 06-16 12:27:55.933 1118 1570 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.example.fltgst/.MainActivity bnds=[704,386][960,586] (has extras)} from uid 10048 on display 0 D:\temp\23.txt(1152): 06-16 12:27:58.943 1118 1974 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.example.fltgst/.MainActivity bnds=[704,386][960,586] (has extras)} from uid 10048 on display 0 D:\temp\23.txt(1165): 06-16 12:42:35.074 1118 1357 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.example.fltgst/.MainActivity bnds=[704,386][960,586] (has extras)} from uid 10048 on display 0 D:\temp\23.txt(1178): 06-16 12:46:14.530 1118 1398 I ActivityManager: START u0 {act=android.intent.action.DELETE dat=package:com.example.fltgst flg=0x10800000 cmp=com.android.packageinstaller/.UninstallerActivity (has extras)} from uid 10048 on display 0 D:\temp\23.txt(1180): 06-16 12:46:15.488 1118 1158 I ActivityManager: Force stopping com.example.fltgst appid=10090 user=0: deletePackageX D:\temp\23.txt(1181): 06-16 12:46:15.487 1118 1158 I ActivityManager: Killing 3081:com.example.fltgst/u0a90 (adj 700): stop com.example.fltgst D:\temp\23.txt(1183): 06-16 12:46:15.486 1118 1158 I ActivityManager: Force finishing activity ActivityRecord{3c8c997 u0 com.example.fltgst/.MainActivity t261} D:\temp\23.txt(1184): 06-16 12:46:15.451 1118 1570 I WindowManager: WIN DEATH: Window{43847ee u0 com.example.fltgst/com.example.fltgst.MainActivity} D:\temp\23.txt(1185): 06-16 12:46:15.450 1118 1570 W WindowManager: Force-removing child win Window{13334b0 u0 SurfaceView - com.example.fltgst/com.example.fltgst.MainActivity} from container Window{43847ee u0 com.example.fltgst/com.example.fltgst.MainActivity} D:\temp\23.txt(1186): 06-16 12:46:15.437 1118 1570 W WindowManager: Force-removing child win Window{cfb3f29 u0 SurfaceView - com.example.fltgst/com.example.fltgst.MainActivity} from container Window{43847ee u0 com.example.fltgst/com.example.fltgst.MainActivity} D:\temp\23.txt(1201): 06-16 12:46:15.343 1118 1194 I ActivityManager: Force stopping com.example.fltgst appid=10090 user=0: pkg removed D:\temp\23.txt(1282): 06-16 12:48:36.402 1118 1194 W PackageManager: Package com.example.fltgst desires unavailable shared library androidx.window.extensions; ignoring! D:\temp\23.txt(1283): 06-16 12:48:36.402 1118 1194 W PackageManager: Package com.example.fltgst desires unavailable shared library androidx.window.sidecar; ignoring! D:\temp\23.txt(1284): 06-16 12:48:36.400 1118 1194 I PackageManager.DexOptimizer: Running dexopt (dex2oat) on: /data/app/vmdl242882580.tmp/base.apk pkg=com.example.fltgst isa=arm64 vmSafeMode=false debuggable=false target-filter=interpret-only oatDir = /data/app/vmdl242882580.tmp/oat sharedLibraries=null D:\temp\23.txt(1289): 06-16 12:48:36.368 1118 1194 W PackageManager.DexOptimizer: com.android.internal.os.InstallerConnection$InstallerException: Failed to execute dexopt [/data/app/vmdl242882580.tmp/base.apk, 39999, com.example.fltgst, arm64, 1, /data/app/vmdl242882580.tmp/oat, 18, interpret-only, null, null]: -1 D:\temp\23.txt(1304): 06-16 12:48:36.355 1118 1194 W PackageManager: Package com.example.fltgst desires unavailable shared library androidx.window.extensions; ignoring! D:\temp\23.txt(1305): 06-16 12:48:36.355 1118 1194 W PackageManager: Package com.example.fltgst desires unavailable shared library androidx.window.sidecar; ignoring! D:\temp\23.txt(1306): 06-16 12:48:36.303 1118 1194 W PackageManager: Not granting permission android.permission.CHANGE_CONFIGURATION to package com.example.fltgst (protectionLevel=50 flags=0x3808be44) D:\temp\23.txt(1307): 06-16 12:48:36.303 1118 1194 W PackageManager: Unknown permission android.permission.FOREGROUND_SERVICE in package com.example.fltgst D:\temp\23.txt(1308): 06-16 12:48:36.303 1118 1194 W PackageManager: Not granting permission android.permission.MOUNT_UNMOUNT_FILESYSTEMS to package com.example.fltgst (protectionLevel=18 flags=0x3808be44) D:\temp\23.txt(1309): 06-16 12:48:36.246 744 744 D installd: Detected label change from u:object_r:system_data_file:s0 to u:object_r:app_data_file:s0:c512,c768 at /data/data/com.example.fltgst; running recursive restorecon D:\temp\23.txt(1310): 06-16 12:48:36.245 744 744 D installd: Detected label change from u:object_r:system_data_file:s0 to u:object_r:app_data_file:s0:c512,c768 at /data/user_de/0/com.example.fltgst; running recursive restorecon D:\temp\23.txt(1311): 06-16 12:48:36.244 1118 1194 V BackupManagerService: restoreAtInstall pkg=com.example.fltgst token=2 restoreSet=0 D:\temp\23.txt(1347): 06-16 12:48:46.392 1118 1941 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.example.fltgst/.MainActivity bnds=[704,386][960,586] (has extras)} from uid 10048 on display 0 D:\temp\23.txt(1404): 06-16 12:48:46.364 1118 1357 I ActivityManager: Start proc 5863:com.example.fltgst/u0a91 for activity com.example.fltgst/.MainActivity D:\temp\23.txt(1407): 06-16 12:48:46.295 5863 5863 W art : Method Landroid/view/ViewStructure;.addChildCount is abstract, but the declaring class is neither abstract nor an interface in dex file /data/app/com.example.fltgst-1/base.apk D:\temp\23.txt(1408): 06-16 12:48:46.295 5863 5863 W art : Method Landroid/view/ViewStructure;.newChild is abstract, but the declaring class is neither abstract nor an interface in dex file /data/app/com.example.fltgst-1/base.apk D:\temp\23.txt(1409): 06-16 12:48:46.295 5863 5863 W art : Method Landroid/view/ViewStructure;.setDimens is abstract, but the declaring class is neither abstract nor an interface in dex file /data/app/com.example.fltgst-1/base.apk D:\temp\23.txt(1410): 06-16 12:48:46.294 5863 5863 W art : Method Landroid/view/ViewStructure;.setHint is abstract, but the declaring class is neither abstract nor an interface in dex file /data/app/com.example.fltgst-1/base.apk D:\temp\23.txt(1411): 06-16 12:48:46.294 5863 5863 W art : Method Landroid/view/ViewStructure;.setVisibility is abstract, but the declaring class is neither abstract nor an interface in dex file /data/app/com.example.fltgst-1/base.apk D:\temp\23.txt(1425): 06-16 12:48:46.278 5863 5863 I art : Caused by: java.lang.ClassNotFoundException: Didn't find class "android.window.OnBackInvokedCallback" on path: DexPathList[[zip file "/data/app/com.example.fltgst-1/base.apk"],nativeLibraryDirectories=[/data/app/com.example.fltgst-1/lib/arm64, /data/app/com.example.fltgst-1/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]] D:\temp\23.txt(1443): 06-16 12:48:46.227 5863 5863 D ApplicationLoaders: ignored Vulkan layer search path /data/app/com.example.fltgst-1/lib/arm64:/data/app/com.example.fltgst-1/base.apk!/lib/arm64-v8a for namespace 0x7fad4ae0f0 D:\temp\23.txt(1479): 06-16 12:48:46.069 5863 5863 I art : Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.window.sidecar.SidecarInterface$SidecarCallback" on path: DexPathList[[zip file "/data/app/com.example.fltgst-1/base.apk"],nativeLibraryDirectories=[/data/app/com.example.fltgst-1/lib/arm64, /data/app/com.example.fltgst-1/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]] D:\temp\23.txt(1535): 06-16 12:48:46.068 5863 5863 I art : Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.window.sidecar.SidecarInterface$SidecarCallback" on path: DexPathList[[zip file "/data/app/com.example.fltgst-1/base.apk"],nativeLibraryDirectories=[/data/app/com.example.fltgst-1/lib/arm64, /data/app/com.example.fltgst-1/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]] D:\temp\23.txt(1581): 06-16 12:48:47.951 1118 1181 I ActivityManager: Displayed com.example.fltgst/.MainActivity: +425ms (total +2m31s593ms) D:\temp\23.txt(1714): 06-16 12:49:33.430 1118 1942 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.example.fltgst/.MainActivity bnds=[704,386][960,586] (has extras)} from uid 10048 on display 0 D:\temp\23.txt(1721): 06-16 12:49:33.288 1118 1181 I ActivityManager: Displayed com.example.fltgst/.MainActivity: +125ms D:\temp\23.txt(4202): 06-16 12:50:16.614 1118 1941 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.example.fltgst/.MainActivity bnds=[704,386][960,586] (has extras)} from uid 10048 on display 0 D:\temp\23.txt(4232): 06-16 12:50:16.428 1118 1181 I ActivityManager: Displayed com.example.fltgst/.MainActivity: +174ms D:\temp\23.txt(8482): 06-16 12:50:55.775 1118 1145 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.example.fltgst/.MainActivity bnds=[704,386][960,586] (has extras)} from uid 10048 on display 0 D:\temp\23.txt(8511): 06-16 12:50:55.608 1118 1181 I ActivityManager: Displayed com.example.fltgst/.MainActivity: +155ms
I'm not sure, did you add permission to access files to the android app? https://stackoverflow.com/questions/1992953/file-operations-in-android-ndk And please put logs in following format:
[output here]
You are using new elements in your pipeline like avdec_h264 which belongs to the libav plugin. Did you include this new plugin? If not you will not get an image but it will compile and run with no error.
I included the plugin "libav" in CMAKE and added it to gst_plugin_init_android but then you get a bunch of unreferenced symbol errors to av functions:
ld: error: undefined symbol: av_malloc
[ ] >>> referenced by gstavutils.c:454
[ ] >>> referenced 7 more times
[ ] ld: error: undefined symbol: av_codec_iterate
and linking the library gstlibav doesn't help either
I managed to get raw video streaming over udp working but this is not very ideal... Unfortunately decodebin produces no output for me. Do you have any experience with decoding on android @fengjiongmax ?
@MatteoGigerSR I have some experience on audio, but I have not tried video before, can you create a sample repo so I can check on that?
Thanks, that would be amazing. I can create a repo tomorrow but if you manage to get the gstreamer plugin libav working that would already be amazing. Libav provides software decoding you will have to link the libraries avformat avcodec avutil but at this point I run in to a compile time relocation error (can't provide output right now but I will do so once I can). The 2nd option is hardware decoding. There is a gstreamer plugin called androidmedia but I can't find any documentation on it (only info: https://stackoverflow.com/questions/74607854/androidmedia-plugin-pad-templates) I also tried decodebin element which should select optimal decoding for you but there I get no video whatsoever.
@fengjiongmax I tried the below permissions in AndroidManifest.xml, There is still the same issue. As @MatteoGigerSR said, it can compile and run with no error but there is no image, I don't know how to output the log as you want. I just use adb logcat to catch the app related log as the information on https://github.com/fengjiongmax/fltgst/issues/4#issuecomment-2014739223
...
I'm not sure, did you add permission to access files to the android app? https://stackoverflow.com/questions/1992953/file-operations-in-android-ndk And please put logs in following format:
[output here]
Here's an attempt of option one (including libav plugin): https://github.com/MatteoGigerSR/fltgst/tree/videodisplay And here's the output:
[ ] C/C++: ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_32; recompile with -fPIC
[ ] C/C++: ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_32 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to
allow text relocations in the output
[ ] C/C++: ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_64; recompile with -fPIC
[ ] C/C++: ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_64 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to
allow text relocations in the output
[ ] C/C++: ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_128; recompile with -fPIC
[ ] C/C++: ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_128 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to
allow text relocations in the output
[ ] C/C++: ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_256; recompile with -fPIC
[ ] C/C++: ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_256 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to
allow text relocations in the output
[ ] C/C++: ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_512; recompile with -fPIC
[ ] C/C++: ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_512 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to
allow text relocations in the output
[ ] C/C++: ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_1024; recompile with -fPIC
[ ] C/C++: ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_1024 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to
allow text relocations in the output
[ ] C/C++: ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_2048; recompile with -fPIC
[ ] C/C++: ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_2048 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to
allow text relocations in the output
[ ] C/C++: ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_4096; recompile with -fPIC
[ ] C/C++: ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_4096 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to
allow text relocations in the output
[ ] C/C++: ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_8192; recompile with -fPIC
[ ] C/C++: ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_8192 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to
allow text relocations in the output
[ ] C/C++: ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_16384; recompile with -fPIC
[ ] C/C++: ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_16384 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to
allow text relocations in the output
[ ] C/C++: ld: error: too many errors emitted, stopping now (use -error-limit=0 to see all errors)
[ ] C/C++: clang: error: linker command failed with exit code 1 (use -v to see invocation)
[ ] :native_binding:buildCMakeRelWithDebInfo[arm64-v8a] (Thread[Execution worker Thread 11,5,main]) completed. Took 0.111 secs.
[ ] 6 actionable tasks: 2 executed, 4 up-to-date
[ ] FAILURE: Build failed with an exception.
[ ] * What went wrong:
[ ] Execution failed for task ':native_binding:buildCMakeRelWithDebInfo[arm64-v8a]'.
[ ] > com.android.ide.common.process.ProcessException: ninja: Entering directory `/home/user/file/fltgst/app/native_binding/android/.cxx/RelWithDebInfo/3a4sd2o3/arm64-v8a'
[ ] [1/1] Linking C shared library /home/user/file/fltgst/app/fltgst/build/native_binding/intermediates/cxx/RelWithDebInfo/3a4sd2o3/obj/arm64-v8a/libnative_binding.so
[ ] FAILED: /home/user/file/fltgst/app/fltgst/build/native_binding/intermediates/cxx/RelWithDebInfo/3a4sd2o3/obj/arm64-v8a/libnative_binding.so
[ ] : && /home/user/Android/Sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=aarch64-none-linux-android21
--gcc-toolchain=/home/user/Android/Sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/linux-x86_64
--sysroot=/home/user/Android/Sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables
-fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O2 -g -DNDEBUG -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings
-Wl,--no-undefined -Qunused-arguments -shared -Wl,-soname,libnative_binding.so -o
/home/user/file/fltgst/app/fltgst/build/native_binding/intermediates/cxx/RelWithDebInfo/3a4sd2o3/obj/arm64-v8a/libnative_binding.so CMakeFiles/native_binding.dir/native_binding.c.o
CMakeFiles/native_binding.dir/gst_plugin_init_android.c.o -L/home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib
-L/home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/gstreamer-1.0 -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0 -lgstcoreelements -lgstcoretracers
-lgstadder -lgstapp -lgstaudioconvert -lgstaudiorate -lgstaudiotestsrc -lgstvideotestsrc -lgstgio -lgstautodetect -lgstopensles -lgstipcpipeline -lgstopengl -lgstlibav -lintl -lffi
-liconv -lgmodule-2.0 -lpcre2-8 -lgstbase-1.0 -lgstaudio-1.0 -lgstvideo-1.0 -lgstgl-1.0 -lgstcontroller-1.0 -lpng16 -lgraphene-1.0 -ljpeg -lorc-0.4 -lgstapp-1.0 -lgio-2.0 -landroid
-llog -lz -lOpenSLES -lEGL -lGLESv2 -lavutil -lavcodec -lavformat -latomic -lm && :
[ ] ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_32; recompile with -fPIC
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:526 (./libavutil/aarch64/asm.S:526)
[ ] >>> fft_neon.o:(fft32_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_32 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow
text relocations in the output
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:526 (./libavutil/aarch64/asm.S:526)
[ ] >>> fft_neon.o:(fft32_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_64; recompile with -fPIC
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:527 (./libavutil/aarch64/asm.S:527)
[ ] >>> fft_neon.o:(fft64_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_64 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow
text relocations in the output
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:527 (./libavutil/aarch64/asm.S:527)
[ ] >>> fft_neon.o:(fft64_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_128; recompile with -fPIC
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:528 (./libavutil/aarch64/asm.S:528)
[ ] >>> fft_neon.o:(fft128_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_128 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow
text relocations in the output
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:528 (./libavutil/aarch64/asm.S:528)
[ ] >>> fft_neon.o:(fft128_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_256; recompile with -fPIC
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:529 (./libavutil/aarch64/asm.S:529)
[ ] >>> fft_neon.o:(fft256_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_256 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow
text relocations in the output
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:529 (./libavutil/aarch64/asm.S:529)
[ ] >>> fft_neon.o:(fft256_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_512; recompile with -fPIC
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:530 (./libavutil/aarch64/asm.S:530)
[ ] >>> fft_neon.o:(fft512_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_512 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow
text relocations in the output
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:530 (./libavutil/aarch64/asm.S:530)
[ ] >>> fft_neon.o:(fft512_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_1024; recompile with -fPIC
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:531 (./libavutil/aarch64/asm.S:531)
[ ] >>> fft_neon.o:(fft1024_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_1024 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow
text relocations in the output
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:531 (./libavutil/aarch64/asm.S:531)
[ ] >>> fft_neon.o:(fft1024_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_2048; recompile with -fPIC
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:532 (./libavutil/aarch64/asm.S:532)
[ ] >>> fft_neon.o:(fft2048_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_2048 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow
text relocations in the output
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:532 (./libavutil/aarch64/asm.S:532)
[ ] >>> fft_neon.o:(fft2048_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_4096; recompile with -fPIC
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:533 (./libavutil/aarch64/asm.S:533)
[ ] >>> fft_neon.o:(fft4096_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_4096 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow
text relocations in the output
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:533 (./libavutil/aarch64/asm.S:533)
[ ] >>> fft_neon.o:(fft4096_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_8192; recompile with -fPIC
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:534 (./libavutil/aarch64/asm.S:534)
[ ] >>> fft_neon.o:(fft8192_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_8192 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow
text relocations in the output
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:534 (./libavutil/aarch64/asm.S:534)
[ ] >>> fft_neon.o:(fft8192_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_16384; recompile with -fPIC
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:535 (./libavutil/aarch64/asm.S:535)
[ ] >>> fft_neon.o:(fft16384_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_16384 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow
text relocations in the output
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:535 (./libavutil/aarch64/asm.S:535)
[ ] >>> fft_neon.o:(fft16384_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: too many errors emitted, stopping now (use -error-limit=0 to see all errors)
[ ] clang: error: linker command failed with exit code 1 (use -v to see invocation)
[ ] ninja: build stopped: subcommand failed.
[ ] C++ build system [build] failed while executing:
[ ] /home/user/Android/Sdk/cmake/3.18.1/bin/ninja \
[ ] -C \
[ ] /home/user/file/fltgst/app/native_binding/android/.cxx/RelWithDebInfo/3a4sd2o3/arm64-v8a \
[ ] native_binding
[ ] from /home/user/file/fltgst/app/native_binding/android
[ ] * Try:
[ ] > Run with --debug option to get more log output.
[ ] > Run with --scan to get full insights.
[ ] * Exception is:
[ ] org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':native_binding:buildCMakeRelWithDebInfo[arm64-v8a]'.
[ ] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:142)
[ ] at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:282)
[ ] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:140)
[ ] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:128)
[ ] at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:77)
[ ] at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
[ ] at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
[ ] at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
[ ] at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
[ ] at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
[ ] at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
[ ] at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
[ ] at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
[ ] at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
[ ] at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
[ ] at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
[ ] at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
[ ] at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
[ ] at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
[ ] at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
[ ] at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
[ ] at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
[ ] at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:69)
[ ] at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:327)
[ ] at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:314)
[ ] at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:307)
[ ] at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:293)
[ ] at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:417)
[ ] at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:339)
[ ] at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
[ ] at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
[ ] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[ ] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[ ] at java.base/java.lang.Thread.run(Thread.java:840)
[ ] Caused by: org.gradle.internal.UncheckedException: com.android.ide.common.process.ProcessException: ninja: Entering directory
`/home/user/file/fltgst/app/native_binding/android/.cxx/RelWithDebInfo/3a4sd2o3/arm64-v8a'
[ ] [1/1] Linking C shared library /home/user/file/fltgst/app/fltgst/build/native_binding/intermediates/cxx/RelWithDebInfo/3a4sd2o3/obj/arm64-v8a/libnative_binding.so
[ ] FAILED: /home/user/file/fltgst/app/fltgst/build/native_binding/intermediates/cxx/RelWithDebInfo/3a4sd2o3/obj/arm64-v8a/libnative_binding.so
[ ] : && /home/user/Android/Sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=aarch64-none-linux-android21
--gcc-toolchain=/home/user/Android/Sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/linux-x86_64
--sysroot=/home/user/Android/Sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables
-fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O2 -g -DNDEBUG -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings
-Wl,--no-undefined -Qunused-arguments -shared -Wl,-soname,libnative_binding.so -o
/home/user/file/fltgst/app/fltgst/build/native_binding/intermediates/cxx/RelWithDebInfo/3a4sd2o3/obj/arm64-v8a/libnative_binding.so CMakeFiles/native_binding.dir/native_binding.c.o
CMakeFiles/native_binding.dir/gst_plugin_init_android.c.o -L/home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib
-L/home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/gstreamer-1.0 -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0 -lgstcoreelements -lgstcoretracers
-lgstadder -lgstapp -lgstaudioconvert -lgstaudiorate -lgstaudiotestsrc -lgstvideotestsrc -lgstgio -lgstautodetect -lgstopensles -lgstipcpipeline -lgstopengl -lgstlibav -lintl -lffi
-liconv -lgmodule-2.0 -lpcre2-8 -lgstbase-1.0 -lgstaudio-1.0 -lgstvideo-1.0 -lgstgl-1.0 -lgstcontroller-1.0 -lpng16 -lgraphene-1.0 -ljpeg -lorc-0.4 -lgstapp-1.0 -lgio-2.0 -landroid
-llog -lz -lOpenSLES -lEGL -lGLESv2 -lavutil -lavcodec -lavformat -latomic -lm && :
[ ] ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_32; recompile with -fPIC
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:526 (./libavutil/aarch64/asm.S:526)
[ ] >>> fft_neon.o:(fft32_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_32 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text
relocations in the output
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:526 (./libavutil/aarch64/asm.S:526)
[ ] >>> fft_neon.o:(fft32_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_64; recompile with -fPIC
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:527 (./libavutil/aarch64/asm.S:527)
[ ] >>> fft_neon.o:(fft64_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_64 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text
relocations in the output
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:527 (./libavutil/aarch64/asm.S:527)
[ ] >>> fft_neon.o:(fft64_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_128; recompile with -fPIC
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:528 (./libavutil/aarch64/asm.S:528)
[ ] >>> fft_neon.o:(fft128_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_128 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text
relocations in the output
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:528 (./libavutil/aarch64/asm.S:528)
[ ] >>> fft_neon.o:(fft128_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_256; recompile with -fPIC
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:529 (./libavutil/aarch64/asm.S:529)
[ ] >>> fft_neon.o:(fft256_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_256 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text
relocations in the output
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:529 (./libavutil/aarch64/asm.S:529)
[ ] >>> fft_neon.o:(fft256_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_512; recompile with -fPIC
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:530 (./libavutil/aarch64/asm.S:530)
[ ] >>> fft_neon.o:(fft512_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_512 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text
relocations in the output
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:530 (./libavutil/aarch64/asm.S:530)
[ ] >>> fft_neon.o:(fft512_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_1024; recompile with -fPIC
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:531 (./libavutil/aarch64/asm.S:531)
[ ] >>> fft_neon.o:(fft1024_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_1024 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow
text relocations in the output
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:531 (./libavutil/aarch64/asm.S:531)
[ ] >>> fft_neon.o:(fft1024_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_2048; recompile with -fPIC
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:532 (./libavutil/aarch64/asm.S:532)
[ ] >>> fft_neon.o:(fft2048_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_2048 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow
text relocations in the output
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:532 (./libavutil/aarch64/asm.S:532)
[ ] >>> fft_neon.o:(fft2048_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_4096; recompile with -fPIC
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:533 (./libavutil/aarch64/asm.S:533)
[ ] >>> fft_neon.o:(fft4096_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_4096 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow
text relocations in the output
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:533 (./libavutil/aarch64/asm.S:533)
[ ] >>> fft_neon.o:(fft4096_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_8192; recompile with -fPIC
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:534 (./libavutil/aarch64/asm.S:534)
[ ] >>> fft_neon.o:(fft8192_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_8192 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow
text relocations in the output
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:534 (./libavutil/aarch64/asm.S:534)
[ ] >>> fft_neon.o:(fft8192_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_16384; recompile with -fPIC
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:535 (./libavutil/aarch64/asm.S:535)
[ ] >>> fft_neon.o:(fft16384_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_16384 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow
text relocations in the output
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:535 (./libavutil/aarch64/asm.S:535)
[ ] >>> fft_neon.o:(fft16384_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: too many errors emitted, stopping now (use -error-limit=0 to see all errors)
[ ] clang: error: linker command failed with exit code 1 (use -v to see invocation)
[ ] ninja: build stopped: subcommand failed.
[ ] C++ build system [build] failed while executing:
[ ] /home/user/Android/Sdk/cmake/3.18.1/bin/ninja \
[ ] -C \
[ ] /home/user/file/fltgst/app/native_binding/android/.cxx/RelWithDebInfo/3a4sd2o3/arm64-v8a \
[ ] native_binding
[ ] from /home/user/file/fltgst/app/native_binding/android
[ ] at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:68)
[ ] at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:41)
[ ] at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:128)
[ ] at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58)
[ ] at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)
[ ] at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)
[ ] at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:236)
[ ] at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
[ ] at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
[ ] at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
[ ] at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
[ ] at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
[ ] at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
[ ] at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
[ ] at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
[ ] at org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:221)
[ ] at org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:204)
[ ] at org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:187)
[ ] at org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:165)
[ ] at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:89)
[ ] at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:40)
[ ] at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:53)
[ ] at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:50)
[ ] at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
[ ] at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
[ ] at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
[ ] at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
[ ] at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
[ ] at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
[ ] at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
[ ] at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
[ ] at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:50)
[ ] at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:40)
[ ] at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:68)
[ ] at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:38)
[ ] at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:41)
[ ] at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:74)
[ ] at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)
[ ] at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:51)
[ ] at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:29)
[ ] at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.executeDelegateBroadcastingChanges(CaptureStateAfterExecutionStep.java:124)
[ ] at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:80)
[ ] at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:58)
[ ] at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:48)
[ ] at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:36)
[ ] at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:181)
[ ] at org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:71)
[ ] at org.gradle.internal.Either$Right.fold(Either.java:175)
[ ] at org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:59)
[ ] at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:69)
[ ] at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:47)
[ ] at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:36)
[ ] at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:25)
[ ] at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:36)
[ ] at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:22)
[ ] at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:110)
[ ] at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:56)
[ ] at java.base/java.util.Optional.orElseGet(Optional.java:364)
[ ] at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:56)
[ ] at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:38)
[ ] at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:73)
[ ] at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:44)
[ ] at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)
[ ] at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)
[ ] at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:89)
[ ] at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:50)
[ ] at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:114)
[ ] at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:57)
[ ] at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:76)
[ ] at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:50)
[ ] at org.gradle.internal.execution.steps.SkipEmptyWorkStep.executeWithNoEmptySources(SkipEmptyWorkStep.java:254)
[ ] at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:91)
[ ] at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:56)
[ ] at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:32)
[ ] at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:21)
[ ] at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)
[ ] at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:43)
[ ] at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:31)
[ ] at org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:40)
[ ] at org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:281)
[ ] at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:40)
[ ] at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:30)
[ ] at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:37)
[ ] at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:27)
[ ] at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:44)
[ ] at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:33)
[ ] at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:76)
[ ] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:139)
[ ] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:128)
[ ] at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:77)
[ ] at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
[ ] at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
[ ] at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
[ ] at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
[ ] at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
[ ] at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
[ ] at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
[ ] at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
[ ] at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
[ ] at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
[ ] at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
[ ] at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
[ ] at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
[ ] at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
[ ] at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
[ ] at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
[ ] at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
[ ] at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:69)
[ ] at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:327)
[ ] at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:314)
[ ] at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:307)
[ ] at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:293)
[ ] at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:417)
[ ] at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:339)
[ ] at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
[ ] at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
[ ] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[ ] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[ ] at java.base/java.lang.Thread.run(Thread.java:840)
[ ] Caused by: com.android.ide.common.process.ProcessException: ninja: Entering directory
`/home/user/file/fltgst/app/native_binding/android/.cxx/RelWithDebInfo/3a4sd2o3/arm64-v8a'
[ ] [1/1] Linking C shared library /home/user/file/fltgst/app/fltgst/build/native_binding/intermediates/cxx/RelWithDebInfo/3a4sd2o3/obj/arm64-v8a/libnative_binding.so
[ ] FAILED: /home/user/file/fltgst/app/fltgst/build/native_binding/intermediates/cxx/RelWithDebInfo/3a4sd2o3/obj/arm64-v8a/libnative_binding.so
[ ] : && /home/user/Android/Sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=aarch64-none-linux-android21
--gcc-toolchain=/home/user/Android/Sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/linux-x86_64
--sysroot=/home/user/Android/Sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables
-fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O2 -g -DNDEBUG -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings
-Wl,--no-undefined -Qunused-arguments -shared -Wl,-soname,libnative_binding.so -o
/home/user/file/fltgst/app/fltgst/build/native_binding/intermediates/cxx/RelWithDebInfo/3a4sd2o3/obj/arm64-v8a/libnative_binding.so CMakeFiles/native_binding.dir/native_binding.c.o
CMakeFiles/native_binding.dir/gst_plugin_init_android.c.o -L/home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib
-L/home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/gstreamer-1.0 -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0 -lgstcoreelements -lgstcoretracers
-lgstadder -lgstapp -lgstaudioconvert -lgstaudiorate -lgstaudiotestsrc -lgstvideotestsrc -lgstgio -lgstautodetect -lgstopensles -lgstipcpipeline -lgstopengl -lgstlibav -lintl -lffi
-liconv -lgmodule-2.0 -lpcre2-8 -lgstbase-1.0 -lgstaudio-1.0 -lgstvideo-1.0 -lgstgl-1.0 -lgstcontroller-1.0 -lpng16 -lgraphene-1.0 -ljpeg -lorc-0.4 -lgstapp-1.0 -lgio-2.0 -landroid
-llog -lz -lOpenSLES -lEGL -lGLESv2 -lavutil -lavcodec -lavformat -latomic -lm && :
[ ] ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_32; recompile with -fPIC
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:526 (./libavutil/aarch64/asm.S:526)
[ ] >>> fft_neon.o:(fft32_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_32 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text
relocations in the output
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:526 (./libavutil/aarch64/asm.S:526)
[ ] >>> fft_neon.o:(fft32_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_64; recompile with -fPIC
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:527 (./libavutil/aarch64/asm.S:527)
[ ] >>> fft_neon.o:(fft64_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_64 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text
relocations in the output
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:527 (./libavutil/aarch64/asm.S:527)
[ ] >>> fft_neon.o:(fft64_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_128; recompile with -fPIC
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:528 (./libavutil/aarch64/asm.S:528)
[ ] >>> fft_neon.o:(fft128_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_128 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text
relocations in the output
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:528 (./libavutil/aarch64/asm.S:528)
[ ] >>> fft_neon.o:(fft128_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_256; recompile with -fPIC
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:529 (./libavutil/aarch64/asm.S:529)
[ ] >>> fft_neon.o:(fft256_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_256 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text
relocations in the output
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:529 (./libavutil/aarch64/asm.S:529)
[ ] >>> fft_neon.o:(fft256_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_512; recompile with -fPIC
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:530 (./libavutil/aarch64/asm.S:530)
[ ] >>> fft_neon.o:(fft512_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_512 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text
relocations in the output
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:530 (./libavutil/aarch64/asm.S:530)
[ ] >>> fft_neon.o:(fft512_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_1024; recompile with -fPIC
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:531 (./libavutil/aarch64/asm.S:531)
[ ] >>> fft_neon.o:(fft1024_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_1024 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow
text relocations in the output
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:531 (./libavutil/aarch64/asm.S:531)
[ ] >>> fft_neon.o:(fft1024_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_2048; recompile with -fPIC
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:532 (./libavutil/aarch64/asm.S:532)
[ ] >>> fft_neon.o:(fft2048_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_2048 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow
text relocations in the output
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:532 (./libavutil/aarch64/asm.S:532)
[ ] >>> fft_neon.o:(fft2048_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_4096; recompile with -fPIC
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:533 (./libavutil/aarch64/asm.S:533)
[ ] >>> fft_neon.o:(fft4096_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_4096 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow
text relocations in the output
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:533 (./libavutil/aarch64/asm.S:533)
[ ] >>> fft_neon.o:(fft4096_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_8192; recompile with -fPIC
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:534 (./libavutil/aarch64/asm.S:534)
[ ] >>> fft_neon.o:(fft8192_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_8192 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow
text relocations in the output
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:534 (./libavutil/aarch64/asm.S:534)
[ ] >>> fft_neon.o:(fft8192_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_16384; recompile with -fPIC
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:535 (./libavutil/aarch64/asm.S:535)
[ ] >>> fft_neon.o:(fft16384_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: ff_cos_16384 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow
text relocations in the output
[ ] >>> defined in /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a(fft_float.o)
[ ] >>> referenced by asm.S:535 (./libavutil/aarch64/asm.S:535)
[ ] >>> fft_neon.o:(fft16384_neon) in archive /home/user/file/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/libavcodec.a
[ ] ld: error: too many errors emitted, stopping now (use -error-limit=0 to see all errors)
[ ] clang: error: linker command failed with exit code 1 (use -v to see invocation)
[ ] ninja: build stopped: subcommand failed.
[ ] C++ build system [build] failed while executing:
[ ] /home/user/Android/Sdk/cmake/3.18.1/bin/ninja \
[ ] -C \
[ ] /home/user/file/fltgst/app/native_binding/android/.cxx/RelWithDebInfo/3a4sd2o3/arm64-v8a \
[ ] native_binding
[ ] from /home/user/file/fltgst/app/native_binding/android
[ ] at com.android.build.gradle.internal.cxx.process.ExecuteProcessKt.execute(ExecuteProcess.kt:274)
[ ] at com.android.build.gradle.internal.cxx.process.ExecuteProcessKt$executeProcess$1.invoke(ExecuteProcess.kt:106)
[ ] at com.android.build.gradle.internal.cxx.process.ExecuteProcessKt$executeProcess$1.invoke(ExecuteProcess.kt:104)
[ ] at com.android.build.gradle.internal.cxx.timing.TimingEnvironmentKt.time(TimingEnvironment.kt:32)
[ ] at com.android.build.gradle.internal.cxx.process.ExecuteProcessKt.executeProcess(ExecuteProcess.kt:104)
[ ] at com.android.build.gradle.internal.cxx.process.ExecuteProcessKt.executeProcess$default(ExecuteProcess.kt:84)
[ ] at com.android.build.gradle.internal.cxx.build.CxxRegularBuilder.executeProcessBatch(CxxRegularBuilder.kt:331)
[ ] at com.android.build.gradle.internal.cxx.build.CxxRegularBuilder.build(CxxRegularBuilder.kt:128)
[ ] at com.android.build.gradle.tasks.ExternalNativeBuildTask$doTaskAction$$inlined$recordTaskAction$1.invoke(BaseTask.kt:70)
[ ] at com.android.build.gradle.internal.tasks.Blocks.recordSpan(Blocks.java:51)
[ ] at com.android.build.gradle.tasks.ExternalNativeBuildTask.doTaskAction(ExternalNativeBuildTask.kt:136)
[ ] at com.android.build.gradle.internal.tasks.UnsafeOutputsTask$taskAction$$inlined$recordTaskAction$1.invoke(BaseTask.kt:65)
[ ] at com.android.build.gradle.internal.tasks.Blocks.recordSpan(Blocks.java:51)
[ ] at com.android.build.gradle.internal.tasks.UnsafeOutputsTask.taskAction(UnsafeOutputsTask.kt:61)
[ ] at jdk.internal.reflect.GeneratedMethodAccessor400.invoke(Unknown Source)
[ ] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[ ] at java.base/java.lang.reflect.Method.invoke(Method.java:568)
[ ] at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)
[ ] ... 116 more
[ ] Caused by: com.android.ide.common.process.ProcessException: Error while executing process /home/user/Android/Sdk/cmake/3.18.1/bin/ninja with arguments {-C
/home/user/file/fltgst/app/native_binding/android/.cxx/RelWithDebInfo/3a4sd2o3/arm64-v8a native_binding}
[ ] at com.android.build.gradle.internal.process.GradleProcessResult.buildProcessException(GradleProcessResult.java:73)
[ ] at com.android.build.gradle.internal.process.GradleProcessResult.assertNormalExitValue(GradleProcessResult.java:48)
[ ] at com.android.build.gradle.internal.cxx.process.ExecuteProcessKt.execute(ExecuteProcess.kt:269)
[ ] ... 133 more
[ ] Caused by: org.gradle.process.internal.ExecException: Process 'command '/home/user/Android/Sdk/cmake/3.18.1/bin/ninja'' finished with non-zero exit value 1
[ ] at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:415)
[ ] at com.android.build.gradle.internal.process.GradleProcessResult.assertNormalExitValue(GradleProcessResult.java:46)
[ ] ... 134 more
[ ] * Get more help at https://help.gradle.org
[ ] BUILD FAILED in 903ms
[ +347 ms] Running Gradle task 'assembleRelease'... (completed in 1,332ms)
[ +3 ms] "flutter apk" took 1,716ms.
[ +2 ms] Gradle task assembleRelease failed with exit code 1
[ ]
#0 throwToolExit (package:flutter_tools/src/base/common.dart:10:3)
#1 AndroidGradleBuilder.buildGradleApp (package:flutter_tools/src/android/gradle.dart:506:9)
<asynchronous suspension>
#2 AndroidGradleBuilder.buildApk (package:flutter_tools/src/android/gradle.dart:224:5)
<asynchronous suspension>
#3 BuildApkCommand.runCommand (package:flutter_tools/src/commands/build_apk.dart:142:5)
<asynchronous suspension>
#4 FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:1389:27)
<asynchronous suspension>
#5 AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)
<asynchronous suspension>
#6 CommandRunner.runCommand (package:args/command_runner.dart:212:13)
<asynchronous suspension>
#7 FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:355:9)
<asynchronous suspension>
#8 AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)
<asynchronous suspension>
#9 FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:295:5)
<asynchronous suspension>
#10 run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:119:9)
<asynchronous suspension>
#11 AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)
<asynchronous suspension>
#12 main (package:flutter_tools/executable.dart:90:3)
<asynchronous suspension>
@MatteoGigerSR
Could you share the sample about playing raw video streaming over udp?Many thanks!
I managed to get raw video streaming over udp working but this is not very ideal... Unfortunately decodebin produces no output for me. Do you have any experience with decoding on android @fengjiongmax ?
use this as your pipeline in the app instead (make sure you include all plugins necessary for the elements otherwise you will see no error and no video)
data->pipeline = gst_parse_launch(
"udpsrc port=5000 caps=application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264 ! rtph264depay ! decodebin ! videoconvert ! autovideosink",
NULL);
for sending you can use: gst-launch-1.0 videotestsrc ! rtpvrawpay ! udpsink host="insert_correct_ip_here" port=5000
Now I remember, in the Android emulator, when listening to a port, it will only listen to localhost
or 127.0.0.1
, so if the IP you use is your LAN IP, the stream may not reach your Android emulator.
I have a solution for this for an app I built, which combines http://www.brokestream.com/udp_redirect.html, and a shell script, and I have pushed it to the repo: https://github.com/fengjiongmax/fltgst-portforward
You can check the read me for how to use it.
@MatteoGigerSR Could you help to provide the CMakelist.txt with all related plugins list? Thank you very much!
use this as your pipeline in the app instead (make sure you include all plugins necessary for the elements otherwise you will see no error and no video)
Now I remember, in the Android emulator, when listening to a port, it will only listen to
localhost
or127.0.0.1
, so if the IP you use is your LAN IP, the stream may not reach your Android emulator.I have a solution for this for an app I built, which combines http://www.brokestream.com/udp_redirect.html, and a shell script, and I have pushed it to the repo: https://github.com/fengjiongmax/fltgst-portforward
You can check the read me for how to use it.
I'm assuming your saying that to @Larryyuan2015 's issue. I'm not using Android Emulator I'm using my real phone. I don't think my issue is related to networking as streaming raw video works fine.
@Larryyuan2015 Here's my plugin list make sure to register and declare them as shown in @fengjiongmax 's video LIST(APPEND GST_PLUGINS coreelements coretracers adder app audioconvert audiorate audiotestsrc videotestsrc videorate videofilter videoconvertscale videoparsersbad udp gio autodetect opensles ipcpipeline opengl playback rtp rawparse androidmedia)
also link the required libs here's my list LIST(APPEND LINK_LIBS intl ffi iconv gmodule-2.0 pcre2-8 gstbase-1.0 gstaudio-1.0 gstvideo-1.0 gstgl-1.0 gstcontroller-1.0 gstpbutils-1.0 gsttag-1.0 gstrtp-1.0 gstnet-1.0 png16 graphene-1.0 jpeg orc-0.4 gstapp-1.0 gio-2.0 android log z OpenSLES EGL GLESv2 gstcodecparsers-1.0 gstphotography-1.0)
@MatteoGigerSR I got the app compiles but did not try if it the pipeline works. replace your
LIST(APPEND LINK_LIBS intl ffi iconv gmodule-2.0 pcre2-8 gstbase-1.0 gstaudio-1.0 gstvideo-1.0 gstgl-1.0 gstcontroller-1.0 png16 graphene-1.0 jpeg orc-0.4 gstapp-1.0 gio-2.0 android log z OpenSLES EGL GLESv2 avutil avcodec avformat)
with
LIST(APPEND LINK_LIBS intl ffi iconv gmodule-2.0 pcre2-8 gstbase-1.0 gstaudio-1.0 gstvideo-1.0 gstgl-1.0 gstcontroller-1.0 png16 graphene-1.0 jpeg orc-0.4 gstapp-1.0 gio-2.0 android log z OpenSLES EGL GLESv2 avutil avcodec avformat gstpbutils-1.0 avfilter swresample bz2 gsttag-1.0)
SET(CMAKE_C_FLAGS " -Wl,-Bsymbolic ")
Hope it works!
Reference:
Thanks a lot for looking into this! Can you run the app? I can compile now as well but now it crashes on start for me.
Sorry, I didn't check beforehand, replace with this instead:
LIST(APPEND LINK_LIBS intl ffi iconv gmodule-2.0 pcre2-8 gstbase-1.0 gstaudio-1.0 gstvideo-1.0 gstgl-1.0 gstcontroller-1.0 png16 graphene-1.0 jpeg orc-0.4 gstapp-1.0 gio-2.0 android log z OpenSLES EGL GLESv2 avutil avcodec avformat gstpbutils-1.0 avfilter swresample bz2 gsttag-1.0)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wl,-Bsymbolic")
Amazing thanks! I now have software decoding working.
@fengjiongmax @MatteoGigerSR
I used the below configuration in CMakelist.txt, but there are some compile errors. Could you help me out? Many thanks!
LIST(APPEND GST_PLUGINS coreelements coretracers adder app audioconvert audiorate audiotestsrc videotestsrc videorate videofilter videoconvertscale videoparsersbad udp gio autodetect opensles ipcpipeline opengl playback rtp rawparse androidmedia)
LIST(APPEND LINK_LIBS intl ffi iconv gmodule-2.0 pcre2-8 gstbase-1.0 gstaudio-1.0 gstvideo-1.0 gstgl-1.0 gstcontroller-1.0 png16 graphene-1.0 jpeg orc-0.4 gstapp-1.0 gio-2.0 android log z OpenSLES EGL GLESv2 avutil avcodec avformat gstpbutils-1.0 avfilter swresample bz2 gsttag-1.0)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wl,-Bsymbolic")
output log
referenced by gsth264parse.c:351 (../gst/videoparsers/gsth264parse.c:351) gsth264parse.c.o:(gst_h264_parse_start) in archive /home/yhl/projects/fltgst-videodisplay/app/native_binding/src/../third-party/gst-android/arm64/lib/gstreamer-1.0/libgstvideoparsersbad.a
ld: error: undefined symbol: gst_h264_nal_parser_free
referenced by gsth264parse.c:376 (../gst/videoparsers/gsth264parse.c:376) gsth264parse.c.o:(gst_h264_parse_stop) in archive /home/yhl/projects/fltgst-videodisplay/app/native_binding/src/../third-party/gst-android/arm64/lib/gstreamer-1.0/libgstvideoparsersbad.a
ld: error: undefined symbol: gst_h264_parser_identify_nalu_avc
referenced by gsth264parse.c:1300 (../gst/videoparsers/gsth264parse.c:1300) gsth264parse.c.o:(gst_h264_parse_handle_frame) in archive /home/yhl/projects/fltgst-videodisplay/app/native_binding/src/../third-party/gst-android/arm64/lib/gstreamer-1.0/libgstvideoparsersbad.a referenced by gsth264parse.c:1344 (../gst/videoparsers/gsth264parse.c:1344) gsth264parse.c.o:(gst_h264_parse_handle_frame) in archive /home/yhl/projects/fltgst-videodisplay/app/native_binding/src/../third-party/gst-android/arm64/lib/gstreamer-1.0/libgstvideoparsersbad.a
ld: error: undefined symbol: gst_h264_parser_identify_nalu
referenced by gsth264parse.c:1944 (../gst/videoparsers/gsth264parse.c:1944) gsth264parse.c.o:(gst_h264_parse_handle_frame) in archive /home/yhl/projects/fltgst-videodisplay/app/native_binding/src/../third-party/gst-android/arm64/lib/gstreamer-1.0/libgstvideoparsersbad.a
ld: error: undefined symbol: gst_h264_parser_parse_sps
referenced by gsth264parse.c:1620 (../gst/videoparsers/gsth264parse.c:1620) gsth264parse.c.o:(gst_h264_parse_handle_frame) in archive /home/yhl/projects/fltgst-videodisplay/app/native_binding/src/../third-party/gst-android/arm64/lib/gstreamer-1.0/libgstvideoparsersbad.a referenced by gsth264parse.c:1071 (../gst/videoparsers/gsth264parse.c:1071) gsth264parse.c.o:(gst_h264_parse_process_nal) in archive /home/yhl/projects/fltgst-videodisplay/app/native_binding/src/../third-party/gst-android/arm64/lib/gstreamer-1.0/libgstvideoparsersbad.a
ld: error: undefined symbol: gst_h264_parser_parse_subset_sps
referenced by gsth264parse.c:1631 (../gst/videoparsers/gsth264parse.c:1631) gsth264parse.c.o:(gst_h264_parse_handle_frame) in archive /home/yhl/projects/fltgst-videodisplay/app/native_binding/src/../third-party/gst-android/arm64/lib/gstreamer-1.0/libgstvideoparsersbad.a referenced by gsth264parse.c:1065 (../gst/videoparsers/gsth264parse.c:1065) gsth264parse.c.o:(gst_h264_parse_process_nal) in archive /home/yhl/projects/fltgst-videodisplay/app/native_binding/src/../third-party/gst-android/arm64/lib/gstreamer-1.0/libgstvideoparsersbad.a
ld: error: undefined symbol: gst_h264_parser_parse_pps
referenced by gsth264parse.c:1628 (../gst/videoparsers/gsth264parse.c:1628) gsth264parse.c.o:(gst_h264_parse_handle_frame) in archive /home/yhl/projects/fltgst-videodisplay/app/native_binding/src/../third-party/gst-android/arm64/lib/gstreamer-1.0/libgstvideoparsersbad.a referenced by gsth264parse.c:1106 (../gst/videoparsers/gsth264parse.c:1106) gsth264parse.c.o:(gst_h264_parse_process_nal) in archive /home/yhl/projects/fltgst-videodisplay/app/native_binding/src/../third-party/gst-android/arm64/lib/gstreamer-1.0/libgstvideoparsersbad.a
ld: error: undefined symbol: gst_h264_parser_identify_nalu_unchecked
referenced by gsth264parse.c:1917 (../gst/videoparsers/gsth264parse.c:1917) gsth264parse.c.o:(gst_h264_parse_handle_frame) in archive /home/yhl/projects/fltgst-videodisplay/app/native_binding/src/../third-party/gst-android/arm64/lib/gstreamer-1.0/libgstvideoparsersbad.a
ld: error: undefined symbol: gst_h264_sei_clear
referenced by gsth264parse.c:3663 (../gst/videoparsers/gsth264parse.c:3663) gsth264parse.c.o:(gst_h264_parse_pre_push_frame) in archive /home/yhl/projects/fltgst-videodisplay/app/native_binding/src/../third-party/gst-android/arm64/lib/gstreamer-1.0/libgstvideoparsersbad.a referenced by gsth264parse.c:3663 (../gst/videoparsers/gsth264parse.c:3663) gsth264parse.c.o:(gst_h264_parse_pre_push_frame) in archive /home/yhl/projects/fltgst-videodisplay/app/native_binding/src/../third-party/gst-android/arm64/lib/gstreamer-1.0/libgstvideoparsersbad.a
ld: error: undefined symbol: gst_h264_create_sei_memory
referenced by gsth264parse.c:3667 (../gst/videoparsers/gsth264parse.c:3667) gsth264parse.c.o:(gst_h264_parse_pre_push_frame) in archive /home/yhl/projects/fltgst-videodisplay/app/native_binding/src/../third-party/gst-android/arm64/lib/gstreamer-1.0/libgstvideoparsersbad.a
ld: error: undefined symbol: gst_h264_create_sei_memory_avc
referenced by gsth264parse.c:3669 (../gst/videoparsers/gsth264parse.c:3669) gsth264parse.c.o:(gst_h264_parse_pre_push_frame) in archive /home/yhl/projects/fltgst-videodisplay/app/native_binding/src/../third-party/gst-android/arm64/lib/gstreamer-1.0/libgstvideoparsersbad.a
ld: error: undefined symbol: gst_h264_parser_parse_decoder_config_record
referenced by gsth264parse.c:4116 (../gst/videoparsers/gsth264parse.c:4116) gsth264parse.c.o:(gst_h264_parse_set_caps) in archive /home/yhl/projects/fltgst-videodisplay/app/native_binding/src/../third-party/gst-android/arm64/lib/gstreamer-1.0/libgstvideoparsersbad.a
ld: error: undefined symbol: gst_h264_decoder_config_record_free
referenced by gsth264parse.c:4143 (../gst/videoparsers/gsth264parse.c:4143) gsth264parse.c.o:(gst_h264_parse_set_caps) in archive /home/yhl/projects/fltgst-videodisplay/app/native_binding/src/../third-party/gst-android/arm64/lib/gstreamer-1.0/libgstvideoparsersbad.a
ld: error: undefined symbol: gst_h264_pps_clear
referenced by gsth264parse.c:1131 (../gst/videoparsers/gsth264parse.c:1131) gsth264parse.c.o:(gst_h264_parse_process_nal) in archive /home/yhl/projects/fltgst-videodisplay/app/native_binding/src/../third-party/gst-android/arm64/lib/gstreamer-1.0/libgstvideoparsersbad.a
ld: error: undefined symbol: gst_h264_parser_parse_sei
referenced by gsth264parse.c:663 (../gst/videoparsers/gsth264parse.c:663) gsth264parse.c.o:(gst_h264_parse_process_nal) in archive /home/yhl/projects/fltgst-videodisplay/app/native_binding/src/../third-party/gst-android/arm64/lib/gstreamer-1.0/libgstvideoparsersbad.a
ld: error: undefined symbol: gst_h264_sps_clear
referenced by gsth264parse.c:1096 (../gst/videoparsers/gsth264parse.c:1096) gsth264parse.c.o:(gst_h264_parse_process_nal) in archive /home/yhl/projects/fltgst-videodisplay/app/native_binding/src/../third-party/gst-android/arm64/lib/gstreamer-1.0/libgstvideoparsersbad.a
ld: error: undefined symbol: gst_h264_video_calculate_framerate
referenced by gsth264parse.c:2689 (../gst/videoparsers/gsth264parse.c:2689) gsth264parse.c.o:(gst_h264_parse_update_src_caps) in archive /home/yhl/projects/fltgst-videodisplay/app/native_binding/src/../third-party/gst-android/arm64/lib/gstreamer-1.0/libgstvideoparsersbad.a
ld: error: undefined symbol: gst_h264_parser_parse_nal
referenced by gsth264parse.c gsth264parse.c.o:(OUTLINED_FUNCTION_110) in archive /home/yhl/projects/fltgst-videodisplay/app/native_binding/src/../third-party/gst-android/arm64/lib/gstreamer-1.0/libgstvideoparsersbad.a
ld: error: undefined symbol: gst_h264_parser_parse_slice_hdr
referenced by gsth264parse.c gsth264parse.c.o:(OUTLINED_FUNCTION_112) in archive /home/yhl/projects/fltgst-videodisplay/app/native_binding/src/../third-party/gst-android/arm64/lib/gstreamer-1.0/libgstvideoparsersbad.a
ld: error: undefined symbol: gst_mpeg_video_parse
referenced by gstmpegvideoparse.c:659 (../gst/videoparsers/gstmpegvideoparse.c:659) gstmpegvideoparse.c.o:(gst_mpegv_parse_handle_frame) in archive /home/yhl/projects/fltgst-videodisplay/app/native_binding/src/../third-party/gst-android/arm64/lib/gstreamer-1.0/libgstvideoparsersbad.a referenced by gstmpegvideoparse.c:696 (../gst/videoparsers/gstmpegvideoparse.c:696) gstmpegvideoparse.c.o:(gst_mpegv_parse_handle_frame) in archive /home/yhl/projects/fltgst-videodisplay/app/native_binding/src/../third-party/gst-android/arm64/lib/gstreamer-1.0/libgstvideoparsersbad.a
ld: error: too many errors emitted, stopping now (use -error-limit=0 to see all errors) clang: error: linker command failed with exit code 1 (use -v to see invocation) ninja: build stopped: subcommand failed.
C++ build system [build] failed while executing: /home/yhl/Android/Sdk/cmake/3.18.1/bin/ninja \ -C \ /home/yhl/projects/fltgst-videodisplay/app/native_binding/android/.cxx/RelWithDebInfo/m6k592y8/arm64-v8a \ native_binding from /home/yhl/projects/fltgst-videodisplay/app/native_binding/android
Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
Get more help at https://help.gradle.org
BUILD FAILED in 1s Running Gradle task 'assembleRelease'... 2,185ms Gradle task assembleRelease failed with exit code 1
@Larryyuan2015 use these on LINK_LIBS
LIST(APPEND LINK_LIBS intl ffi iconv gmodule-2.0 pcre2-8 gstbase-1.0 gstaudio-1.0 gstvideo-1.0 gstgl-1.0 gstcontroller-1.0 png16 graphene-1.0 jpeg orc-0.4 gstapp-1.0 gio-2.0 android log z OpenSLES EGL GLESv2 avutil avcodec avformat gstpbutils-1.0 avfilter swresample bz2 gsttag-1.0 gstcodecparsers-1.0 gstnet-1.0 gstrtp-1.0 gstphotography-1.0)
You can watch this part of the tutorial video so that you don't have to wait for us to reply.
@MatteoGigerSR
Thank you for the reply!
I have met a problem on building fltgst using below LIST GST_PLUGINS and I added such as gstvideoscale libraries in LIST LINK_LIBS.
But it has the same error. I have no idea how to resolve it.
Can you please help on this?
Thank you!
LIST(APPEND GST_PLUGINS coreelements coretracers adder app audioconvert audiomixer audiorate audioresample audiotestsrc compositor gio overlaycomposition pango rawparse typefindfunctions videoconvert videorate videoscale videotestsrc volume autodetect videofilter playback subparse ogg theora vorbis opus ivorbisdec alaw apetag audioparsers auparse avi dv flac flv flxdec icydemux id3demux isomp4 jpeg lame matroska mpg123 mulaw multipart png speex taglib vpx wavenc wavpack wavparse y4menc adpcmdec adpcmenc bz2 dash dvbsuboverlay dvdspu hls id3tag kate midi mxf openh264 opusparse pcapparse pnm rfbsrc siren smoothstreaming subenc videoparsersbad y4mdec jpegformat gdp rsvg openjpeg spandsp sbc zbar androidmedia tcp rtsp rtp rtpmanager soup udp dtls netsim rist rtmp2 rtpmanagerbad sctp sdpelem srtp srt webrtc nice rtspclientsink opengl ipcpipeline opensles asfmux dtsdec mpegpsdemux mpegpsmux mpegtsdemux mpegtsmux voaacenc a52dec amrnb amrwbdec asf dvdsub dvdlpcmdec xingmux realmedia x264 libav) //this plugins list is copyed from other gstreamer app.
FAILURE: Build failed with an exception.
What went wrong: Execution failed for task ':native_binding:buildCMakeDebug[arm64-v8a]'.
com.android.ide.common.process.ProcessException: ninja: Entering directory `/home/yhl/projects/fltgst-videodisplay/app/native_binding/android/.cxx/Debug/3n1n3ww3/arm64-v8a' [1/2] Building C object CMakeFiles/native_binding.dir/gst_plugin_init_android.c.o clang: warning: -Wl,-Bsymbolic: 'linker' input unused [-Wunused-command-line-argument] [2/2] Linking C shared library /home/yhl/projects/fltgst-videodisplay/app/fltgst/build/native_binding/intermediates/cxx/Debug/3n1n3ww3/obj/arm64-v8a/libnative_binding.so FAILED: /home/yhl/projects/fltgst-videodisplay/app/fltgst/build/native_binding/intermediates/cxx/Debug/3n1n3ww3/obj/arm64-v8a/libnative_binding.so : && /home/yhl/Android/Sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=aarch64-none-linux-android21 --gcc-toolchain=/home/yhl/Android/Sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/home/yhl/Android/Sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -Wl,-Bsymbolic -fno-limit-debug-info -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--no-undefined -Qunused-arguments -shared -Wl,-soname,libnative_binding.so -o /home/yhl/projects/fltgst-videodisplay/app/fltgst/build/native_binding/intermediates/cxx/Debug/3n1n3ww3/obj/arm64-v8a/libnative_binding.so CMakeFiles/native_binding.dir/native_binding.c.o CMakeFiles/native_binding.dir/gst_plugin_init_android.c.o -L/home/yhl/projects/fltgst-videodisplay/app/native_binding/src/../third-party/gst-android/arm64/lib -L/home/yhl/projects/fltgst-videodisplay/app/native_binding/src/../third-party/gst-android/arm64/lib/gstreamer-1.0 -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0 -lgstcoreelements -lgstcoretracers -lgstadder -lgstapp -lgstaudioconvert -lgstaudiomixer -lgstaudiorate -lgstaudioresample -lgstaudiotestsrc -lgstcompositor -lgstgio -lgstoverlaycomposition -lgstpango -lgstrawparse -lgsttypefindfunctions -lgstvideoconvert -lgstvideorate -lgstvideoscale -lgstvideotestsrc -lgstvolume -lgstautodetect -lgstvideofilter -lgstplayback -lgstsubparse -lgstogg -lgsttheora -lgstvorbis -lgstopus -lgstivorbisdec -lgstalaw -lgstapetag -lgstaudioparsers -lgstauparse -lgstavi -lgstdv -lgstflac -lgstflv -lgstflxdec -lgsticydemux -lgstid3demux -lgstisomp4 -lgstjpeg -lgstlame -lgstmatroska -lgstmpg123 -lgstmulaw -lgstmultipart -lgstpng -lgstspeex -lgsttaglib -lgstvpx -lgstwavenc -lgstwavpack -lgstwavparse -lgsty4menc -lgstadpcmdec -lgstadpcmenc -lgstbz2 -lgstdash -lgstdvbsuboverlay -lgstdvdspu -lgsthls -lgstid3tag -lgstkate -lgstmidi -lgstmxf -lgstopenh264 -lgstopusparse -lgstpcapparse -lgstpnm -lgstrfbsrc -lgstsiren -lgstsmoothstreaming -lgstsubenc -lgstvideoparsersbad -lgsty4mdec -lgstjpegformat -lgstgdp -lgstrsvg -lgstopenjpeg -lgstspandsp -lgstsbc -lgstzbar -lgstandroidmedia -lgsttcp -lgstrtsp -lgstrtp -lgstrtpmanager -lgstsoup -lgstudp -lgstdtls -lgstnetsim -lgstrist -lgstrtmp2 -lgstrtpmanagerbad -lgstsctp -lgstsdpelem -lgstsrtp -lgstsrt -lgstwebrtc -lgstnice -lgstrtspclientsink -lgstopengl -lgstipcpipeline -lgstopensles -lgstasfmux -lgstdtsdec -lgstmpegpsdemux -lgstmpegpsmux -lgstmpegtsdemux -lgstmpegtsmux -lgstvoaacenc -lgsta52dec -lgstamrnb -lgstamrwbdec -lgstasf -lgstdvdsub -lgstdvdlpcmdec -lgstxingmux -lgstrealmedia -lgstx264 -lgstlibav -lintl -lffi -liconv -lgmodule-2.0 -lpcre2-8 -lgstbase-1.0 -lgstaudio-1.0 -lgstvideo-1.0 -lgstgl-1.0 -lgstcontroller-1.0 -lpng16 -lgraphene-1.0 -ljpeg -lorc-0.4 -lgstapp-1.0 -lgio-2.0 -landroid -llog -lz -lOpenSLES -lEGL -lGLESv2 -lavutil -lavcodec -lavformat -lgstpbutils-1.0 -lavfilter -lswresample -lbz2 -lgsttag-1.0 -lgstcodecparsers-1.0 -lgstnet-1.0 -lgstrtp-1.0 -lgstphotography-1.0 -latomic -lm && : ld: error: unable to find library -lgstvideoconvert ld: error: unable to find library -lgstvideoscale ld: error: unable to find library -lgstivorbisdec ld: error: unable to find library -lgstkate clang: error: linker command failed with exit code 1 (use -v to see invocation) ninja: build stopped: subcommand failed.
C++ build system [build] failed while executing: /home/yhl/Android/Sdk/cmake/3.18.1/bin/ninja \ -C \ /home/yhl/projects/fltgst-videodisplay/app/native_binding/android/.cxx/Debug/3n1n3ww3/arm64-v8a \ native_binding from /home/yhl/projects/fltgst-videodisplay/app/native_binding/android
Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
Get more help at https://help.gradle.org
BUILD FAILED in 59s Running Gradle task 'assembleDebug'... 60.4s Gradle task assembleDebug failed with exit code 1
@Larryyuan2015
Sorry, replace the entire CMakeLists.txt
with the following:
# The Flutter tooling requires that developers have CMake 3.10 or later
# installed. You should not increase this version, as doing so will cause
# the plugin to fail to compile for some customers of the plugin.
cmake_minimum_required(VERSION 3.10)
project(native_binding_library VERSION 0.0.1 LANGUAGES C)
find_package(PkgConfig REQUIRED)
pkg_search_module(GST REQUIRED gstreamer-1.0)
IF(WIN32)
find_program(CMAKE_PKGCONFIG_EXECUTABLE pkg-config)
IF(CMAKE_PKGCONFIG_EXECUTABLE)
# pkg-config.exe gstreamer-1.0 --libs --msvc-syntax
EXEC_PROGRAM(${CMAKE_PKGCONFIG_EXECUTABLE}
ARGS " --libs --msvc-syntax gstreamer-1.0"
OUTPUT_VARIABLE GST_LDFLAGS)
# replace spaces with semicolons so that we don't have quotation marks in command line option
string(REPLACE " " ";" GST_LDFLAGS ${GST_LDFLAGS})
message("GST_LDFLAGS: ${GST_LDFLAGS}")
ENDIF()
ENDIF()
IF(ANDROID OR __ANDROID__)
SET(GST_FOLDER ${CMAKE_CURRENT_SOURCE_DIR}/../third-party/gst-android)
SET(ABI_SUFFIX ${ANDROID_ABI})
IF(${ANDROID_ABI} STREQUAL "armeabi-v7a")
SET(ABI_SUFFIX armv7)
ELSEIF(${ANDROID_ABI} STREQUAL "arm64-v8a")
SET(ABI_SUFFIX arm64)
ELSEIF(${ANDROID_ABI} STREQUAL "x86")
# skipped
ELSEIF(${ANDROID_ABI} STREQUAL "x86_64")
# skipped
ENDIF()
SET(GST_ROOT ${GST_FOLDER}/${ABI_SUFFIX})
# -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include
include_directories(
${GST_ROOT}/include/gstreamer-1.0
${GST_ROOT}/include/glib-2.0
${GST_ROOT}/lib/glib-2.0/include
)
link_directories(
${GST_ROOT}/lib
${GST_ROOT}/lib/gstreamer-1.0
)
SET(PLUGINS_DECLARATION)
SET(PLUGINS_REGISTRATION)
# Gstreamer plugins which bundles elements that you will be using in your pipeline
LIST(APPEND GST_PLUGINS coreelements coretracers adder app audioconvert audiorate audiotestsrc videotestsrc videorate videofilter videoconvertscale videoparsersbad udp gio autodetect opensles ipcpipeline opengl playback rtp rawparse androidmedia)
foreach(GST_P ${GST_PLUGINS})
LIST(APPEND LINK_LIBS "gst${GST_P}")
LIST(APPEND PLUGINS_DECLARATION "\nGST_PLUGIN_STATIC_DECLARE(${GST_P})")
LIST(APPEND PLUGINS_REGISTRATION "\nGST_PLUGIN_STATIC_REGISTER(${GST_P})")
endforeach()
configure_file(gst_android.c.in ${CMAKE_CURRENT_SOURCE_DIR}/gst_plugin_init_android.c)
LIST(APPEND APPENDED_SOURCE gst_plugin_init_android.c)
# libraries required by above lists
LIST(APPEND LINK_LIBS intl ffi iconv gmodule-2.0 pcre2-8 gstbase-1.0 gstaudio-1.0 gstvideo-1.0 gstgl-1.0 gstcontroller-1.0 png16 graphene-1.0 jpeg orc-0.4 gstapp-1.0 gio-2.0 android log z OpenSLES EGL GLESv2 avutil avcodec avformat gstpbutils-1.0 avfilter swresample bz2 gsttag-1.0 gstcodecparsers-1.0 gstnet-1.0 gstrtp-1.0 gstphotography-1.0)
ELSE()
include_directories(${GST_INCLUDE_DIRS})
ENDIF()
add_library(native_binding SHARED
"native_binding.c"
${APPENDED_SOURCE}
)
IF(WIN32)
target_link_options(native_binding PRIVATE ${GST_LDFLAGS})
ELSE()
target_link_libraries(native_binding PRIVATE ${GST_LDFLAGS} ${LINK_LIBS})
ENDIF()
set_target_properties(native_binding PROPERTIES
PUBLIC_HEADER native_binding.h
OUTPUT_NAME "native_binding"
)
target_compile_definitions(native_binding PUBLIC DART_SHARED_LIB)
@fengjiongmax @MatteoGigerSR It is OK for build apk. Thanks for your help. I used your CMakeLists.txt with the following GST_PLUGINS. LIST(APPEND GST_PLUGINS coreelements coretracers adder app audioconvert audiorate audiotestsrc videotestsrc videorate videofilter videoconvertscale videoparsersbad udp gio autodetect opensles ipcpipeline opengl playback rtp rawparse androidmedia libav)
but there is no image to test below two pipelines. 1. filesrc location=/sdcard/test.mp4 ! qtdemux ! h264parse ! avdec_h264 ! autovideosink 2. udpsrc port=5000 caps='application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264' ! rtph264depay ! decodebin ! videoconvert ! autovideosink
there is a same error from log of device. Do you have any experience with this?
2024-01-04 04:11:33.273 3822-4098 libEGL com.example.fltgst E validate_display:99 error 3008 (EGL_BAD_DISPLAY)
How do you create the pipeline and the elements? I suggest you use gst_element_factory_make
to create the elements individually, and then do a null check so that elements are created.
If you did use gst_element_factory_make
to create elements, then please create an example repository so that I can check on that.
@Larryyuan2015
Hi fengjiongmax,
I used the following method to create the pipeline.
FFI_PLUGIN_EXPORT void setup_pipeline(void) { // Setup pipeline gchar pipeline_description = g_strdup("filesrc location=/sdcard/test.mp4 ! qtdemux ! h264parse ! avdec_h264 ! autovideosink"); //gchar pipeline_description = g_strdup("udpsrc port=5000 caps='application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264' ! rtph264depay ! decodebin ! videoconvert ! autovideosink");
data->pipeline = gst_parse_launch(pipeline_description, NULL);
g_free(pipeline_description);
if (!data->pipeline) {
g_printerr("Pipeline could not be created.\n");
return;
}
// Set pipeline state
gst_element_set_state(data->pipeline, GST_STATE_READY);
// Get overlay interface
data->overlay = gst_bin_get_by_interface(GST_BIN(data->pipeline), GST_TYPE_VIDEO_OVERLAY);
}
then I changed the method like the below as your suggestion.
FFI_PLUGIN_EXPORT void setup_pipeline(void) { // Setup pipeline GstElement filesrc, qtdemux, h264parse, avdec_h264, *autovideosink;
filesrc = gst_element_factory_make("filesrc", NULL);
qtdemux = gst_element_factory_make("qtdemux", NULL);
h264parse = gst_element_factory_make("h264parse", NULL);
avdec_h264 = gst_element_factory_make("avdec_h264", NULL);
autovideosink = gst_element_factory_make("autovideosink", NULL);
// Check if elements are created successfully
if (!filesrc || !qtdemux || !h264parse || !avdec_h264 || !autovideosink) {
g_printerr("Failed to create elements. Exiting.\n");
// Clean up
if (filesrc) gst_object_unref(filesrc);
if (qtdemux) gst_object_unref(qtdemux);
if (h264parse) gst_object_unref(h264parse);
if (avdec_h264) gst_object_unref(avdec_h264);
if (autovideosink) gst_object_unref(autovideosink);
return;
}
// Set the location for filesrc
g_object_set(G_OBJECT(filesrc), "location", "/sdcard/test.mp4", NULL);
// Create the pipeline
data->pipeline = gst_pipeline_new("test-pipeline");
if (!data->pipeline) {
g_printerr("Pipeline could not be created.\n");
return;
}
// Add elements to the pipeline
gst_bin_add_many(GST_BIN(data->pipeline), filesrc, qtdemux, h264parse, avdec_h264, autovideosink, NULL);
// Link the elements
if (!gst_element_link_many(filesrc, qtdemux, h264parse, avdec_h264, autovideosink, NULL)) {
g_printerr("Failed to link elements. Exiting.\n");
gst_object_unref(data->pipeline);
return;
}
// Set pipeline state
gst_element_set_state(data->pipeline, GST_STATE_READY);
// Get overlay interface
data->overlay = gst_bin_get_by_interface(GST_BIN(data->pipeline), GST_TYPE_VIDEO_OVERLAY);
}
Great, were the elements created successfully?
or you can open the Android folder in fltgst
and put a breakpoint at the null check line and see if all those elements are created.
@fengjiongmax As your suggestion,I set a breakpoint and debug the code with android Emulator Pixel 4a API 31,and these variables output the information as below. there is NULL for qtdemux element and it fails to create the pipeline .
filesrc = gst_element_factory_make("filesrc", NULL);
qtdemux = gst_element_factory_make("qtdemux", NULL);
h264parse = gst_element_factory_make("h264parse", NULL);
avdec_h264 = gst_element_factory_make("avdec_h264", NULL);
autovideosink = gst_element_factory_make("autovideosink", NULL);
filesrc: 0x7a2ed0812420 qtdemux: 0x0(NULL) h264parse: 0x7a2e807e30f0 avdec_h264: 0x7a2e308b4f80 autovideosink: 0x7a2ea0824040
Then I added the plugin isomp4 again like this. LIST(APPEND GST_PLUGINS coreelements coretracers adder app audioconvert audiorate audiotestsrc videotestsrc videorate videofilter videoconvertscale videoparsersbad udp gio autodetect opensles ipcpipeline opengl playback rtp rawparse androidmedia libav isomp4)
LIST(APPEND LINK_LIBS intl ffi iconv gmodule-2.0 pcre2-8 gstbase-1.0 gstaudio-1.0 gstvideo-1.0 gstgl-1.0 gstcontroller-1.0 png16 graphene-1.0 jpeg orc-0.4 gstapp-1.0 gio-2.0 android log z OpenSLES EGL GLESv2 avutil avcodec avformat gstpbutils-1.0 avfilter swresample bz2 gsttag-1.0 gstcodecparsers-1.0 gstnet-1.0 gstrtp-1.0 gstphotography-1.0 gstisomp4)
But but the same error occurs. [ +1 ms] ld: error: undefined symbol: gst_riff_init [ ] >>> referenced by qtdemux.c:442 (../gst/isomp4\qtdemux.c:442) [ ] >>> qtdemux.c.o:(gst_qtdemux_class_intern_init) in archive E:/flutter/20240301/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/gstreamer-1.0\libgstisomp4.a [ ] ld: error: undefined symbol: gst_riff_parse_strf_auds [ ] >>> referenced by qtdemux.c:13678 (../gst/isomp4\qtdemux.c:13678) [ ] >>> qtdemux.c.o:(qtdemux_parse_trak) in archive E:/flutter/20240301/fltgst/app/native_binding/src/../third-party/gst-android/arm64/lib/gstreamer-1.0\libgstisomp4.a
Then you need to add gstriff-1.0
to LINK_LIBS
, then the app should build.
@fengjiongmax Thanks very much . After add gstriff-1.0, it works and it can play the video. Thanks again for your kindly help.
Great! Then I'll close this issue.
Hi fengjiongmax,
I put test.mp4 in the android equipment. It was ok to play the video by other gstreamer appwith the same pipeline on same android equiment. and I modified the native_binding.c file like below in this flutter project. but there was no image to come out. Could you help to check the issue? Thank you very much!
//m FFI_PLUGIN_EXPORT void setup_pipeline(void) { // Setup pipeline gchar *pipeline_description = g_strdup("filesrc location=/sdcard/test.mp4 ! qtdemux ! h264parse ! avdec_h264 ! autovideosink"); data->pipeline = gst_parse_launch(pipeline_description, NULL); g_free(pipeline_description);
}