btstack_lc3: remove helper functions from btstack_lc3_t interface

This commit is contained in:
Matthias Ringwald 2022-09-21 09:50:05 +02:00
parent 9b77781f6e
commit dc0d751c88
9 changed files with 7 additions and 104 deletions

View File

@ -53,7 +53,6 @@ uint16_t btstack_lc3_frame_duration_in_us(btstack_lc3_frame_duration_t frame_dur
case BTSTACK_LC3_FRAME_DURATION_10000US:
return 10000;
default:
btstack_assert(false);
return 0;
}
}

View File

@ -64,21 +64,6 @@ typedef struct {
*/
uint8_t (*configure)(void * context, uint32_t sample_rate, btstack_lc3_frame_duration_t frame_duration, uint16_t octets_per_frame);
/**
* Get number of octets per LC3 frame for bitrate
* @param context
* @param bitrate
* @return octets_per_frame
*/
uint16_t (*get_number_octets_for_bitrate)(void * context, uint32_t bitrate);
/**
* Get number of samples per LC3 frame
* @param context
* @return number of samples
*/
uint16_t (*get_number_samples_per_frame)(void * context);
/**
* Decode LC3 Frame into signed 16-bit samples
* @param context
@ -118,21 +103,6 @@ typedef struct {
*/
uint8_t (*configure)(void * context, uint32_t sample_rate, btstack_lc3_frame_duration_t frame_duration, uint16_t octets_per_frame);
/**
* Get bitrate from number of octets per LC3 frame
* @param context
* @param number_of_octets
* @return bitrate
*/
uint32_t (*get_bitrate_for_number_of_octets)(void * context, uint16_t number_of_octets);
/**
* Get number of samples per LC3 frame
* @param context
* @return number of samples
*/
uint16_t (*get_number_samples_per_frame)(void * context);
/**
* Encode LC3 Frame with 16-bit signed PCM samples
* @param context
@ -158,7 +128,7 @@ typedef struct {
/**
* @brief Map enum to ISO Interval in us
* @param frame_duration enum
* @return frame_duratoin in us
* @return frame_duratoin in us or 0 for invalid frame_duration enum
*/
uint16_t btstack_lc3_frame_duration_in_us(btstack_lc3_frame_duration_t frame_duration);

View File

@ -79,24 +79,6 @@ static uint8_t lc3_decoder_google_configure(void * context, uint32_t sample_rate
return ERROR_CODE_SUCCESS;
}
static uint16_t lc3_decoder_google_get_number_octets_for_bitrate(void * context, uint32_t bitrate){
btstack_lc3_decoder_google_t * instance = (btstack_lc3_decoder_google_t *) context;
uint16_t duration_us = lc3_frame_duration_in_us(instance->frame_duration);
if (duration_us == 0){
return 0;
}
return lc3_frame_bytes(duration_us, bitrate);
}
static uint16_t lc3_decoder_google_get_number_samples_per_frame(void * context){
btstack_lc3_decoder_google_t * instance = (btstack_lc3_decoder_google_t *) context;
uint16_t duration_us = lc3_frame_duration_in_us(instance->frame_duration);
if (duration_us == 0){
return 0;
}
return lc3_frame_samples(duration_us, instance->sample_rate);
}
static uint8_t
lc3_decoder_google_decode(void *context, const uint8_t *bytes, uint8_t BFI, enum lc3_pcm_format fmt, void *pcm_out,
uint16_t stride, uint8_t *BEC_detect) {
@ -133,8 +115,6 @@ static uint8_t lc3_decoder_google_decode_signed_24(void * context, const uint8_t
static const btstack_lc3_decoder_t btstack_l3c_decoder_google_instance = {
lc3_decoder_google_configure,
lc3_decoder_google_get_number_octets_for_bitrate,
lc3_decoder_google_get_number_samples_per_frame,
lc3_decoder_google_decode_signed_16,
lc3_decoder_google_decode_signed_24
};
@ -170,25 +150,6 @@ static uint8_t lc3_encoder_google_configure(void * context, uint32_t sample_rate
return ERROR_CODE_SUCCESS;
}
static uint32_t lc3_encoder_google_get_bitrate_for_number_of_octets(void * context, uint16_t number_of_octets){
btstack_lc3_encoder_google_t * instance = (btstack_lc3_encoder_google_t *) context;
// map frame duration
uint16_t duration_us = lc3_frame_duration_in_us(instance->frame_duration);
if (duration_us == 0){
return ERROR_CODE_INVALID_HCI_COMMAND_PARAMETERS;
}
return lc3_resolve_bitrate(duration_us, number_of_octets);
}
static uint16_t lc3_encoder_google_get_number_samples_per_frame(void * context){
btstack_lc3_encoder_google_t * instance = (btstack_lc3_encoder_google_t *) context;
// map frame duration
uint16_t duration_us = lc3_frame_duration_in_us(instance->frame_duration);
if (duration_us == 0){
return ERROR_CODE_INVALID_HCI_COMMAND_PARAMETERS;
}
return lc3_frame_samples(duration_us, instance->sample_rate);
}
static uint8_t
lc3_encoder_google_encode_signed(void *context, enum lc3_pcm_format fmt, const void *pcm_in, uint16_t stride, uint8_t *bytes) {
btstack_lc3_encoder_google_t * instance = (btstack_lc3_encoder_google_t *) context;
@ -211,8 +172,6 @@ static uint8_t lc3_encoder_google_encode_signed_24(void * context, const int32_t
static const btstack_lc3_encoder_t btstack_l3c_encoder_google_instance = {
lc3_encoder_google_configure,
lc3_encoder_google_get_bitrate_for_number_of_octets,
lc3_encoder_google_get_number_samples_per_frame,
lc3_encoder_google_encode_signed_16,
lc3_encoder_google_encode_signed_24
};

View File

@ -84,17 +84,6 @@ static uint8_t lc3plus_fraunhofer_decoder_configure(void * context, uint32_t sam
return ERROR_CODE_SUCCESS;
}
static uint16_t lc3plus_fraunhofer_decoder_get_number_octets_for_bitrate(void * context, uint32_t bitrate){
btstack_assert(false);
return 0;
}
static uint16_t lc3plus_fraunhofer_decoder_get_number_samples_per_frame(void * context){
btstack_lc3plus_fraunhofer_decoder_t * instance = (btstack_lc3plus_fraunhofer_decoder_t *) context;
LC3PLUS_Dec * decoder = (LC3PLUS_Dec*) instance->decoder;
return lc3plus_dec_get_output_samples(decoder);
}
static uint8_t lc3plus_fraunhofer_decoder_decode_signed_16(void * context, const uint8_t *bytes, uint8_t BFI, int16_t* pcm_out, uint16_t stride, uint8_t * BEC_detect){
btstack_lc3plus_fraunhofer_decoder_t * instance = (btstack_lc3plus_fraunhofer_decoder_t *) context;
LC3PLUS_Dec * decoder = (LC3PLUS_Dec*) instance->decoder;
@ -157,8 +146,6 @@ static uint8_t lc3plus_fraunhofer_decoder_decode_signed_24(void * context, const
static const btstack_lc3_decoder_t btstack_l3cplus_fraunhofer_decoder_instance = {
lc3plus_fraunhofer_decoder_configure,
lc3plus_fraunhofer_decoder_get_number_octets_for_bitrate,
lc3plus_fraunhofer_decoder_get_number_samples_per_frame,
lc3plus_fraunhofer_decoder_decode_signed_16,
lc3plus_fraunhofer_decoder_decode_signed_24
};
@ -175,16 +162,6 @@ static uint8_t lc3plus_fraunhofer_encoder_configure(void * context, uint32_t sam
return ERROR_CODE_COMMAND_DISALLOWED;
}
static uint32_t lc3plus_fraunhofer_encoder_get_bitrate_for_number_of_octets(void * context, uint16_t number_of_octets){
btstack_assert(false);
return 0;
}
static uint16_t lc3plus_fraunhofer_encoder_get_number_samples_per_frame(void * context){
btstack_assert(false);
return 0;
}
static uint8_t lc3plus_fraunhofer_encoder_encode_signed_16(void * context, const int16_t* pcm_in, uint16_t stride, uint8_t *bytes){
return ERROR_CODE_COMMAND_DISALLOWED;
}
@ -195,8 +172,6 @@ static uint8_t lc3plus_fraunhofer_encoder_encode_signed_24(void * context, const
static const btstack_lc3_encoder_t btstack_l3cplus_fraunhofer_encoder_instance = {
lc3plus_fraunhofer_encoder_configure,
lc3plus_fraunhofer_encoder_get_bitrate_for_number_of_octets,
lc3plus_fraunhofer_encoder_get_number_samples_per_frame,
lc3plus_fraunhofer_encoder_encode_signed_16,
lc3plus_fraunhofer_encoder_encode_signed_24
};

View File

@ -234,7 +234,7 @@ static void setup_lc3_encoder(void){
lc3_encoder = btstack_lc3_encoder_google_init_instance(context);
lc3_encoder->configure(context, sampling_frequency_hz, frame_duration, octets_per_frame);
}
number_samples_per_frame = lc3_encoder->get_number_samples_per_frame(&encoder_contexts[0]);
number_samples_per_frame = btstack_lc3_samples_per_frame(sampling_frequency_hz, frame_duration);
btstack_assert(number_samples_per_frame <= MAX_SAMPLES_PER_FRAME);
printf("LC3 Encoder config: %u hz, frame duration %s ms, num samples %u, num octets %u\n",
sampling_frequency_hz, frame_duration == BTSTACK_LC3_FRAME_DURATION_7500US ? "7.5" : "10",
@ -260,7 +260,7 @@ static void setup_lc3_decoder(void){
decoder_contexts[channel] = decoder_context;
lc3_decoder->configure(decoder_context, sampling_frequency_hz, frame_duration, octets_per_frame);
}
number_samples_per_frame = lc3_decoder->get_number_samples_per_frame(decoder_contexts[0]);
number_samples_per_frame = btstack_lc3_samples_per_frame(sampling_frequency_hz, frame_duration);
btstack_assert(number_samples_per_frame <= MAX_SAMPLES_PER_FRAME);
}

View File

@ -223,7 +223,7 @@ static void setup_lc3_decoder(void){
decoder_contexts[channel] = decoder_context;
lc3_decoder->configure(decoder_context, sampling_frequency_hz, frame_duration, octets_per_frame);
}
number_samples_per_frame = lc3_decoder->get_number_samples_per_frame(decoder_contexts[0]);
number_samples_per_frame = btstack_lc3_samples_per_frame(sampling_frequency_hz, frame_duration);
btstack_assert(number_samples_per_frame <= MAX_SAMPLES_PER_FRAME);
}

View File

@ -348,7 +348,7 @@ static void setup_lc3_encoder(void){
lc3_encoder = btstack_lc3_encoder_google_init_instance(context);
lc3_encoder->configure(context, sampling_frequency_hz, frame_duration, octets_per_frame);
}
number_samples_per_frame = lc3_encoder->get_number_samples_per_frame(&encoder_contexts[0]);
number_samples_per_frame = btstack_lc3_samples_per_frame(sampling_frequency_hz, frame_duration);
btstack_assert(number_samples_per_frame <= MAX_SAMPLES_PER_FRAME);
printf("LC3 Encoder config: %u hz, frame duration %s ms, num samples %u, num octets %u\n",
sampling_frequency_hz, frame_duration == BTSTACK_LC3_FRAME_DURATION_7500US ? "7.5" : "10",

View File

@ -220,7 +220,7 @@ static void setup_lc3_decoder(void){
decoder_contexts[channel] = decoder_context;
lc3_decoder->configure(decoder_context, sampling_frequency_hz, frame_duration, octets_per_frame);
}
number_samples_per_frame = lc3_decoder->get_number_samples_per_frame(decoder_contexts[0]);
number_samples_per_frame = btstack_lc3_samples_per_frame(sampling_frequency_hz, frame_duration);
btstack_assert(number_samples_per_frame <= MAX_SAMPLES_PER_FRAME);
}

View File

@ -261,7 +261,7 @@ static void setup_lc3_encoder(void){
lc3_encoder = btstack_lc3_encoder_google_init_instance(context);
lc3_encoder->configure(context, sampling_frequency_hz, frame_duration, octets_per_frame);
}
number_samples_per_frame = lc3_encoder->get_number_samples_per_frame(&encoder_contexts[0]);
number_samples_per_frame = btstack_lc3_samples_per_frame(sampling_frequency_hz, frame_duration);
btstack_assert(number_samples_per_frame <= MAX_SAMPLES_PER_FRAME);
printf("LC3 Encoder config: %u hz, frame duration %s ms, num samples %u, num octets %u\n",
sampling_frequency_hz, frame_duration == BTSTACK_LC3_FRAME_DURATION_7500US ? "7.5" : "10",