- drop ADF pipeline stuff related to playback, this introduced too much non deterministic delay
- add fast median calculation component
- increase LWIP buffers
- do apll change only when current setting is different than the wanted one
- improve snapcast_sync_task
- add esp timer to issue time sync messages to server every second
o block on semaphore which is given in timer callback
- start dropping adf piplines for decoding wirechunk part of code
o use write callback for output
o TODO: use read callback for input
- move time stamping of pcm chunks to decoder's write callback
- try to improve synced playback using APLL adjustments
- reduce diffBuf size to 1, bigger values seem to be problematic if packet loss is happening, maybe we need to detect this and clear diffBuf
- do early time syncs on boot to fill diffBuf
- playing with pipline ringbuf sizes and I2S DMA buffer sizes
- do some cosmetics
- improve server now generation
- improve playback synchronization
o use two audio pipelines so we can tap into decoded audio and apply collected timestamps from encoded chunks to PCM chunks in decoder write callback
o do hard synchronization on PCM stream and then start playback
o TODO: sample stuffing/skipping to keep a good sync
o TODO: for some reason playback hangs after a while on timestampQueue write
- use espressif ADF, remove external opus rep
o uses audio pipelines now
- change code to use flac decoder
- remove mersus code
- add first try of audio synchronization
o needed to sync timeofday to server on reception of server settings to avoid overflows in timeval calculations (int32_t on esp32 SDK)
o still a lot of TODO's in the code, but it's almost in sync, although there is quite some chunk skipping which I am currently working on