[FFmpeg-devel] [PATCH] lavf/qsvvpp: avoid the double-free when working in sys memory mode

Fu, Linjie linjie.fu at intel.com
Wed May 29 12:07:37 EEST 2019


> -----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" -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?


More information about the ffmpeg-devel mailing list