[FFmpeg-devel] [PATCH] ffserver_config: do not store preset name

Lukasz Marek lukasz.m.luki2 at gmail.com
Sun Nov 16 02:08:31 CET 2014


Preset are translated to AVOptions.
It is not required to reparse anymore.

Fixes CID #1254667

Signed-off-by: Lukasz Marek <lukasz.m.luki2 at gmail.com>
---
 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 d7b49ff..bc2f4db 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 57deb5b..06981de 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;
-- 
1.9.1



More information about the ffmpeg-devel mailing list