Fixed bug first cluster timecode of webm file is wrong.
authorFrank Galligan <fgalligan@google.com>
Thu, 4 Nov 2010 03:33:00 +0000 (23:33 -0400)
committerJohn Koleszar <jkoleszar@google.com>
Fri, 12 Nov 2010 16:48:17 +0000 (11:48 -0500)
When the first pts equaled 0 ivfenc was incorrectly increasing the
pts by 1. I changed the pts and last pts to be signed. I also set
the default value of last pts to -1.

Change-Id: I30bcec5af9b16d93fa9e3abbea7764b133e9cd73

vpxenc.c

index b139c68..af9839c 100644 (file)
--- a/vpxenc.c
+++ b/vpxenc.c
@@ -435,7 +435,7 @@ struct EbmlGlobal
     int debug;
 
     FILE    *stream;
-    uint64_t last_pts_ms;
+    int64_t last_pts_ms;
     vpx_rational_t  framerate;
 
     /* These pointers are to the start of an element */
@@ -648,7 +648,7 @@ write_webm_block(EbmlGlobal                *glob,
     unsigned char  track_number;
     unsigned short block_timecode = 0;
     unsigned char  flags;
-    uint64_t       pts_ms;
+    int64_t        pts_ms;
     int            start_cluster = 0, is_keyframe;
 
     /* Calculate the PTS of this frame in milliseconds */
@@ -1074,6 +1074,7 @@ int main(int argc, const char **argv_)
     int                      psnr_count = 0;
 
     exec_name = argv_[0];
+    ebml.last_pts_ms = -1;
 
     if (argc < 3)
         usage_exit();