FrameBits renamed to SpeexBits and a "lost" argument was added to the
authorjmvalin <jmvalin@0101bb08-14d6-0310-b084-bc0e0c8e3800>
Sat, 18 May 2002 20:00:10 +0000 (20:00 +0000)
committerjmvalin <jmvalin@0101bb08-14d6-0310-b084-bc0e0c8e3800>
Sat, 18 May 2002 20:00:10 +0000 (20:00 +0000)
decode function to handle lost packets

git-svn-id: http://svn.xiph.org/trunk/speex@3310 0101bb08-14d6-0310-b084-bc0e0c8e3800

19 files changed:
libspeex/bits.c
libspeex/cb_search.c
libspeex/cb_search.h
libspeex/ltp.c
libspeex/ltp.h
libspeex/modes.c
libspeex/modes.h
libspeex/nb_celp.c
libspeex/nb_celp.h
libspeex/quant_lsp.c
libspeex/quant_lsp.h
libspeex/sb_celp.c
libspeex/sb_celp.h
libspeex/speex.h
libspeex/speex_bits.h
libspeex/testenc.c
libspeex/testenc_wb.c
src/speexdec.c
src/speexenc.c

index a6586d7..7602a3d 100644 (file)
@@ -23,7 +23,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-void speex_bits_init(FrameBits *bits)
+void speex_bits_init(SpeexBits *bits)
 {
    int i;
    for (i=0;i<MAX_BYTES_PER_FRAME;i++)
@@ -33,12 +33,12 @@ void speex_bits_init(FrameBits *bits)
    bits->bitPtr=0;
 }
 
-void speex_bits_destroy(FrameBits *bits)
+void speex_bits_destroy(SpeexBits *bits)
 {
    /* Will do something once the allocation is dynamic */
 }
 
-void speex_bits_reset(FrameBits *bits)
+void speex_bits_reset(SpeexBits *bits)
 {
    int i;
    for (i=0;i<MAX_BYTES_PER_FRAME;i++)
@@ -48,13 +48,13 @@ void speex_bits_reset(FrameBits *bits)
    bits->bitPtr=0;
 }
 
-void speex_bits_rewind(FrameBits *bits)
+void speex_bits_rewind(SpeexBits *bits)
 {
    bits->bytePtr=0;
    bits->bitPtr=0;
 }
 
-void speex_bits_init_from(FrameBits *bits, char *bytes, int len)
+void speex_bits_init_from(SpeexBits *bits, char *bytes, int len)
 {
    int i;
    if (len > MAX_BYTES_PER_FRAME)
@@ -69,7 +69,7 @@ void speex_bits_init_from(FrameBits *bits, char *bytes, int len)
    bits->bitPtr=0;
 }
 
-void speex_bits_flush(FrameBits *bits)
+void speex_bits_flush(SpeexBits *bits)
 {
    int i;
    if (bits->bytePtr>0)
@@ -81,7 +81,7 @@ void speex_bits_flush(FrameBits *bits)
    bits->bytePtr=0;
 }
 
-void speex_bits_read_whole_bytes(FrameBits *bits, char *bytes, int len)
+void speex_bits_read_whole_bytes(SpeexBits *bits, char *bytes, int len)
 {
    int i,pos;
    speex_bits_flush(bits);
@@ -91,7 +91,7 @@ void speex_bits_read_whole_bytes(FrameBits *bits, char *bytes, int len)
    bits->nbBits+=len<<3;
 }
 
-int speex_bits_write(FrameBits *bits, char *bytes, int max_len)
+int speex_bits_write(SpeexBits *bits, char *bytes, int max_len)
 {
    int i;
    if (max_len > ((bits->nbBits+7)>>3))
@@ -101,7 +101,7 @@ int speex_bits_write(FrameBits *bits, char *bytes, int max_len)
    return max_len;
 }
 
-int speex_bits_write_whole_bytes(FrameBits *bits, char *bytes, int max_len)
+int speex_bits_write_whole_bytes(SpeexBits *bits, char *bytes, int max_len)
 {
    int i;
    if (max_len > ((bits->nbBits)>>3))
@@ -121,7 +121,7 @@ int speex_bits_write_whole_bytes(FrameBits *bits, char *bytes, int max_len)
 }
 
 
