| 
																	
																	
																		
																	
																	
																 | 
																@@ -172,3 +172,99 @@ unsigned int avcodec_pix_fmt_to_codec_tag(enum PixelFormat fmt) | 
															
														
														
													
														
															
																 | 
																 | 
																    } | 
																 | 
																 | 
																    } | 
															
														
														
													
														
															
																 | 
																 | 
																    return 0; | 
																 | 
																 | 
																    return 0; | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																#ifdef TEST | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																#include <unistd.h>             /* getopt */ | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																#include "libavutil/pixdesc.h" | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																#undef printf | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																#undef fprintf | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																static void usage(void) | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																{ | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    printf("\n" | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																           "Options:\n" | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																           "-l                list the pixel format for each fourcc\n" | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																           "-L                list the fourccs for each pixel format\n" | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																           "-p PIX_FMT        given a pixel format, print the list of associated fourccs\n" | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																           "-h                print this help\n"); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																static void print_pix_fmt_fourccs(enum PixelFormat pix_fmt, char sep) | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																{ | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    int i; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    for (i = 0; i < FF_ARRAY_ELEMS(ff_raw_pix_fmt_tags); i++) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        if (ff_raw_pix_fmt_tags[i].pix_fmt == pix_fmt) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            char buf[32]; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            av_get_codec_tag_string(buf, sizeof(buf), ff_raw_pix_fmt_tags[i].fourcc); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            printf("%s%c", buf, sep); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        } | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    } | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																int main(int argc, char **argv) | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																{ | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    int i, list_fourcc_pix_fmt = 0, list_pix_fmt_fourccs = 0; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    const char *pix_fmt_name = NULL; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    char c; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    if (argc == 1) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        usage(); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        return 0; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    } | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    while ((c = getopt(argc, argv, "hp:lL")) != -1) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        switch (c) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case 'h': | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            usage(); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            return 0; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case 'l': | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            list_fourcc_pix_fmt = 1; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case 'L': | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            list_pix_fmt_fourccs = 1; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case 'p': | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            pix_fmt_name = optarg; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        case '?': | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            usage(); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            return 1; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        } | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    } | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    if (list_fourcc_pix_fmt) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        /* print a list of pixel format / fourcc */ | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        for (i = 0; i < FF_ARRAY_ELEMS(ff_raw_pix_fmt_tags); i++) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            char buf[32]; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            av_get_codec_tag_string(buf, sizeof(buf), ff_raw_pix_fmt_tags[i].fourcc); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            if (ff_raw_pix_fmt_tags[i].pix_fmt != PIX_FMT_NONE) | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                printf("%s: %s\n", av_get_pix_fmt_name(ff_raw_pix_fmt_tags[i].pix_fmt), buf); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        } | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    } | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    if (list_pix_fmt_fourccs) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        for (i = 0; i < PIX_FMT_NB; i++) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            const AVPixFmtDescriptor *pix_desc = &av_pix_fmt_descriptors[i]; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            if (!pix_desc->name || pix_desc->flags & PIX_FMT_HWACCEL) | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                continue; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            printf("%s: ", pix_desc->name); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            print_pix_fmt_fourccs(i, ' '); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            printf("\n"); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        } | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    } | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    if (pix_fmt_name) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        enum PixelFormat pix_fmt = av_get_pix_fmt(pix_fmt_name); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        if (pix_fmt == PIX_FMT_NONE) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            fprintf(stderr, "Invalid pixel format selected '%s'\n", pix_fmt_name); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            return 1; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        } | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        print_pix_fmt_fourccs(pix_fmt, '\n'); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    } | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    return 0; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																#endif |