diff options
author | Linjie Fu <linjie.fu@intel.com> | 2019-04-15 21:24:06 +0800 |
---|---|---|
committer | Zhong Li <zhong.li@intel.com> | 2019-05-30 09:33:21 +0800 |
commit | 6895b350c31d8fda5bd9e4285c52de6e391e7ff4 (patch) | |
tree | 30aa3b612b409ff24a81bdea08de3227db771986 /libavfilter | |
parent | 02333fe394f0c15b1e8bbd3399316578ee8c2334 (diff) | |
download | ffmpeg-6895b350c31d8fda5bd9e4285c52de6e391e7ff4.tar.gz |
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.
Reproduce:
ffmpeg -init_hw_device qsv=foo -filter_hw_device foo -f rawvideo -pix_fmt nv12 -s:v 852x480 \
-i 852x480.nv12 -vf 'vpp_qsv=w=500:h=400' -f rawvideo -pix_fmt nv12 qsv.nv12
Signed-off-by: Linjie Fu <linjie.fu@intel.com>
Signed-off-by: Zhong Li <zhong.li@intel.com>
Diffstat (limited to 'libavfilter')
-rw-r--r-- | libavfilter/qsvvpp.c | 1 |
1 files changed, 0 insertions, 1 deletions
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); |