]> git.sesse.net Git - x264/commitdiff
Fix regression in rev1549
authorYusuke Nakamura <muken.the.vfrmaniac@gmail.com>
Sun, 5 Dec 2010 00:31:01 +0000 (09:31 +0900)
committerFiona Glaser <fiona@x264.com>
Sun, 5 Dec 2010 22:55:52 +0000 (14:55 -0800)
Skip auto timebase denominator generation when generated timebase denominator exceeds UINT32_MAX.
Also fix double free.

input/timecode.c

index 4d9540d82a9be020e1773439ac1d5641c1f2f8a0..3aea325558271d3d2c1e6421589ef0b74c7fefcc 100644 (file)
@@ -209,7 +209,10 @@ static int parse_tcfile( FILE *tcfile_in, timecode_hnd_t *h, video_info_t *info
             }
         }
         if( fpss )
+        {
             free( fpss );
+            fpss = NULL;
+        }
 
         h->assume_fps = assume_fps;
         h->last_timecode = timecodes[timecodes_num - 1];
@@ -263,7 +266,7 @@ static int parse_tcfile( FILE *tcfile_in, timecode_hnd_t *h, video_info_t *info
             for( num = 0; num < timecodes_num - 1; num++ )
             {
                 fpss[num] = 1 / (timecodes[num + 1] - timecodes[num]);
-                if( h->timebase_den >= 0 )
+                if( h->auto_timebase_den )
                 {
                     int i = 1;
                     uint64_t fps_num, fps_den;
@@ -289,6 +292,7 @@ static int parse_tcfile( FILE *tcfile_in, timecode_hnd_t *h, video_info_t *info
                 if( try_mkv_timebase_den( fpss, h, timecodes_num - 1 ) < 0 )
                     goto fail;
             free( fpss );
+            fpss = NULL;
         }
 
         if( timecodes_num > 1 )