|
|
@@ -53,7 +53,6 @@ |
|
|
|
#define FF_PIXEL_PALETTE 2 /**< one components containing indexes for a palette */ |
|
|
|
|
|
|
|
typedef struct PixFmtInfo { |
|
|
|
const char *name; |
|
|
|
uint8_t nb_channels; /**< number of channels (including alpha) */ |
|
|
|
uint8_t color_type; /**< color type (see FF_COLOR_xxx constants) */ |
|
|
|
uint8_t pixel_type; /**< pixel storage type (see FF_PIXEL_xxx constants) */ |
|
|
@@ -65,98 +64,84 @@ typedef struct PixFmtInfo { |
|
|
|
static const PixFmtInfo pix_fmt_info[PIX_FMT_NB] = { |
|
|
|
/* YUV formats */ |
|
|
|
[PIX_FMT_YUV420P] = { |
|
|
|
.name = "yuv420p", |
|
|
|
.nb_channels = 3, |
|
|
|
.color_type = FF_COLOR_YUV, |
|
|
|
.pixel_type = FF_PIXEL_PLANAR, |
|
|
|
.depth = 8, |
|
|
|
}, |
|
|
|
[PIX_FMT_YUV422P] = { |
|
|
|
.name = "yuv422p", |
|
|
|
.nb_channels = 3, |
|
|
|
.color_type = FF_COLOR_YUV, |
|
|
|
.pixel_type = FF_PIXEL_PLANAR, |
|
|
|
.depth = 8, |
|
|
|
}, |
|
|
|
[PIX_FMT_YUV444P] = { |
|
|
|
.name = "yuv444p", |
|
|
|
.nb_channels = 3, |
|
|
|
.color_type = FF_COLOR_YUV, |
|
|
|
.pixel_type = FF_PIXEL_PLANAR, |
|
|
|
.depth = 8, |
|
|
|
}, |
|
|
|
[PIX_FMT_YUYV422] = { |
|
|
|
.name = "yuyv422", |
|
|
|
.nb_channels = 1, |
|
|
|
.color_type = FF_COLOR_YUV, |
|
|
|
.pixel_type = FF_PIXEL_PACKED, |
|
|
|
.depth = 8, |
|
|
|
}, |
|
|
|
[PIX_FMT_UYVY422] = { |
|
|
|
.name = "uyvy422", |
|
|
|
.nb_channels = 1, |
|
|
|
.color_type = FF_COLOR_YUV, |
|
|
|
.pixel_type = FF_PIXEL_PACKED, |
|
|
|
.depth = 8, |
|
|
|
}, |
|
|
|
[PIX_FMT_YUV410P] = { |
|
|
|
.name = "yuv410p", |
|
|
|
.nb_channels = 3, |
|
|
|
.color_type = FF_COLOR_YUV, |
|
|
|
.pixel_type = FF_PIXEL_PLANAR, |
|
|
|
.depth = 8, |
|
|
|
}, |
|
|
|
[PIX_FMT_YUV411P] = { |
|
|
|
.name = "yuv411p", |
|
|
|
.nb_channels = 3, |
|
|
|
.color_type = FF_COLOR_YUV, |
|
|
|
.pixel_type = FF_PIXEL_PLANAR, |
|
|
|
.depth = 8, |
|
|
|
}, |
|
|
|
[PIX_FMT_YUV440P] = { |
|
|
|
.name = "yuv440p", |
|
|
|
.nb_channels = 3, |
|
|
|
.color_type = FF_COLOR_YUV, |
|
|
|
.pixel_type = FF_PIXEL_PLANAR, |
|
|
|
.depth = 8, |
|
|
|
}, |
|
|
|
[PIX_FMT_YUV420P16LE] = { |
|
|
|
.name = "yuv420p16le", |
|
|
|
.nb_channels = 3, |
|
|
|
.color_type = FF_COLOR_YUV, |
|
|
|
.pixel_type = FF_PIXEL_PLANAR, |
|
|
|
.depth = 16, |
|
|
|
}, |
|
|
|
[PIX_FMT_YUV422P16LE] = { |
|
|
|
.name = "yuv422p16le", |
|
|
|
.nb_channels = 3, |
|
|
|
.color_type = FF_COLOR_YUV, |
|
|
|
.pixel_type = FF_PIXEL_PLANAR, |
|
|
|
.depth = 16, |
|
|
|
}, |
|
|
|
[PIX_FMT_YUV444P16LE] = { |
|
|
|
.name = "yuv444p16le", |
|
|
|
.nb_channels = 3, |
|
|
|
.color_type = FF_COLOR_YUV, |
|
|
|
.pixel_type = FF_PIXEL_PLANAR, |
|
|
|
.depth = 16, |
|
|
|
}, |
|
|
|
[PIX_FMT_YUV420P16BE] = { |
|
|
|
.name = "yuv420p16be", |
|
|
|
.nb_channels = 3, |
|
|
|
.color_type = FF_COLOR_YUV, |
|
|
|
.pixel_type = FF_PIXEL_PLANAR, |
|
|
|
.depth = 16, |
|
|
|
}, |
|
|
|
[PIX_FMT_YUV422P16BE] = { |
|
|
|
.name = "yuv422p16be", |
|
|
|
.nb_channels = 3, |
|
|
|
.color_type = FF_COLOR_YUV, |
|
|
|
.pixel_type = FF_PIXEL_PLANAR, |
|
|
|
.depth = 16, |
|
|
|
}, |
|
|
|
[PIX_FMT_YUV444P16BE] = { |
|
|
|
.name = "yuv444p16be", |
|
|
|
.nb_channels = 3, |
|
|
|
.color_type = FF_COLOR_YUV, |
|
|
|
.pixel_type = FF_PIXEL_PLANAR, |
|
|
@@ -166,7 +151,6 @@ static const PixFmtInfo pix_fmt_info[PIX_FMT_NB] = { |
|
|
|
|
|
|
|
/* YUV formats with alpha plane */ |
|
|
|
[PIX_FMT_YUVA420P] = { |
|
|
|
.name = "yuva420p", |
|
|
|
.nb_channels = 4, |
|
|
|
.color_type = FF_COLOR_YUV, |
|
|
|
.pixel_type = FF_PIXEL_PLANAR, |
|
|
@@ -175,28 +159,24 @@ static const PixFmtInfo pix_fmt_info[PIX_FMT_NB] = { |
|
|
|
|
|
|
|
/* JPEG YUV */ |
|
|
|
[PIX_FMT_YUVJ420P] = { |
|
|
|
.name = "yuvj420p", |
|
|
|
.nb_channels = 3, |
|
|
|
.color_type = FF_COLOR_YUV_JPEG, |
|
|
|
.pixel_type = FF_PIXEL_PLANAR, |
|
|
|
.depth = 8, |
|
|
|
}, |
|
|
|
[PIX_FMT_YUVJ422P] = { |
|
|
|
.name = "yuvj422p", |
|
|
|
.nb_channels = 3, |
|
|
|
.color_type = FF_COLOR_YUV_JPEG, |
|
|
|
.pixel_type = FF_PIXEL_PLANAR, |
|
|
|
.depth = 8, |
|
|
|
}, |
|
|
|
[PIX_FMT_YUVJ444P] = { |
|
|
|
.name = "yuvj444p", |
|
|
|
.nb_channels = 3, |
|
|
|
.color_type = FF_COLOR_YUV_JPEG, |
|
|
|
.pixel_type = FF_PIXEL_PLANAR, |
|
|
|
.depth = 8, |
|
|
|
}, |
|
|
|
[PIX_FMT_YUVJ440P] = { |
|
|
|
.name = "yuvj440p", |
|
|
|
.nb_channels = 3, |
|
|
|
.color_type = FF_COLOR_YUV_JPEG, |
|
|
|
.pixel_type = FF_PIXEL_PLANAR, |
|
|
@@ -205,63 +185,54 @@ static const PixFmtInfo pix_fmt_info[PIX_FMT_NB] = { |
|
|
|
|
|
|
|
/* RGB formats */ |
|
|
|
[PIX_FMT_RGB24] = { |
|
|
|
.name = "rgb24", |
|
|
|
.nb_channels = 3, |
|
|
|
.color_type = FF_COLOR_RGB, |
|
|
|
.pixel_type = FF_PIXEL_PACKED, |
|
|
|
.depth = 8, |
|
|
|
}, |
|
|
|
[PIX_FMT_BGR24] = { |
|
|
|
.name = "bgr24", |
|
|
|
.nb_channels = 3, |
|
|
|
.color_type = FF_COLOR_RGB, |
|
|
|
.pixel_type = FF_PIXEL_PACKED, |
|
|
|
.depth = 8, |
|
|
|
}, |
|
|
|
[PIX_FMT_ARGB] = { |
|
|
|
.name = "argb", |
|
|
|
.nb_channels = 4, .is_alpha = 1, |
|
|
|
.color_type = FF_COLOR_RGB, |
|
|
|
.pixel_type = FF_PIXEL_PACKED, |
|
|
|
.depth = 8, |
|
|
|
}, |
|
|
|
[PIX_FMT_RGB48BE] = { |
|
|
|
.name = "rgb48be", |
|
|
|
.nb_channels = 3, |
|
|
|
.color_type = FF_COLOR_RGB, |
|
|
|
.pixel_type = FF_PIXEL_PACKED, |
|
|
|
.depth = 16, |
|
|
|
}, |
|
|
|
[PIX_FMT_RGB48LE] = { |
|
|
|
.name = "rgb48le", |
|
|
|
.nb_channels = 3, |
|
|
|
.color_type = FF_COLOR_RGB, |
|
|
|
.pixel_type = FF_PIXEL_PACKED, |
|
|
|
.depth = 16, |
|
|
|
}, |
|
|
|
[PIX_FMT_RGB565BE] = { |
|
|
|
.name = "rgb565be", |
|
|
|
.nb_channels = 3, |
|
|
|
.color_type = FF_COLOR_RGB, |
|
|
|
.pixel_type = FF_PIXEL_PACKED, |
|
|
|
.depth = 5, |
|
|
|
}, |
|
|
|
[PIX_FMT_RGB565LE] = { |
|
|
|
.name = "rgb565le", |
|
|
|
.nb_channels = 3, |
|
|
|
.color_type = FF_COLOR_RGB, |
|
|
|
.pixel_type = FF_PIXEL_PACKED, |
|
|
|
.depth = 5, |
|
|
|
}, |
|
|
|
[PIX_FMT_RGB555BE] = { |
|
|
|
.name = "rgb555be", |
|
|
|
.nb_channels = 3, |
|
|
|
.color_type = FF_COLOR_RGB, |
|
|
|
.pixel_type = FF_PIXEL_PACKED, |
|
|
|
.depth = 5, |
|
|
|
}, |
|
|
|
[PIX_FMT_RGB555LE] = { |
|
|
|
.name = "rgb555le", |
|
|
|
.nb_channels = 3, |
|
|
|
.color_type = FF_COLOR_RGB, |
|
|
|
.pixel_type = FF_PIXEL_PACKED, |
|
|
@@ -270,35 +241,30 @@ static const PixFmtInfo pix_fmt_info[PIX_FMT_NB] = { |
|
|
|
|
|
|
|
/* gray / mono formats */ |
|
|
|
[PIX_FMT_GRAY16BE] = { |
|
|
|
.name = "gray16be", |
|
|
|
.nb_channels = 1, |
|
|
|
.color_type = FF_COLOR_GRAY, |
|
|
|
.pixel_type = FF_PIXEL_PLANAR, |
|
|
|
.depth = 16, |
|
|
|
}, |
|
|
|
[PIX_FMT_GRAY16LE] = { |
|
|
|
.name = "gray16le", |
|
|
|
.nb_channels = 1, |
|
|
|
.color_type = FF_COLOR_GRAY, |
|
|
|
.pixel_type = FF_PIXEL_PLANAR, |
|
|
|
.depth = 16, |
|
|
|
}, |
|
|
|
[PIX_FMT_GRAY8] = { |
|
|
|
.name = "gray", |
|
|
|
.nb_channels = 1, |
|
|
|
.color_type = FF_COLOR_GRAY, |
|
|
|
.pixel_type = FF_PIXEL_PLANAR, |
|
|
|
.depth = 8, |
|
|
|
}, |
|
|
|
[PIX_FMT_MONOWHITE] = { |
|
|
|
.name = "monow", |
|
|
|
.nb_channels = 1, |
|
|
|
.color_type = FF_COLOR_GRAY, |
|
|
|
.pixel_type = FF_PIXEL_PLANAR, |
|
|
|
.depth = 1, |
|
|
|
}, |
|
|
|
[PIX_FMT_MONOBLACK] = { |
|
|
|
.name = "monob", |
|
|
|
.nb_channels = 1, |
|
|
|
.color_type = FF_COLOR_GRAY, |
|
|
|
.pixel_type = FF_PIXEL_PLANAR, |
|
|
@@ -307,129 +273,106 @@ static const PixFmtInfo pix_fmt_info[PIX_FMT_NB] = { |
|
|
|
|
|
|
|
/* paletted formats */ |
|
|
|
[PIX_FMT_PAL8] = { |
|
|
|
.name = "pal8", |
|
|
|
.nb_channels = 4, .is_alpha = 1, |
|
|
|
.color_type = FF_COLOR_RGB, |
|
|
|
.pixel_type = FF_PIXEL_PALETTE, |
|
|
|
.depth = 8, |
|
|
|
}, |
|
|
|
[PIX_FMT_XVMC_MPEG2_MC] = { |
|
|
|
.name = "xvmcmc", |
|
|
|
}, |
|
|
|
[PIX_FMT_XVMC_MPEG2_IDCT] = { |
|
|
|
.name = "xvmcidct", |
|
|
|
}, |
|
|
|
[PIX_FMT_VDPAU_MPEG1] = { |
|
|
|
.name = "vdpau_mpeg1", |
|
|
|
}, |
|
|
|
[PIX_FMT_VDPAU_MPEG2] = { |
|
|
|
.name = "vdpau_mpeg2", |
|
|
|
}, |
|
|
|
[PIX_FMT_VDPAU_H264] = { |
|
|
|
.name = "vdpau_h264", |
|
|
|
}, |
|
|
|
[PIX_FMT_VDPAU_WMV3] = { |
|
|
|
.name = "vdpau_wmv3", |
|
|
|
}, |
|
|
|
[PIX_FMT_VDPAU_VC1] = { |
|
|
|
.name = "vdpau_vc1", |
|
|
|
}, |
|
|
|
[PIX_FMT_VDPAU_MPEG4] = { |
|
|
|
.name = "vdpau_mpeg4", |
|
|
|
}, |
|
|
|
[PIX_FMT_UYYVYY411] = { |
|
|
|
.name = "uyyvyy411", |
|
|
|
.nb_channels = 1, |
|
|
|
.color_type = FF_COLOR_YUV, |
|
|
|
.pixel_type = FF_PIXEL_PACKED, |
|
|
|
.depth = 8, |
|
|
|
}, |
|
|
|
[PIX_FMT_ABGR] = { |
|
|
|
.name = "abgr", |
|
|
|
.nb_channels = 4, .is_alpha = 1, |
|
|
|
.color_type = FF_COLOR_RGB, |
|
|
|
.pixel_type = FF_PIXEL_PACKED, |
|
|
|
.depth = 8, |
|
|
|
}, |
|
|
|
[PIX_FMT_BGR565BE] = { |
|
|
|
.name = "bgr565be", |
|
|
|
.nb_channels = 3, |
|
|
|
.color_type = FF_COLOR_RGB, |
|
|
|
.pixel_type = FF_PIXEL_PACKED, |
|
|
|
.depth = 5, |
|
|
|
}, |
|
|
|
[PIX_FMT_BGR565LE] = { |
|
|
|
.name = "bgr565le", |
|
|
|
.nb_channels = 3, |
|
|
|
.color_type = FF_COLOR_RGB, |
|
|
|
.pixel_type = FF_PIXEL_PACKED, |
|
|
|
.depth = 5, |
|
|
|
}, |
|
|
|
[PIX_FMT_BGR555BE] = { |
|
|
|
.name = "bgr555be", |
|
|
|
.nb_channels = 3, |
|
|
|
.color_type = FF_COLOR_RGB, |
|
|
|
.pixel_type = FF_PIXEL_PACKED, |
|
|
|
.depth = 5, |
|
|
|
}, |
|
|
|
[PIX_FMT_BGR555LE] = { |
|
|
|
.name = "bgr555le", |
|
|
|
.nb_channels = 3, |
|
|
|
.color_type = FF_COLOR_RGB, |
|
|
|
.pixel_type = FF_PIXEL_PACKED, |
|
|
|
.depth = 5, |
|
|
|
}, |
|
|
|
[PIX_FMT_RGB8] = { |
|
|
|
.name = "rgb8", |
|
|
|
.nb_channels = 1, |
|
|
|
.color_type = FF_COLOR_RGB, |
|
|
|
.pixel_type = FF_PIXEL_PACKED, |
|
|
|
.depth = 8, |
|
|
|
}, |
|
|
|
[PIX_FMT_RGB4] = { |
|
|
|
.name = "rgb4", |
|
|
|
.nb_channels = 1, |
|
|
|
.color_type = FF_COLOR_RGB, |
|
|
|
.pixel_type = FF_PIXEL_PACKED, |
|
|
|
.depth = 4, |
|
|
|
}, |
|
|
|
[PIX_FMT_RGB4_BYTE] = { |
|
|
|
.name = "rgb4_byte", |
|
|
|
.nb_channels = 1, |
|
|
|
.color_type = FF_COLOR_RGB, |
|
|
|
.pixel_type = FF_PIXEL_PACKED, |
|
|
|
.depth = 8, |
|
|
|
}, |
|
|
|
[PIX_FMT_BGR8] = { |
|
|
|
.name = "bgr8", |
|
|
|
.nb_channels = 1, |
|
|
|
.color_type = FF_COLOR_RGB, |
|
|
|
.pixel_type = FF_PIXEL_PACKED, |
|
|
|
.depth = 8, |
|
|
|
}, |
|
|
|
[PIX_FMT_BGR4] = { |
|
|
|
.name = "bgr4", |
|
|
|
.nb_channels = 1, |
|
|
|
.color_type = FF_COLOR_RGB, |
|
|
|
.pixel_type = FF_PIXEL_PACKED, |
|
|
|
.depth = 4, |
|
|
|
}, |
|
|
|
[PIX_FMT_BGR4_BYTE] = { |
|
|
|
.name = "bgr4_byte", |
|
|
|
.nb_channels = 1, |
|
|
|
.color_type = FF_COLOR_RGB, |
|
|
|
.pixel_type = FF_PIXEL_PACKED, |
|
|
|
.depth = 8, |
|
|
|
}, |
|
|
|
[PIX_FMT_NV12] = { |
|
|
|
.name = "nv12", |
|
|
|
.nb_channels = 2, |
|
|
|
.color_type = FF_COLOR_YUV, |
|
|
|
.pixel_type = FF_PIXEL_PLANAR, |
|
|
|
.depth = 8, |
|
|
|
}, |
|
|
|
[PIX_FMT_NV21] = { |
|
|
|
.name = "nv21", |
|
|
|
.nb_channels = 2, |
|
|
|
.color_type = FF_COLOR_YUV, |
|
|
|
.pixel_type = FF_PIXEL_PLANAR, |
|
|
@@ -437,14 +380,12 @@ static const PixFmtInfo pix_fmt_info[PIX_FMT_NB] = { |
|
|
|
}, |
|
|
|
|
|
|
|
[PIX_FMT_BGRA] = { |
|
|
|
.name = "bgra", |
|
|
|
.nb_channels = 4, .is_alpha = 1, |
|
|
|
.color_type = FF_COLOR_RGB, |
|
|
|
.pixel_type = FF_PIXEL_PACKED, |
|
|
|
.depth = 8, |
|
|
|
}, |
|
|
|
[PIX_FMT_RGBA] = { |
|
|
|
.name = "rgba", |
|
|
|
.nb_channels = 4, .is_alpha = 1, |
|
|
|
.color_type = FF_COLOR_RGB, |
|
|
|
.pixel_type = FF_PIXEL_PACKED, |
|
|
@@ -453,13 +394,10 @@ static const PixFmtInfo pix_fmt_info[PIX_FMT_NB] = { |
|
|
|
|
|
|
|
/* VA API formats */ |
|
|
|
[PIX_FMT_VAAPI_MOCO] = { |
|
|
|
.name = "vaapi_moco", |
|
|
|
}, |
|
|
|
[PIX_FMT_VAAPI_IDCT] = { |
|
|
|
.name = "vaapi_idct", |
|
|
|
}, |
|
|
|
[PIX_FMT_VAAPI_VLD] = { |
|
|
|
.name = "vaapi_vld", |
|
|
|
}, |
|
|
|
}; |
|
|
|
|
|
|
@@ -482,7 +420,7 @@ static enum PixelFormat avcodec_get_pix_fmt_internal(const char *name) |
|
|
|
int i; |
|
|
|
|
|
|
|
for (i=0; i < PIX_FMT_NB; i++) |
|
|
|
if (pix_fmt_info[i].name && !strcmp(pix_fmt_info[i].name, name)) |
|
|
|
if (av_pix_fmt_descriptors[i].name && !strcmp(av_pix_fmt_descriptors[i].name, name)) |
|
|
|
return i; |
|
|
|
return PIX_FMT_NONE; |
|
|
|
} |
|
|
@@ -525,7 +463,7 @@ void avcodec_pix_fmt_string (char *buf, int buf_size, enum PixelFormat pix_fmt) |
|
|
|
|
|
|
|
snprintf (buf, buf_size, |
|
|
|
"%-11s %5d %9d %6c", |
|
|
|
info.name, |
|
|
|
av_pix_fmt_descriptors[pix_fmt].name, |
|
|
|
info.nb_channels, |
|
|
|
info.depth, |
|
|
|
is_alpha_char |
|
|
|