shithub: opus-tools

Download patch

ref: c168071251c21efddfe184ac572c64affa264edf
parent: d3062c4f6ee0d9cd578b5ace22e3785e545f87e4
author: Gregory Maxwell <greg@xiph.org>
date: Tue May 22 11:12:54 EDT 2012

Revise header version according to the current OggOpus spec.

--- a/src/opus_header.c
+++ b/src/opus_header.c
@@ -125,6 +125,8 @@
    if (!read_chars(&p, &ch, 1))
       return 0;
    h->version = ch;
+   if((h->version&240) != 0) /* Only major version 0 supported. */
+      return 0;
 
    if (!read_chars(&p, &ch, 1))
       return 0;
@@ -185,8 +187,8 @@
    p.pos = 0;
    if (!write_chars(&p, (const unsigned char*)"OpusHead", 8))
       return 0;
-   /* Version is 0 */
-   ch = 0;
+   /* Version is 1 */
+   ch = 1;
    if (!write_chars(&p, &ch, 1))
       return 0;
 
--- a/src/opusdec.c
+++ b/src/opusdec.c
@@ -439,13 +439,13 @@
 
    *gain = pow(10., header.gain/5120.);
 
-   if (header.gain!=0)
-      printf("Playback gain: %f (%f dB)\n", *gain, header.gain/256.);
    if (!quiet)
    {
-      fprintf (stderr, "Decoding %d Hz audio", *rate);
-
-      fprintf(stderr, " (%d channel%s)\n",*channels,*channels>1?"s":"");
+      fprintf(stderr, "Decoding %d Hz audio", *rate);
+      fprintf(stderr, " (%d channel%s)",*channels,*channels>1?"s":"");
+      if(header.version!=1)fprintf(stderr, ", Header v%d",header.version);
+      fprintf(stderr, "\n");
+      if (header.gain!=0)printf("Playback gain: %f (%f dB)\n", *gain, header.gain/256.);
    }
 
    return st;