diff --git a/src/mod/codecs/mod_bv16/mod_bv16.c b/src/mod/codecs/mod_bv16/mod_bv16.c index 37359ab75e..9cd0d7af94 100644 --- a/src/mod/codecs/mod_bv16/mod_bv16.c +++ b/src/mod/codecs/mod_bv16/mod_bv16.c @@ -120,8 +120,12 @@ static switch_status_t switch_bv16_decode(switch_codec_t *codec, *decoded_data_len = 0; for (i = 0; i < frames; i++) { - BV16_BitUnPack(cur_frame, &context->dbs); - BV16_Decode(&context->dbs, &context->ds, target); + if ((*flag & SFF_PLC)) { + BV16_PLC(&context->ds, target); + } else { + BV16_BitUnPack(cur_frame, &context->dbs); + BV16_Decode(&context->dbs, &context->ds, target); + } cur_frame += CODE_SIZE; target += FRAME_SIZE; *decoded_data_len += FRAME_SIZE * 2; diff --git a/src/mod/codecs/mod_bv32/mod_bv32.c b/src/mod/codecs/mod_bv32/mod_bv32.c index 2ec2bc2356..5093e4032a 100644 --- a/src/mod/codecs/mod_bv32/mod_bv32.c +++ b/src/mod/codecs/mod_bv32/mod_bv32.c @@ -120,8 +120,12 @@ static switch_status_t switch_bv32_decode(switch_codec_t *codec, *decoded_data_len = 0; for (i = 0; i < frames; i++) { - BV32_BitUnPack(cur_frame, &context->dbs); - BV32_Decode(&context->dbs, &context->ds, target); + if ((*flag & SFF_PLC)) { + BV32_PLC(&context->ds, target); + } else { + BV32_BitUnPack(cur_frame, &context->dbs); + BV32_Decode(&context->dbs, &context->ds, target); + } cur_frame += CODE_SIZE; target += FRAME_SIZE; *decoded_data_len += FRAME_SIZE * 2;