-void speex_bits_pack(FrameBits *bits, int data, int nbBits)
+void speex_bits_pack(SpeexBits *bits, int data, int nbBits)
 {
    unsigned int d=data;
    while(nbBits)
@@ -141,7 +141,7 @@ void speex_bits_pack(FrameBits *bits, int data, int nbBits)
    }
 }
 
-int speex_bits_unpack_signed(FrameBits *bits, int nbBits)
+int speex_bits_unpack_signed(SpeexBits *bits, int nbBits)
 {
    unsigned int d=speex_bits_unpack_unsigned(bits,nbBits);
    /* If number is negative */
@@ -152,7 +152,7 @@ int speex_bits_unpack_signed(FrameBits *bits, int nbBits)
    return d;
 }
 
-unsigned int speex_bits_unpack_unsigned(FrameBits *bits, int nbBits)
+unsigned int speex_bits_unpack_unsigned(SpeexBits *bits, int nbBits)
 {
    unsigned int d=0;
    while(nbBits)
index 5010ee1..72eef5a 100644 (file)
@@ -162,7 +162,7 @@ void *par,                      /* Codebook/search parameters*/
 int   p,                        /* number of LPC coeffs */
 int   nsf,                      /* number of samples in subframe */
 float *exc,
-FrameBits *bits,
+SpeexBits *bits,
 float *stack
 )
 {
@@ -327,7 +327,7 @@ void *par,                      /* Codebook/search parameters*/
 int   p,                        /* number of LPC coeffs */
 int   nsf,                      /* number of samples in subframe */
 float *exc,
-FrameBits *bits,
+SpeexBits *bits,
 float *stack
 )
 {
@@ -443,7 +443,7 @@ void *par,                      /* Codebook/search parameters*/
 int   p,                        /* number of LPC coeffs */
 int   nsf,                      /* number of samples in subframe */
 float *exc,
-FrameBits *bits,
+SpeexBits *bits,
 float *stack
 )
 {
@@ -617,7 +617,7 @@ void *par,                      /* Codebook/search parameters*/
 int   p,                        /* number of LPC coeffs */
 int   nsf,                      /* number of samples in subframe */
 float *exc,
-FrameBits *bits,
+SpeexBits *bits,
 float *stack
 )
 {
@@ -873,7 +873,7 @@ void split_cb_unquant(
 float *exc,
 void *par,                      /* non-overlapping codebook */
 int   nsf,                      /* number of samples in subframe */
-FrameBits *bits,
+SpeexBits *bits,
 float *stack
 )
 {
@@ -936,7 +936,7 @@ void split_cb_nogain_unquant(
 float *exc,
 void *par,                      /* non-overlapping codebook */
 int   nsf,                      /* number of samples in subframe */
-FrameBits *bits,
+SpeexBits *bits,
 float *stack
 )
 {
index 4938e4c..ae74b58 100644 (file)
@@ -52,7 +52,7 @@ void *par,                      /* Codebook/search parameters*/
 int   p,                        /* number of LPC coeffs */
 int   nsf,                      /* number of samples in subframe */
 float *exc,
-FrameBits *bits,
+SpeexBits *bits,
 float *stack
 );
 
@@ -65,7 +65,7 @@ void *par,                      /* Codebook/search parameters*/
 int   p,                        /* number of LPC coeffs */
 int   nsf,                      /* number of samples in subframe */
 float *exc,
-FrameBits *bits,
+SpeexBits *bits,
 float *stack
 );
 
@@ -78,7 +78,7 @@ void *par,                      /* Codebook/search parameters*/
 int   p,                        /* number of LPC coeffs */
 int   nsf,                      /* number of samples in subframe */
 float *exc,
-FrameBits *bits,
+SpeexBits *bits,
 float *stack
 );
 
@@ -92,7 +92,7 @@ void *par,                      /* Codebook/search parameters*/
 int   p,                        /* number of LPC coeffs */
 int   nsf,                      /* number of samples in subframe */
 float *exc,
