summaryrefslogtreecommitdiff
path: root/libavcodec/libx264.c
diff options
context:
space:
mode:
authorVittorio Giovara <vittorio.giovara@gmail.com>2015-04-07 01:47:18 +0200
committerVittorio Giovara <vittorio.giovara@gmail.com>2015-04-24 14:55:11 +0100
commiteae7338e1592f4a398b7c3cb9d1ac854b7a44ff8 (patch)
tree9f7ac03de253b56e616a83922183dd97043141e1 /libavcodec/libx264.c
parent74a1cad7e3ba79e5b1e5b2e2bcf6179520442679 (diff)
libx264: Make codec use the init-cleanup flag and mark it as init-thread-safe
This takes care of memory leaks on init error.
Diffstat (limited to 'libavcodec/libx264.c')
-rw-r--r--libavcodec/libx264.c8
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,
};