[cvs-annodex] commit (/annodex):
liboggz/trunk/src/tools/oggz-validate.c
msmith
nobody at lists.annodex.net
Thu Jul 21 18:14:13 EST 2005
Update of /annodex (new revision 1405)
Modified files:
liboggz/trunk/src/tools/oggz-validate.c
Log Message:
Make oggz-validate do some page-level validation: currently, it just ensures
that a page that ends zero packets (ogg_page_packets() == 0) has the correct
granulepos, -1.
Modified: liboggz/trunk/src/tools/oggz-validate.c
===================================================================
--- liboggz/trunk/src/tools/oggz-validate.c 2005-07-20 12:51:10 UTC (rev 1404)
+++ liboggz/trunk/src/tools/oggz-validate.c 2005-07-21 08:14:07 UTC (rev 1405)
@@ -134,6 +134,20 @@
}
static int
+read_page (OGGZ * oggz, const ogg_page * og, long serialno, void * user_data)
+{
+ ogg_int64_t gpos = ogg_page_granulepos((ogg_page *)og);
+ int ret = 0;
+
+ if(gpos != -1 && ogg_page_packets((ogg_page *)og) == 0) {
+ ret = log_error ();
+ fprintf (stderr, "serialno %010ld: granulepos %lld on page with no completed packets, must be -1\n", serialno, gpos);
+ }
+
+ return ret;
+}
+
+static int
read_packet (OGGZ * oggz, ogg_packet * op, long serialno, void * user_data)
{
OVData * ovdata = (OVData *)user_data;
@@ -229,6 +243,7 @@
}
oggz_set_read_callback (reader, -1, read_packet, &ovdata);
+ oggz_set_read_page (reader, -1, read_page, NULL);
while (active && (n = oggz_read (reader, 1024)) != 0) {
if (nr_errors > MAX_ERRORS) {
--
msmith
More information about the cvs-annodex
mailing list