Commit 4e20e949 authored by Michael Niedermayer's avatar Michael Niedermayer

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

Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent c5092025
...@@ -904,6 +904,13 @@ static void do_video_out(AVFormatContext *s, ...@@ -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;
......
#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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment