diff --git a/libavfilter/vf_yadif.c b/libavfilter/vf_yadif.c index c32c06592a..b546a088c9 100644 --- a/libavfilter/vf_yadif.c +++ b/libavfilter/vf_yadif.c @@ -386,26 +386,24 @@ static int request_frame(AVFilterLink *link) return 0; } + if (yadif->eof) + return AVERROR_EOF; - /* TODO reindent */ - if (yadif->eof) - return AVERROR_EOF; + ret = ff_request_frame(link->src->inputs[0]); - ret = ff_request_frame(link->src->inputs[0]); + if (ret == AVERROR_EOF && yadif->cur) { + AVFrame *next = av_frame_clone(yadif->next); - if (ret == AVERROR_EOF && yadif->cur) { - AVFrame *next = av_frame_clone(yadif->next); + if (!next) + return AVERROR(ENOMEM); - if (!next) - return AVERROR(ENOMEM); + next->pts = yadif->next->pts * 2 - yadif->cur->pts; - next->pts = yadif->next->pts * 2 - yadif->cur->pts; - - filter_frame(link->src->inputs[0], next); - yadif->eof = 1; - } else if (ret < 0) { - return ret; - } + filter_frame(link->src->inputs[0], next); + yadif->eof = 1; + } else if (ret < 0) { + return ret; + } return 0; }