Revert de32a5bf617f782f6a478c5cd50fb040b0fbffe9
authorJean-Marc Valin <jean-marc.valin@octasic.com>
Wed, 2 Mar 2011 20:43:31 +0000 (15:43 -0500)
committerJean-Marc Valin <jean-marc.valin@octasic.com>
Wed, 2 Mar 2011 20:43:31 +0000 (15:43 -0500)
Moves all the delay compensation back into the encoder only

src/Makefile.am
src/opus_decoder.c
src/opus_decoder.h
src/opus_encoder.h

index e51b55c..03a48da 100644 (file)
@@ -1,5 +1,5 @@
 
-INCLUDES = -I$(top_srcdir)/celt/libcelt/ -I$(top_srcdir)/silk/interface -I$(top_srcdir)/silk/src_SigProc_FIX
+INCLUDES = -I$(top_srcdir)/celt/libcelt/ -I$(top_srcdir)/silk/interface 
 
 lib_LTLIBRARIES = libietfcodec.la
 libietfcodec_la_SOURCES = opus_decoder.c opus_encoder.c
index 18f7319..41671eb 100644 (file)
@@ -36,7 +36,7 @@
 #include "entdec.h"
 #include "modes.h"
 #include "SKP_Silk_SDK_API.h"
-#include "SKP_Silk_SigProc_FIX.h"
+
 
 OpusDecoder *opus_decoder_create(int Fs, int channels)
 {
@@ -166,12 +166,6 @@ int opus_decode(OpusDecoder *st, const unsigned char *data,
             DecControl.internalSampleRate = 16000;
         }
 
-        if (transition)
-        {
-               /*SKP_Silk_resampler_state_struct   state;
-               SKP_Silk_resampler_init( &state, st->Fs, 16000);
-                */
-        }
         lost_flag = data == NULL ? 1 : 2 * decode_fec;
         decoded_samples = 0;
         do {
@@ -225,23 +219,8 @@ int opus_decode(OpusDecoder *st, const unsigned char *data,
                celt_decoder_ctl(st->celt_dec, CELT_RESET_STATE);
         /* Decode CELT */
         celt_ret = celt_decode_with_ec(st->celt_dec, decode_fec?NULL:data, len, pcm_celt, frame_size, &dec);
-        /* Mix and add resampler delay compensation to CELT */
-        for (i=0;i<DECODER_DELAY*st->channels;i++)
-               pcm[i] = ADD_SAT16(pcm[i], st->delay_buffer[i+(DECODER_BUFFER-DECODER_DELAY)*st->channels]);
-        for (;i<frame_size*st->channels;i++)
-            pcm[i] = ADD_SAT16(pcm[i], pcm_celt[i-DECODER_DELAY*st->channels]);
-
-           if (frame_size>DECODER_BUFFER)
-           {
-               for (i=0;i<DECODER_BUFFER*st->channels;i++)
-                   st->delay_buffer[i] = pcm_celt[(frame_size-DECODER_BUFFER)*st->channels+i];
-           } else {
-               int tmp = DECODER_BUFFER-frame_size;
-               for (i=0;i<tmp*st->channels;i++)
-                   st->delay_buffer[i] = st->delay_buffer[i+frame_size*st->channels];
-               for (i=0;i<frame_size*st->channels;i++)
-                   st->delay_buffer[tmp*st->channels+i] = pcm_celt[i];
-           }
+        for (i=0;i<frame_size*st->channels;i++)
+            pcm[i] = ADD_SAT16(pcm[i], pcm_celt[i]);
     }
 
     if (transition)
index fd27fe1..1b0569c 100644 (file)
@@ -31,9 +31,6 @@
 #include "celt.h"
 #include "opus.h"
 
-#define DECODER_DELAY 5
-#define DECODER_BUFFER 120
-
 struct OpusDecoder {
        CELTDecoder *celt_dec;
        void        *silk_dec;
@@ -45,7 +42,6 @@ struct OpusDecoder {
     int          Fs;
     int          prev_mode;
 
-    short        delay_buffer[DECODER_BUFFER*2];
 #ifdef OPUS_TEST_RANGE_CODER_STATE
     int          rangeFinal;
 #endif
index 9cdab6c..a800a74 100644 (file)
@@ -33,7 +33,7 @@
 #include "SKP_Silk_SDK_API.h"
 
 /* FIXME: This is only valid for 48 kHz */
-#define ENCODER_DELAY_COMPENSATION 125
+#define ENCODER_DELAY_COMPENSATION 130
 #define ENCODER_BUFFER 480
 
 struct OpusEncoder {