You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	Move show_formats() to cmdutils.c.
Patch by: Stefano Sabatini, stefano.sabatini-lala poste it Originally committed as revision 13236 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
		
				
					committed by
					
						 Panagiotis Issaris
						Panagiotis Issaris
					
				
			
			
				
	
			
			
			
						parent
						
							8fdea2042e
						
					
				
				
					commit
					ba9880c13a
				
			
							
								
								
									
										123
									
								
								cmdutils.c
									
									
									
									
									
								
							
							
						
						
									
										123
									
								
								cmdutils.c
									
									
									
									
									
								
							| @@ -267,3 +267,126 @@ void show_license(void) | ||||
|     ); | ||||
| #endif | ||||
| } | ||||
|  | ||||
| void show_formats(void) | ||||
| { | ||||
|     AVInputFormat *ifmt=NULL; | ||||
|     AVOutputFormat *ofmt=NULL; | ||||
|     URLProtocol *up=NULL; | ||||
|     AVCodec *p=NULL, *p2; | ||||
|     AVBitStreamFilter *bsf=NULL; | ||||
|     const char *last_name; | ||||
|  | ||||
|     printf("File formats:\n"); | ||||
|     last_name= "000"; | ||||
|     for(;;){ | ||||
|         int decode=0; | ||||
|         int encode=0; | ||||
|         const char *name=NULL; | ||||
|         const char *long_name=NULL; | ||||
|  | ||||
|         while((ofmt= av_oformat_next(ofmt))) { | ||||
|             if((name == NULL || strcmp(ofmt->name, name)<0) && | ||||
|                 strcmp(ofmt->name, last_name)>0){ | ||||
|                 name= ofmt->name; | ||||
|                 long_name= ofmt->long_name; | ||||
|                 encode=1; | ||||
|             } | ||||
|         } | ||||
|         while((ifmt= av_iformat_next(ifmt))) { | ||||
|             if((name == NULL || strcmp(ifmt->name, name)<0) && | ||||
|                 strcmp(ifmt->name, last_name)>0){ | ||||
|                 name= ifmt->name; | ||||
|                 long_name= ifmt->long_name; | ||||
|                 encode=0; | ||||
|             } | ||||
|             if(name && strcmp(ifmt->name, name)==0) | ||||
|                 decode=1; | ||||
|         } | ||||
|         if(name==NULL) | ||||
|             break; | ||||
|         last_name= name; | ||||
|  | ||||
|         printf( | ||||
|             " %s%s %-15s %s\n", | ||||
|             decode ? "D":" ", | ||||
|             encode ? "E":" ", | ||||
|             name, | ||||
|             long_name ? long_name:" "); | ||||
|     } | ||||
|     printf("\n"); | ||||
|  | ||||
|     printf("Codecs:\n"); | ||||
|     last_name= "000"; | ||||
|     for(;;){ | ||||
|         int decode=0; | ||||
|         int encode=0; | ||||
|         int cap=0; | ||||
|         const char *type_str; | ||||
|  | ||||
|         p2=NULL; | ||||
|         while((p= av_codec_next(p))) { | ||||
|             if((p2==NULL || strcmp(p->name, p2->name)<0) && | ||||
|                 strcmp(p->name, last_name)>0){ | ||||
|                 p2= p; | ||||
|                 decode= encode= cap=0; | ||||
|             } | ||||
|             if(p2 && strcmp(p->name, p2->name)==0){ | ||||
|                 if(p->decode) decode=1; | ||||
|                 if(p->encode) encode=1; | ||||
|                 cap |= p->capabilities; | ||||
|             } | ||||
|         } | ||||
|         if(p2==NULL) | ||||
|             break; | ||||
|         last_name= p2->name; | ||||
|  | ||||
|         switch(p2->type) { | ||||
|         case CODEC_TYPE_VIDEO: | ||||
|             type_str = "V"; | ||||
|             break; | ||||
|         case CODEC_TYPE_AUDIO: | ||||
|             type_str = "A"; | ||||
|             break; | ||||
|         case CODEC_TYPE_SUBTITLE: | ||||
|             type_str = "S"; | ||||
|             break; | ||||
|         default: | ||||
|             type_str = "?"; | ||||
|             break; | ||||
|         } | ||||
|         printf( | ||||
|             " %s%s%s%s%s%s %-15s %s", | ||||
|             decode ? "D": (/*p2->decoder ? "d":*/" "), | ||||
|             encode ? "E":" ", | ||||
|             type_str, | ||||
|             cap & CODEC_CAP_DRAW_HORIZ_BAND ? "S":" ", | ||||
|             cap & CODEC_CAP_DR1 ? "D":" ", | ||||
|             cap & CODEC_CAP_TRUNCATED ? "T":" ", | ||||
|             p2->name, | ||||
|             p2->long_name ? p2->long_name : ""); | ||||
|        /* if(p2->decoder && decode==0) | ||||
|             printf(" use %s for decoding", p2->decoder->name);*/ | ||||
|         printf("\n"); | ||||
|     } | ||||
|     printf("\n"); | ||||
|  | ||||
|     printf("Bitstream filters:\n"); | ||||
|     while((bsf = av_bitstream_filter_next(bsf))) | ||||
|         printf(" %s", bsf->name); | ||||
|     printf("\n"); | ||||
|  | ||||
|     printf("Supported file protocols:\n"); | ||||
|     while((up = av_protocol_next(up))) | ||||
|         printf(" %s:", up->name); | ||||
|     printf("\n"); | ||||
|  | ||||
|     printf("Frame size, frame rate abbreviations:\n ntsc pal qntsc qpal sntsc spal film ntsc-film sqcif qcif cif 4cif\n"); | ||||
|     printf("\n"); | ||||
|     printf( | ||||
| "Note, the names of encoders and decoders do not always match, so there are\n" | ||||
| "several cases where the above table shows encoder only or decoder only entries\n" | ||||
| "even though both encoding and decoding are supported. For example, the h263\n" | ||||
| "decoder corresponds to the h263 and h263p encoders, for file formats it is even\n" | ||||
| "worse.\n"); | ||||
| } | ||||
|   | ||||
| @@ -126,4 +126,10 @@ void show_version(void); | ||||
|  */ | ||||
| void show_license(void); | ||||
|  | ||||
| /** | ||||
|  * Prints a listing containing all the formats supported by the | ||||
|  * program. | ||||
|  */ | ||||
| void show_formats(void); | ||||
|  | ||||
| #endif /* FFMPEG_CMDUTILS_H */ | ||||
|   | ||||
							
								
								
									
										125
									
								
								ffmpeg.c
									
									
									
									
									
								
							
							
						
						
									
										125
									
								
								ffmpeg.c
									
									
									
									
									
								
							| @@ -3378,129 +3378,6 @@ static int64_t getutime(void) | ||||
