On Thu, Jun 19, 2014 at 06:25:57PM +0400, lvqcl wrote:
> Now I wonder why evaluate_lpc_subframe_() function in stream_encoder.c 
> contains
> almost the same code, but without any comments that it's not enough 
> pessimistic:

> evaluate_lpc_subframe_():
> 
> if(subframe_bps + qlp_coeff_precision + FLAC__bitmath_ilog2(order) <= 32)
>       if(subframe_bps <= 16 && qlp_coeff_precision <= 16)
>               
> encoder->private_->local_lpc_compute_residual_from_qlp_coefficients_16bit(...);
>       else
>               
> encoder->private_->local_lpc_compute_residual_from_qlp_coefficients(...);
> else
>       
> encoder->private_->local_lpc_compute_residual_from_qlp_coefficients_64bit(...);

Yes, it's the same check. Assuming residual can be at most
FLAC__MAX_EXTRA_RESIDUAL_BPS bits wider than subframe_bps, I think it
should be:

if(subframe_bps + qlp_coeff_precision + FLAC__bitmath_ilog2(order) + 
FLAC__MAX_EXTRA_RESIDUAL_BPS - 1 <= 32)
        if(subframe_bps + FLAC__MAX_EXTRA_RESIDUAL_BPS <= 16 && 
qlp_coeff_precision <= 16)

> vs. read_subframe_lpc_():
> 
> if(bps + subframe->qlp_coeff_precision + FLAC__bitmath_ilog2(order) <= 32)
>       if(bps <= 16 && subframe->qlp_coeff_precision <= 16)
>               decoder->private_->local_lpc_restore_signal_16bit(...);
>       else
>               decoder->private_->local_lpc_restore_signal(...);
> else
>       decoder->private_->local_lpc_restore_signal_64bit(...);

-- 
Miroslav Lichvar
_______________________________________________
flac-dev mailing list
flac-dev@xiph.org
http://lists.xiph.org/mailman/listinfo/flac-dev

Reply via email to