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

conrad nobody at lists.annodex.net
Mon Sep 13 17:46:49 EST 2004


Update of /annodex (new revision 570)

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

Log Message:
fix theora keyframe shift in oggz_auto (was using old alpha3 method)


Modified: liboggz/trunk/src/liboggz/oggz_auto.c
===================================================================
--- liboggz/trunk/src/liboggz/oggz_auto.c	2004-09-13 01:30:08 UTC (rev 569)
+++ liboggz/trunk/src/liboggz/oggz_auto.c	2004-09-13 07:46:49 UTC (rev 570)
@@ -128,6 +128,11 @@
   units = OGGZ_AUTO_MULT * granulepos * tdata->fps_denominator /
     tdata->fps_numerator;
 
+#ifdef DEBUG
+  printf ("serialno %010ld: Got theora frame %lld (%lld + %lld)\n",
+	  serialno, granulepos, iframe, pframe, tdata->keyframe_shift);
+#endif
+
   return units;
 }
 
@@ -153,16 +158,17 @@
 #if USE_THEORA_PRE_ALPHA_3_FORMAT
   /* old header format, used by Theora alpha2 and earlier */
   keyframe_granule_shift = (header[36] & 0xf8) >> 3;
+  tdata->keyframe_shift = intlog (keyframe_granule_shift - 1);
 #else
   keyframe_granule_shift = (char) ((header[40] & 0x03) << 3);
   keyframe_granule_shift |= (header[41] & 0xe0) >> 5;
+  tdata->keyframe_shift = keyframe_granule_shift;
 #endif
-  tdata->keyframe_shift = intlog (keyframe_granule_shift - 1);
 
 #ifdef DEBUG
-  printf ("Got theora fps %d/%d, keyframe_granule_shift %d\n",
+  printf ("Got theora fps %d/%d, keyframe_shift %d\n",
 	  tdata->fps_numerator, tdata->fps_denominator,
-	  keyframe_granule_shift);
+	  tdata->keyframe_shift);
 #endif
 
   /*oggz_set_metric_internal (oggz, serialno, auto_theora_metric, tdata, 1);*/


-- 
conrad



More information about the cvs-annodex mailing list