[FFmpeg-devel] [PATCH, v2] lavu/hwcontext_qsv: Fix the realign check for hwupload

Song, Ruiling ruiling.song at intel.com
Thu Apr 11 11:30:32 EEST 2019



> -----Original Message-----
> From: ffmpeg-devel [mailto:ffmpeg-devel-bounces at ffmpeg.org] On Behalf Of
> Fu, Linjie
> Sent: Thursday, April 11, 2019 3:59 PM
> To: Li, Zhong <zhong.li at intel.com>; FFmpeg development discussions and
> patches <ffmpeg-devel at ffmpeg.org>
> Subject: Re: [FFmpeg-devel] [PATCH, v2] lavu/hwcontext_qsv: Fix the realign
> check for hwupload
> 
> > -----Original Message-----
> > From: Li, Zhong
> > Sent: Thursday, April 11, 2019 10:51
> > To: FFmpeg development discussions and patches <ffmpeg-
> > devel at ffmpeg.org>
> > Cc: Fu, Linjie <linjie.fu at intel.com>
> > Subject: RE: [FFmpeg-devel] [PATCH, v2] lavu/hwcontext_qsv: Fix the realign
> > check for hwupload
> >
> > > From: ffmpeg-devel [mailto:ffmpeg-devel-bounces at ffmpeg.org] On
> > Behalf
> > > Of Linjie Fu
> > > Sent: Wednesday, April 10, 2019 7:56 PM
> > > To: ffmpeg-devel at ffmpeg.org
> > > Cc: Fu, Linjie <linjie.fu at intel.com>
> > > Subject: [FFmpeg-devel] [PATCH, v2] lavu/hwcontext_qsv: Fix the realign
> > > check for hwupload
> > >
> > > Fix the aligned check in hwupload, input surface should be 16 aligned too.
> > >
> > > Fix #7830.
> > >
> > > Signed-off-by: Linjie Fu <linjie.fu at intel.com>
> > > ---
> > >
> > >  libavutil/hwcontext_qsv.c | 3 ++-
> > >  1 file changed, 2 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/libavutil/hwcontext_qsv.c b/libavutil/hwcontext_qsv.c index
> > > b6d8bfe2bf..8b000fe636 100644
> > > --- a/libavutil/hwcontext_qsv.c
> > > +++ b/libavutil/hwcontext_qsv.c
> > > @@ -892,7 +892,8 @@ static int
> > > qsv_transfer_data_to(AVHWFramesContext *ctx, AVFrame *dst,
> > >          return ret;
> > >
> > >
> > > -    if (src->height & 16 || src->linesize[0] & 16) {
> > > +    if (src->height & 15 || src->width & 15 ||
> > > +                            src->linesize[0] & 15) {
> >
> > Should be better to use FFALIGN()
> >
> > Another question is it really necessary to check width alignment if we already
> > checked linesize to fix this issue?
> > (I guess it it not necessary, and if it is needed, many other places probably
> > needed to be changed too.)
> 
> Checked the code in qsvvpp.c and qsvenc.c, it has the same check using &:
> 
> libavcodec/qsvenc.c:         if ((frame->height & 31 || frame->linesize[0] & (q-
> >width_align - 1)) ||
> libavfilter/qsvvpp.c:        if (picref->height & 31 || picref->linesize[0] & 31) {
> 
> These should be matched, so the FFALIGN is better for all?
I think FFALIGN() is used to align a value not checking alignment.
> 
> For the width check, added for redundant check, can be removed to match the
> whole behavior.
only checking linesize[0] sounds good.
> 
> Thanks for comments.
> 
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list