Provide more context to the opt_preset() error messages, printing the

name of the preset file where the error occurred.

Originally committed as revision 15637 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Stefano Sabatini 2008-10-18 18:42:20 +00:00
parent b73533176b
commit 70899705ee

View File

@ -3667,7 +3667,7 @@ static int opt_bsf(const char *opt, const char *arg)
static int opt_preset(const char *opt, const char *arg)
{
FILE *f=NULL;
char tmp[1000], tmp2[1000], line[1000];
char filename[1000], tmp[1000], tmp2[1000], line[1000];
int i;
const char *base[3]= { getenv("HOME"),
"/usr/local/share",
@ -3675,19 +3675,20 @@ static int opt_preset(const char *opt, const char *arg)
};
for(i=!base[0]; i<3 && !f; i++){
snprintf(tmp, sizeof(tmp), "%s/%sffmpeg/%s.ffpreset", base[i], i ? "" : ".", arg);
f= fopen(tmp, "r");
snprintf(filename, sizeof(filename), "%s/%sffmpeg/%s.ffpreset", base[i], i ? "" : ".", arg);
f= fopen(filename, "r");
if(!f){
char *codec_name= *opt == 'v' ? video_codec_name :
*opt == 'a' ? audio_codec_name :
subtitle_codec_name;
snprintf(tmp, sizeof(tmp), "%s/%sffmpeg/%s-%s.ffpreset", base[i], i ? "" : ".", codec_name, arg);
f= fopen(tmp, "r");
snprintf(filename, sizeof(filename), "%s/%sffmpeg/%s-%s.ffpreset", base[i], i ? "" : ".", codec_name, arg);
f= fopen(filename, "r");
}
}
if(!f && ((arg[0]=='.' && arg[1]=='/') || arg[0]=='/' ||
is_dos_path(arg))){
f= fopen(arg, "r");
snprintf(filename, sizeof(filename), arg);
f= fopen(filename, "r");
}
if(!f){
@ -3701,7 +3702,7 @@ static int opt_preset(const char *opt, const char *arg)
continue;
e|= sscanf(line, "%999[^=]=%999[^\n]\n", tmp, tmp2) - 2;
if(e){
fprintf(stderr, "Preset file invalid\n");
fprintf(stderr, "%s: Preset file invalid\n", filename);
av_exit(1);
}
if(!strcmp(tmp, "acodec")){
@ -3711,7 +3712,7 @@ static int opt_preset(const char *opt, const char *arg)
}else if(!strcmp(tmp, "scodec")){
opt_subtitle_codec(tmp2);
}else if(opt_default(tmp, tmp2) < 0){
fprintf(stderr, "Invalid option or argument: %s=%s\n", tmp, tmp2);
fprintf(stderr, "%s: Invalid option or argument: %s=%s\n", filename, tmp, tmp2);
av_exit(1);
}
}