diff --git a/src/classic/btstack_sbc_bludroid.c b/src/classic/btstack_sbc_bludroid.c index 1f6b23e4a..51375067f 100644 --- a/src/classic/btstack_sbc_bludroid.c +++ b/src/classic/btstack_sbc_bludroid.c @@ -47,17 +47,13 @@ #include #include #include -#include -#include #include "btstack_sbc.h" #include "btstack_sbc_plc.h" #include "oi_codec_sbc.h" #include "oi_assert.h" - #include "sbc_encoder.h" - #include "btstack.h" #define mSBC_SYNCWORD 0xad @@ -182,11 +178,6 @@ int btstack_sbc_decoder_sample_rate(btstack_sbc_decoder_state_t * state){ return decoder_state->decoder_context.common.frameInfo.frequency; } - -void OI_AssertFail(char* file, int line, char* reason){ - printf("AssertFail file %s, line %d, reason %s\n", file, line, reason); -} - void btstack_sbc_decoder_init(btstack_sbc_decoder_state_t * state, btstack_sbc_mode_t mode, void (*callback)(int16_t * data, int num_samples, int num_channels, int sample_rate, void * context), void * context){ if (sbc_decoder_state_singleton && sbc_decoder_state_singleton != state ){ log_error("SBC decoder: different sbc decoder state is allready registered"); @@ -239,32 +230,22 @@ static void append_received_sbc_data(bludroid_decoder_state_t * state, uint8_t * static void btstack_sbc_decoder_process_sbc_data(btstack_sbc_decoder_state_t * state, int packet_status_flag, uint8_t * buffer, int size){ - bludroid_decoder_state_t * decoder_state = (bludroid_decoder_state_t*)state->decoder_state; int input_bytes_to_process = size; - - printf("<<-- enter -->>\n"); - while (input_bytes_to_process){ - - printf("Process data: in buffer %u, new %u\n", decoder_state->bytes_in_frame_buffer, size); - int bytes_free_in_buffer = SBC_MAX_FRAME_LEN - decoder_state->bytes_in_frame_buffer; int bytes_to_append = btstack_min(input_bytes_to_process, bytes_free_in_buffer); if (!bytes_to_append) break; append_received_sbc_data(decoder_state, buffer, bytes_to_append); buffer += bytes_to_append; input_bytes_to_process -= bytes_to_append; - // printf("Append %u bytes, now %u in buffer \n", bytes_to_append, decoder_state->bytes_in_frame_buffer); - // uint16_t bytes_in_buffer_before = decoder_state->bytes_in_frame_buffer; uint16_t bytes_processed = 0; const OI_BYTE *frame_data = decoder_state->frame_buffer; static int frame_count = 0; - while (1){ if (corrupt_frame_period > 0){ frame_count++; @@ -296,11 +277,7 @@ static void btstack_sbc_decoder_process_sbc_data(btstack_sbc_decoder_state_t * s &(decoder_state->pcm_bytes)); } - // printf_hexdump(decoder_state->pcm_plc_data, 512); - bytes_processed = bytes_in_buffer_before - decoder_state->bytes_in_frame_buffer; - printf("Status: %x, bytes processed %u\n", status, bytes_processed); - switch(status){ case 0: decoder_state->first_good_frame_found = 1; @@ -310,7 +287,6 @@ static void btstack_sbc_decoder_process_sbc_data(btstack_sbc_decoder_state_t * s decoder_state->sync_word_found = 0; } - // btstack_sbc_plc_good_frame(&state->plc_state, decoder_state->pcm_plc_data, decoder_state->pcm_data); state->handle_pcm_data(decoder_state->pcm_plc_data, btstack_sbc_decoder_num_samples_per_frame(state), btstack_sbc_decoder_num_channels(state), @@ -326,50 +302,27 @@ static void btstack_sbc_decoder_process_sbc_data(btstack_sbc_decoder_state_t * s break; case OI_CODEC_SBC_NO_SYNCWORD: case OI_CODEC_SBC_CHECKSUM_MISMATCH: - printf("NO_SYNCWORD or CHECKSUM_MISMATCH\n"); + // printf("NO_SYNCWORD or CHECKSUM_MISMATCH\n"); decoder_state->bytes_in_frame_buffer = 0; if (!decoder_state->first_good_frame_found) break; - if (zero_seq_found){ state->zero_frames_nr++; } else { state->bad_frames_nr++; } - if (!plc_enabled) break; - - #if 0 - frame_data = btstack_sbc_plc_zero_signal_frame(); - OI_UINT32 bytes_in_frame_buffer = msbc_frame_size; - - status = OI_CODEC_SBC_DecodeFrame(&(decoder_state->decoder_context), - &frame_data, - &bytes_in_frame_buffer, - decoder_state->pcm_plc_data, - &(decoder_state->pcm_bytes)); - // printf("after bad frame, new status: %d, bytes in frame %d\n", status, bytes_in_frame_buffer); - - if (status != 0) exit(10); - btstack_sbc_plc_bad_frame(&state->plc_state, decoder_state->pcm_plc_data, decoder_state->pcm_data); - state->handle_pcm_data(decoder_state->pcm_data, - btstack_sbc_decoder_num_samples_per_frame(state), - btstack_sbc_decoder_num_channels(state), - btstack_sbc_decoder_sample_rate(state), state->context); - - #endif break; default: - printf("Frame decode error: %d\n", status); + log_info("Frame decode error: %d", status); break; - } + } memmove(decoder_state->frame_buffer, decoder_state->frame_buffer + bytes_processed, decoder_state->bytes_in_frame_buffer); if (status || decoder_state->bytes_in_frame_buffer == 0) break; } } - printf ("<<-- exit -->>\n"); } @@ -395,7 +348,7 @@ static void btstack_sbc_decoder_process_msbc_data(btstack_sbc_decoder_state_t * if (decoder_state->bytes_in_frame_buffer < msbc_frame_size){ // printf("not enough data %d > %d\n", msbc_frame_size, decoder_state->bytes_in_frame_buffer); if (input_bytes_to_process){ - printf("SHOULD NOT HAPPEN... not enough bytes, but bytes left to process\n"); + log_error("SHOULD NOT HAPPEN... not enough bytes, but bytes left to process"); } break; } @@ -446,10 +399,6 @@ static void btstack_sbc_decoder_process_msbc_data(btstack_sbc_decoder_state_t * switch(status){ case 0: -#ifdef LOG_FRAME_STATUS - printf("%d : OK\n", decoder_state->h2_sequence_nr); - if (decoder_state->h2_sequence_nr == 3) printf("\n"); -#endif decoder_state->first_good_frame_found = 1; if (state->mode == SBC_MODE_mSBC){ @@ -509,9 +458,10 @@ static void btstack_sbc_decoder_process_msbc_data(btstack_sbc_decoder_state_t * &bytes_in_frame_buffer, decoder_state->pcm_plc_data, &(decoder_state->pcm_bytes)); - // printf("after bad frame, new status: %d, bytes in frame %d\n", status, bytes_in_frame_buffer); - - if (status != 0) exit(10); + + if (status != 0) { + log_error("SBC decoder: error %d\n", status); + } btstack_sbc_plc_bad_frame(&state->plc_state, decoder_state->pcm_plc_data, decoder_state->pcm_data); state->handle_pcm_data(decoder_state->pcm_data, btstack_sbc_decoder_num_samples_per_frame(state), @@ -521,13 +471,12 @@ static void btstack_sbc_decoder_process_msbc_data(btstack_sbc_decoder_state_t * break; default: - printf("Frame decode error: %d\n", status); + log_info("Frame decode error: %d", status); break; } memmove(decoder_state->frame_buffer, decoder_state->frame_buffer + bytes_processed, decoder_state->bytes_in_frame_buffer); } - // printf ("<<-- exit -->>\n"); } void btstack_sbc_decoder_process_data(btstack_sbc_decoder_state_t * state, int packet_status_flag, uint8_t * buffer, int size){ @@ -619,24 +568,3 @@ uint16_t btstack_sbc_encoder_sbc_buffer_length(void){ SBC_ENC_PARAMS * context = &((bludroid_encoder_state_t *)sbc_encoder_state_singleton->encoder_state)->context; return context->u16PacketLength; } - -// static void btstack_sbc_encoder_dump_context(void){ -// SBC_ENC_PARAMS * context = &((bludroid_encoder_state_t *)sbc_encoder_state_singleton->encoder_state)->context; - -// printf("Blocks %d\n", context->s16NumOfBlocks); -// printf("SubBands %d\n", context->s16NumOfSubBands); -// printf("Allocation Method %d\n", context->s16AllocationMethod); -// printf("BitPool %d\n", context->s16BitPool); -// printf("Channel Mode %d\n", context->s16ChannelMode); - -// printf("Sample Rate "); -// switch (context->s16SamplingFreq){ -// case 0: printf("16000\n"); break; -// case 1: printf("32000\n"); break; -// case 2: printf("44100\n"); break; -// case 3: printf("48000\n"); break; -// default: printf("not defined\n"); break; -// } -// printf("mSBC Enabled %d\n", context->mSBCEnabled); -// printf("\n"); -// }