Added a header to speex files. Should eventually choose a "real" magic
authorjmvalin <jmvalin@0101bb08-14d6-0310-b084-bc0e0c8e3800>
Wed, 27 Mar 2002 06:53:47 +0000 (06:53 +0000)
committerjmvalin <jmvalin@0101bb08-14d6-0310-b084-bc0e0c8e3800>
Wed, 27 Mar 2002 06:53:47 +0000 (06:53 +0000)
number for the format.

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

libspeex/bits.c
libspeex/bits.h
src/speexdec.c
src/speexenc.c

index d194311..f812796 100644 (file)
@@ -86,7 +86,7 @@ void frame_bits_read_whole_bytes(FrameBits *bits, char *bytes, int len)
    int i,pos;
    printf ("reading:\n");
    printf ("%d %d %d\n", bits->nbBits, bits->bytePtr, bits->bitPtr);
-   /*frame_bits_flush(bits);*/
+   frame_bits_flush(bits);
    pos=bits->nbBits>>3;
    for (i=0;i<len;i++)
       bits->bytes[pos+i]=bytes[i];
index fb5dd0c..d490be0 100644 (file)
@@ -22,7 +22,7 @@
 #ifndef BITS_H
 #define BITS_H
 
-#define MAX_BYTES_PER_FRAME 1000000
+#define MAX_BYTES_PER_FRAME 1000
 
 typedef struct FrameBits {
    char bytes[MAX_BYTES_PER_FRAME];
index dde2c3a..d1b1fd9 100644 (file)
@@ -45,7 +45,6 @@ int main(int argc, char **argv)
 {
    int c;
    int option_index = 0;
-   int narrowband=0, wideband=0;
    char *inFile, *outFile;
    FILE *fin, *fout;
    short out[MAX_FRAME_SIZE];
@@ -62,7 +61,7 @@ int main(int argc, char **argv)
       {"version", no_argument, NULL, 0},
       {0, 0, 0, 0}
    };
-
+   
    while(1)
    {
       c = getopt_long (argc, argv, "nwhv",
@@ -127,14 +126,33 @@ int main(int argc, char **argv)
       }
    }
 
-   mode=&mp_nb_mode;
+   /*This is only the temporary header*/
+   {
+      char header[6];
+      if(fread(header, sizeof(char), 5, fin)!=5)
+      {
+         perror("cannot read header");
+         exit(1);
+      }
+      header[5]=0;
+      if (strcmp(header,"spexn")==0)
+         mode=&mp_nb_mode;
+      else if (strcmp(header,"spexw")==0)
+         mode=&mp_wb_mode;
+      else 
+      {
+         fprintf (stderr, "This does not look like a Speex " VERSION " file\n");
+         exit(1);
+      }
+   }
+
    decoder_init(&st, mode);
    frame_size=mode->frameSize;
    frame_bits_init(&bits);
    while (1)
    {
-      int i,nbBytes, nb_read;
-      nb_read=300-((bits.nbBits>>3)-bits.bytePtr);
+      int i, nb_read;
+      nb_read=200-((bits.nbBits>>3)-bits.bytePtr);
       if (nb_read>0&&!at_end)
       {
          nb_read=fread(cbits, sizeof(char), nb_read, fin);
@@ -146,7 +164,7 @@ int main(int argc, char **argv)
       }
       
       printf ("bits.nbBits = %d, bits.bytePtr = %d\n", bits.nbBits>>3, bits.bytePtr);
-      if (((bits.nbBits>>3)-bits.bytePtr)<1)
+      if (((bits.nbBits>>3)-bits.bytePtr)<2)
          break;
 
       decode(&st, &bits, output);
index 67b1281..7ac1aec 100644 (file)
@@ -154,6 +154,19 @@ int main(int argc, char **argv)
       }
    }
 
+   /*Temporary header*/
+   {
+      char *header;
+      if (narrowband)
+         header="spexn";
+      if (wideband)
+         header="spexw";
+      if (fwrite(header, 1, 5, fout)!=5)
+      {
+         perror("Cannot write header");
+      }
+   }
+
    encoder_init(&st, mode);
    frame_size=mode->frameSize;