audiocore: Use constant for MP3 frame size
This commit is contained in:
@@ -7,6 +7,8 @@
|
||||
|
||||
#include "py/mperrno.h"
|
||||
|
||||
_Static_assert(MP3_FRAME_SIZE == I2S_DMA_BUF_SIZE, "i2s buffer size must match MP3 frame size");
|
||||
|
||||
void __time_critical_func(volume_adjust)(int16_t *buf, size_t samples, uint16_t scalef)
|
||||
{
|
||||
for (size_t pos = 0; pos < samples; ++pos) {
|
||||
@@ -87,7 +89,7 @@ void __time_critical_func(core1_main)(void)
|
||||
i2s_play(samplerate);
|
||||
playing = true;
|
||||
}
|
||||
volume_adjust((int16_t *)buf, 2304, current_volume);
|
||||
volume_adjust((int16_t *)buf, MP3_FRAME_SIZE * 2, current_volume);
|
||||
i2s_commit_buf(buf);
|
||||
send_consume_notify();
|
||||
continue;
|
||||
|
||||
@@ -72,7 +72,7 @@ static void __time_critical_func(mp3_consume_data)(size_t bytes_used)
|
||||
spin_unlock(shared_context.lock, flags);
|
||||
}
|
||||
|
||||
bool __time_critical_func(mp3_decode)(uint32_t pcm_buf[static 1152], unsigned *samplerate)
|
||||
bool __time_critical_func(mp3_decode)(uint32_t pcm_buf[static MP3_FRAME_SIZE], unsigned *samplerate)
|
||||
{
|
||||
unsigned char *readptr;
|
||||
size_t bytes_avail = mp3_get_continuous_data(&readptr);
|
||||
@@ -124,7 +124,7 @@ bool __time_critical_func(mp3_decode)(uint32_t pcm_buf[static 1152], unsigned *s
|
||||
#endif
|
||||
*samplerate = info.samprate;
|
||||
|
||||
if (info.outputSamps != 2304) {
|
||||
if (info.outputSamps != MP3_FRAME_SIZE * 2) {
|
||||
#ifdef MP3_DEBUG
|
||||
printf("Unexpected number of output samples: %d\n", info.outputSamps);
|
||||
#endif
|
||||
|
||||
@@ -6,9 +6,11 @@
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#define MP3_FRAME_SIZE 1152
|
||||
|
||||
bool mp3_init(void);
|
||||
void mp3_deinit(void);
|
||||
|
||||
bool mp3_decode(uint32_t pcm_buf[static 1152], unsigned *samplerate);
|
||||
bool mp3_decode(uint32_t pcm_buf[static MP3_FRAME_SIZE], unsigned *samplerate);
|
||||
|
||||
void mp3_reset(void);
|
||||
|
||||
Reference in New Issue
Block a user