shithub: opus

Download patch

ref: 3f0962cc1e50922b58628fc0850f7213591696d2
parent: fce4323e15821b3278fe447c973dc744bafad585
author: Ralph Giles <[email protected]>
date: Fri Jul 29 10:01:54 EDT 2011

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.

--- a/src/opus.h
+++ b/src/opus.h
@@ -61,8 +61,6 @@
 /** 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 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
--- a/src/opus_decoder.c
+++ b/src/opus_decoder.c
@@ -383,9 +383,8 @@
     	            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 @@
 	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)
 {
--- a/src/opus_decoder.h
+++ b/src/opus_decoder.h
@@ -45,9 +45,7 @@
     int          frame_size;
     int          prev_redundancy;
 
-#ifdef OPUS_TEST_RANGE_CODER_STATE
     int          rangeFinal;
-#endif
 };
 
 static inline short SAT16(int x) {
--- a/src/opus_encoder.c
+++ b/src/opus_encoder.c
@@ -622,9 +622,8 @@
     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 @@
 	free(st);
 }
 
-#if OPUS_TEST_RANGE_CODER_STATE
 int opus_encoder_get_final_range(OpusEncoder *st)
 {
     return st->rangeFinal;
 }
-#endif
--- a/src/opus_encoder.h
+++ b/src/opus_encoder.h
@@ -62,9 +62,7 @@
     int          first;
     short        delay_buffer[MAX_ENCODER_BUFFER*2];
 
-#ifdef OPUS_TEST_RANGE_CODER_STATE
     int          rangeFinal;
-#endif
 };
 
 
--- a/src/test_opus.c
+++ b/src/test_opus.c
@@ -350,9 +350,7 @@
           }
 
           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,7 +396,6 @@
           }
       }
 
-#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] ) {
@@ -405,7 +402,6 @@
           fprintf (stderr, "Error: Range coder state mismatch between encoder and decoder in frame %d.\n", count);
           return 0;
       }
-#endif
 
       lost_prev = lost;