mirror of
				https://git.ffmpeg.org/ffmpeg.git
				synced 2025-10-31 15:50:55 +00:00 
			
		
		
		
	dct/fft-test: use a replacement getopt() if the system has none present.
This allows compiling and running these tests on systems lacking a built- in version of getopt(), such as MSVC. Signed-off-by: Anton Khirnov <anton@khirnov.net>
This commit is contained in:
		
							parent
							
								
									183b1c2268
								
							
						
					
					
						commit
						667fb97a65
					
				
					 4 changed files with 99 additions and 0 deletions
				
			
		
							
								
								
									
										84
									
								
								compat/getopt.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								compat/getopt.c
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,84 @@ | ||||||
|  | /*
 | ||||||
|  |  * This file is part of Libav. | ||||||
|  |  * | ||||||
|  |  * Libav is free software; you can redistribute it and/or | ||||||
|  |  * modify it under the terms of the GNU Lesser General Public | ||||||
|  |  * License as published by the Free Software Foundation; either | ||||||
|  |  * version 2.1 of the License, or (at your option) any later version. | ||||||
|  |  * | ||||||
|  |  * Libav is distributed in the hope that it will be useful, | ||||||
|  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||||
|  |  * Lesser General Public License for more details. | ||||||
|  |  * | ||||||
|  |  * You should have received a copy of the GNU Lesser General Public | ||||||
|  |  * License along with Libav; if not, write to the Free Software | ||||||
|  |  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | /*
 | ||||||
|  |  * This file was copied from the following newsgroup posting: | ||||||
|  |  * | ||||||
|  |  * Newsgroups: mod.std.unix | ||||||
|  |  * Subject: public domain AT&T getopt source | ||||||
|  |  * Date: 3 Nov 85 19:34:15 GMT | ||||||
|  |  * | ||||||
|  |  * Here's something you've all been waiting for:  the AT&T public domain | ||||||
|  |  * source for getopt(3).  It is the code which was given out at the 1985 | ||||||
|  |  * UNIFORUM conference in Dallas.  I obtained it by electronic mail | ||||||
|  |  * directly from AT&T.  The people there assure me that it is indeed | ||||||
|  |  * in the public domain. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | #define EOF (-1) | ||||||
|  | 
 | ||||||
|  | static int opterr = 1; | ||||||
|  | static int optind = 1; | ||||||
|  | static int optopt; | ||||||
|  | static char *optarg; | ||||||
|  | 
 | ||||||
|  | #undef fprintf | ||||||
|  | 
 | ||||||
|  | static int getopt(int argc, char *argv[], char *opts) | ||||||
|  | { | ||||||
|  |     static int sp = 1; | ||||||
|  |     int c; | ||||||
|  |     char *cp; | ||||||
|  | 
 | ||||||
|  |     if (sp == 1) | ||||||
|  |         if (optind >= argc || | ||||||
|  |             argv[optind][0] != '-' || argv[optind][1] == '\0') | ||||||
|  |             return EOF; | ||||||
|  |         else if (!strcmp(argv[optind], "--")) { | ||||||
|  |             optind++; | ||||||
|  |             return EOF; | ||||||
|  |         } | ||||||
|  |     optopt = c = argv[optind][sp]; | ||||||
|  |     if (c == ':' || (cp = strchr(opts, c)) == NULL) { | ||||||
|  |         fprintf(stderr, ": illegal option -- %c\n", c); | ||||||
|  |         if (argv[optind][++sp] == '\0') { | ||||||
|  |             optind++; | ||||||
|  |             sp = 1; | ||||||
|  |         } | ||||||
|  |         return '?'; | ||||||
|  |     } | ||||||
|  |     if (*++cp == ':') { | ||||||
|  |         if (argv[optind][sp+1] != '\0') | ||||||
|  |             optarg = &argv[optind++][sp+1]; | ||||||
|  |         else if(++optind >= argc) { | ||||||
|  |             fprintf(stderr, ": option requires an argument -- %c\n", c); | ||||||
|  |             sp = 1; | ||||||
|  |             return '?'; | ||||||
|  |         } else | ||||||
|  |             optarg = argv[optind++]; | ||||||
|  |         sp = 1; | ||||||
|  |     } else { | ||||||
|  |         if (argv[optind][++sp] == '\0') { | ||||||
|  |             sp = 1; | ||||||
|  |             optind++; | ||||||
|  |         } | ||||||
|  |         optarg = NULL; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     return c; | ||||||
|  | } | ||||||
							
								
								
									
										2
									
								
								configure
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								configure
									
										
									
									
										vendored
									
									
								
							|  | @ -1083,6 +1083,7 @@ HAVE_LIST=" | ||||||
|     fork |     fork | ||||||
|     getaddrinfo |     getaddrinfo | ||||||
|     gethrtime |     gethrtime | ||||||
|  |     getopt | ||||||
|     GetProcessAffinityMask |     GetProcessAffinityMask | ||||||
|     GetProcessMemoryInfo |     GetProcessMemoryInfo | ||||||
|     GetProcessTimes |     GetProcessTimes | ||||||
|  | @ -2862,6 +2863,7 @@ check_func  fcntl | ||||||
| check_func  fork | check_func  fork | ||||||
| check_func  getaddrinfo $network_extralibs | check_func  getaddrinfo $network_extralibs | ||||||
| check_func  gethrtime | check_func  gethrtime | ||||||
|  | check_func  getopt | ||||||
| check_func  getrusage | check_func  getrusage | ||||||
| check_struct "sys/time.h sys/resource.h" "struct rusage" ru_maxrss | check_struct "sys/time.h sys/resource.h" "struct rusage" ru_maxrss | ||||||
| check_func  gettimeofday | check_func  gettimeofday | ||||||
|  |  | ||||||
|  | @ -25,10 +25,13 @@ | ||||||
|  * Started from sample code by Juan J. Sierralta P. |  * Started from sample code by Juan J. Sierralta P. | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
|  | #include "config.h" | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
| #include <string.h> | #include <string.h> | ||||||
|  | #if HAVE_UNISTD_H | ||||||
| #include <unistd.h> | #include <unistd.h> | ||||||
|  | #endif | ||||||
| #include <math.h> | #include <math.h> | ||||||
| 
 | 
 | ||||||
| #include "libavutil/cpu.h" | #include "libavutil/cpu.h" | ||||||
|  | @ -474,6 +477,10 @@ static void help(void) | ||||||
|            "-t          speed test\n"); |            "-t          speed test\n"); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | #if !HAVE_GETOPT | ||||||
|  | #include "compat/getopt.c" | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
| int main(int argc, char **argv) | int main(int argc, char **argv) | ||||||
| { | { | ||||||
|     int test_idct = 0, test_248_dct = 0; |     int test_idct = 0, test_248_dct = 0; | ||||||
|  |  | ||||||
|  | @ -34,7 +34,9 @@ | ||||||
| #include "rdft.h" | #include "rdft.h" | ||||||
| #endif | #endif | ||||||
| #include <math.h> | #include <math.h> | ||||||
|  | #if HAVE_UNISTD_H | ||||||
| #include <unistd.h> | #include <unistd.h> | ||||||
|  | #endif | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
| #include <string.h> | #include <string.h> | ||||||
| 
 | 
 | ||||||
|  | @ -229,6 +231,10 @@ enum tf_transform { | ||||||
|     TRANSFORM_DCT, |     TRANSFORM_DCT, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  | #if !HAVE_GETOPT | ||||||
|  | #include "compat/getopt.c" | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
| int main(int argc, char **argv) | int main(int argc, char **argv) | ||||||
| { | { | ||||||
|     FFTComplex *tab, *tab1, *tab_ref; |     FFTComplex *tab, *tab1, *tab_ref; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Ronald S. Bultje
						Ronald S. Bultje