mirror of
https://github.com/sle118/squeezelite-esp32.git
synced 2025-12-08 12:37:01 +03:00
Ring buffer implementation
First stab at implementing a ring buffer. Now tuning should be done. The statistics report causes jitters and can be deactivated by lowering the output verbosity.
This commit is contained in:
54
main/utils.c
54
main/utils.c
@@ -561,3 +561,57 @@ char *strcasestr(const char *haystack, const char *needle) {
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
uint8_t get_bytes_per_frame(output_format fmt)
|
||||
{
|
||||
uint8_t bpf=0;
|
||||
|
||||
switch (fmt) {
|
||||
case S32_LE:
|
||||
bpf=4*2;
|
||||
break;
|
||||
case S24_LE:
|
||||
bpf=3*2;
|
||||
break;
|
||||
case S24_3LE:
|
||||
bpf=3*2;
|
||||
break;
|
||||
case S16_LE:
|
||||
bpf=2*2;
|
||||
break;
|
||||
#if CONFIG_DACAUDIO
|
||||
case S24_BE:
|
||||
bpf=3*2;
|
||||
break;
|
||||
case S24_3BE:
|
||||
bpf=3*2;
|
||||
break;
|
||||
case S16_BE:
|
||||
bpf=2*2;
|
||||
break;
|
||||
case S8_BE:
|
||||
bpf=2*2;
|
||||
break;
|
||||
#endif
|
||||
#if DSD
|
||||
case U8:
|
||||
bpf=1*2;
|
||||
break;
|
||||
case U16_LE:
|
||||
bpf=2*2;
|
||||
break;
|
||||
case U16_BE:
|
||||
bpf=2*2;
|
||||
break;
|
||||
case U32_LE:
|
||||
bpf=4*2;
|
||||
break;
|
||||
case U32_BE:
|
||||
bpf=4*2;
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
break;
|
||||
}
|
||||
assert(bpf>0);
|
||||
return bpf;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user