diff mbox series

[FFmpeg-devel] lavfi/vf_vpp_qsv: fix duration in pass-through mode

Message ID 20230724023651.407929-1-haihao.xiang@intel.com
State Accepted
Commit 567e78b28320939c18e16acbdbeb2b77d24e2c03
Headers show
Series [FFmpeg-devel] lavfi/vf_vpp_qsv: fix duration in pass-through mode | expand

Checks

Context Check Description
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Xiang, Haihao July 24, 2023, 2:36 a.m. UTC
From: Haihao Xiang <haihao.xiang@intel.com>

Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
---
 libavfilter/vf_vpp_qsv.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Xiang, Haihao July 26, 2023, 7:14 a.m. UTC | #1
On Ma, 2023-07-24 at 10:36 +0800, Xiang, Haihao wrote:
> From: Haihao Xiang <haihao.xiang@intel.com>
> 
> Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
> ---
>  libavfilter/vf_vpp_qsv.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/libavfilter/vf_vpp_qsv.c b/libavfilter/vf_vpp_qsv.c
> index 334a86551b..be9bf54743 100644
> --- a/libavfilter/vf_vpp_qsv.c
> +++ b/libavfilter/vf_vpp_qsv.c
> @@ -582,6 +582,11 @@ static int activate(AVFilterContext *ctx)
>              if (in->pts != AV_NOPTS_VALUE)
>                  in->pts = av_rescale_q(in->pts, inlink->time_base, outlink-
> >time_base);
>  
> +            if (outlink->frame_rate.num && outlink->frame_rate.den)
> +                in->duration = av_rescale_q(1, av_inv_q(outlink->frame_rate),
> outlink->time_base);
> +            else
> +                in->duration = 0;
> +
>              ret = ff_filter_frame(outlink, in);
>              if (ret < 0)
>                  return ret;

Will apply

- Haihao
diff mbox series

Patch

diff --git a/libavfilter/vf_vpp_qsv.c b/libavfilter/vf_vpp_qsv.c
index 334a86551b..be9bf54743 100644
--- a/libavfilter/vf_vpp_qsv.c
+++ b/libavfilter/vf_vpp_qsv.c
@@ -582,6 +582,11 @@  static int activate(AVFilterContext *ctx)
             if (in->pts != AV_NOPTS_VALUE)
                 in->pts = av_rescale_q(in->pts, inlink->time_base, outlink->time_base);
 
+            if (outlink->frame_rate.num && outlink->frame_rate.den)
+                in->duration = av_rescale_q(1, av_inv_q(outlink->frame_rate), outlink->time_base);
+            else
+                in->duration = 0;
+
             ret = ff_filter_frame(outlink, in);
             if (ret < 0)
                 return ret;