[FFmpeg-devel] [PATCH] lavf/qsvvpp: avoid the double-free when working in sys memory mode
Li, Zhong
zhong.li at intel.com
Thu May 30 08:15:23 EEST 2019
> From: ffmpeg-devel [mailto:ffmpeg-devel-bounces at ffmpeg.org] On Behalf
> Of Fu, Linjie
> Sent: Wednesday, May 29, 2019 5:08 PM
> To: ffmpeg-devel at ffmpeg.org
> Subject: Re: [FFmpeg-devel] [PATCH] lavf/qsvvpp: avoid the double-free
> when working in sys memory mode
>
> > -----Original Message-----
> > From: Fu, Linjie
> > Sent: Monday, April 15, 2019 21:24
> > To: ffmpeg-devel at ffmpeg.org
> > Cc: Fu, Linjie <linjie.fu at intel.com>
> > Subject: [PATCH] lavf/qsvvpp: avoid the double-free when working in
> > sys memory mode
> >
> > Currently, picref will be freed by calling av_frame_free(&picref) in
> > submit_frame() in qsvvpp.c when working in system memory mode,and
> > normally it is freed in filter_frame() in vf_vpp_qsv.c when working in
> > other modes.
> >
> > Double free happens when working in system memory mode, remove to fix
> > the memory issue.
> >
> > Signed-off-by: Linjie Fu <linjie.fu at intel.com>
> > ---
> > Can be reproduced by applying the system memory patch and qsvdec+vpp:
> > ffmpeg -init_hw_device qsv=hw -filter_hw_device hw -c:v h264_qsv
> > -i
> > input.mp4 \
> > -vf
> "vpp_qsv=w=960:h=540,format=rgb32"
Is it possible to reproduce with another command line? It can work with mainline on Linux.
> > -f null - libavfilter/qsvvpp.c | 1 -
> > 1 file changed, 1 deletion(-)
> >
> > diff --git a/libavfilter/qsvvpp.c b/libavfilter/qsvvpp.c index
> > 06efdf5089..5cd1d5d345 100644
> > --- a/libavfilter/qsvvpp.c
> > +++ b/libavfilter/qsvvpp.c
> > @@ -316,7 +316,6 @@ static QSVFrame *submit_frame(QSVVPPContext
> *s,
> > AVFilterLink *inlink, AVFrame *p
> > }
> >
> > av_frame_copy_props(qsv_frame->frame, picref);
> > - av_frame_free(&picref);
> > } else
> > qsv_frame->frame = av_frame_clone(picref);
> >
> > --
> > 2.17.1
> Ping?
Patch LGTM
More information about the ffmpeg-devel
mailing list