[FFmpeg-devel] [PATCH 2/4] ffserver_config: drop presets support
Lukasz Marek
lukasz.m.luki2 at gmail.com
Sat Nov 1 03:00:53 CET 2014
Signed-off-by: Lukasz Marek <lukasz.m.luki2 at gmail.com>
---
ffserver_config.c | 80 +------------------------------------------------------
ffserver_config.h | 2 --
2 files changed, 1 insertion(+), 81 deletions(-)
diff --git a/ffserver_config.c b/ffserver_config.c
index f11db03..6989bd8 100644
--- a/ffserver_config.c
+++ b/ffserver_config.c
@@ -252,61 +252,6 @@ static enum AVCodecID opt_codec(const char *name, enum AVMediaType type)
return codec->id;
}
-static int ffserver_opt_default(const char *opt, const char *arg,
- AVCodecContext *avctx, int type)
-{
- int ret = 0;
- const AVOption *o = av_opt_find(avctx, opt, NULL, type, 0);
- if(o)
- ret = av_opt_set(avctx, opt, arg, 0);
- return ret;
-}
-
-static int ffserver_opt_preset(const char *arg,
- AVCodecContext *avctx, int type,
- enum AVCodecID *audio_id, enum AVCodecID *video_id)
-{
- FILE *f=NULL;
- char filename[1000], tmp[1000], tmp2[1000], line[1000];
- int ret = 0;
- AVCodec *codec = NULL;
-
- if (avctx)
- codec = avcodec_find_encoder(avctx->codec_id);
-
- if (!(f = get_preset_file(filename, sizeof(filename), arg, 0,
- codec ? codec->name : NULL))) {
- fprintf(stderr, "File for preset '%s' not found\n", arg);
- return AVERROR(EINVAL);
- }
-
- while(!feof(f)){
- int e= fscanf(f, "%999[^\n]\n", line) - 1;
- if(line[0] == '#' && !e)
- continue;
- e|= sscanf(line, "%999[^=]=%999[^\n]\n", tmp, tmp2) - 2;
- if(e){
- fprintf(stderr, "%s: Invalid syntax: '%s'\n", filename, line);
- ret = AVERROR(EINVAL);
- break;
- }
- if (audio_id && !strcmp(tmp, "acodec")) {
- *audio_id = opt_codec(tmp2, AVMEDIA_TYPE_AUDIO);
- } else if (video_id && !strcmp(tmp, "vcodec")){
- *video_id = opt_codec(tmp2, AVMEDIA_TYPE_VIDEO);
- } else if(!strcmp(tmp, "scodec")) {
- /* opt_subtitle_codec(tmp2); */
- } else if (avctx && (ret = ffserver_opt_default(tmp, tmp2, avctx, type)) < 0) {
- fprintf(stderr, "%s: Invalid option or argument: '%s', parsed as '%s' = '%s'\n", filename, line, tmp, tmp2);
- break;
- }
- }
-
- fclose(f);
-
- return ret;
-}
-
static AVOutputFormat *ffserver_guess_format(const char *short_name, const char *filename, const char *mime_type)
{
AVOutputFormat *fmt = av_guess_format(short_name, filename, mime_type);
@@ -867,18 +812,7 @@ 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;
- ffserver_opt_preset(arg, NULL, 0, NULL, &config->video_id);
- } else {
- preset = &config->audio_preset;
- ffserver_opt_preset(arg, NULL, 0, &config->audio_id, NULL);
- }
- *preset = av_strdup(arg);
- if (!preset)
- return AVERROR(ENOMEM);
+ WARNING("Preset options have no effect, you should remove it\n");
} else if (!av_strcasecmp(cmd, "VideoTag")) {
ffserver_get_arg(arg, sizeof(arg), p);
if (strlen(arg) == 4) {
@@ -953,20 +887,12 @@ static int ffserver_parse_config_stream(FFServerConfig *config, const char *cmd,
if (stream->feed && stream->fmt && strcmp(stream->fmt->name, "ffm") != 0) {
if (config->audio_id != AV_CODEC_ID_NONE) {
AVCodecContext *audio_enc = avcodec_alloc_context3(avcodec_find_encoder(config->audio_id));
- if (config->audio_preset &&
- ffserver_opt_preset(arg, audio_enc, AV_OPT_FLAG_AUDIO_PARAM|AV_OPT_FLAG_ENCODING_PARAM,
- NULL, NULL) < 0)
- ERROR("Could not apply preset '%s'\n", arg);
if (ffserver_apply_stream_config(audio_enc, config->audio_conf, &config->audio_opts) < 0)
config->errors++;
add_codec(stream, audio_enc);
}
if (config->video_id != AV_CODEC_ID_NONE) {
AVCodecContext *video_enc = avcodec_alloc_context3(avcodec_find_encoder(config->video_id));
- if (config->video_preset &&
- ffserver_opt_preset(arg, video_enc, AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_ENCODING_PARAM,
- NULL, NULL) < 0)
- ERROR("Could not apply preset '%s'\n", arg);
if (ffserver_apply_stream_config(video_enc, config->video_conf, &config->video_opts) < 0)
config->errors++;
add_codec(stream, video_enc);
@@ -976,8 +902,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);
*pstream = NULL;
} else if (!av_strcasecmp(cmd, "File") || !av_strcasecmp(cmd, "ReadOnlyFile")) {
ffserver_get_arg(stream->feed_filename, sizeof(stream->feed_filename), p);
@@ -991,8 +915,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);
return AVERROR(ENOMEM);
}
diff --git a/ffserver_config.h b/ffserver_config.h
index ac75b06..f29f07f 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;
} FFServerConfig;
void ffserver_get_arg(char *buf, int buf_size, const char **pp);
--
1.9.1
More information about the ffmpeg-devel
mailing list