1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-08-10 06:10:52 +02:00

ffmpeg: Check duration for overlap and clip in fps cfr/vfr code

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer
2014-11-19 17:21:04 +01:00
parent c509202590
commit 4e20e94921
2 changed files with 8 additions and 1 deletions

View File

@@ -904,6 +904,13 @@ static void do_video_out(AVFormatContext *s,
sync_ipts = next_picture->pts; sync_ipts = next_picture->pts;
delta0 = sync_ipts - ost->sync_opts; delta0 = sync_ipts - ost->sync_opts;
delta = delta0 + duration; delta = delta0 + duration;
if (delta0 < 0 && delta > 0) {
double cor = FFMIN(-delta0, duration);
av_log(NULL, AV_LOG_WARNING, "Past duration %f too large\n", -delta0);
sync_ipts += cor;
duration -= cor;
delta0 += cor;
}
/* by default, we output a single frame */ /* by default, we output a single frame */
nb0_frames = 0; nb0_frames = 0;

View File

@@ -1,4 +1,4 @@
#tb 0: 1/1 #tb 0: 1/1
0, 0, 0, 1, 112320, 0xb8afe429 0, 0, 0, 1, 112320, 0xb8afe429
0, 0, 0, 1, 112320, 0xae588a4b 0, 1, 1, 1, 112320, 0xae588a4b
0, 3, 3, 1, 112320, 0xccdd27b7 0, 3, 3, 1, 112320, 0xccdd27b7