diff --git a/ffserver_config.c b/ffserver_config.c index d7b49ff5bf567ef3a46cfbeb5ff1503598000f5d..bc2f4dbb2f88d60ca33f41943f20d62829d66f56 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 57deb5b271c2534d2e42ac87d737e68c1cc5c9dd..06981de7465bc53eea5e3b2edc79aebc8f5ed2bc 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;