diff options
author | Vittorio Giovara <vittorio.giovara@gmail.com> | 2015-04-07 01:47:18 +0200 |
---|---|---|
committer | Vittorio Giovara <vittorio.giovara@gmail.com> | 2015-04-24 14:55:11 +0100 |
commit | eae7338e1592f4a398b7c3cb9d1ac854b7a44ff8 (patch) | |
tree | 9f7ac03de253b56e616a83922183dd97043141e1 | |
parent | 74a1cad7e3ba79e5b1e5b2e2bcf6179520442679 (diff) | |
download | ffmpeg-eae7338e1592f4a398b7c3cb9d1ac854b7a44ff8.tar.gz |
libx264: Make codec use the init-cleanup flag and mark it as init-thread-safe
This takes care of memory leaks on init error.
-rw-r--r-- | libavcodec/libx264.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c index 2caef1743f..841b824c8a 100644 --- a/libavcodec/libx264.c +++ b/libavcodec/libx264.c @@ -272,10 +272,12 @@ static av_cold int X264_close(AVCodecContext *avctx) X264Context *x4 = avctx->priv_data; av_freep(&avctx->extradata); - av_free(x4->sei); + av_freep(&x4->sei); - if (x4->enc) + if (x4->enc) { x264_encoder_close(x4->enc); + x4->enc = NULL; + } av_frame_free(&avctx->coded_frame); @@ -697,4 +699,6 @@ AVCodec ff_libx264_encoder = { .priv_class = &class, .defaults = x264_defaults, .init_static_data = X264_init_static, + .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | + FF_CODEC_CAP_INIT_CLEANUP, }; |