diff options
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/avcodec.h | 13 | ||||
-rw-r--r-- | libavcodec/imgconvert.c | 21 |
2 files changed, 34 insertions, 0 deletions
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index df926fcd64..8880c40600 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -2615,6 +2615,19 @@ int avcodec_get_pix_fmt_loss(int dst_pix_fmt, int src_pix_fmt, 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 */ diff --git a/libavcodec/imgconvert.c b/libavcodec/imgconvert.c index b72d0ee8cf..7fe88c8344 100644 --- a/libavcodec/imgconvert.c +++ b/libavcodec/imgconvert.c @@ -378,6 +378,27 @@ enum PixelFormat avcodec_get_pix_fmt(const char* name) 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) { |