Mercurial > libavcodec.hg
changeset 5084:9930b7031cb2 libavcodec
Add support for listing the supported pixel formats using the option
-pix_fmt list
patch by Stefano Sabatini stefano sabatini minus lala chez poste it
original thread: [FFmpeg-devel] [PATCH] List supported pixel formats
date: 05/25/2007 05:46 PM
author | benoit |
---|---|
date | Wed, 30 May 2007 14:20:55 +0000 |
parents | ce36118abbbb |
children | 81bbca75ae2f |
files | avcodec.h imgconvert.c |
diffstat | 2 files changed, 34 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/avcodec.h Wed May 30 09:32:25 2007 +0000 +++ b/avcodec.h Wed May 30 14:20:55 2007 +0000 @@ -2615,6 +2615,19 @@ int avcodec_find_best_pix_fmt(int pix_fmt_mask, int src_pix_fmt, int has_alpha, int *loss_ptr); + +/** + * Print in buf the string corresponding to the pixel format with + * number pix_fmt, or an header if pix_fmt is negative. + * + * @param buf[in] the buffer where to write the string + * @param buf_size[in] the size of buf + * @param pix_fmt[in] the number of the pixel format to print the corresponding info string, or + * a negative value to print the corresponding header. + * Meaningful values for obtaining a pixel format info vary from 0 to PIX_FMT_NB -1. + */ +void avcodec_pix_fmt_string (char *buf, int buf_size, int pix_fmt); + #define FF_ALPHA_TRANSP 0x0001 /* image has some totally transparent pixels */ #define FF_ALPHA_SEMI_TRANSP 0x0002 /* image has some transparent pixels */
--- a/imgconvert.c Wed May 30 09:32:25 2007 +0000 +++ b/imgconvert.c Wed May 30 14:20:55 2007 +0000 @@ -378,6 +378,27 @@ return i; } +void avcodec_pix_fmt_string (char *buf, int buf_size, int pix_fmt) +{ + PixFmtInfo info= pix_fmt_info[pix_fmt]; + + char is_alpha_char= info.is_alpha ? 'y' : 'n'; + + /* print header */ + if (pix_fmt < 0) + snprintf (buf, buf_size, + "name " " nb_channels" " depth" " is_alpha" + ); + else + snprintf (buf, buf_size, + "%-10s" " %1d " " %2d " " %c ", + info.name, + info.nb_channels, + info.depth, + is_alpha_char + ); +} + int avpicture_fill(AVPicture *picture, uint8_t *ptr, int pix_fmt, int width, int height) {