From 43d62807a351e7b72a1ed0d2ba9d78b09828bccf Mon Sep 17 00:00:00 2001 From: Antoine Soulier Date: Tue, 23 Jan 2024 15:33:08 -0800 Subject: [PATCH] hr mode: Allow half bitrate (fallback operation), and remove lower bound on decoding. --- src/lc3.c | 4 ++-- src/tables.c | 13 +++++++------ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/lc3.c b/src/lc3.c index 12fa86f..8eee85f 100644 --- a/src/lc3.c +++ b/src/lc3.c @@ -744,8 +744,8 @@ int lc3_decode(struct lc3_decoder *decoder, const void *in, int nbytes, if (!decoder) return -1; - if (in && (nbytes < lc3_min_frame_bytes(decoder->dt, decoder->sr) || - nbytes > lc3_max_frame_bytes(decoder->dt, decoder->sr) )) + if (in && (nbytes < LC3_MIN_FRAME_BYTES || + nbytes > lc3_max_frame_bytes(decoder->dt, decoder->sr) )) return -1; /* --- Processing --- */ diff --git a/src/tables.c b/src/tables.c index 85568a1..947813d 100644 --- a/src/tables.c +++ b/src/tables.c @@ -56,19 +56,20 @@ const int lc3_ns_4m[LC3_NUM_SRATE] = { /** * Limits on size of frame + * For fallback operation, half-size should be accepted. */ const int lc3_frame_bytes_hr_lim [LC3_NUM_DT][LC3_NUM_SRATE - LC3_SRATE_48K_HR][2] = { - [LC3_DT_2M5][LC3_SRATE_48K_HR - LC3_SRATE_48K_HR] = { 54, 210 }, - [LC3_DT_2M5][LC3_SRATE_96K_HR - LC3_SRATE_48K_HR] = { 62, 210 }, + [LC3_DT_2M5][LC3_SRATE_48K_HR - LC3_SRATE_48K_HR] = { 54/2, 210 }, + [LC3_DT_2M5][LC3_SRATE_96K_HR - LC3_SRATE_48K_HR] = { 62/2, 210 }, - [LC3_DT_5M ][LC3_SRATE_48K_HR - LC3_SRATE_48K_HR] = { 93, 375 }, - [LC3_DT_5M ][LC3_SRATE_96K_HR - LC3_SRATE_48K_HR] = { 109, 375 }, + [LC3_DT_5M ][LC3_SRATE_48K_HR - LC3_SRATE_48K_HR] = { 93/2, 375 }, + [LC3_DT_5M ][LC3_SRATE_96K_HR - LC3_SRATE_48K_HR] = { 109/2, 375 }, - [LC3_DT_10M][LC3_SRATE_48K_HR - LC3_SRATE_48K_HR] = { 156, 625 }, - [LC3_DT_10M][LC3_SRATE_96K_HR - LC3_SRATE_48K_HR] = { 187, 625 }, + [LC3_DT_10M][LC3_SRATE_48K_HR - LC3_SRATE_48K_HR] = { 156/2, 625 }, + [LC3_DT_10M][LC3_SRATE_96K_HR - LC3_SRATE_48K_HR] = { 187/2, 625 }, };