-FrameBits *bits,
+SpeexBits *bits,
 float *stack
 );
 
@@ -101,7 +101,7 @@ void split_cb_unquant(
 float *exc,
 void  *par,                     /* Innovation parameters */
 int   nsf,                      /* number of samples in subframe */
-FrameBits *bits,
+SpeexBits *bits,
 float *stack
 );
 
@@ -109,7 +109,7 @@ void split_cb_nogain_unquant(
 float *exc,
 void *par,                      /* non-overlapping codebook */
 int   nsf,                      /* number of samples in subframe */
-FrameBits *bits,
+SpeexBits *bits,
 float *stack
 );
 
index b5f32d4..410e3ed 100644 (file)
@@ -241,7 +241,7 @@ int   start,                    /* Smallest pitch value allowed */
 int   end,                      /* Largest pitch value allowed */
 int   p,                        /* Number of LPC coeffs */
 int   nsf,                      /* Number of samples in subframe */
-FrameBits *bits,
+SpeexBits *bits,
 float *stack
 )
 {
@@ -336,7 +336,7 @@ void *par,
 int   pitch,                    /* Pitch value */
 int   p,                        /* Number of LPC coeffs */
 int   nsf,                      /* Number of samples in subframe */
-FrameBits *bits,
+SpeexBits *bits,
 float *stack,
 float *exc2,
 int  *cdbk_index
@@ -461,7 +461,7 @@ int   start,                    /* Smallest pitch value allowed */
 int   end,                      /* Largest pitch value allowed */
 int   p,                        /* Number of LPC coeffs */
 int   nsf,                      /* Number of samples in subframe */
-FrameBits *bits,
+SpeexBits *bits,
 float *stack,
 float *exc2
 )
@@ -537,9 +537,9 @@ int   start,                    /* Smallest pitch value allowed */
 int   end,                      /* Largest pitch value allowed */
 void *par,
 int   nsf,                      /* Number of samples in subframe */
-FrameBits *bits,
-float *stack
-)
+SpeexBits *bits,
+float *stack,
+int lost)
 {
    int i;
    int pitch;
@@ -557,6 +557,16 @@ float *stack
    gain[0] = gain_cdbk[gain_index*12];
    gain[1] = gain_cdbk[gain_index*12+1];
    gain[2] = gain_cdbk[gain_index*12+2];
+   if (lost)
+   {
+      float gain_sum = gain[0]+gain[1]+gain[2];
+      if (gain_sum>.8)
+      {
+         float fact = .8/gain_sum;
+         for (i=0;i<3;i++)
+            gain[i]*=fact;
+      }
+   }
 #ifdef DEBUG
    printf ("unquantized pitch: %d %f %f %f\n", pitch, gain[0], gain[1], gain[2]);
 #endif
index 1d89c52..312e8b3 100644 (file)
@@ -62,7 +62,7 @@ int   start,                    /* Smallest pitch value allowed */
 int   end,                      /* Largest pitch value allowed */
 int   p,                        /* Number of LPC coeffs */
 int   nsf,                      /* Number of samples in subframe */
-FrameBits *bits,
+SpeexBits *bits,
 float *stack,
 float *exc2
 );
@@ -79,7 +79,7 @@ int   start,                    /* Smallest pitch value allowed */
 int   end,                      /* Largest pitch value allowed */
 int   p,                        /* Number of LPC coeffs */
 int   nsf,                      /* Number of samples in subframe */
-FrameBits *bits,
+SpeexBits *bits,
 float *stack
 );
 
@@ -90,8 +90,9 @@ int   start,                    /* Smallest pitch value allowed */
 int   end,                      /* Largest pitch value allowed */
 void *par,
 int   nsf,                      /* Number of samples in subframe */
-FrameBits *bits,
-float *stack
+SpeexBits *bits,
+float *stack,
+int lost
 );
 
 float pitch_gain_search_3tap(
@@ -104,7 +105,7 @@ void *par,
 int   pitch,                    /* Pitch value */
 int   p,                        /* Number of LPC coeffs */
 int   nsf,                      /* Number of samples in subframe */
-FrameBits *bits,
+SpeexBits *bits,
 float *stack,
 float *exc2,
 int  *cdbk_index
index a22f333..2cc443f 100644 (file)
@@ -192,7 +192,7 @@ void encoder_destroy(void *state)
    (*((SpeexMode**)state))->enc_destroy(state);
 }
 
