summaryrefslogtreecommitdiff
path: root/libavfilter/vf_interlace.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-10-03 11:13:37 +0200
committerMichael Niedermayer <michaelni@gmx.at>2013-10-03 11:16:57 +0200
commitc4f3b55f507955a5db45802b09a1a38ff7f8bb8d (patch)
treef43676e6154d186c1118dfa64cca4902c4c2e2ef /libavfilter/vf_interlace.c
parentf5b27b6d5f86626adf1ece529d8b48ddec7c2961 (diff)
parent06e7301a2efa8dededecbe6836ee5b59bf7e5e76 (diff)
Merge commit '06e7301a2efa8dededecbe6836ee5b59bf7e5e76'
* commit '06e7301a2efa8dededecbe6836ee5b59bf7e5e76': vf_interlace: do not process an already interlaced frame Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavfilter/vf_interlace.c')
-rw-r--r--libavfilter/vf_interlace.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/libavfilter/vf_interlace.c b/libavfilter/vf_interlace.c
index bcb5419154..7b45595ff5 100644
--- a/libavfilter/vf_interlace.c
+++ b/libavfilter/vf_interlace.c
@@ -180,6 +180,15 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf)
if (!s->cur || !s->next)
return 0;
+ if (s->cur->interlaced_frame) {
+ av_log(ctx, AV_LOG_WARNING,
+ "video is already interlaced, adjusting framerate only\n");
+ out = av_frame_clone(s->cur);
+ out->pts /= 2; // adjust pts to new framerate
+ ret = ff_filter_frame(outlink, out);
+ return ret;
+ }
+
tff = (s->scan == MODE_TFF);
out = ff_get_video_buffer(outlink, outlink->w, outlink->h);
if (!out)