Feature description:
My device, iBasso DX180, supports additional codecs beyond what ASOP Android includes support for. This seems to be via libmmparserextractor.so as indicated by the output of dumpsys media.extractor. Would it be possible for you to add support for using this library for playback / decoding? Perhaps if it’s available on the user’s device, then prioritize it over the standard “apex” extractors, and if it is not present, then use the standard libraries. Support for this device could be first (as I have one and could test it), but additional ones could also be added if there are other custom extractors on other devices as well.
I uploaded a copy of libmmparserextractor.so via the upload page, no idea if you’d be able to use it in testing… but who knows, maybe it will be helpful.
DX180:/ $ dumpsys media.extractor
Available extractors:
AAC Extractor: plugin_version(3), uuid(4fd80eae03d24d729eb948fa6bb54613), version(1), path(/apex/com.android.media/lib64/extractors/libaacextractor.so), supports: aac
AMR Extractor: plugin_version(3), uuid(c86639c92f3140aca715fa01b4493aaf), version(1), path(/apex/com.android.media/lib64/extractors/libamrextractor.so), supports: amr awb
FLAC Extractor: plugin_version(3), uuid(1364b048cc454fda9934327d0ebf9829), version(1), path(/apex/com.android.media/lib64/extractors/libflacextractor.so), supports: flac fl
MIDI Extractor: plugin_version(3), uuid(ef6cca0af8a243e6ba5fdfcd7c9a7ef2), version(1), path(/apex/com.android.media/lib64/extractors/libmidiextractor.so), supports: imy mid midi mxmf ota rtttl rtx smf xmf
MP3 Extractor: plugin_version(3), uuid(812a3f6cc8cf46deb5293774b14103d4), version(1), path(/apex/com.android.media/lib64/extractors/libmp3extractor.so), supports: mp2 mp3 mpeg mpg mpga
MP4 Extractor: plugin_version(3), uuid(27575c6744174c548d3d8e626985a164), version(2), path(/apex/com.android.media/lib64/extractors/libmp4extractor.so), supports: 3g2 3ga 3gp 3gpp 3gpp2 m4a m4r m4v mov mp4 qt
MPEG2-PS/TS Extractor: plugin_version(3), uuid(3d1dcfebe40a436da574c2438a555e5f), version(1), path(/apex/com.android.media/lib64/extractors/libmpeg2extractor.so), supports: m2p m2ts mts ts
Matroska Extractor: plugin_version(3), uuid(abbedd9238c44904a4c1b3f45f899980), version(1), path(/apex/com.android.media/lib64/extractors/libmkvextractor.so), supports: mka mkv webm
Ogg Extractor: plugin_version(3), uuid(8cc5cd06f772495e8a62cba9649374e9), version(1), path(/apex/com.android.media/lib64/extractors/liboggextractor.so), supports: oga ogg opus
QCOM Extractor: plugin_version(3), uuid(2cb1d93846d8436db73e681c47392cc8), version(2), path(/system_ext/lib64/extractors/libmmparserextractor.so), supports: oga ogg avi wav dsf dff dsd ac3 ec3 asf wma wmv amr awb mka mkv webm mov 3gp 3gpp 3gpp2 m4a m4r m4v mp4 qt qcp fl flac flv m2ts ts 3g2 m2p mpeg mpg mpga vob aif aiff ape aac mp3 dts mhas
WAV Extractor: plugin_version(3), uuid(7d61385858374a3884c5332d1cddee27), version(1), path(/apex/com.android.media/lib64/extractors/libwavextractor.so), supports: wav
Problem solved:
Possibly better support for hardware-accelerated media decoding on Snapdragon-based devices. Possibly additional codec support.
Brought benefits:
DSD playback… I hope… ![]()
Other application solutions:
NeutronMP appears to make use of it
10-05 05:44:23: MMParserExtractor for mime NULL, source TinyCacheSource(CallbackDataSource(974->990, RemoteDataSource(FileSource(fd(/data/app/~~6JlaiwhFCo5TcVZ9V8ffsg==/com.neutroncode.mp-cNtASaisVg4_oqe01vqchw==/base.apk), 21244308, 22094)))), pid 990: deleted
track {srte: (int32_t) 44100, sbit: (int32_t) 16, mime: (char*) audio/raw, lang: (char*) , inpS: (int32_t) 32768, ffmt: (char*) audio/x-wav, dura: (int64_t) 250000, chnm: (int32_t) 0, bits: (int32_t) 16, PCMe: (int32_t) 2, #chn: (int32_t) 1} : deleted
Additional description and context:
Being that NeutronMP seems to be able to make use of this library and has working DSD playback, I assume (and hope) that it would be possible for Symfonium to do the same.
Would this be difficult to do? If it’s trivial, awesome, please consider. If it’s not… could possibly find a donation around here somewhere…. ![]()