From 1a054bd18767a58e602897c57f72f2c630f9ddcd Mon Sep 17 00:00:00 2001 From: Lukasz Marek Date: Sat, 15 Nov 2014 02:21:04 +0100 Subject: [PATCH] ffserver_config: do not store preset name Preset are translated to AVOptions. It is not required to reparse anymore. Fixes CID #1254667 Signed-off-by: Lukasz Marek --- ffserver_config.c | 15 ++------------- ffserver_config.h | 2 -- 2 files changed, 2 insertions(+), 15 deletions(-) diff --git a/ffserver_config.c b/ffserver_config.c index d7b49ff5bf..bc2f4dbb2f 100644 --- a/ffserver_config.c +++ b/ffserver_config.c @@ -1017,18 +1017,11 @@ static int ffserver_parse_config_stream(FFServerConfig *config, const char *cmd, goto nomem; } else if (!av_strcasecmp(cmd, "AVPresetVideo") || !av_strcasecmp(cmd, "AVPresetAudio")) { - char **preset = NULL; ffserver_get_arg(arg, sizeof(arg), p); - if (!av_strcasecmp(cmd, "AVPresetVideo")) { - preset = &config->video_preset; + if (!av_strcasecmp(cmd, "AVPresetVideo")) ffserver_opt_preset(arg, config->dummy_vctx, config, line_num); - } else { - preset = &config->audio_preset; + else ffserver_opt_preset(arg, config->dummy_actx, config, line_num); - } - *preset = av_strdup(arg); - if (!preset) - return AVERROR(ENOMEM); } else if (!av_strcasecmp(cmd, "VideoTag")) { ffserver_get_arg(arg, sizeof(arg), p); if (strlen(arg) == 4) { @@ -1130,8 +1123,6 @@ static int ffserver_parse_config_stream(FFServerConfig *config, const char *cmd, av_dict_free(&config->video_conf); av_dict_free(&config->audio_opts); av_dict_free(&config->audio_conf); - av_freep(&config->video_preset); - av_freep(&config->audio_preset); avcodec_free_context(&config->dummy_vctx); avcodec_free_context(&config->dummy_actx); *pstream = NULL; @@ -1148,8 +1139,6 @@ static int ffserver_parse_config_stream(FFServerConfig *config, const char *cmd, av_dict_free(&config->video_conf); av_dict_free(&config->audio_opts); av_dict_free(&config->audio_conf); - av_freep(&config->video_preset); - av_freep(&config->audio_preset); avcodec_free_context(&config->dummy_vctx); avcodec_free_context(&config->dummy_actx); return AVERROR(ENOMEM); diff --git a/ffserver_config.h b/ffserver_config.h index 57deb5b271..06981de746 100644 --- a/ffserver_config.h +++ b/ffserver_config.h @@ -113,8 +113,6 @@ typedef struct FFServerConfig { AVDictionary *video_conf; /* Values stored in video AVCodecContext.fields */ AVDictionary *audio_opts; /* AVOptions for audio encoder */ AVDictionary *audio_conf; /* Values stored in audio AVCodecContext.fields */ - char *video_preset; - char *audio_preset; AVCodecContext *dummy_actx; /* Used internally to test audio AVOptions. */ AVCodecContext *dummy_vctx; /* Used internally to test video AVOptions. */ int no_audio;