feat: play music through librubberband

This commit is contained in:
2026-03-20 23:17:34 +01:00
parent 5b26203533
commit b14ea02694
8 changed files with 314 additions and 7 deletions

22
TODO.md
View File

@@ -1,5 +1,20 @@
## TODO
* analyze the (secondly or so) noise beeps in the mp3 playback
- introduced with this commit
- is it librubberband, my failure to feed it properly (buffer exhaustion), or sth else?
* correct sampling rate of libmpg123 vs. 48000 Hz using librubberband
* record accelero and write recording to file
* set feedForDelay in musicFeedThread() in PlaybackEngine.cpp
- LOGI("feed %d silence samples", num_samples);
- set the sleep delay
- ideally, set the buf size
* check playback buf size, and reduce buffer sizes
- LOGI("onAudioReady() frames=%d", frames);
* reduce lib size, librubberband is 1.3 M (one .so file)
- maybe we are compiling too many source files
- # TODO: see Android.mk in librubberband and copy options from `LOCAL_CFLAGS`
@@ -26,6 +41,13 @@ O> 16 KB paging for NDK libs
MixingPlayer currently forces both to 48000 and 2 respectively,
regardless of what Android says would be optimal.
* nice-to nice-to: ramp up audio pipelines twice - once to collect params, another one to use those
## Technical Debt
* remove duplication of `mp3file_open()` in `mp3file_open_fd()`
* malloc() nullptr result handling
## Before release
* check librubberband license