You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	avprobe: restore pseudo-INI old style format for compatibility.
This commit is contained in:
		| @@ -21,7 +21,8 @@ version <next>: | ||||
| - add fps filter | ||||
| - audio split filter | ||||
| - audio mix filter | ||||
| - avprobe output is now standard INI or JSON. | ||||
| - avprobe output is now standard INI or JSON. The old format can still | ||||
|   be used with -of old. | ||||
|  | ||||
| version 0.8: | ||||
|  | ||||
|   | ||||
							
								
								
									
										50
									
								
								avprobe.c
									
									
									
									
									
								
							
							
						
						
									
										50
									
								
								avprobe.c
									
									
									
									
									
								
							| @@ -280,6 +280,50 @@ static void json_print_string(const char *key, const char *value) | ||||
|     avio_w8(probe_out, '\"'); | ||||
| } | ||||
|  | ||||
| /* | ||||
|  * old-style pseudo-INI | ||||
|  */ | ||||
| static void old_print_object_header(const char *name) | ||||
| { | ||||
|     char *str, *p; | ||||
|  | ||||
|     if (!strcmp(name, "tags")) | ||||
|         return; | ||||
|  | ||||
|     str = p = av_strdup(name); | ||||
|     while (*p) { | ||||
|         *p = toupper(*p); | ||||
|         p++; | ||||
|     } | ||||
|  | ||||
|     avio_printf(probe_out, "[%s]\n", str); | ||||
|     av_freep(&str); | ||||
| } | ||||
|  | ||||
| static void old_print_object_footer(const char *name) | ||||
| { | ||||
|     char *str, *p; | ||||
|  | ||||
|     if (!strcmp(name, "tags")) | ||||
|         return; | ||||
|  | ||||
|     str = p = av_strdup(name); | ||||
|     while (*p) { | ||||
|         *p = toupper(*p); | ||||
|         p++; | ||||
|     } | ||||
|  | ||||
|     avio_printf(probe_out, "[/%s]\n", str); | ||||
|     av_freep(&str); | ||||
| } | ||||
|  | ||||
| static void old_print_string(const char *key, const char *value) | ||||
| { | ||||
|     if (!strcmp(octx.prefix[octx.level - 1].name, "tags")) | ||||
|         avio_printf(probe_out, "TAG:"); | ||||
|     ini_print_string(key, value); | ||||
| } | ||||
|  | ||||
| /* | ||||
|  * Simple Formatter for single entries. | ||||
|  */ | ||||
| @@ -783,6 +827,12 @@ static int opt_output_format(const char *opt, const char *arg) | ||||
|  | ||||
|         print_integer = ini_print_integer; | ||||
|         print_string  = ini_print_string; | ||||
|     } else if (!strcmp(arg, "old")) { | ||||
|         print_header        = NULL; | ||||
|         print_object_header = old_print_object_header; | ||||
|         print_object_footer = old_print_object_footer; | ||||
|  | ||||
|         print_string        = old_print_string; | ||||
|     } else { | ||||
|         av_log(NULL, AV_LOG_ERROR, "Unsupported formatter %s\n", arg); | ||||
|         return AVERROR(EINVAL); | ||||
|   | ||||
| @@ -59,8 +59,17 @@ parsers. | ||||
| Force format to use. | ||||
|  | ||||
| @item -of @var{formatter} | ||||
| Use a specific formatter to output the document, either @var{ini} or | ||||
| @var{json} available. | ||||
| Use a specific formatter to output the document. The following | ||||
| formatters are available | ||||
| @table @option | ||||
| @item ini | ||||
|  | ||||
| @item json | ||||
|  | ||||
| @item old | ||||
| Pseudo-INI format that used to be the only one available in old | ||||
| avprobe versions. | ||||
| @end table | ||||
|  | ||||
| @item -unit | ||||
| Show the unit of the displayed values. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user