Auxio/musikr
Alexander Capehart 7880c777ba
musikr: fix inputstream memory leak
Apparently allocating the bytes on the JVM side of the taglib parser
will wind up leaking memory due to a bugged cache in ByteBuffer.

Instead, allocate the bytes in native, wrap it into a ByteBuffer, and
then pass it upwards into NativeInputStream. This seems to fix the
leak.
2025-01-30 09:29:26 -07:00
..
src musikr: fix inputstream memory leak 2025-01-30 09:29:26 -07:00
.gitignore all: break off musikr 2024-12-16 13:09:08 -05:00
.Rhistory all: break off musikr 2024-12-16 13:09:08 -05:00
build.gradle build: share desugaring version 2024-12-21 12:11:32 -05:00
consumer-rules.pro musikr: fix broken minification 2025-01-06 08:15:28 -07:00
proguard-rules.pro musikr: add back tag whitespace fixes 2025-01-04 15:56:19 -07:00
README.md Update README.md 2025-01-03 15:37:32 -07:00

musikr

Musikr is a highly opinionated multithreaded music loader that enables Auxio's advanced music functionality. It completely bypasses Android's MediaStore and uses the storage access framework (SAF) and taglib to replicate it's functionality with less bugs and more flexibility, further expanding it with an advanced music model that leverages the wide variety of tags available in modern extended specs.

Warning that the API surface is:

  • Extremely unstable, as it's a very thin shim on top of a constantly optimzied and updated music loader
  • Minimized to only what the rest of the app uses or builds on, so you will need to patch it to extend certain components

Feel free to use this library as long as you follow Auxio's GPLv3 license. Note that the license is viral, so if you wind up using this in a proprietary project, the entire project must be GPLv3 too.

If you want to generate some docs for the unstable API, you can run

./gradlew musikr:dokkaGeneratePublicationHtml

In the project root and it should produce a webpage in musikr/build/dokka/html