annotate libtwamr/qgain795.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 2aa98051d445
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
376
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 ********************************************************************************
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 *
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 * GSM AMR-NB speech codec R98 Version 7.6.0 December 12, 2001
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 * R99 Version 3.3.0
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 * REL-4 Version 4.1.0
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 *
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 ********************************************************************************
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 *
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 * File : qgain795.h
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 * Purpose : (pre-) quantization of pitch gain for MR795
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 *
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 ********************************************************************************
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 */
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 #ifndef qgain795_h
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 #define qgain795_h "$Id $"
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 /*
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 ********************************************************************************
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 * INCLUDE FILES
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 ********************************************************************************
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 */
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 #include "typedef.h"
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 #include "g_adapt.h"
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 /*
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 ********************************************************************************
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 * DECLARATION OF PROTOTYPES
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 ********************************************************************************
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 */
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 /*************************************************************************
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 *
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 * FUNCTION: MR795_gain_quant
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 *
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 * PURPOSE: pitch and codebook quantization for MR795
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 *
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 *************************************************************************/
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 void
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40 MR795_gain_quant(
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 GainAdaptState *adapt_st, /* i/o: gain adapter state structure */
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 Word16 res[], /* i : LP residual, Q0 */
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 Word16 exc[], /* i : LTP excitation (unfiltered), Q0 */
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 Word16 code[], /* i : CB innovation (unfiltered), Q13 */
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 Word16 frac_coeff[], /* i : coefficients (5), Q15 */
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 Word16 exp_coeff[], /* i : energy coefficients (5), Q0 */
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47 /* coefficients from calc_filt_ener() */
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 Word16 exp_code_en, /* i : innovation energy (exponent), Q0 */
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 Word16 frac_code_en, /* i : innovation energy (fraction), Q15 */
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 Word16 exp_gcode0, /* i : predicted CB gain (exponent), Q0 */
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 Word16 frac_gcode0, /* i : predicted CB gain (fraction), Q15 */
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52 Word16 L_subfr, /* i : Subframe length */
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 Word16 cod_gain_frac, /* i : opt. codebook gain (fraction),Q15 */
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54 Word16 cod_gain_exp, /* i : opt. codebook gain (exponent), Q0 */
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 Word16 gp_limit, /* i : pitch gain limit */
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 Word16 *gain_pit, /* i/o: Pitch gain (unquant/quant), Q14 */
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 Word16 *gain_cod, /* o : Code gain, Q1 */
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 Word16 *qua_ener_MR122, /* o : quantized energy error, Q10 */
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59 /* (for MR122 MA predictor update) */
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60 Word16 *qua_ener, /* o : quantized energy error, Q10 */
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61 /* (for other MA predictor update) */
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62 Word16 **anap /* o : Index of quantization */
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63 /* (first gain pitch, then code pitch)*/
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64 );
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65
2aa98051d445 libtwamr: integrate qgain795.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66 #endif