diff --git a/src/classic/btstack_sbc_decoder_bluedroid.c b/src/classic/btstack_sbc_decoder_bluedroid.c index 0e6cc1dae..4987f63c8 100644 --- a/src/classic/btstack_sbc_decoder_bluedroid.c +++ b/src/classic/btstack_sbc_decoder_bluedroid.c @@ -483,16 +483,13 @@ static void btstack_sbc_decoder_process_msbc_data(btstack_sbc_decoder_state_t * memmove(decoder_state->frame_buffer, decoder_state->frame_buffer + bytes_processed, decoder_state->bytes_in_frame_buffer); } -#if 0 // ignore bad data before first sync if (!decoder_state->first_good_frame_found) return; - // PLC on> - if (!plc_enabled) return; - + // PLC while (decoder_state->msbc_bad_bytes >= msbc_frame_size){ - printf("BAD Bytes %u\n", decoder_state->msbc_bad_bytes); + // printf("BAD Bytes %u\n", decoder_state->msbc_bad_bytes); decoder_state->msbc_bad_bytes -= msbc_frame_size; state->bad_frames_nr++; @@ -501,6 +498,7 @@ static void btstack_sbc_decoder_process_msbc_data(btstack_sbc_decoder_state_t * OI_UINT32 bytes_in_frame_buffer = 57; // printf("Bad-Before: bytes in buffer %u, pcm bytes %u\n", bytes_in_frame_buffer, decoder_state->pcm_bytes); + OI_STATUS status = status = OI_CODEC_SBC_DecodeFrame(&(decoder_state->decoder_context), &frame_data, &bytes_in_frame_buffer, @@ -515,11 +513,14 @@ static void btstack_sbc_decoder_process_msbc_data(btstack_sbc_decoder_state_t * log_error("PLC: not all bytes of zero frame processed, left %u\n", bytes_in_frame_buffer); } - printf_hexdump(decoder_state->pcm_plc_data, decoder_state->pcm_bytes); - - btstack_sbc_plc_bad_frame(&state->plc_state, decoder_state->pcm_plc_data, decoder_state->pcm_data); - - printf_hexdump(decoder_state->pcm_data, decoder_state->pcm_bytes); + // printf_hexdump(decoder_state->pcm_plc_data, decoder_state->pcm_bytes); + + if (plc_enabled) { + btstack_sbc_plc_bad_frame(&state->plc_state, decoder_state->pcm_plc_data, decoder_state->pcm_data); + } else { + memcpy(decoder_state->pcm_data, decoder_state->pcm_plc_data, decoder_state->pcm_bytes); + } + // printf_hexdump(decoder_state->pcm_data, decoder_state->pcm_bytes); state->handle_pcm_data(decoder_state->pcm_data, btstack_sbc_decoder_num_samples_per_frame(state), @@ -529,8 +530,6 @@ static void btstack_sbc_decoder_process_msbc_data(btstack_sbc_decoder_state_t * break; } -#endif - } void btstack_sbc_decoder_process_data(btstack_sbc_decoder_state_t * state, int packet_status_flag, uint8_t * buffer, int size){ diff --git a/src/classic/btstack_sbc_plc.c b/src/classic/btstack_sbc_plc.c index 0be676210..3b3834c9e 100644 --- a/src/classic/btstack_sbc_plc.c +++ b/src/classic/btstack_sbc_plc.c @@ -315,7 +315,7 @@ void btstack_sbc_plc_bad_frame(btstack_sbc_plc_state_t *plc_state, SAMPLE_FORMAT } if (plc_state->nbf==1){ - printf("first bad frame\n"); + // printf("first bad frame\n"); // Perform pattern matching to find where to replicate plc_state->bestlag = PatternMatch(plc_state->hist); } @@ -333,7 +333,7 @@ void btstack_sbc_plc_bad_frame(btstack_sbc_plc_state_t *plc_state, SAMPLE_FORMAT // Compute Scale Factor to Match Amplitude of Substitution Packet to that of Preceding Packet sf = AmplitudeMatch(plc_state->hist, plc_state->bestlag); - printf("sf Apmlitude Match %f, new data %d, bestlag+M %d\n", sf, ZIRbuf[0], plc_state->hist[plc_state->bestlag]); + // printf("sf Apmlitude Match %f, new data %d, bestlag+M %d\n", sf, ZIRbuf[0], plc_state->hist[plc_state->bestlag]); for (i=0;ihist[plc_state->bestlag+i]; @@ -358,7 +358,7 @@ void btstack_sbc_plc_bad_frame(btstack_sbc_plc_state_t *plc_state, SAMPLE_FORMAT plc_state->hist[SBC_LHIST+i] = plc_state->hist[plc_state->bestlag+i]; } } else { - printf("succesive bad frame nr %d\n", plc_state->nbf); + // printf("succesive bad frame nr %d\n", plc_state->nbf); for (;ihist[SBC_LHIST+i] = plc_state->hist[plc_state->bestlag+i]; }