[cvs-annodex] commit (/annodex): liboggz/trunk/ChangeLog
liboggz/trunk/src/liboggz/oggz_auto.c
conrad
nobody at lists.annodex.net
Fri Jan 21 16:42:21 EST 2005
Update of /annodex (new revision 690)
Modified files:
liboggz/trunk/ChangeLog
liboggz/trunk/src/liboggz/oggz_auto.c
Log Message:
add flac header parsing to oggz_auto (patch from Tobias Gehrig)
Modified: liboggz/trunk/ChangeLog
===================================================================
--- liboggz/trunk/ChangeLog 2005-01-21 04:27:28 UTC (rev 689)
+++ liboggz/trunk/ChangeLog 2005-01-21 05:42:20 UTC (rev 690)
@@ -1,3 +1,7 @@
+Fri Jan 21 17:38:33 EST 2005 Conrad Parker <conrad at annodex.net>
+
+ * added FLAC header parsing from Tobias Gehrig
+
Fri May 28 11:08:34 EST 2004 Conrad Parker <conrad at annodex.net>
* removed use of floating point in liboggz
Modified: liboggz/trunk/src/liboggz/oggz_auto.c
===================================================================
--- liboggz/trunk/src/liboggz/oggz_auto.c 2005-01-21 04:27:28 UTC (rev 689)
+++ liboggz/trunk/src/liboggz/oggz_auto.c 2005-01-21 05:42:20 UTC (rev 690)
@@ -225,12 +225,35 @@
return 1;
}
+static int
+auto_flac (OGGZ * oggz, ogg_packet * op, long serialno, void * user_data)
+{
+ unsigned char * header = op->packet;
+ ogg_int64_t granule_rate = 0;
+
+ if (op->bytes < 51) return 0;
+
+ if (header[0] != 0x7f) return 0;
+ if (strncmp ((char *)&header[1], "FLAC", 4)) return 0;
+ if (!op->b_o_s) return 0;
+
+ granule_rate = (ogg_int64_t) (header[27] << 12) | (header[28] << 4) | ((header[29] >> 4)&0xf);
+#ifdef DEBUG
+ printf ("Got flac rate %d\n", (int)granule_rate);
+#endif
+
+ oggz_set_metric_linear (oggz, serialno, granule_rate, OGGZ_AUTO_MULT);
+
+ return 1;
+}
+
static const OggzReadPacket auto_readers[] = {
auto_speex,
auto_vorbis,
auto_theora,
auto_annodex,
auto_anxdata,
+ auto_flac,
NULL
};
--
conrad
More information about the cvs-annodex
mailing list