-void encode(void *state, float *in, FrameBits *bits)
+void encode(void *state, float *in, SpeexBits *bits)
 {
    (*((SpeexMode**)state))->enc(state, in, bits);
 }
@@ -202,7 +202,7 @@ void decoder_destroy(void *state)
    (*((SpeexMode**)state))->dec_destroy(state);
 }
 
-void decode(void *state, FrameBits *bits, float *out)
+void decode(void *state, SpeexBits *bits, float *out, int lost)
 {
-   (*((SpeexMode**)state))->dec(state, bits, out);
+   (*((SpeexMode**)state))->dec(state, bits, out, lost);
 }
index 893323b..987fbe7 100644 (file)
 #include "speex_bits.h"
 
 /* Quantizes LSPs */
-typedef void (*lsp_quant_func)(float *, float *, int, FrameBits *);
+typedef void (*lsp_quant_func)(float *, float *, int, SpeexBits *);
 
 /* Decodes quantized LSPs */
-typedef void (*lsp_unquant_func)(float *, int, FrameBits *);
+typedef void (*lsp_unquant_func)(float *, int, SpeexBits *);
 
 
 /*Long-term predictor quantization*/
 typedef int (*ltp_quant_func)(float *, float *, float *, float *, 
                                 float *, float *, void *, int, int, 
-                                int, int, FrameBits*, float *, float *);
+                                int, int, SpeexBits*, float *, float *);
 
 /*Long-term un-quantize*/
-typedef void (*ltp_unquant_func)(float *, int, int, void *, int, FrameBits*, float*);
+typedef void (*ltp_unquant_func)(float *, int, int, void *, int, SpeexBits*, float*, int);
 
 
 typedef void (*innovation_quant_func)(float *, float *, float *, float *, void *, int, int, 
-                                      float *, FrameBits *, float *);
+                                      float *, SpeexBits *, float *);
 
-typedef void (*innovation_unquant_func)(float *, void *, int, FrameBits*, float *);
+typedef void (*innovation_unquant_func)(float *, void *, int, SpeexBits*, float *);
 
 /*Struct defining the encoding/decoding mode*/
 typedef struct SpeexNBMode {
index 4f54e06..dd37046 100644 (file)
@@ -184,7 +184,7 @@ void nb_encoder_destroy(void *state)
    free(st);
 }
 
-void nb_encode(void *state, float *in, FrameBits *bits)
+void nb_encode(void *state, float *in, SpeexBits *bits)
 {
    EncState *st;
    int i, sub, roots;
@@ -618,7 +618,7 @@ void nb_decoder_destroy(void *state)
    free(state);
 }
 
