1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-21 10:55:51 +02:00

ffmpeg: skip duration cliping for passthrough & drop modes

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2014-11-19 19:24:39 +01:00
parent de8cd93a05
commit 33bc81e437

View File

@ -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) {