ffserver_config: do not store preset name
authorLukasz Marek <lukasz.m.luki2@gmail.com>
Sat, 15 Nov 2014 01:21:04 +0000 (02:21 +0100)
committerLukasz Marek <lukasz.m.luki2@gmail.com>
Sun, 16 Nov 2014 23:27:25 +0000 (00:27 +0100)
Preset are translated to AVOptions.
It is not required to reparse anymore.

Fixes CID #1254667

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
ffserver_config.c
ffserver_config.h

index d7b49ff..bc2f4db 100644 (file)
@@ -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);
index 57deb5b..06981de 100644 (file)
@@ -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;