diff mbox series

[FFmpeg-devel,v3,14/22] lavfi/vpp_qsv: double the framerate for deinterlacing

Message ID 20210615061403.1576282-15-haihao.xiang@intel.com
State New
Headers show
Series clean-up QSV filters | expand

Checks

Context Check Description
andriy/x86_make success Make finished
andriy/x86_make_fate success Make fate finished
andriy/PPC64_make success Make finished
andriy/PPC64_make_fate success Make fate finished

Commit Message

Xiang, Haihao June 15, 2021, 6:13 a.m. UTC
---
 libavfilter/vf_vpp_qsv.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/libavfilter/vf_vpp_qsv.c b/libavfilter/vf_vpp_qsv.c
index 29ba220665..cde1acdbb0 100644
--- a/libavfilter/vf_vpp_qsv.c
+++ b/libavfilter/vf_vpp_qsv.c
@@ -255,10 +255,16 @@  static int config_input(AVFilterLink *inlink)
     int              ret;
     int64_t          ow, oh;
 
-    if (vpp->framerate.den == 0 || vpp->framerate.num == 0)
+    /* Ignore user's setting for framerate when deinterlacing is used */
+    if (vpp->deinterlace) {
+        av_log(ctx, AV_LOG_WARNING, "Ignore user setting of output framerate "
+               "when bob / advanced deinterlace is used.\n");
+        vpp->framerate = av_mul_q(inlink->frame_rate,
+                                  (AVRational){ 2, 1 });
+    } else if (vpp->framerate.den == 0 || vpp->framerate.num == 0)
         vpp->framerate = inlink->frame_rate;
 
-    if (av_cmp_q(vpp->framerate, inlink->frame_rate))
+    if (!vpp->deinterlace && av_cmp_q(vpp->framerate, inlink->frame_rate))
         vpp->use_frc = 1;
 
     ret = eval_expr(ctx);