FreeCalypso > hg > gsm-codec-lib
view libtwamr/qgain475.h @ 585:3c6bf0d26ee7 default tip
TW-TS-005 reader: fix maximum line length bug
TW-TS-005 section 4.1 states:
The maximum allowed length of each line is 80 characters, not
including the OS-specific newline encoding.
The implementation of this line length limit in the TW-TS-005 hex file
reader function in the present suite was wrong, such that lines of
the full maximum length could not be read. Fix it.
Note that this bug affects comment lines too, not just actual RTP
payloads. Neither Annex A nor Annex B features an RTP payload format
that goes to the maximum of 40 bytes, but if a comment line goes to
the maximum allowed length of 80 characters not including the
terminating newline, the bug will be triggered, necessitating
the present fix.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 25 Feb 2025 07:49:28 +0000 |
parents | 1d2b39027b70 |
children |
line wrap: on
line source
/* ******************************************************************************** * * GSM AMR-NB speech codec R98 Version 7.6.0 December 12, 2001 * R99 Version 3.3.0 * REL-4 Version 4.1.0 * ******************************************************************************** * * File : qgain475.h * Purpose : Quantization of pitch and codebook gains for MR475. * ******************************************************************************** */ #ifndef qgain475_h #define qgain475_h "$Id $" /* ******************************************************************************** * INCLUDE FILES ******************************************************************************** */ #include "typedef.h" #include "gc_pred.h" /* ******************************************************************************** * DECLARATION OF PROTOTYPES ******************************************************************************** */ /************************************************************************* * * FUNCTION: MR475_update_unq_pred() * * PURPOSE: use optimum codebook gain and update "unquantized" * gain predictor with the (bounded) prediction error * *************************************************************************/ void MR475_update_unq_pred( gc_predState *pred_st, /* i/o: gain predictor state struct */ Word16 exp_gcode0, /* i : predicted CB gain (exponent), Q0 */ Word16 frac_gcode0, /* i : predicted CB gain (fraction), Q15 */ Word16 cod_gain_exp, /* i : optimum codebook gain (exponent), Q0 */ Word16 cod_gain_frac /* i : optimum codebook gain (fraction), Q15 */ ); /************************************************************************* * * FUNCTION: MR475_gain_quant() * * PURPOSE: Quantization of pitch and codebook gains for two subframes * (using predicted codebook gain) * *************************************************************************/ Word16 MR475_gain_quant( /* o : index of quantization. */ gc_predState *pred_st, /* i/o: gain predictor state struct */ /* data from subframe 0 (or 2) */ Word16 sf0_exp_gcode0, /* i : predicted CB gain (exponent), Q0 */ Word16 sf0_frac_gcode0, /* i : predicted CB gain (fraction), Q15 */ Word16 sf0_exp_coeff[], /* i : energy coeff. (5), exponent part, Q0 */ Word16 sf0_frac_coeff[], /* i : energy coeff. (5), fraction part, Q15 */ /* (frac_coeff and exp_coeff computed in */ /* calc_filt_energies()) */ Word16 sf0_exp_target_en, /* i : exponent of target energy, Q0 */ Word16 sf0_frac_target_en, /* i : fraction of target energy, Q15 */ /* data from subframe 1 (or 3) */ Word16 sf1_code_nosharp[], /* i : innovative codebook vector (L_SUBFR) */ /* (whithout pitch sharpening) */ Word16 sf1_exp_gcode0, /* i : predicted CB gain (exponent), Q0 */ Word16 sf1_frac_gcode0, /* i : predicted CB gain (fraction), Q15 */ Word16 sf1_exp_coeff[], /* i : energy coeff. (5), exponent part, Q0 */ Word16 sf1_frac_coeff[], /* i : energy coeff. (5), fraction part, Q15 */ /* (frac_coeff and exp_coeff computed in */ /* calc_filt_energies()) */ Word16 sf1_exp_target_en, /* i : exponent of target energy, Q0 */ Word16 sf1_frac_target_en, /* i : fraction of target energy, Q15 */ Word16 gp_limit, /* i : pitch gain limit */ Word16 *sf0_gain_pit, /* o : Pitch gain, Q14 */ Word16 *sf0_gain_cod, /* o : Code gain, Q1 */ Word16 *sf1_gain_pit, /* o : Pitch gain, Q14 */ Word16 *sf1_gain_cod /* o : Code gain, Q1 */ ); #endif