aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBaptiste Coudurier <baptiste.coudurier@gmail.com>2011-05-08 14:06:04 +0200
committerMichael Niedermayer <michaelni@gmx.at>2011-05-08 14:06:04 +0200
commit299cbe2c9b0e883bda4042ea8b4f1476216d0ea1 (patch)
tree4bcc9f0c554e8b016a6456f8b351abb8eda059df
parentaf3c8f823018ef8c07b25c8834d8032093a49418 (diff)
downloadffmpeg-299cbe2c9b0e883bda4042ea8b4f1476216d0ea1.tar.gz
PIX_FMT_422P10 support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libavcodec/utils.c2
-rw-r--r--libavutil/pixdesc.c23
-rw-r--r--libavutil/pixfmt.h3
3 files changed, 28 insertions, 0 deletions
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index 5e0aa84ad0..c5d932d399 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -140,6 +140,8 @@ void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height, int l
case PIX_FMT_YUV420P9BE:
case PIX_FMT_YUV420P10LE:
case PIX_FMT_YUV420P10BE:
+ case PIX_FMT_YUV422P10LE:
+ case PIX_FMT_YUV422P10BE:
w_align= 16; //FIXME check for non mpeg style codecs and use less alignment
h_align= 16;
if(s->codec_id == CODEC_ID_MPEG2VIDEO || s->codec_id == CODEC_ID_MJPEG || s->codec_id == CODEC_ID_AMV || s->codec_id == CODEC_ID_THP || s->codec_id == CODEC_ID_H264)
diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c
index dae6dc264b..f8f99289f9 100644
--- a/libavutil/pixdesc.c
+++ b/libavutil/pixdesc.c
@@ -809,6 +809,29 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = {
},
.flags = PIX_FMT_BE,
},
+ [PIX_FMT_YUV422P10LE] = {
+ .name = "yuv422p10le",
+ .nb_components= 3,
+ .log2_chroma_w= 1,
+ .log2_chroma_h= 0,
+ .comp = {
+ {0,1,1,0,9}, /* Y */
+ {1,1,1,0,9}, /* U */
+ {2,1,1,0,9}, /* V */
+ },
+ },
+ [PIX_FMT_YUV422P10BE] = {
+ .name = "yuv422p10be",
+ .nb_components= 3,
+ .log2_chroma_w= 1,
+ .log2_chroma_h= 0,
+ .comp = {
+ {0,1,1,0,9}, /* Y */
+ {1,1,1,0,9}, /* U */
+ {2,1,1,0,9}, /* V */
+ },
+ .flags = PIX_FMT_BE,
+ },
[PIX_FMT_YUV422P16LE] = {
.name = "yuv422p16le",
.nb_components= 3,
diff --git a/libavutil/pixfmt.h b/libavutil/pixfmt.h
index f781967a7d..6713da23f6 100644
--- a/libavutil/pixfmt.h
+++ b/libavutil/pixfmt.h
@@ -141,6 +141,8 @@ enum PixelFormat {
PIX_FMT_YUV420P9LE, ///< planar YUV 4:2:0, 13.5bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian
PIX_FMT_YUV420P10BE,///< planar YUV 4:2:0, 15bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian
PIX_FMT_YUV420P10LE,///< planar YUV 4:2:0, 15bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian
+ PIX_FMT_YUV422P10BE,///< planar YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian
+ PIX_FMT_YUV422P10LE,///< planar YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian
PIX_FMT_NB, ///< number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of formats might differ between versions
};
@@ -170,6 +172,7 @@ enum PixelFormat {
#define PIX_FMT_YUV420P9 PIX_FMT_NE(YUV420P9BE , YUV420P9LE)
#define PIX_FMT_YUV420P10 PIX_FMT_NE(YUV420P10BE, YUV420P10LE)
+#define PIX_FMT_YUV422P10 PIX_FMT_NE(YUV422P10BE, YUV422P10LE)
#define PIX_FMT_YUV420P16 PIX_FMT_NE(YUV420P16BE, YUV420P16LE)
#define PIX_FMT_YUV422P16 PIX_FMT_NE(YUV422P16BE, YUV422P16LE)
#define PIX_FMT_YUV444P16 PIX_FMT_NE(YUV444P16BE, YUV444P16LE)