[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