Commit 1d6666a6 authored by Stefano Sabatini's avatar Stefano Sabatini

ffserver: extend report_config_error() facilities, and use it for warnings

parent 9985710a
...@@ -4045,12 +4045,12 @@ static AVOutputFormat *ffserver_guess_format(const char *short_name, const char ...@@ -4045,12 +4045,12 @@ static AVOutputFormat *ffserver_guess_format(const char *short_name, const char
return fmt; return fmt;
} }
static void report_config_error(const char *filename, int line_num, int *errors, const char *fmt, ...) static void report_config_error(const char *filename, int line_num, int log_level, int *errors, const char *fmt, ...)
{ {
va_list vl; va_list vl;
va_start(vl, fmt); va_start(vl, fmt);
fprintf(stderr, "%s:%d: ", filename, line_num); av_log(NULL, log_level, "%s:%d: ", filename, line_num);
vfprintf(stderr, fmt, vl); av_vlog(NULL, log_level, fmt, vl);
va_end(vl); va_end(vl);
(*errors)++; (*errors)++;
...@@ -4063,7 +4063,7 @@ static int parse_ffconfig(const char *filename) ...@@ -4063,7 +4063,7 @@ static int parse_ffconfig(const char *filename)
char cmd[64]; char cmd[64];
char arg[1024], arg2[1024]; char arg[1024], arg2[1024];
const char *p; const char *p;
int val, errors, line_num; int val, errors, warnings, line_num;
FFStream **last_stream, *stream, *redirect; FFStream **last_stream, *stream, *redirect;
FFStream **last_feed, *feed, *s; FFStream **last_feed, *feed, *s;
AVCodecContext audio_enc, video_enc; AVCodecContext audio_enc, video_enc;
...@@ -4077,7 +4077,7 @@ static int parse_ffconfig(const char *filename) ...@@ -4077,7 +4077,7 @@ static int parse_ffconfig(const char *filename)
return ret; return ret;
} }
errors = 0; errors = warnings = 0;
line_num = 0; line_num = 0;
first_stream = NULL; first_stream = NULL;
last_stream = &first_stream; last_stream = &first_stream;
...@@ -4088,8 +4088,9 @@ static int parse_ffconfig(const char *filename) ...@@ -4088,8 +4088,9 @@ static int parse_ffconfig(const char *filename)
redirect = NULL; redirect = NULL;
audio_id = AV_CODEC_ID_NONE; audio_id = AV_CODEC_ID_NONE;
video_id = AV_CODEC_ID_NONE; video_id = AV_CODEC_ID_NONE;
#define ERROR(...) report_config_error(filename, line_num, AV_LOG_ERROR, &errors, __VA_ARGS__)
#define WARNING(...) report_config_error(filename, line_num, AV_LOG_WARNING, &warnings, __VA_ARGS__)
#define ERROR(...) report_config_error(filename, line_num, &errors, __VA_ARGS__)
for(;;) { for(;;) {
if (fgets(line, sizeof(line), f) == NULL) if (fgets(line, sizeof(line), f) == NULL)
break; break;
...@@ -4115,7 +4116,7 @@ static int parse_ffconfig(const char *filename) ...@@ -4115,7 +4116,7 @@ static int parse_ffconfig(const char *filename)
ERROR("%s:%d: Invalid host/IP address: %s\n", arg); ERROR("%s:%d: Invalid host/IP address: %s\n", arg);
} }
} else if (!av_strcasecmp(cmd, "NoDaemon")) { } else if (!av_strcasecmp(cmd, "NoDaemon")) {
// do nothing here, its the default now WARNING("NoDaemon option has no effect, you should remove it\n");
} else if (!av_strcasecmp(cmd, "RTSPPort")) { } else if (!av_strcasecmp(cmd, "RTSPPort")) {
get_arg(arg, sizeof(arg), &p); get_arg(arg, sizeof(arg), &p);
val = atoi(arg); val = atoi(arg);
...@@ -4237,9 +4238,8 @@ static int parse_ffconfig(const char *filename) ...@@ -4237,9 +4238,8 @@ static int parse_ffconfig(const char *filename)
if (!arg[0]) { if (!arg[0]) {
feed->truncate = 1; feed->truncate = 1;
} else { } else {
av_log(NULL, AV_LOG_WARNING, WARNING("Truncate N syntax in configuration file is deprecated, "
"Truncate N syntax in configuration file is deprecated, " "use Truncate alone with no arguments\n");
"use Truncate alone with no arguments\n");
feed->truncate = strtod(arg, NULL); feed->truncate = strtod(arg, NULL);
} }
} }
...@@ -4374,9 +4374,8 @@ static int parse_ffconfig(const char *filename) ...@@ -4374,9 +4374,8 @@ static int parse_ffconfig(const char *filename)
for (i = 0; i < strlen(cmd); i++) for (i = 0; i < strlen(cmd); i++)
key[i] = av_tolower(cmd[i]); key[i] = av_tolower(cmd[i]);
key[i] = 0; key[i] = 0;
av_log(NULL, AV_LOG_WARNING, WARNING("'%s' option in configuration file is deprecated, "
"'%s' option in configuration file is deprecated, " "use 'Metadata %s VALUE' instead\n", cmd, key);
"use 'Metadata %s VALUE' instead\n", cmd, key);
if ((ret = av_dict_set(&stream->metadata, key, arg, 0)) < 0) { if ((ret = av_dict_set(&stream->metadata, key, arg, 0)) < 0) {
ERROR("Could not set metadata '%s' to value '%s': %s\n", ERROR("Could not set metadata '%s' to value '%s': %s\n",
key, arg, av_err2str(ret)); key, arg, av_err2str(ret));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment