[cvs-annodex] commit (/annodex): liboggz/trunk/ChangeLog liboggz/trunk/src/liboggz/oggz_auto.c

conrad nobody at lists.annodex.net
Fri Jan 21 16:50:41 EST 2005


Update of /annodex (new revision 691)

Modified files:
   liboggz/trunk/ChangeLog
   liboggz/trunk/src/liboggz/oggz_auto.c

Log Message:
add CMML binary header parsing


Modified: liboggz/trunk/ChangeLog
===================================================================
--- liboggz/trunk/ChangeLog	2005-01-21 05:42:20 UTC (rev 690)
+++ liboggz/trunk/ChangeLog	2005-01-21 05:50:40 UTC (rev 691)
@@ -1,6 +1,7 @@
 Fri Jan 21 17:38:33 EST 2005 Conrad Parker <conrad at annodex.net>
 
 	* added FLAC header parsing from Tobias Gehrig
+	* added CMML header parsing
 
 Fri May 28 11:08:34 EST 2004 Conrad Parker <conrad at annodex.net>
 

Modified: liboggz/trunk/src/liboggz/oggz_auto.c
===================================================================
--- liboggz/trunk/src/liboggz/oggz_auto.c	2005-01-21 05:42:20 UTC (rev 690)
+++ liboggz/trunk/src/liboggz/oggz_auto.c	2005-01-21 05:50:40 UTC (rev 691)
@@ -247,6 +247,31 @@
   return 1;
 }
 
+static int
+auto_cmml (OGGZ * oggz, ogg_packet * op, long serialno, void * user_data)
+{
+  unsigned char * header = op->packet;
+  ogg_int64_t granule_rate_numerator = 0, granule_rate_denominator = 0;
+
+  if (op->bytes < 28) return 0;
+
+  if (strncmp ((char *)header, "CMML", 4)) return 0;
+  if (!op->b_o_s) return 0;
+
+  granule_rate_numerator = INT64_LE_AT(&header[12]);
+  granule_rate_denominator = INT64_LE_AT(&header[20]);
+#ifdef DEBUG
+  printf ("Got CMML rate %lld/%lld\n", granule_rate_numerator,
+	  granule_rate_denominator);
+#endif
+
+  oggz_set_metric_linear (oggz, serialno,
+			  granule_rate_numerator,
+			  OGGZ_AUTO_MULT * granule_rate_denominator);
+
+  return 1;
+}
+
 static const OggzReadPacket auto_readers[] = {
   auto_speex,
   auto_vorbis,
@@ -254,6 +279,7 @@
   auto_annodex,
   auto_anxdata,
   auto_flac,
+  auto_cmml,
   NULL
 };
 


-- 
conrad



More information about the cvs-annodex mailing list