-void nb_decode(void *state, FrameBits *bits, float *out)
+void nb_decode(void *state, SpeexBits *bits, float *out, int lost)
 {
    DecState *st;
    int i, sub;
@@ -672,7 +672,7 @@ void nb_decode(void *state, FrameBits *bits, float *out)
          exc[i]=0;
 
       /*Adaptive codebook contribution*/
-      st->ltp_unquant(exc, st->min_pitch, st->max_pitch, st->ltp_params, st->subframeSize, bits, st->stack);
+      st->ltp_unquant(exc, st->min_pitch, st->max_pitch, st->ltp_params, st->subframeSize, bits, st->stack, lost);
       
 
       {
index 687cf8a..08f6e28 100644 (file)
@@ -127,7 +127,7 @@ void *nb_encoder_init(SpeexMode *m);
 void nb_encoder_destroy(void *state);
 
 /**Encodes one frame*/
-void nb_encode(void *state, float *in, FrameBits *bits);
+void nb_encode(void *state, float *in, SpeexBits *bits);
 
 
 /**Initializes decoder state*/
@@ -137,7 +137,7 @@ void *nb_decoder_init(SpeexMode *m);
 void nb_decoder_destroy(void *state);
 
 /**Decodes one frame*/
-void nb_decode(void *state, FrameBits *bits, float *out);
+void nb_decode(void *state, SpeexBits *bits, float *out, int lost);
 
 
 
index 0b7b7b2..745d1ce 100644 (file)
@@ -82,7 +82,7 @@ static int lsp_weight_quant(float *x, float *weight, float *cdbk, int nbVec, int
 }
 
 
-void lsp_quant_nb(float *lsp, float *qlsp, int order, FrameBits *bits)
+void lsp_quant_nb(float *lsp, float *qlsp, int order, SpeexBits *bits)
 {
    int i;
    float tmp1, tmp2;
@@ -118,7 +118,7 @@ void lsp_quant_nb(float *lsp, float *qlsp, int order, FrameBits *bits)
       qlsp[i]=lsp[i]-qlsp[i];
 }
 
-void lsp_unquant_nb(float *lsp, int order, FrameBits *bits)
+void lsp_unquant_nb(float *lsp, int order, SpeexBits *bits)
 {
    int i, id;
    for (i=0;i<order;i++)
@@ -157,7 +157,7 @@ extern float lsp_cdbk_wb32[];
 extern float lsp_cdbk_wb41[];
 extern float lsp_cdbk_wb42[];
 
-void lsp_quant_wb(float *lsp, float *qlsp, int order, FrameBits *bits)
+void lsp_quant_wb(float *lsp, float *qlsp, int order, SpeexBits *bits)
 {
    int i;
    float tmp1, tmp2;
@@ -206,7 +206,7 @@ void lsp_quant_wb(float *lsp, float *qlsp, int order, FrameBits *bits)
 }
 
 
-void lsp_unquant_wb(float *lsp, int order, FrameBits *bits)
+void lsp_unquant_wb(float *lsp, int order, SpeexBits *bits)
 {
 
    int i, id;
@@ -260,7 +260,7 @@ extern float high_lsp_cdbk[];
 extern float high_lsp_cdbk2[];
 
 
-void lsp_quant_high(float *lsp, float *qlsp, int order, FrameBits *bits)
+void lsp_quant_high(float *lsp, float *qlsp, int order, SpeexBits *bits)
 {
    int i;
    float tmp1, tmp2;
@@ -286,7 +286,7 @@ void lsp_quant_high(float *lsp, float *qlsp, int order, FrameBits *bits)
       qlsp[i]=lsp[i]-qlsp[i];
 }
 
-void lsp_unquant_high(float *lsp, int order, FrameBits *bits)
+void lsp_unquant_high(float *lsp, int order, SpeexBits *bits)
 {
 
    int i, id;
index 7e95bae..e1ece03 100644 (file)
@@ -38,21 +38,21 @@ extern float cdbk_nb_high1[];
 extern float cdbk_nb_high2[];
 
 /* Quantizes narrowband LSPs with 30 bits */
-void lsp_quant_nb(float *lsp, float *qlsp, int order, FrameBits *bits);
+void lsp_quant_nb(float *lsp, float *qlsp, int order, SpeexBits *bits);
 
 /* Decodes quantized narrowband LSPs */
-void lsp_unquant_nb(float *lsp, int order, FrameBits *bits);
+void lsp_unquant_nb(float *lsp, int order, SpeexBits *bits);
 
 /* Quantizes wideband LSPs with 50 bits */
-void lsp_quant_wb(float *lsp, float *qlsp, int order, FrameBits *bits);
+void lsp_quant_wb(float *lsp, float *qlsp, int order, SpeexBits *bits);
 
 /* Decodes quantized wideband LSPs */
-void lsp_unquant_wb(float *lsp, int order, FrameBits *bits);
+void lsp_unquant_wb(float *lsp, int order, SpeexBits *bits);
 
 /* Quantizes high-band LSPs with 12 bits */
-void lsp_quant_high(float *lsp, float *qlsp, int order, FrameBits *bits);
+void lsp_quant_high(float *lsp, float *qlsp, int order, SpeexBits *bits);
 
 /* Decodes high-band LSPs */
-void lsp_unquant_high(float *lsp, int order, FrameBits *bits);
+void lsp_unquant_high(float *lsp, int order, SpeexBits *bits);
 
 #endif
index d6fa747..6e2049f 100644 (file)
@@ -311,7 +311,7 @@ void sb_encoder_destroy(void *state)
 }
 
 
-void sb_encode(void *state, float *in, FrameBits *bits)
+void sb_encode(void *state, float *in, SpeexBits *bits)
 {
    SBEncState *st;
    int i, roots, sub;
@@ -711,14 +711,14 @@ void sb_decoder_destroy(void *state)
 }
 
 
-void sb_decode(void *state, FrameBits *bits, float *out)
+void sb_decode(void *state, SpeexBits *bits, float *out, int lost)
 {
    int i, sub;
    SBDecState *st;
    
    st = state;
    /* Decode the low-band */
-   nb_decode(st->st_low, bits, st->x0d);
+   nb_decode(st->st_low, bits, st->x0d, lost);
 
    for (i=0;i<st->frame_size;i++)
       st->exc[i]=0;
index 8605a2d..e49131a 100644 (file)
@@ -127,7 +127,7 @@ void *sb_encoder_init(SpeexMode *m);
 void sb_encoder_destroy(void *state);
 
 /**Encodes one frame*/
-void sb_encode(void *state, float *in, FrameBits *bits);
+void sb_encode(void *state, float *in, SpeexBits *bits);
 
 
 /**Initializes decoder state*/
@@ -137,7 +137,7 @@ void *sb_decoder_init(SpeexMode *m);
 void sb_decoder_destroy(void *state);
 
 /**Decodes one frame*/
-void sb_decode(void *state, FrameBits *bits, float *out);
+void sb_decode(void *state, SpeexBits *bits, float *out, int lost);
 
 
 #endif
index 27c7055..a3a4f37 100644 (file)
@@ -32,10 +32,10 @@ struct SpeexMode;
 
 typedef void *(*encoder_init_func)(struct SpeexMode *mode);
 typedef void (*encoder_destroy_func)(void *st);
-typedef void (*encode_func)(void *state, float *in, FrameBits *bits);
+typedef void (*encode_func)(void *state, float *in, SpeexBits *bits);
 typedef void *(*decoder_init_func)(struct SpeexMode *mode);
 typedef void (*decoder_destroy_func)(void *st);
-typedef void (*decode_func)(void *state, FrameBits *bits, float *out);
+typedef void (*decode_func)(void *state, SpeexBits *bits, float *out, int lost);
 
 /** Struct defining a Speex mode */ 
 typedef struct SpeexMode {
@@ -49,28 +49,28 @@ typedef struct SpeexMode {
    int frameSize;
 } SpeexMode;
 
-   /** Creates an encoder state ("object") from a mode */ 
+/** Creates an encoder state ("object") from a mode */ 
 void *encoder_init(SpeexMode *mode);
 
-   /** Destroy a Speex encoder state */
+/** Destroy a Speex encoder state */
 void encoder_destroy(void *state);
 
-   /** Encode a frame */
-void encode(void *state, float *in, FrameBits *bits);
+/** Encode a frame */
+void encode(void *state, float *in, SpeexBits *bits);
 
-   /** Creates a decoder state ("object") from a mode */ 
+/** Creates a decoder state ("object") from a mode */ 
 void *decoder_init(SpeexMode *mode);
 
-   /** Destroy a Speex decoder state */
+/** Destroy a Speex decoder state */
 void decoder_destroy(void *state);
 
-   /** Decode a frame */
-void decode(void *state, FrameBits *bits, float *out);
+/** Decode a frame */
+void decode(void *state, SpeexBits *bits, float *out, int lost);
 
-   /** Default narrowband mode */
+/** Default narrowband mode */
 extern SpeexMode speex_nb_mode;
 
-   /** Default wideband mode */
+/** Default wideband mode */
 extern SpeexMode speex_wb_mode;
 
 
index 45000e0..c1c4ef5 100644 (file)
 
 #define MAX_BYTES_PER_FRAME 1000
 
-typedef struct FrameBits {
+typedef struct SpeexBits {
    char bytes[MAX_BYTES_PER_FRAME];
    int  nbBits;
    int  bytePtr;
    int  bitPtr;
-} FrameBits;
+} SpeexBits;
 
-void speex_bits_init(FrameBits *bits);
+void speex_bits_init(SpeexBits *bits);
 
-void speex_bits_destroy(FrameBits *bits);
+void speex_bits_destroy(SpeexBits *bits);
 
-void speex_bits_reset(FrameBits *bits);
+void speex_bits_reset(SpeexBits *bits);
 
-void speex_bits_rewind(FrameBits *bits);
+void speex_bits_rewind(SpeexBits *bits);
 
-void speex_bits_init_from(FrameBits *bits, char *bytes, int len);
+void speex_bits_init_from(SpeexBits *bits, char *bytes, int len);
 
-void speex_bits_read_whole_bytes(FrameBits *bits, char *bytes, int len);
+void speex_bits_read_whole_bytes(SpeexBits *bits, char *bytes, int len);
 
-int speex_bits_write(FrameBits *bits, char *bytes, int max_len);
+int speex_bits_write(SpeexBits *bits, char *bytes, int max_len);
 
-int speex_bits_write_whole_bytes(FrameBits *bits, char *bytes, int max_len);
+int speex_bits_write_whole_bytes(SpeexBits *bits, char *bytes, int max_len);
 
-void speex_bits_pack(FrameBits *bits, int data, int nbBits);
+void speex_bits_pack(SpeexBits *bits, int data, int nbBits);
 
-int speex_bits_unpack_signed(FrameBits *bits, int nbBits);
+int speex_bits_unpack_signed(SpeexBits *bits, int nbBits);
 
-unsigned int speex_bits_unpack_unsigned(FrameBits *bits, int nbBits);
+unsigned int speex_bits_unpack_unsigned(SpeexBits *bits, int nbBits);
 
 
 #endif
index 2d823aa..c9859e1 100644 (file)
@@ -15,7 +15,7 @@ int main(int argc, char **argv)
    int i;
    void *st;
    void *dec;
-   FrameBits bits;
+   SpeexBits bits;
 
    for (i=0;i<FRAME_SIZE;i++)
       bak2[i]=0;
@@ -61,7 +61,7 @@ int main(int argc, char **argv)
       }
       speex_bits_rewind(&bits);
       
-      decode(dec, &bits, input);
+      decode(dec, &bits, input, 0);
 
       /* Save the bits here */
       for (i=0;i<FRAME_SIZE;i++)
index 1edc320..d8709a4 100644 (file)
@@ -15,7 +15,7 @@ int main(int argc, char **argv)
    int i;
    void *st;
    void *dec;
-   FrameBits bits;
+   SpeexBits bits;
 
    for (i=0;i<FRAME_SIZE;i++)
       bak2[i]=0;
@@ -61,7 +61,7 @@ int main(int argc, char **argv)
       }
       speex_bits_rewind(&bits);
       
-      decode(dec, &bits, input);
+      decode(dec, &bits, input, 0);
 
       /* Save the bits here */
       for (i=0;i<FRAME_SIZE;i++)
index 6314db4..5166c1b 100644 (file)
@@ -52,7 +52,7 @@ int main(int argc, char **argv)
    int frame_size=0;
    SpeexMode *mode=NULL;
    void *st=NULL;
-   FrameBits bits;
+   SpeexBits bits;
    int first = 1;
    struct option long_options[] =
    {
@@ -181,7 +181,7 @@ int main(int argc, char **argv)
                /*Copy Ogg packet to Speex bitstream*/
                speex_bits_init_from(&bits, (char*)op.packet, op.bytes);
                /*Decode a frame*/
-               decode(st, &bits, output);
+               decode(st, &bits, output, 0);
                
                /*PCM saturation (just in case)*/
                for (i=0;i<frame_size;i++)
index 7528b02..5973451 100644 (file)
@@ -67,7 +67,7 @@ int main(int argc, char **argv)
    int i,nbBytes;
    SpeexMode *mode=NULL;
    void *st;
-   FrameBits bits;
+   SpeexBits bits;
    char cbits[MAX_FRAME_BYTES];
    struct option long_options[] =
    {