Decoder seems to be working...
authorjmvalin <jmvalin@0101bb08-14d6-0310-b084-bc0e0c8e3800>
Wed, 13 Mar 2002 18:28:09 +0000 (18:28 +0000)
committerjmvalin <jmvalin@0101bb08-14d6-0310-b084-bc0e0c8e3800>
Wed, 13 Mar 2002 18:28:09 +0000 (18:28 +0000)
git-svn-id: http://svn.xiph.org/trunk/speex@3140 0101bb08-14d6-0310-b084-bc0e0c8e3800

libspeex/Makefile.am
libspeex/testdec.c [new file with mode: 0644]

index 10c676f..e393e00 100644 (file)
@@ -1,6 +1,6 @@
 ## Process this file with automake to produce Makefile.in. -*-Makefile-*-
 
-# $Id: Makefile.am,v 1.9 2002/03/11 18:34:06 jmvalin Exp $
+# $Id: Makefile.am,v 1.10 2002/03/13 18:28:09 jmvalin Exp $
 
 # Disable automatic dependency tracking if using other tools than gcc and gmake
 #AUTOMAKE_OPTIONS = no-dependencies
@@ -38,8 +38,10 @@ noinst_HEADERS = lsp.h \
        
 libspeex_la_LDFLAGS = -release $(LT_RELEASE)
 
-bin_PROGRAMS = testenc
+bin_PROGRAMS = testenc testdec
 
 testenc_SOURCES = testenc.c
-
 testenc_LDADD = libspeex.la
+
+testdec_SOURCES = testdec.c
+testdec_LDADD = libspeex.la
diff --git a/libspeex/testdec.c b/libspeex/testdec.c
new file mode 100644 (file)
index 0000000..b269142
--- /dev/null
@@ -0,0 +1,42 @@
+#include "speex.h"
+#include <stdio.h>
+#include <stdlib.h>
+
+#define FRAME_SIZE 160
+#include <math.h>
+int main(int argc, char **argv)
+{
+   char *outFile, *bitsFile;
+   FILE *fout, *fbits=NULL;
+   short out[FRAME_SIZE];
+   float output[FRAME_SIZE];
+   char cbits[200];
+   int i;
+   DecState dec;
+   FrameBits bits;
+
+   decoder_init(&dec, &nb_mode);
+   if (argc != 3)
+   {
+      fprintf (stderr, "Usage: encode [bits file] [out file]\nargc = %d", argc);
+      exit(1);
+   }
+   bitsFile = argv[1];
+   fbits = fopen(bitsFile, "r");
+   outFile = argv[2];
+   fout = fopen(outFile, "w");
+   frame_bits_init(&bits);
+   while (!feof(fbits))
+   {
+      fread(cbits, 1, 37, fbits);
+      frame_bits_reset(&bits);
+      frame_bits_init_from(&bits, cbits, 37);
+      decode(&dec, &bits, output);
+
+      for (i=0;i<FRAME_SIZE;i++)
+         out[i]=output[i];
+      fwrite(out, sizeof(short), FRAME_SIZE, fout);
+   }
+   decoder_destroy(&dec);
+   return 1;
+}