From 3f0962cc1e50922b58628fc0850f7213591696d2 Mon Sep 17 00:00:00 2001 From: Ralph Giles Date: Fri, 29 Jul 2011 14:01:54 -0700 Subject: [PATCH] Always enable OPUS_TEST_RANGE_CODER_STATE. This removes the configurability of the OPUS_TEST_RANGE_CODER_STATE consistency check, in favour of always running it. The performance penalty is low, and it's an important check on correctness for the reference encoder to provide. --- src/opus.h | 4 ---- src/opus_decoder.c | 6 +----- src/opus_decoder.h | 2 -- src/opus_encoder.c | 5 +---- src/opus_encoder.h | 2 -- src/test_opus.c | 4 ---- 6 files changed, 2 insertions(+), 21 deletions(-) diff --git a/src/opus.h b/src/opus.h index 48e5fbd2..6eeba31e 100644 --- a/src/opus.h +++ b/src/opus.h @@ -61,8 +61,6 @@ extern "C" { /** Memory allocation has failed */ #define OPUS_ALLOC_FAIL -7 -#define OPUS_TEST_RANGE_CODER_STATE 1 - #define OPUS_BITRATE_AUTO -1 #define OPUS_APPLICATION_VOIP 2000 @@ -221,10 +219,8 @@ OPUS_EXPORT int opus_decoder_get_nb_samples(const OpusDecoder *dec, const unsign OPUS_EXPORT const char *opus_strerror(int error); /* For testing purposes: the encoder and decoder state should always be identical after coding a payload */ -#if OPUS_TEST_RANGE_CODER_STATE OPUS_EXPORT int opus_encoder_get_final_range(OpusEncoder *st); OPUS_EXPORT int opus_decoder_get_final_range(OpusDecoder *st); -#endif #ifdef __cplusplus diff --git a/src/opus_decoder.c b/src/opus_decoder.c index 48b637da..42d5e8c4 100644 --- a/src/opus_decoder.c +++ b/src/opus_decoder.c @@ -383,9 +383,8 @@ static int opus_decode_frame(OpusDecoder *st, const unsigned char *data, pcm+st->channels*F2_5, F2_5, st->channels, window, st->Fs); } -#if OPUS_TEST_RANGE_CODER_STATE + st->rangeFinal = dec.rng; -#endif st->prev_mode = mode; st->prev_redundancy = redundancy; @@ -569,13 +568,10 @@ void opus_decoder_destroy(OpusDecoder *st) free(st); } -#if OPUS_TEST_RANGE_CODER_STATE int opus_decoder_get_final_range(OpusDecoder *st) { return st->rangeFinal; } -#endif - int opus_packet_get_bandwidth(const unsigned char *data) { diff --git a/src/opus_decoder.h b/src/opus_decoder.h index cdee2a43..964bc4dc 100644 --- a/src/opus_decoder.h +++ b/src/opus_decoder.h @@ -45,9 +45,7 @@ struct OpusDecoder { int frame_size; int prev_redundancy; -#ifdef OPUS_TEST_RANGE_CODER_STATE int rangeFinal; -#endif }; static inline short SAT16(int x) { diff --git a/src/opus_encoder.c b/src/opus_encoder.c index 076c053b..1e5c3210 100644 --- a/src/opus_encoder.c +++ b/src/opus_encoder.c @@ -622,9 +622,8 @@ int opus_encode(OpusEncoder *st, const short *pcm, int frame_size, data[0] |= (st->stream_channels==2)<<2; /*printf ("%x\n", (int)data[0]);*/ -#if OPUS_TEST_RANGE_CODER_STATE st->rangeFinal = enc.rng; -#endif + if (to_celt) st->prev_mode = MODE_CELT_ONLY; else @@ -827,9 +826,7 @@ void opus_encoder_destroy(OpusEncoder *st) free(st); } -#if OPUS_TEST_RANGE_CODER_STATE int opus_encoder_get_final_range(OpusEncoder *st) { return st->rangeFinal; } -#endif diff --git a/src/opus_encoder.h b/src/opus_encoder.h index 650751fe..79008357 100644 --- a/src/opus_encoder.h +++ b/src/opus_encoder.h @@ -62,9 +62,7 @@ struct OpusEncoder { int first; short delay_buffer[MAX_ENCODER_BUFFER*2]; -#ifdef OPUS_TEST_RANGE_CODER_STATE int rangeFinal; -#endif }; diff --git a/src/test_opus.c b/src/test_opus.c index 8b7717dc..a49a5ac1 100644 --- a/src/test_opus.c +++ b/src/test_opus.c @@ -350,9 +350,7 @@ int main(int argc, char *argv[]) } len[toggle] = opus_encode(enc, in, frame_size, data[toggle], max_payload_bytes); -#if OPUS_TEST_RANGE_CODER_STATE enc_final_range[toggle] = opus_encoder_get_final_range( enc ); -#endif if (len[toggle] < 0) { fprintf (stderr, "opus_encode() returned %d\n", len[toggle]); @@ -398,14 +396,12 @@ int main(int argc, char *argv[]) } } -#if OPUS_TEST_RANGE_CODER_STATE /* compare final range encoder rng values of encoder and decoder */ if( !encode_only && !lost && !lost_prev && opus_decoder_get_final_range( dec ) != enc_final_range[toggle^use_inbandfec] ) { fprintf (stderr, "Error: Range coder state mismatch between encoder and decoder in frame %d.\n", count); return 0; } -#endif lost_prev = lost;