Allow setting the environment variable FFMPEG_DATADIR to locate preset files.
Patch by Robert Krüger <krueger signal7 de>. Originally committed as revision 22923 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
		
				
					committed by
					
						
						Ronald S. Bultje
					
				
			
			
				
	
			
			
			
						parent
						
							bf29cbc2cc
						
					
				
				
					commit
					2328e5a289
				
			@@ -806,9 +806,9 @@ preset options identifies the preset file to use according to the
 | 
				
			|||||||
following rules:
 | 
					following rules:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
First ffmpeg searches for a file named @var{arg}.ffpreset in the
 | 
					First ffmpeg searches for a file named @var{arg}.ffpreset in the
 | 
				
			||||||
directories @file{$HOME/.ffmpeg}, and in the datadir defined at
 | 
					directories @file{$FFMPEG_DATADIR} (if set), and @file{$HOME/.ffmpeg}, and in
 | 
				
			||||||
configuration time (usually @file{PREFIX/share/ffmpeg}) in that
 | 
					the datadir defined at configuration time (usually @file{PREFIX/share/ffmpeg})
 | 
				
			||||||
order. For example, if the argument is @code{libx264-max}, it will
 | 
					in that order. For example, if the argument is @code{libx264-max}, it will
 | 
				
			||||||
search for the file @file{libx264-max.ffpreset}.
 | 
					search for the file @file{libx264-max.ffpreset}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
If no such file is found, then ffmpeg will search for a file named
 | 
					If no such file is found, then ffmpeg will search for a file named
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										11
									
								
								ffmpeg.c
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								ffmpeg.c
									
									
									
									
									
								
							@@ -3890,19 +3890,22 @@ static int opt_preset(const char *opt, const char *arg)
 | 
				
			|||||||
    FILE *f=NULL;
 | 
					    FILE *f=NULL;
 | 
				
			||||||
    char filename[1000], tmp[1000], tmp2[1000], line[1000];
 | 
					    char filename[1000], tmp[1000], tmp2[1000], line[1000];
 | 
				
			||||||
    int i;
 | 
					    int i;
 | 
				
			||||||
    const char *base[2]= { getenv("HOME"),
 | 
					    const char *base[3]= { getenv("FFMPEG_DATADIR"),
 | 
				
			||||||
 | 
					                           getenv("HOME"),
 | 
				
			||||||
                           FFMPEG_DATADIR,
 | 
					                           FFMPEG_DATADIR,
 | 
				
			||||||
                         };
 | 
					                         };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (*opt != 'f') {
 | 
					    if (*opt != 'f') {
 | 
				
			||||||
        for(i=!base[0]; i<2 && !f; i++){
 | 
					        for(i=0; i<3 && !f; i++){
 | 
				
			||||||
            snprintf(filename, sizeof(filename), "%s%s/%s.ffpreset", base[i], i ? "" : "/.ffmpeg", arg);
 | 
					            if(!base[i])
 | 
				
			||||||
 | 
					                continue;
 | 
				
			||||||
 | 
					            snprintf(filename, sizeof(filename), "%s%s/%s.ffpreset", base[i], i != 1 ? "" : "/.ffmpeg", arg);
 | 
				
			||||||
            f= fopen(filename, "r");
 | 
					            f= fopen(filename, "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(filename, sizeof(filename), "%s%s/%s-%s.ffpreset", base[i],  i ? "" : "/.ffmpeg", codec_name, arg);
 | 
					                snprintf(filename, sizeof(filename), "%s%s/%s-%s.ffpreset", base[i],  i != 1 ? "" : "/.ffmpeg", codec_name, arg);
 | 
				
			||||||
                f= fopen(filename, "r");
 | 
					                f= fopen(filename, "r");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user