[xiph-commits] r17023 - trunk/vorbis/test

xiphmont at svn.xiph.org xiphmont at svn.xiph.org
Wed Mar 24 20:58:42 PDT 2010


Author: xiphmont
Date: 2010-03-24 20:58:42 -0700 (Wed, 24 Mar 2010)
New Revision: 17023

Modified:
   trunk/vorbis/test/test.c
   trunk/vorbis/test/write_read.c
   trunk/vorbis/test/write_read.h
Log:
Make the 'make check' cover all the uncoupled codebooks



Modified: trunk/vorbis/test/test.c
===================================================================
--- trunk/vorbis/test/test.c	2010-03-25 03:45:42 UTC (rev 17022)
+++ trunk/vorbis/test/test.c	2010-03-25 03:58:42 UTC (rev 17023)
@@ -27,7 +27,7 @@
 #define MAX(a,b)        ((a) > (b) ? (a) : (b))
 
 
-static int check_output (const float * data_in, unsigned len);
+static int check_output (const float * data_in, unsigned len, float allowable);
 
 int
 main(void){
@@ -38,28 +38,32 @@
   int sample_rates [] = { 44100, 48000, 32000, 22050, 16000, 96000 } ;
   unsigned k ;
   int errors = 0 ;
+  float q=-.05;
 
   gen_windowed_sine (data_out, ARRAY_LEN (data_out), 0.95);
 
-  for (k = 0 ; k < ARRAY_LEN (sample_rates); k ++) {
-        char filename [64] ;
-        snprintf (filename, sizeof (filename), "vorbis_%u.ogg", sample_rates [k]);
+  while(q<1.){
+    for (k = 0 ; k < ARRAY_LEN (sample_rates); k ++) {
+      char filename [64] ;
+      snprintf (filename, sizeof (filename), "vorbis_q%.1f_%u.ogg", q*10,sample_rates [k]);
 
-        printf ("    %-20s : ", filename);
-        fflush (stdout);
+      printf ("    %-20s : ", filename);
+      fflush (stdout);
 
-        /* Set to know value. */
-        set_data_in (data_in, ARRAY_LEN (data_in), 3.141);
+      /* Set to know value. */
+      set_data_in (data_in, ARRAY_LEN (data_in), 3.141);
 
-        write_vorbis_data_or_die (filename, sample_rates [k], data_out, ARRAY_LEN (data_out));
-        read_vorbis_data_or_die (filename, sample_rates [k], data_in, ARRAY_LEN (data_in));
+      write_vorbis_data_or_die (filename, sample_rates [k], q, data_out, ARRAY_LEN (data_out));
+      read_vorbis_data_or_die (filename, sample_rates [k], data_in, ARRAY_LEN (data_in));
 
-        if (check_output (data_in, ARRAY_LEN (data_in)) != 0)
-          errors ++ ;
-        else {
-          puts ("ok");
-      remove (filename);
-        }
+      if (check_output (data_in, ARRAY_LEN (data_in), (.15f - .1f*q)) != 0)
+        errors ++ ;
+      else {
+        puts ("ok");
+        remove (filename);
+      }
+    }
+    q+=.1;
   }
 
   if (errors)
@@ -69,7 +73,7 @@
 }
 
 static int
-check_output (const float * data_in, unsigned len)
+check_output (const float * data_in, unsigned len, float allowable)
 {
   float max_abs = 0.0 ;
   unsigned k ;
@@ -78,11 +82,11 @@
     float temp = fabs (data_in [k]);
     max_abs = MAX (max_abs, temp);
   }
-        
-  if (max_abs < 0.9) {
+
+  if (max_abs < 0.95-allowable) {
     printf ("Error : max_abs (%f) too small.\n", max_abs);
     return 1 ;
-  } else if (max_abs > 1.0) {
+  } else if (max_abs > .95+allowable) {
     printf ("Error : max_abs (%f) too big.\n", max_abs);
     return 1 ;
   }

Modified: trunk/vorbis/test/write_read.c
===================================================================
--- trunk/vorbis/test/write_read.c	2010-03-25 03:45:42 UTC (rev 17022)
+++ trunk/vorbis/test/write_read.c	2010-03-25 03:58:42 UTC (rev 17023)
@@ -29,7 +29,7 @@
 /* The following function is basically a hacked version of the code in
  * examples/encoder_example.c */
 void
-write_vorbis_data_or_die (const char *filename, int srate, const float * data, int count)
+write_vorbis_data_or_die (const char *filename, int srate, float q, const float * data, int count)
 {
   FILE * file ;
   ogg_stream_state os;
@@ -51,7 +51,7 @@
 
   vorbis_info_init (&vi);
 
-  ret = vorbis_encode_init_vbr (&vi,1,srate,0.8);
+  ret = vorbis_encode_init_vbr (&vi,1,srate,q);
   if (ret) {
     printf ("vorbis_encode_init_vbr return %d\n", ret) ;
     exit (1) ;

Modified: trunk/vorbis/test/write_read.h
===================================================================
--- trunk/vorbis/test/write_read.h	2010-03-25 03:45:42 UTC (rev 17022)
+++ trunk/vorbis/test/write_read.h	2010-03-25 03:58:42 UTC (rev 17023)
@@ -17,7 +17,7 @@
 
 /* Write supplied data to an Ogg/Vorbis file with specified filename at
  * specified sample rate. Assumes a single channel of audio. */
-void write_vorbis_data_or_die (const char *filename, int srate,
+void write_vorbis_data_or_die (const char *filename, int srate, float q,
                         const float * data, int count) ;
 
 /* Read given Ogg/Vorbis file into data specified data array. This



More information about the commits mailing list