summaryrefslogtreecommitdiff
path: root/libavcodec/vaapi_encode_mjpeg.c
diff options
context:
space:
mode:
authorLinjie Fu <linjie.fu@intel.com>2020-03-31 23:34:00 +0800
committerJames Almer <jamrial@gmail.com>2020-05-04 12:33:30 -0300
commit2b3206891649f317c20993411efef4bee39ae784 (patch)
tree04e8de81e09cc5853ca41bba3ca4d51f6ff6d46f /libavcodec/vaapi_encode_mjpeg.c
parent5767a2ed74078385a5ff70a7a487c1d4c367d729 (diff)
lavc/vaapi_encode: add FF_CODEC_CAP_INIT_CLEANUP caps for encoders
ff_vaapi_encode_close() is not enough to free the resources like cbs if initialization failure happens after codec->configure (except for vp8/vp9). We need to call avctx->codec->close() to deallocate, otherwise memory leak happens. Add FF_CODEC_CAP_INIT_CLEANUP for vaapi encoders and deallocate the resources at free_and_end inside avcodec_open2(). Reviewed-by: Timo Rothenpieler <timo@rothenpieler.org> Signed-off-by: Linjie Fu <linjie.fu@intel.com>
Diffstat (limited to 'libavcodec/vaapi_encode_mjpeg.c')
-rw-r--r--libavcodec/vaapi_encode_mjpeg.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/libavcodec/vaapi_encode_mjpeg.c b/libavcodec/vaapi_encode_mjpeg.c
index 2b5d3bf4f9..8b441d36c3 100644
--- a/libavcodec/vaapi_encode_mjpeg.c
+++ b/libavcodec/vaapi_encode_mjpeg.c
@@ -565,6 +565,7 @@ AVCodec ff_mjpeg_vaapi_encoder = {
.priv_class = &vaapi_encode_mjpeg_class,
.capabilities = AV_CODEC_CAP_HARDWARE |
AV_CODEC_CAP_INTRA_ONLY,
+ .caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
.defaults = vaapi_encode_mjpeg_defaults,
.pix_fmts = (const enum AVPixelFormat[]) {
AV_PIX_FMT_VAAPI,