Skip auto timebase denominator generation when generated timebase denominator exceeds UINT32_MAX.
Also fix double free.
}
}
if( fpss )
+ {
free( fpss );
+ fpss = NULL;
+ }
h->assume_fps = assume_fps;
h->last_timecode = timecodes[timecodes_num - 1];
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;
if( try_mkv_timebase_den( fpss, h, timecodes_num - 1 ) < 0 )
goto fail;
free( fpss );
+ fpss = NULL;
}
if( timecodes_num > 1 )