Abort when using DynamicsProcessing
Some devices, using Android 10 or 11 crash when attaching DynamicsProcessing object to the audiotrack session.
Cf. the stack trace:
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> org.videolan.vlc <<<
backtrace:
#00 pc 0000000000083134 /apex/com.android.runtime/lib64/bionic/libc.so (abort+160)
#00 pc 00000000004b4234 /apex/com.android.runtime/lib64/libart.so (art::Runtime::Abort(char const*)+2376)
#00 pc 000000000000c5b4 /system/lib64/libbase.so (android::base::LogMessage::~LogMessage()+608)
#00 pc 000000000029e488 /apex/com.android.runtime/lib64/libart.so (art::IndirectReferenceTable::AbortIfNoCheckJNI(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)+236)
#00 pc 000000000037b318 /apex/com.android.runtime/lib64/libart.so (art::IndirectReferenceTable::GetChecked(void*) const+432)
#00 pc 000000000037688c /apex/com.android.runtime/lib64/libart.so (art::JavaVMExt::DecodeGlobal(void*)+24)
#00 pc 00000000004f97c8 /apex/com.android.runtime/lib64/libart.so (art::Thread::DecodeJObject(_jobject*) const+148)
#00 pc 00000000004abb5c /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::ArgArray::BuildArgArrayFromVarArgs(art::ScopedObjectAccessAlreadyRunnable const&, art::ObjPtr<art::mirror::Object>, std::__va_list)+136)
#00 pc 00000000004ab9a8 /apex/com.android.runtime/lib64/libart.so (art::InvokeWithVarArgs(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+384)
#00 pc 00000000003b7c20 /apex/com.android.runtime/lib64/libart.so (art::JNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+628)
#00 pc 0000000000004bf0 /system/lib64/libaudioeffect_jni.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+116)
#00 pc 0000000000004ab4 /system/lib64/libaudioeffect_jni.so (effectCallback(int, void*, void*)+388)
#00 pc 000000000004c4c0 /system/lib64/libaudioclient.so (android::AudioEffect::EffectClient::commandExecuted(unsigned int, unsigned int, void*, unsigned int, void*)+196)
#00 pc 00000000000a14b8 /system/lib64/libaudioclient.so (android::BnEffectClient::onTransact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+604)
#00 pc 000000000004c670 /system/lib64/libbinder.so (android::BBinder::transact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+136)
#00 pc 0000000000058c60 /system/lib64/libbinder.so (android::IPCThreadState::executeCommand(int)+980)
#00 pc 00000000000587d8 /system/lib64/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+156)
#00 pc 0000000000058f14 /system/lib64/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+60)
#00 pc 000000000007f124 /system/lib64/libbinder.so (android::PoolThread::threadLoop()+24)
#00 pc 000000000001366c /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+288)
#00 pc 00000000000ef900 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+140)
#00 pc 00000000000e28c0 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+36)
#00 pc 000000000008503c /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
It's not from VLC thread, and we don't have much control and how to fix it. The issue is very likely on the Android AOSP side.