[FFmpeg-devel] [PATCH] libavfilter/qsvvpp: change the output frame's width and height

Chen, Wenbin wenbin.chen at intel.com
Tue Mar 23 09:13:07 EET 2021



> -----Original Message-----
> From: Xiang, Haihao <haihao.xiang at intel.com>
> Sent: Tuesday, March 23, 2021 1:44 PM
> To: ffmpeg-devel at ffmpeg.org
> Cc: Chen, Wenbin <wenbin.chen at intel.com>
> Subject: Re: [FFmpeg-devel] [PATCH] libavfilter/qsvvpp: change the output
> frame's width and height
> 
> On Mon, 2021-03-22 at 14:43 +0800, wenbin.chen at intel.com wrote:
> > From: "Chen,Wenbin" <wenbin.chen at intel.com>
> >
> > qsvvpp align the width and height with 16, and that may lead to error.
> > For example, when we use qsvvpp to resize frame to 1080p, qsvvpp will
> > align frame to 1088 which is different from the height of
> > encoder (1080) and this will be treated as resolution change. Now I
> > assign the out_link's w/h to output
> > frame to overwrite the w/h got from hw_frame_ctx.
> >
> > Signed-off-by: Wenbin Chen <wenbin.chen at intel.com>
> > ---
> >  libavfilter/qsvvpp.c | 3 +++
> >  1 file changed, 3 insertions(+)
> >
> > diff --git a/libavfilter/qsvvpp.c b/libavfilter/qsvvpp.c
> > index f216b3f248..8658a70083 100644
> > --- a/libavfilter/qsvvpp.c
> > +++ b/libavfilter/qsvvpp.c
> > @@ -476,6 +476,9 @@ static QSVFrame *query_frame(QSVVPPContext *s,
> > AVFilterLink *outlink)
> >              return NULL;
> >          }
> >
> > +        out_frame->frame->width  = outlink->w;
> > +        out_frame->frame->height = outlink->h;
> 
> So the above code is needed for both system and video memory, could you
> factor
> the common code out?

Ok, I will do it. Thanks for your advice.

> 
> > +
> >          out_frame->surface = (mfxFrameSurface1 *)out_frame->frame-
> >data[3];
> >      } else {
> >          /* Get a frame with aligned dimensions.


More information about the ffmpeg-devel mailing list