@@ -301,7 +301,7 @@ static void analyze(struct lc3_encoder *encoder,
301301
302302 bool att = lc3_attdet_run (dt , sr_pcm , nbytes , & encoder -> attdet , xt );
303303
304- side -> pitch_present =
304+ side -> pitch_present = ! encoder -> ltpf_bypass &&
305305 lc3_ltpf_analyse (dt , sr_pcm , & encoder -> ltpf , xt , & side -> ltpf );
306306
307307 memmove (xt - nt , xt + (ns - nt ), nt * sizeof (* xt ));
@@ -313,7 +313,7 @@ static void analyze(struct lc3_encoder *encoder,
313313 lc3_mdct_forward (dt , sr_pcm , sr , xs , xd , xf );
314314
315315 bool nn_flag = lc3_energy_compute (dt , sr , xf , e );
316- if (nn_flag )
316+ if (nn_flag || encoder -> ltpf_bypass )
317317 lc3_ltpf_disable (& side -> ltpf );
318318
319319 side -> bw = lc3_bwdet_run (dt , sr , e );
@@ -424,6 +424,12 @@ LC3_EXPORT struct lc3_encoder *lc3_setup_encoder(
424424 return lc3_hr_setup_encoder (false, dt_us , sr_hz , sr_pcm_hz , mem );
425425}
426426
427+ LC3_EXPORT void lc3_encoder_disable_ltpf (
428+ struct lc3_encoder * encoder )
429+ {
430+ encoder -> ltpf_bypass = true;
431+ }
432+
427433/**
428434 * Encode a frame
429435 */
0 commit comments