From 580fa76c5c8b4372247221a4602527a060e2d5b4 Mon Sep 17 00:00:00 2001 From: Baptiste Coudurier Date: Tue, 10 May 2011 16:40:21 -0700 Subject: Allocate per codec options, now that options are freed between inputs and outputs. --- libavcodec/libx264.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'libavcodec') diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c index 7d137a7070..838cb703e8 100644 --- a/libavcodec/libx264.c +++ b/libavcodec/libx264.c @@ -35,13 +35,13 @@ typedef struct X264Context { uint8_t *sei; int sei_size; AVFrame out_pic; - const char *preset; - const char *tune; - const char *profile; - const char *level; + char *preset; + char *tune; + char *profile; + char *level; int fastfirstpass; - const char *stats; - const char *weightp; + char *stats; + char *weightp; } X264Context; static void X264_log(void *p, int level, const char *fmt, va_list args) @@ -163,6 +163,13 @@ static av_cold int X264_close(AVCodecContext *avctx) if (x4->enc) x264_encoder_close(x4->enc); + av_free(x4->preset); + av_free(x4->tune); + av_free(x4->profile); + av_free(x4->level); + av_free(x4->stats); + av_free(x4->weightp); + return 0; } @@ -185,7 +192,7 @@ static void check_default_settings(AVCodecContext *avctx) score += x4->params.analyse.inter == 0 && x4->params.analyse.i_subpel_refine == 8; if (score >= 5) { av_log(avctx, AV_LOG_ERROR, "Default settings detected, using medium profile\n"); - x4->preset = "medium"; + x4->preset = av_strdup("medium"); if (avctx->bit_rate == 200*100) avctx->crf = 23; } -- cgit v1.2.3