Commit 33bc81e4 authored by Michael Niedermayer's avatar Michael Niedermayer

ffmpeg: skip duration cliping for passthrough & drop modes

Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent de8cd93a
......@@ -904,13 +904,6 @@ static void do_video_out(AVFormatContext *s,
sync_ipts = next_picture->pts;
delta0 = sync_ipts - ost->sync_opts;
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 */
nb0_frames = 0;
......@@ -933,6 +926,17 @@ static void do_video_out(AVFormatContext *s,
}
}
if (delta0 < 0 &&
delta > 0 &&
format_video_sync != VSYNC_PASSTHROUGH &&
format_video_sync != VSYNC_DROP) {
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;
}
switch (format_video_sync) {
case VSYNC_VSCFR:
if (ost->frame_number == 0 && delta - duration >= 0.5) {
......
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