| #endif | ||||
| } | ||||
|  | ||||
| static void opt_show_formats(void) | ||||
| { | ||||
|     AVInputFormat *ifmt=NULL; | ||||
|     AVOutputFormat *ofmt=NULL; | ||||
|     URLProtocol *up=NULL; | ||||
|     AVCodec *p=NULL, *p2; | ||||
|     AVBitStreamFilter *bsf=NULL; | ||||
|     const char *last_name; | ||||
|  | ||||
|     printf("File formats:\n"); | ||||
|     last_name= "000"; | ||||
|     for(;;){ | ||||
|         int decode=0; | ||||
|         int encode=0; | ||||
|         const char *name=NULL; | ||||
|         const char *long_name=NULL; | ||||
|  | ||||
|         while((ofmt= av_oformat_next(ofmt))) { | ||||
|             if((name == NULL || strcmp(ofmt->name, name)<0) && | ||||
|                 strcmp(ofmt->name, last_name)>0){ | ||||
|                 name= ofmt->name; | ||||
|                 long_name= ofmt->long_name; | ||||
|                 encode=1; | ||||
|             } | ||||
|         } | ||||
|         while((ifmt= av_iformat_next(ifmt))) { | ||||
|             if((name == NULL || strcmp(ifmt->name, name)<0) && | ||||
|                 strcmp(ifmt->name, last_name)>0){ | ||||
|                 name= ifmt->name; | ||||
|                 long_name= ifmt->long_name; | ||||
|                 encode=0; | ||||
|             } | ||||
|             if(name && strcmp(ifmt->name, name)==0) | ||||
|                 decode=1; | ||||
|         } | ||||
|         if(name==NULL) | ||||
|             break; | ||||
|         last_name= name; | ||||
|  | ||||
|         printf( | ||||
|             " %s%s %-15s %s\n", | ||||
|             decode ? "D":" ", | ||||
|             encode ? "E":" ", | ||||
|             name, | ||||
|             long_name ? long_name:" "); | ||||
|     } | ||||
|     printf("\n"); | ||||
|  | ||||
|     printf("Codecs:\n"); | ||||
|     last_name= "000"; | ||||
|     for(;;){ | ||||
|         int decode=0; | ||||
|         int encode=0; | ||||
|         int cap=0; | ||||
|         const char *type_str; | ||||
|  | ||||
|         p2=NULL; | ||||
|         while((p= av_codec_next(p))) { | ||||
|             if((p2==NULL || strcmp(p->name, p2->name)<0) && | ||||
|                 strcmp(p->name, last_name)>0){ | ||||
|                 p2= p; | ||||
|                 decode= encode= cap=0; | ||||
|             } | ||||
|             if(p2 && strcmp(p->name, p2->name)==0){ | ||||
|                 if(p->decode) decode=1; | ||||
|                 if(p->encode) encode=1; | ||||
|                 cap |= p->capabilities; | ||||
|             } | ||||
|         } | ||||
|         if(p2==NULL) | ||||
|             break; | ||||
|         last_name= p2->name; | ||||
|  | ||||
|         switch(p2->type) { | ||||
|         case CODEC_TYPE_VIDEO: | ||||
|             type_str = "V"; | ||||
|             break; | ||||
|         case CODEC_TYPE_AUDIO: | ||||
|             type_str = "A"; | ||||
|             break; | ||||
|         case CODEC_TYPE_SUBTITLE: | ||||
|             type_str = "S"; | ||||
|             break; | ||||
|         default: | ||||
|             type_str = "?"; | ||||
|             break; | ||||
|         } | ||||
|         printf( | ||||
|             " %s%s%s%s%s%s %-15s %s", | ||||
|             decode ? "D": (/*p2->decoder ? "d":*/" "), | ||||
|             encode ? "E":" ", | ||||
|             type_str, | ||||
|             cap & CODEC_CAP_DRAW_HORIZ_BAND ? "S":" ", | ||||
|             cap & CODEC_CAP_DR1 ? "D":" ", | ||||
|             cap & CODEC_CAP_TRUNCATED ? "T":" ", | ||||
|             p2->name, | ||||
|             p2->long_name ? p2->long_name : ""); | ||||
|        /* if(p2->decoder && decode==0) | ||||
|             printf(" use %s for decoding", p2->decoder->name);*/ | ||||
|         printf("\n"); | ||||
|     } | ||||
|     printf("\n"); | ||||
|  | ||||
|     printf("Bitstream filters:\n"); | ||||
|     while((bsf = av_bitstream_filter_next(bsf))) | ||||
|         printf(" %s", bsf->name); | ||||
|     printf("\n"); | ||||
|  | ||||
|     printf("Supported file protocols:\n"); | ||||
|     while((up = av_protocol_next(up))) | ||||
|         printf(" %s:", up->name); | ||||
|     printf("\n"); | ||||
|  | ||||
|     printf("Frame size, frame rate abbreviations:\n ntsc pal qntsc qpal sntsc spal film ntsc-film sqcif qcif cif 4cif\n"); | ||||
|     printf("\n"); | ||||
|     printf( | ||||
| "Note, the names of encoders and decoders do not always match, so there are\n" | ||||
| "several cases where the above table shows encoder only or decoder only entries\n" | ||||
| "even though both encoding and decoding are supported. For example, the h263\n" | ||||
| "decoder corresponds to the h263 and h263p encoders, for file formats it is even\n" | ||||
| "worse.\n"); | ||||
| } | ||||
|  | ||||
| static void parse_matrix_coeffs(uint16_t *dest, const char *str) | ||||
| { | ||||
|     int i; | ||||
| @@ -3761,7 +3638,7 @@ static const OptionDef options[] = { | ||||
|     { "L", OPT_EXIT, {(void*)show_license}, "show license" }, | ||||
|     { "h", OPT_EXIT, {(void*)show_help}, "show help" }, | ||||
|     { "version", OPT_EXIT, {(void*)show_version}, "show version" }, | ||||
|     { "formats", OPT_EXIT, {(void*)opt_show_formats}, "show available formats, codecs, protocols, ..." }, | ||||
|     { "formats", OPT_EXIT, {(void*)show_formats}, "show available formats, codecs, protocols, ..." }, | ||||
|     { "f", HAS_ARG, {(void*)opt_format}, "force format", "fmt" }, | ||||
|     { "i", HAS_ARG, {(void*)opt_input_file}, "input file name", "filename" }, | ||||
|     { "y", OPT_BOOL, {(void*)&file_overwrite}, "overwrite output files" }, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user