annotate libgsmefr/tls_flags.c @ 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 38326102fc43
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
38
38326102fc43 libgsmefr: beginning to integrate code from ETSI
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
38326102fc43 libgsmefr: beginning to integrate code from ETSI
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 * Unfortunately the code we got from ETSI makes heavy use of two global
38326102fc43 libgsmefr: beginning to integrate code from ETSI
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 * Boolean flags named Carry and Overflow that function like equally named
38326102fc43 libgsmefr: beginning to integrate code from ETSI
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 * processor state flags on many CPU architectures. They are not part
38326102fc43 libgsmefr: beginning to integrate code from ETSI
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 * of persistent codec session state for either the encoder or the decoder,
38326102fc43 libgsmefr: beginning to integrate code from ETSI
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 * instead they are "short-term" globals much like UNIX errno.
38326102fc43 libgsmefr: beginning to integrate code from ETSI
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 *
38326102fc43 libgsmefr: beginning to integrate code from ETSI
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 * Given this unfortunate reality plus the natural desire to make our
38326102fc43 libgsmefr: beginning to integrate code from ETSI
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 * EFR library thread-safe (a transcoding MGW handling a large volume of
38326102fc43 libgsmefr: beginning to integrate code from ETSI
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 * simultaneous calls is exactly the kind of application that would benefit
38326102fc43 libgsmefr: beginning to integrate code from ETSI
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 * from utilitizing all CPU cores), our current workaround is to use
38326102fc43 libgsmefr: beginning to integrate code from ETSI
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 * thread-local storage.
38326102fc43 libgsmefr: beginning to integrate code from ETSI
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 */
38326102fc43 libgsmefr: beginning to integrate code from ETSI
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14
38326102fc43 libgsmefr: beginning to integrate code from ETSI
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 #include <stdint.h>
38326102fc43 libgsmefr: beginning to integrate code from ETSI
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 #include "typedef.h"
38326102fc43 libgsmefr: beginning to integrate code from ETSI
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17
38326102fc43 libgsmefr: beginning to integrate code from ETSI
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 __thread Flag EFR__Carry, EFR__Overflow;