Commit 23b20b5c authored by Michael Niedermayer's avatar Michael Niedermayer

Search /usr(/local)/share for preset files as well.

This also fixed a null pointer dereference if HOME isnt set.

Originally committed as revision 13708 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 59c2959d
...@@ -3638,19 +3638,25 @@ static int opt_bsf(const char *opt, const char *arg) ...@@ -3638,19 +3638,25 @@ static int opt_bsf(const char *opt, const char *arg)
static int opt_preset(const char *opt, const char *arg) static int opt_preset(const char *opt, const char *arg)
{ {
FILE *f; FILE *f=NULL;
char tmp[100], tmp2[100]; char tmp[100], tmp2[100];
char *home= getenv("HOME"); int i;
const char *base[3]= { getenv("HOME"),
"/usr/local/share",
"/usr/share",
};
snprintf(tmp, sizeof(tmp), "%s/.ffmpeg/%s.ffpreset", home, 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"); f= fopen(tmp, "r");
if(!f){ if(!f){
char *codec_name= *opt == 'v' ? video_codec_name : char *codec_name= *opt == 'v' ? video_codec_name :
*opt == 'a' ? audio_codec_name : *opt == 'a' ? audio_codec_name :
subtitle_codec_name; subtitle_codec_name;
snprintf(tmp, sizeof(tmp), "%s/.ffmpeg/%s-%s.ffpreset", home, codec_name, arg); snprintf(tmp, sizeof(tmp), "%s/%sffmpeg/%s-%s.ffpreset", base[i], i ? "" : ".", codec_name, arg);
f= fopen(tmp, "r"); f= fopen(tmp, "r");
} }
}
if(!f){ if(!f){
fprintf(stderr, "Preset file not found\n"); fprintf(stderr, "Preset file not found\n");
......
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