build fix for FreeBSD (gnugetopt), allow VBR without DTX
authorjm <jm@0101bb08-14d6-0310-b084-bc0e0c8e3800>
Mon, 3 Mar 2003 06:52:41 +0000 (06:52 +0000)
committerjm <jm@0101bb08-14d6-0310-b084-bc0e0c8e3800>
Mon, 3 Mar 2003 06:52:41 +0000 (06:52 +0000)
git-svn-id: http://svn.xiph.org/trunk/speex@4395 0101bb08-14d6-0310-b084-bc0e0c8e3800

configure.in
libspeex/nb_celp.c
libspeex/speex_bits.h
libspeex/speex_callbacks.h
libspeex/speex_stereo.h
src/speexenc.c

index 13c61e8..035a4d8 100644 (file)
@@ -53,6 +53,7 @@ fi
 AC_SUBST(src)
 
 AC_CHECK_LIB(m, sin)
+AC_CHECK_LIB(gnugetopt, getopt_long)
 
 AC_DEFINE_UNQUOTED(VERSION, "${VERSION}")
 
index 8eab9df..df01c87 100644 (file)
@@ -381,7 +381,7 @@ int nb_encode(void *state, float *in, SpeexBits *bits)
          mode=choice;
          if (mode==0)
          {
-            if (st->dtx_count==0 || lsp_dist>.05 || st->dtx_count>20)
+            if (st->dtx_count==0 || lsp_dist>.05 || !st->dtx_enabled || st->dtx_count>20)
             {
                mode=1;
                st->dtx_count=1;
index c830d30..9972381 100644 (file)
@@ -52,6 +52,8 @@ typedef struct SpeexBits {
    int   owner;   /**< Does the struct "own" the "raw" buffer (member "bytes") */
    int   overflow;/**< Set to one if we try to read past the valid data */
    int   buf_size;/**< Allocated size for buffer */
+   int   reserved1; /**< Reserved for future use */
+   void *reserved2; /**< Reserved for future use */
 } SpeexBits;
 
 /** Initializes and allocates resources for a SpeexBits struct */
index ccb8e82..d58d814 100644 (file)
@@ -89,6 +89,8 @@ typedef struct SpeexCallback {
    int callback_id;             /**< ID associated to the callback */
    speex_callback_func func;    /**< Callback handler function */
    void *data;                  /**< Data that will be sent to the handler */
+   void *reserved1;             /**< Reserved for future use */
+   int   reserved2;             /**< Reserved for future use */
 } SpeexCallback;
 
 /** Handle in-band request */
index 6007da3..3fbeb91 100644 (file)
@@ -43,6 +43,8 @@ typedef struct SpeexStereoState {
    float e_ratio;      /**< Ratio of energies: E(left+right)/[E(left)+E(right)]  */
    float smooth_left;  /**< Smoothed left channel gain */
    float smooth_right; /**< Smoothed right channel gain */
+   float reserved1;    /**< Reserved for future use */
+   float reserved2;    /**< Reserved for future use */
 } SpeexStereoState;
 
 /** Initialization value for a stereo state */
index 20a479a..f9e07eb 100644 (file)
@@ -265,6 +265,8 @@ int main(int argc, char **argv)
    double cumul_bits=0, enc_frames=0;
    char first_bytes[12];
    int wave_input=0;
+   int tmp;
+
    comment_init(&comments, &comments_length, vendor_string);
 
    /*Process command-line options*/
@@ -598,17 +600,15 @@ int main(int argc, char **argv)
    }
    if (vbr_enabled)
    {
-      int tmp;
       tmp=1;
       speex_encoder_ctl(st, SPEEX_SET_VBR, &tmp);
    } else if (vad_enabled)
    {
-      int tmp;
       tmp=1;
       speex_encoder_ctl(st, SPEEX_SET_VAD, &tmp);
-      if (dtx_enabled)
-         speex_encoder_ctl(st, SPEEX_SET_DTX, &tmp);
    }
+   if (dtx_enabled)
+      speex_encoder_ctl(st, SPEEX_SET_DTX, &tmp);
    if (dtx_enabled && !(vbr_enabled || abr_enabled || vad_enabled))
    {
       fprintf (stderr, "Warning: --dtx is useless without --vad\n");