Add version info to celtenc/celtdec output as suggested on the
[opus.git] / tools / celtdec.c
index d24b060..396aaf7 100644 (file)
@@ -247,9 +247,9 @@ FILE *out_file_open(char *outFile, int rate, int *channels)
    return fout;
 }
 
-void usage()
+void usage(void)
 {
-   printf ("Usage: celtdec [options] input_file.spx [output_file]\n");
+   printf ("Usage: celtdec [options] input_file.oga [output_file]\n");
    printf ("\n");
    printf ("Decodes a CELT file and produce a WAV file or raw file\n");
    printf ("\n");
@@ -274,15 +274,15 @@ void usage()
    printf ("\n");
 }
 
-void version()
+void version(void)
 {
-   printf ("celtenc (CELT encoder)\n");
+   printf ("celtenc (CELT %s encoder)\n",CELT_VERSION);
    printf ("Copyright (C) 2008 Jean-Marc Valin\n");
 }
 
-void version_short()
+void version_short(void)
 {
-   printf ("celtenc (CELT encoder)\n");
+   printf ("celtenc (CELT %s encoder)\n",CELT_VERSION);
    printf ("Copyright (C) 2008 Jean-Marc Valin\n");
 }
 
@@ -290,20 +290,27 @@ static CELTDecoder *process_header(ogg_packet *op, celt_int32_t enh_enabled, cel
 {
    CELTDecoder *st;
    CELTHeader header;
+   int bitstream;
       
-   celt_header_from_packet((char*)op->packet, op->bytes, &header);
+   celt_header_from_packet(op->packet, op->bytes, &header);
 
    if (header.nb_channels>2 || header.nb_channels<1)
    {
       fprintf (stderr, "Unsupported number of channels: %d\n", header.nb_channels);
       return NULL;
    }
-   *mode = celt_mode_create(header.sample_rate, header.nb_channels, header.frame_size, header.overlap, NULL);
+   *mode = celt_mode_create(header.sample_rate, header.nb_channels, header.frame_size, NULL);
    if (*mode == NULL)
    {
       fprintf (stderr, "Mode initialization failed.\n");
       return NULL;
    }
+
+   
+   celt_mode_info(*mode, CELT_GET_BITSTREAM_VERSION, &bitstream);
+   if (bitstream!=header.version_id)
+     fprintf(stderr, "WARNING: Input was encoded with a CELT bitstream version %d. This decoder uses %d. Output will probably be corrupted.\n",header.version_id,bitstream);
+   
    *channels = header.nb_channels;
    *overlap=header.overlap;
    st = celt_decoder_create(*mode);
@@ -348,7 +355,6 @@ int main(int argc, char **argv)
    int frame_size=0, granule_frame_size=0;
    void *st=NULL;
    CELTMode *mode=NULL;
-   unsigned char bits[1000];
    int packet_count=0;
    int stream_init = 0;
    int quiet = 0;
@@ -382,7 +388,7 @@ int main(int argc, char **argv)
    int rate=0;
    int extra_headers=0;
    int wav_format=0;
-   int lookahead;
+   int lookahead=0;
    int celt_serialno = -1;
    int firstpacket = 1;
 
@@ -487,7 +493,7 @@ int main(int argc, char **argv)
    while (1)
    {
       char *data;
-      int i, j, nb_read;
+      int i, nb_read;
       /*Get the ogg buffer for writing*/
       data = ogg_sync_buffer(&oy, 200);
       /*Read bitstream from input file*/