summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
authorStefano Sabatini <stefano.sabatini-lala@poste.it>2007-05-30 14:20:55 +0000
committerBenoit Fouet <benoit.fouet@free.fr>2007-05-30 14:20:55 +0000
commitc3b95b1d3d506da97faa83b5a866ca605cb57316 (patch)
tree7d136740f20f4c2bb51001d73b5c53a82aff50c1 /libavcodec
parent808d83fd33c2c58d66f086fca689b9d6d46c5f2f (diff)
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 Originally committed as revision 9162 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/avcodec.h13
-rw-r--r--libavcodec/imgconvert.c21
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)
{