Message ID | 20230815083425.2648894-1-wenbin.chen@intel.com |
---|---|
State | Accepted |
Commit | 9ae4863cc57c38fa2f41f3b8c732fede4a2b78c6 |
Headers | show |
Series | [FFmpeg-devel] libavfilter/vf_vpp_qsv: Fix a timestamp bug when framerate is not set | expand |
Context | Check | Description |
---|---|---|
yinshiyou/make_loongarch64 | success | Make finished |
yinshiyou/make_fate_loongarch64 | success | Make fate finished |
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
On Di, 2023-08-15 at 16:34 +0800, wenbin.chen-at-intel.com@ffmpeg.org wrote: > From: Wenbin Chen <wenbin.chen@intel.com> > > If user doesn't set framerate when he creates a filter, the filter uses > default framerate {0, 1}. This causes error when setting timebase to > 1/framerate. Now change it to pass inlink->time_base to outlink when > framerate is not set. > This patch fixes ticket: #10476 #10468 > > Signed-off-by: Wenbin Chen <wenbin.chen@intel.com> > --- > libavfilter/vf_vpp_qsv.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/libavfilter/vf_vpp_qsv.c b/libavfilter/vf_vpp_qsv.c > index 92ef0f1d89..c07b45fedb 100644 > --- a/libavfilter/vf_vpp_qsv.c > +++ b/libavfilter/vf_vpp_qsv.c > @@ -536,7 +536,10 @@ static int config_output(AVFilterLink *outlink) > outlink->w = vpp->out_width; > outlink->h = vpp->out_height; > outlink->frame_rate = vpp->framerate; > - outlink->time_base = av_inv_q(vpp->framerate); > + if (vpp->framerate.num == 0 || vpp->framerate.den == 0) > + outlink->time_base = inlink->time_base; > + else > + outlink->time_base = av_inv_q(vpp->framerate); > > param.filter_frame = NULL; > param.set_frame_ext_params = vpp_set_frame_ext_params; LGTM, will apply Thanks Haihao
diff --git a/libavfilter/vf_vpp_qsv.c b/libavfilter/vf_vpp_qsv.c index 92ef0f1d89..c07b45fedb 100644 --- a/libavfilter/vf_vpp_qsv.c +++ b/libavfilter/vf_vpp_qsv.c @@ -536,7 +536,10 @@ static int config_output(AVFilterLink *outlink) outlink->w = vpp->out_width; outlink->h = vpp->out_height; outlink->frame_rate = vpp->framerate; - outlink->time_base = av_inv_q(vpp->framerate); + if (vpp->framerate.num == 0 || vpp->framerate.den == 0) + outlink->time_base = inlink->time_base; + else + outlink->time_base = av_inv_q(vpp->framerate); param.filter_frame = NULL; param.set_frame_ext_params = vpp_set_frame_ext_params;