--- a/gst_plugins_base/gst/ffmpegcolorspace/imgconvert.c Tue Aug 31 15:30:33 2010 +0300
+++ b/gst_plugins_base/gst/ffmpegcolorspace/imgconvert.c Wed Sep 01 12:16:41 2010 +0100
@@ -64,28 +64,6 @@
/* .y_chroma_shift = */ 1,
/* .depth = */ 8,
},
- /* [PIX_FMT_NV12] = */ {
- /* .format = */ PIX_FMT_NV12,
- /* .name = */ "nv12",
- /* .nb_channels = */ 2,
- /* .color_type = */ FF_COLOR_YUV,
- /* .pixel_type = */ FF_PIXEL_PACKED,
- /* .is_alpha = */ 0,
- /* .x_chroma_shift = */ 1,
- /* .y_chroma_shift = */ 1,
- /* .depth = */ 8,
- },
- /* [PIX_FMT_NV21] = */ {
- /* .format = */ PIX_FMT_NV21,
- /* .name = */ "nv21",
- /* .nb_channels = */ 2,
- /* .color_type = */ FF_COLOR_YUV,
- /* .pixel_type = */ FF_PIXEL_PACKED,
- /* .is_alpha = */ 0,
- /* .x_chroma_shift = */ 1,
- /* .y_chroma_shift = */ 1,
- /* .depth = */ 8,
- },
/* [PIX_FMT_YUV422P] = */ {
/* .format = */ PIX_FMT_YUV422P,
/* .name = */ "yuv422p",
@@ -130,28 +108,6 @@
/* .y_chroma_shift = */ 0,
/* .depth = */ 8,
},
- /* [PIX_FMT_YVYU422] = */ {
- /* .format = */ PIX_FMT_YVYU422,
- /* .name = */ "yvyu422",
- /* .nb_channels = */ 1,
- /* .color_type = */ FF_COLOR_YUV,
- /* .pixel_type = */ FF_PIXEL_PACKED,
- /* .is_alpha = */ 0,
- /* .x_chroma_shift = */ 1,
- /* .y_chroma_shift = */ 0,
- /* .depth = */ 8,
- },
- /* [PIX_FMT_V308] = */ {
- /* .format = */ PIX_FMT_V308,
- /* .name = */ "v308",
- /* .nb_channels = */ 1,
- /* .color_type = */ FF_COLOR_YUV,
- /* .pixel_type = */ FF_PIXEL_PACKED,
- /* .is_alpha = */ 0,
- /* .x_chroma_shift = */ 0,
- /* .y_chroma_shift = */ 0,
- /* .depth = */ 8,
- },
/* [PIX_FMT_YUV410P] = */ {
/* .format = */ PIX_FMT_YUV410P,
/* .name = */ "yuv410p",
@@ -367,28 +323,6 @@
/* .y_chroma_shift = */ 0,
/* .depth = */ 8,
},
- /* [PIX_FMT_GRAY16_L] = */ {
- /* .format = */ PIX_FMT_GRAY16_L,
- /* .name = */ "gray",
- /* .nb_channels = */ 1,
- /* .color_type = */ FF_COLOR_GRAY,
- /* .pixel_type = */ FF_PIXEL_PLANAR,
- /* .is_alpha = */ 0,
- /* .x_chroma_shift = */ 0,
- /* .y_chroma_shift = */ 0,
- /* .depth = */ 16,
- },
- /* [PIX_FMT_GRAY16_B] = */ {
- /* .format = */ PIX_FMT_GRAY16_B,
- /* .name = */ "gray",
- /* .nb_channels = */ 1,
- /* .color_type = */ FF_COLOR_GRAY,
- /* .pixel_type = */ FF_PIXEL_PLANAR,
- /* .is_alpha = */ 0,
- /* .x_chroma_shift = */ 0,
- /* .y_chroma_shift = */ 0,
- /* .depth = */ 16,
- },
/* [PIX_FMT_MONOWHITE] = */ {
/* .format = */ PIX_FMT_MONOWHITE,
/* .name = */ "monow",
@@ -574,6 +508,7 @@
return size;
}
#endif
+
#ifdef __SYMBIAN32__
EXPORT_C
#endif
@@ -656,7 +591,6 @@
switch (pix_fmt) {
case PIX_FMT_YUV422:
case PIX_FMT_UYVY422:
- case PIX_FMT_YVYU422:
case PIX_FMT_RGB565:
case PIX_FMT_RGB555:
bits = 16;
@@ -770,7 +704,7 @@
int pix_fmt, int width, int height)
{
int bwidth, bits, i;
- const PixFmtInfo *pf;
+ PixFmtInfo *pf = get_pix_fmt_info (pix_fmt);
pf = get_pix_fmt_info (pix_fmt);
switch (pf->pixel_type) {
@@ -778,7 +712,6 @@
switch (pix_fmt) {
case PIX_FMT_YUV422:
case PIX_FMT_UYVY422:
- case PIX_FMT_YVYU422:
case PIX_FMT_RGB565:
case PIX_FMT_RGB555:
bits = 16;
@@ -879,31 +812,6 @@
}
static void
-uyvy422_to_gray (AVPicture * dst, const AVPicture * src, int width, int height)
-{
- const uint8_t *p, *p1;
- uint8_t *lum, *lum1;
- int w;
-
- p1 = src->data[0];
- lum1 = dst->data[0];
- for (; height > 0; height--) {
- p = p1;
- lum = lum1;
-
- for (w = width; w >= 2; w -= 2) {
- lum[0] = p[1];
- lum[1] = p[3];
- p += 4;
- lum += 2;
- }
- p1 += src->linesize[0];
- lum1 += dst->linesize[0];
- }
-}
-
-
-static void
uyvy422_to_yuv420p (AVPicture * dst, const AVPicture * src,
int width, int height)
{
@@ -996,122 +904,6 @@
}
}
-static void
-yvyu422_to_gray (AVPicture * dst, const AVPicture * src, int width, int height)
-{
- const uint8_t *p, *p1;
- uint8_t *lum, *lum1;
- int w;
-
- p1 = src->data[0];
- lum1 = dst->data[0];
- for (; height > 0; height--) {
- p = p1;
- lum = lum1;
-
- for (w = width; w >= 2; w -= 2) {
- lum[0] = p[0];
- lum[1] = p[2];
- p += 4;
- lum += 2;
- }
- p1 += src->linesize[0];
- lum1 += dst->linesize[0];
- }
-}
-
-
-static void
-yvyu422_to_yuv420p (AVPicture * dst, const AVPicture * src,
- int width, int height)
-{
- const uint8_t *p, *p1;
- uint8_t *lum, *cr, *cb, *lum1, *cr1, *cb1;
- int w;
-
- p1 = src->data[0];
-
- lum1 = dst->data[0];
- cb1 = dst->data[1];
- cr1 = dst->data[2];
-
- for (; height >= 1; height -= 2) {
- p = p1;
- lum = lum1;
- cb = cb1;
- cr = cr1;
- for (w = width; w >= 2; w -= 2) {
- lum[0] = p[0];
- cb[0] = p[3];
- lum[1] = p[2];
- cr[0] = p[1];
- p += 4;
- lum += 2;
- cb++;
- cr++;
- }
- if (w) {
- lum[0] = p[0];
- cb[0] = p[3];
- cr[0] = p[1];
- cb++;
- cr++;
- }
- p1 += src->linesize[0];
- lum1 += dst->linesize[0];
- if (height > 1) {
- p = p1;
- lum = lum1;
- for (w = width; w >= 2; w -= 2) {
- lum[0] = p[0];
- lum[1] = p[2];
- p += 4;
- lum += 2;
- }
- if (w) {
- lum[0] = p[0];
- }
- p1 += src->linesize[0];
- lum1 += dst->linesize[0];
- }
- cb1 += dst->linesize[1];
- cr1 += dst->linesize[2];
- }
-}
-
-static void
-yvyu422_to_yuv422p (AVPicture * dst, const AVPicture * src,
- int width, int height)
-{
- const uint8_t *p, *p1;
- uint8_t *lum, *cr, *cb, *lum1, *cr1, *cb1;
- int w;
-
- p1 = src->data[0];
- lum1 = dst->data[0];
- cb1 = dst->data[1];
- cr1 = dst->data[2];
- for (; height > 0; height--) {
- p = p1;
- lum = lum1;
- cb = cb1;
- cr = cr1;
- for (w = width; w >= 2; w -= 2) {
- lum[0] = p[0];
- cb[0] = p[3];
- lum[1] = p[2];
- cr[0] = p[1];
- p += 4;
- lum += 2;
- cb++;
- cr++;
- }
- p1 += src->linesize[0];
- lum1 += dst->linesize[0];
- cb1 += dst->linesize[1];
- cr1 += dst->linesize[2];
- }
-}
static void
yuv422_to_yuv422p (AVPicture * dst, const AVPicture * src,
@@ -1220,40 +1012,6 @@
}
static void
-yuv422p_to_yvyu422 (AVPicture * dst, const AVPicture * src,
- int width, int height)
-{
- uint8_t *p, *p1;
- const uint8_t *lum, *cr, *cb, *lum1, *cr1, *cb1;
- int w;
-
- p1 = dst->data[0];
- lum1 = src->data[0];
- cb1 = src->data[1];
- cr1 = src->data[2];
- for (; height > 0; height--) {
- p = p1;
- lum = lum1;
- cb = cb1;
- cr = cr1;
- for (w = width; w >= 2; w -= 2) {
- p[0] = lum[0];
- p[3] = cb[0];
- p[2] = lum[1];
- p[1] = cr[0];
- p += 4;
- lum += 2;
- cb++;
- cr++;
- }
- p1 += dst->linesize[0];
- lum1 += src->linesize[0];
- cb1 += src->linesize[1];
- cr1 += src->linesize[2];
- }
-}
-
-static void
uyvy411_to_yuv411p (AVPicture * dst, const AVPicture * src,
int width, int height)
{
@@ -1289,6 +1047,7 @@
}
}
+
static void
yuv420p_to_yuv422 (AVPicture * dst, const AVPicture * src,
int width, int height)
@@ -1350,226 +1109,6 @@
}
}
-static void
-nv12_to_nv21 (AVPicture * dst, const AVPicture * src, int width, int height)
-{
- const uint8_t *s_c_ptr;
- uint8_t *d_c_ptr;
- int w, c_wrap;
-
- memcpy (dst->data[0], src->data[0], src->linesize[0] * height);
-
- s_c_ptr = src->data[1];
- d_c_ptr = dst->data[1];
- c_wrap = src->linesize[1] - ((width + 1) & ~0x01);
-
- for (; height >= 2; height -= 2) {
- for (w = width; w >= 2; w -= 2) {
- d_c_ptr[0] = s_c_ptr[1];
- d_c_ptr[1] = s_c_ptr[0];
- s_c_ptr += 2;
- d_c_ptr += 2;
- }
-
- /* handle odd width */
- if (w) {
- d_c_ptr[0] = s_c_ptr[1];
- d_c_ptr[1] = s_c_ptr[0];
- s_c_ptr += 2;
- d_c_ptr += 2;
- }
- s_c_ptr += c_wrap;
- d_c_ptr += c_wrap;
- }
-
- /* handle odd height */
- if (height) {
- for (w = width; w >= 2; w -= 2) {
- d_c_ptr[0] = s_c_ptr[1];
- d_c_ptr[1] = s_c_ptr[0];
- s_c_ptr += 2;
- d_c_ptr += 2;
- }
-
- /* handle odd width */
- if (w) {
- d_c_ptr[0] = s_c_ptr[1];
- d_c_ptr[1] = s_c_ptr[0];
- s_c_ptr += 2;
- d_c_ptr += 2;
- }
- }
-}
-
-static void
-nv12_to_yuv444p (AVPicture * dst, const AVPicture * src, int width, int height)
-{
- int w, h;
- uint8_t *dst_lum1, *dst_lum2, *dst_line = dst->data[0];
- uint8_t *dst_cb1, *dst_cb2, *dst_cb_line = dst->data[1];
- uint8_t *dst_cr1, *dst_cr2, *dst_cr_line = dst->data[2];
- uint8_t *lum1, *lum2, *src_lum_line = src->data[0];
- uint8_t *src_c1, *src_c_line = src->data[1];
- uint8_t cb, cr;
-
- for (h = height / 2; h--;) {
- dst_lum1 = dst_line;
- dst_lum2 = dst_line + dst->linesize[0];
-
- dst_cb1 = dst_cb_line;
- dst_cb2 = dst_cb_line + dst->linesize[1];
- dst_cr1 = dst_cr_line;
- dst_cr2 = dst_cr_line + dst->linesize[2];
-
- lum1 = src_lum_line;
- lum2 = src_lum_line + src->linesize[0];
-
- src_c1 = src_c_line;
-
- for (w = width / 2; w--;) {
- cb = *src_c1++;
- cr = *src_c1++;
- *dst_lum1++ = *lum1++;
- *dst_lum2++ = *lum2++;
- *dst_cb1++ = *dst_cb2++ = cb;
- *dst_cr1++ = *dst_cr2++ = cr;
- *dst_lum1++ = *lum1++;
- *dst_lum2++ = *lum2++;
- *dst_cb1++ = *dst_cb2++ = cb;
- *dst_cr1++ = *dst_cr2++ = cr;
- }
- /* odd width */
- if (width % 2 != 0) {
- cb = *src_c1++;
- cr = *src_c1++;
- *dst_lum1++ = *lum1++;
- *dst_lum2++ = *lum2++;
- *dst_cb1++ = *dst_cb2++ = *src_c1++;
- *dst_cr1++ = *dst_cr2++ = *src_c1++;
- }
-
- dst_line += dst->linesize[0] * 2;
- dst_cb_line += dst->linesize[1] * 2;
- dst_cr_line += dst->linesize[2] * 2;
- src_lum_line += src->linesize[0] * 2;
- src_c_line += src->linesize[1];
- }
-
- /* odd height */
- if (height % 2 != 0) {
- dst_lum1 = dst_line;
- lum1 = src_lum_line;
- src_c1 = src_c_line;
- dst_cb1 = dst_cb_line;
- dst_cr1 = dst_cr_line;
-
- for (w = width / 2; w--;) {
- cb = *src_c1++;
- cr = *src_c1++;
- *dst_lum1++ = *lum1++;
- *dst_cb1++ = cb;
- *dst_cr1++ = cr;
- *dst_lum1++ = *lum1++;
- *dst_cb1++ = cb;
- *dst_cr1++ = cr;
- }
- /* odd width */
- if (width % 2 != 0) {
- cb = *src_c1++;
- cr = *src_c1++;
- *dst_lum1++ = *lum1++;
- *dst_cb1++ = cb;
- *dst_cr1++ = cr;
- }
- }
-}
-
-#define nv21_to_nv12 nv12_to_nv21
-
-static void
-nv21_to_yuv444p (AVPicture * dst, const AVPicture * src, int width, int height)
-{
- int w, h;
- uint8_t *dst_lum1, *dst_lum2, *dst_line = dst->data[0];
- uint8_t *dst_cb1, *dst_cb2, *dst_cb_line = dst->data[1];
- uint8_t *dst_cr1, *dst_cr2, *dst_cr_line = dst->data[2];
- uint8_t *lum1, *lum2, *src_lum_line = src->data[0];
- uint8_t *src_c1, *src_c_line = src->data[1];
- uint8_t cb, cr;
-
- for (h = height / 2; h--;) {
- dst_lum1 = dst_line;
- dst_lum2 = dst_line + dst->linesize[0];
-
- dst_cb1 = dst_cb_line;
- dst_cb2 = dst_cb_line + dst->linesize[1];
- dst_cr1 = dst_cr_line;
- dst_cr2 = dst_cr_line + dst->linesize[2];
-
- lum1 = src_lum_line;
- lum2 = src_lum_line + src->linesize[0];
-
- src_c1 = src_c_line;
-
- for (w = width / 2; w--;) {
- cr = *src_c1++;
- cb = *src_c1++;
- *dst_lum1++ = *lum1++;
- *dst_lum2++ = *lum2++;
- *dst_cb1++ = *dst_cb2++ = cb;
- *dst_cr1++ = *dst_cr2++ = cr;
- *dst_lum1++ = *lum1++;
- *dst_lum2++ = *lum2++;
- *dst_cb1++ = *dst_cb2++ = cb;
- *dst_cr1++ = *dst_cr2++ = cr;
- }
- /* odd width */
- if (width % 2 != 0) {
- cr = *src_c1++;
- cb = *src_c1++;
- *dst_lum1++ = *lum1++;
- *dst_lum2++ = *lum2++;
- *dst_cb1++ = *dst_cb2++ = *src_c1++;
- *dst_cr1++ = *dst_cr2++ = *src_c1++;
- }
-
- dst_line += dst->linesize[0] * 2;
- dst_cb_line += dst->linesize[1] * 2;
- dst_cr_line += dst->linesize[2] * 2;
- src_lum_line += src->linesize[0] * 2;
- src_c_line += src->linesize[1];
- }
-
- /* odd height */
- if (height % 2 != 0) {
- dst_lum1 = dst_line;
- lum1 = src_lum_line;
- src_c1 = src_c_line;
-
- dst_cb1 = dst_cb_line;
- dst_cr1 = dst_cr_line;
-
- for (w = width / 2; w--;) {
- cr = *src_c1++;
- cb = *src_c1++;
- *dst_lum1++ = *lum1++;
- *dst_cb1++ = cb;
- *dst_cr1++ = cr;
- *dst_lum1++ = *lum1++;
- *dst_cb1++ = cb;
- *dst_cr1++ = cr;
- }
- /* odd width */
- if (width % 2 != 0) {
- cr = *src_c1++;
- cb = *src_c1++;
- *dst_lum1++ = *lum1++;
- *dst_cb1++ = cb;
- *dst_cr1++ = cr;
- }
- }
-}
-
#define SCALEBITS 10
#define ONE_HALF (1 << (SCALEBITS - 1))
#define FIX(x) ((int) ((x) * (1<<SCALEBITS) + 0.5))
@@ -2371,133 +1910,6 @@
#include "imgconvert_template.h"
static void
-gray_to_gray16_l (AVPicture * dst, const AVPicture * src, int width, int height)
-{
- const unsigned char *p;
- unsigned char *q;
- int dst_wrap, src_wrap;
- int x, y;
-
- p = src->data[0];
- src_wrap = src->linesize[0] - width;
-
- q = dst->data[0];
- dst_wrap = dst->linesize[0] - 2 * width;
-
- for (y = 0; y < height; y++) {
- for (x = 0; x < width; x++) {
- GST_WRITE_UINT16_LE (q, (*p << 8));
- q += 2;
- p++;
- }
- p += src_wrap;
- q += dst_wrap;
- }
-}
-
-static void
-gray_to_gray16_b (AVPicture * dst, const AVPicture * src, int width, int height)
-{
- const unsigned char *p;
- unsigned char *q;
- int dst_wrap, src_wrap;
- int x, y;
-
- p = src->data[0];
- src_wrap = src->linesize[0] - width;
-
- q = dst->data[0];
- dst_wrap = dst->linesize[0] - 2 * width;
-
- for (y = 0; y < height; y++) {
- for (x = 0; x < width; x++) {
- GST_WRITE_UINT16_BE (q, (*p << 8));
- q += 2;
- p++;
- }
- p += src_wrap;
- q += dst_wrap;
- }
-}
-
-static void
-gray16_l_to_gray (AVPicture * dst, const AVPicture * src, int width, int height)
-{
- const unsigned char *p;
- unsigned char *q;
- int dst_wrap, src_wrap;
- int x, y;
-
- p = src->data[0];
- src_wrap = src->linesize[0] - 2 * width;
-
- q = dst->data[0];
- dst_wrap = dst->linesize[0] - width;
-
- for (y = 0; y < height; y++) {
- for (x = 0; x < width; x++) {
- q[0] = GST_READ_UINT16_LE (p) >> 8;
- q++;
- p += 2;
- }
- p += src_wrap;
- q += dst_wrap;
- }
-}
-
-static void
-gray16_b_to_gray (AVPicture * dst, const AVPicture * src, int width, int height)
-{
- const unsigned char *p;
- unsigned char *q;
- int dst_wrap, src_wrap;
- int x, y;
-
- p = src->data[0];
- src_wrap = src->linesize[0] - 2 * width;
-
- q = dst->data[0];
- dst_wrap = dst->linesize[0] - width;
-
- for (y = 0; y < height; y++) {
- for (x = 0; x < width; x++) {
- q[0] = GST_READ_UINT16_BE (p) >> 8;
- q++;
- p += 2;
- }
- p += src_wrap;
- q += dst_wrap;
- }
-}
-
-static void
-gray16_b_to_gray16_l (AVPicture * dst, const AVPicture * src,
- int width, int height)
-{
- const unsigned char *p;
- unsigned char *q;
- int dst_wrap, src_wrap;
- int x, y;
-
- p = src->data[0];
- src_wrap = src->linesize[0] - 2 * width;
-
- q = dst->data[0];
- dst_wrap = dst->linesize[0] - 2 * width;
-
- for (y = 0; y < height; y++) {
- for (x = 0; x < width; x++) {
- q[0] = p[1];
- q[1] = p[0];
- q += 2;
- p += 2;
- }
- p += src_wrap;
- q += dst_wrap;
- }
-}
-
-static void
mono_to_gray (AVPicture * dst, const AVPicture * src,
int width, int height, int xor_mask)
{
@@ -2652,39 +2064,8 @@
{PIX_FMT_YUV420P, PIX_FMT_ARGB32, yuv420p_to_argb32},
{PIX_FMT_YUV420P, PIX_FMT_ABGR32, yuv420p_to_abgr32},
- {PIX_FMT_NV12, PIX_FMT_RGB555, nv12_to_rgb555},
- {PIX_FMT_NV12, PIX_FMT_RGB565, nv12_to_rgb565},
- {PIX_FMT_NV12, PIX_FMT_BGR24, nv12_to_bgr24},
- {PIX_FMT_NV12, PIX_FMT_RGB24, nv12_to_rgb24},
- {PIX_FMT_NV12, PIX_FMT_RGB32, nv12_to_rgb32},
- {PIX_FMT_NV12, PIX_FMT_BGR32, nv12_to_bgr32},
- {PIX_FMT_NV12, PIX_FMT_xRGB32, nv12_to_xrgb32},
- {PIX_FMT_NV12, PIX_FMT_BGRx32, nv12_to_bgrx32},
- {PIX_FMT_NV12, PIX_FMT_RGBA32, nv12_to_rgba32},
- {PIX_FMT_NV12, PIX_FMT_BGRA32, nv12_to_bgra32},
- {PIX_FMT_NV12, PIX_FMT_ARGB32, nv12_to_argb32},
- {PIX_FMT_NV12, PIX_FMT_ABGR32, nv12_to_abgr32},
- {PIX_FMT_NV12, PIX_FMT_NV21, nv12_to_nv21},
- {PIX_FMT_NV12, PIX_FMT_YUV444P, nv12_to_yuv444p},
-
- {PIX_FMT_NV21, PIX_FMT_RGB555, nv21_to_rgb555},
- {PIX_FMT_NV21, PIX_FMT_RGB565, nv21_to_rgb565},
- {PIX_FMT_NV21, PIX_FMT_BGR24, nv21_to_bgr24},
- {PIX_FMT_NV21, PIX_FMT_RGB24, nv21_to_rgb24},
- {PIX_FMT_NV21, PIX_FMT_RGB32, nv21_to_rgb32},
- {PIX_FMT_NV21, PIX_FMT_BGR32, nv21_to_bgr32},
- {PIX_FMT_NV21, PIX_FMT_xRGB32, nv21_to_xrgb32},
- {PIX_FMT_NV21, PIX_FMT_BGRx32, nv21_to_bgrx32},
- {PIX_FMT_NV21, PIX_FMT_RGBA32, nv21_to_rgba32},
- {PIX_FMT_NV21, PIX_FMT_BGRA32, nv21_to_bgra32},
- {PIX_FMT_NV21, PIX_FMT_ARGB32, nv21_to_argb32},
- {PIX_FMT_NV21, PIX_FMT_ABGR32, nv21_to_abgr32},
- {PIX_FMT_NV21, PIX_FMT_YUV444P, nv21_to_yuv444p},
- {PIX_FMT_NV21, PIX_FMT_NV12, nv21_to_nv12},
-
{PIX_FMT_YUV422P, PIX_FMT_YUV422, yuv422p_to_yuv422},
{PIX_FMT_YUV422P, PIX_FMT_UYVY422, yuv422p_to_uyvy422},
- {PIX_FMT_YUV422P, PIX_FMT_YVYU422, yuv422p_to_yvyu422},
{PIX_FMT_YUV444P, PIX_FMT_RGB24, yuv444p_to_rgb24},
@@ -2708,15 +2089,8 @@
{PIX_FMT_UYVY422, PIX_FMT_YUV420P, uyvy422_to_yuv420p},
{PIX_FMT_UYVY422, PIX_FMT_YUV422P, uyvy422_to_yuv422p},
- {PIX_FMT_UYVY422, PIX_FMT_GRAY8, uyvy422_to_gray},
-
- {PIX_FMT_YVYU422, PIX_FMT_YUV420P, yvyu422_to_yuv420p},
- {PIX_FMT_YVYU422, PIX_FMT_YUV422P, yvyu422_to_yuv422p},
- {PIX_FMT_YVYU422, PIX_FMT_GRAY8, yvyu422_to_gray},
{PIX_FMT_RGB24, PIX_FMT_YUV420P, rgb24_to_yuv420p},
- {PIX_FMT_RGB24, PIX_FMT_NV12, rgb24_to_nv12},
- {PIX_FMT_RGB24, PIX_FMT_NV21, rgb24_to_nv21},
{PIX_FMT_RGB24, PIX_FMT_RGB565, rgb24_to_rgb565},
{PIX_FMT_RGB24, PIX_FMT_RGB555, rgb24_to_rgb555},
{PIX_FMT_RGB24, PIX_FMT_RGB32, rgb24_to_rgb32},
@@ -2729,33 +2103,22 @@
{PIX_FMT_RGB24, PIX_FMT_ARGB32, rgb24_to_argb32},
{PIX_FMT_RGB24, PIX_FMT_ABGR32, rgb24_to_abgr32},
{PIX_FMT_RGB24, PIX_FMT_GRAY8, rgb24_to_gray},
- {PIX_FMT_RGB24, PIX_FMT_GRAY16_L, rgb24_to_gray16_l},
- {PIX_FMT_RGB24, PIX_FMT_GRAY16_B, rgb24_to_gray16_b},
{PIX_FMT_RGB24, PIX_FMT_PAL8, rgb24_to_pal8},
{PIX_FMT_RGB24, PIX_FMT_YUV444P, rgb24_to_yuv444p},
{PIX_FMT_RGB24, PIX_FMT_YUVJ420P, rgb24_to_yuvj420p},
{PIX_FMT_RGB24, PIX_FMT_YUVJ444P, rgb24_to_yuvj444p},
{PIX_FMT_RGB24, PIX_FMT_AYUV4444, rgb24_to_ayuv4444},
- {PIX_FMT_RGB24, PIX_FMT_V308, rgb24_to_v308},
{PIX_FMT_RGB32, PIX_FMT_RGB24, rgb32_to_rgb24},
{PIX_FMT_RGB32, PIX_FMT_RGB555, rgba32_to_rgb555},
{PIX_FMT_RGB32, PIX_FMT_PAL8, rgb32_to_pal8},
{PIX_FMT_RGB32, PIX_FMT_YUV420P, rgb32_to_yuv420p},
- {PIX_FMT_RGB32, PIX_FMT_NV12, rgb32_to_nv12},
- {PIX_FMT_RGB32, PIX_FMT_NV21, rgb32_to_nv21},
{PIX_FMT_RGB32, PIX_FMT_GRAY8, rgb32_to_gray},
- {PIX_FMT_RGB32, PIX_FMT_GRAY16_L, rgb32_to_gray16_l},
- {PIX_FMT_RGB32, PIX_FMT_GRAY16_B, rgb32_to_gray16_b},
{PIX_FMT_xRGB32, PIX_FMT_RGB24, xrgb32_to_rgb24},
{PIX_FMT_xRGB32, PIX_FMT_PAL8, xrgb32_to_pal8},
{PIX_FMT_xRGB32, PIX_FMT_YUV420P, xrgb32_to_yuv420p},
- {PIX_FMT_xRGB32, PIX_FMT_NV12, xrgb32_to_nv12},
- {PIX_FMT_xRGB32, PIX_FMT_NV21, xrgb32_to_nv21},
{PIX_FMT_xRGB32, PIX_FMT_GRAY8, xrgb32_to_gray},
- {PIX_FMT_xRGB32, PIX_FMT_GRAY16_L, xrgb32_to_gray16_l},
- {PIX_FMT_xRGB32, PIX_FMT_GRAY16_B, xrgb32_to_gray16_b},
{PIX_FMT_RGBA32, PIX_FMT_BGRA32, rgba32_to_bgra32},
{PIX_FMT_RGBA32, PIX_FMT_ABGR32, rgba32_to_abgr32},
@@ -2767,84 +2130,48 @@
{PIX_FMT_RGBA32, PIX_FMT_RGB555, rgba32_to_rgb555},
{PIX_FMT_RGBA32, PIX_FMT_PAL8, rgba32_to_pal8},
{PIX_FMT_RGBA32, PIX_FMT_YUV420P, rgba32_to_yuv420p},
- {PIX_FMT_RGBA32, PIX_FMT_NV12, rgba32_to_nv12},
- {PIX_FMT_RGBA32, PIX_FMT_NV21, rgba32_to_nv21},
{PIX_FMT_RGBA32, PIX_FMT_GRAY8, rgba32_to_gray},
- {PIX_FMT_RGBA32, PIX_FMT_GRAY16_L, rgba32_to_gray16_l},
- {PIX_FMT_RGBA32, PIX_FMT_GRAY16_B, rgba32_to_gray16_b},
{PIX_FMT_RGBA32, PIX_FMT_AYUV4444, rgba32_to_ayuv4444},
{PIX_FMT_BGR24, PIX_FMT_RGB24, bgr24_to_rgb24},
{PIX_FMT_BGR24, PIX_FMT_YUV420P, bgr24_to_yuv420p},
- {PIX_FMT_BGR24, PIX_FMT_NV12, bgr24_to_nv12},
- {PIX_FMT_BGR24, PIX_FMT_NV21, bgr24_to_nv21},
{PIX_FMT_BGR24, PIX_FMT_GRAY8, bgr24_to_gray},
- {PIX_FMT_BGR24, PIX_FMT_GRAY16_L, bgr24_to_gray16_l},
- {PIX_FMT_BGR24, PIX_FMT_GRAY16_B, bgr24_to_gray16_b},
{PIX_FMT_BGR32, PIX_FMT_RGB24, bgr32_to_rgb24},
{PIX_FMT_BGR32, PIX_FMT_RGBA32, bgr32_to_rgba32},
{PIX_FMT_BGR32, PIX_FMT_YUV420P, bgr32_to_yuv420p},
- {PIX_FMT_BGR32, PIX_FMT_NV12, bgr32_to_nv12},
- {PIX_FMT_BGR32, PIX_FMT_NV21, bgr32_to_nv21},
{PIX_FMT_BGR32, PIX_FMT_GRAY8, bgr32_to_gray},
- {PIX_FMT_BGR32, PIX_FMT_GRAY16_L, bgr32_to_gray16_l},
- {PIX_FMT_BGR32, PIX_FMT_GRAY16_B, bgr32_to_gray16_b},
{PIX_FMT_BGRx32, PIX_FMT_RGB24, bgrx32_to_rgb24},
{PIX_FMT_BGRx32, PIX_FMT_RGBA32, bgrx32_to_rgba32},
{PIX_FMT_BGRx32, PIX_FMT_YUV420P, bgrx32_to_yuv420p},
- {PIX_FMT_BGRx32, PIX_FMT_NV12, bgrx32_to_nv12},
- {PIX_FMT_BGRx32, PIX_FMT_NV21, bgrx32_to_nv21},
{PIX_FMT_BGRx32, PIX_FMT_GRAY8, bgrx32_to_gray},
- {PIX_FMT_BGRx32, PIX_FMT_GRAY16_L, bgrx32_to_gray16_l},
- {PIX_FMT_BGRx32, PIX_FMT_GRAY16_B, bgrx32_to_gray16_b},
{PIX_FMT_BGRA32, PIX_FMT_RGB24, bgra32_to_rgb24},
{PIX_FMT_BGRA32, PIX_FMT_RGBA32, bgra32_to_rgba32},
{PIX_FMT_BGRA32, PIX_FMT_YUV420P, bgra32_to_yuv420p},
- {PIX_FMT_BGRA32, PIX_FMT_NV12, bgra32_to_nv12},
- {PIX_FMT_BGRA32, PIX_FMT_NV21, bgra32_to_nv21},
{PIX_FMT_BGRA32, PIX_FMT_GRAY8, bgra32_to_gray},
- {PIX_FMT_BGRA32, PIX_FMT_GRAY16_L, bgra32_to_gray16_l},
- {PIX_FMT_BGRA32, PIX_FMT_GRAY16_B, bgra32_to_gray16_b},
{PIX_FMT_BGRA32, PIX_FMT_AYUV4444, bgra32_to_ayuv4444},
{PIX_FMT_ABGR32, PIX_FMT_RGB24, abgr32_to_rgb24},
{PIX_FMT_ABGR32, PIX_FMT_RGBA32, abgr32_to_rgba32},
{PIX_FMT_ABGR32, PIX_FMT_YUV420P, abgr32_to_yuv420p},
- {PIX_FMT_ABGR32, PIX_FMT_NV12, abgr32_to_nv12},
- {PIX_FMT_ABGR32, PIX_FMT_NV21, abgr32_to_nv21},
{PIX_FMT_ABGR32, PIX_FMT_GRAY8, abgr32_to_gray},
- {PIX_FMT_ABGR32, PIX_FMT_GRAY16_L, abgr32_to_gray16_l},
- {PIX_FMT_ABGR32, PIX_FMT_GRAY16_B, abgr32_to_gray16_b},
{PIX_FMT_ARGB32, PIX_FMT_RGB24, argb32_to_rgb24},
{PIX_FMT_ARGB32, PIX_FMT_RGBA32, argb32_to_rgba32},
{PIX_FMT_ARGB32, PIX_FMT_YUV420P, argb32_to_yuv420p},
- {PIX_FMT_ARGB32, PIX_FMT_NV12, argb32_to_nv12},
- {PIX_FMT_ARGB32, PIX_FMT_NV21, argb32_to_nv21},
{PIX_FMT_ARGB32, PIX_FMT_GRAY8, argb32_to_gray},
- {PIX_FMT_ARGB32, PIX_FMT_GRAY16_L, argb32_to_gray16_l},
- {PIX_FMT_ARGB32, PIX_FMT_GRAY16_B, argb32_to_gray16_b},
{PIX_FMT_RGB555, PIX_FMT_RGB24, rgb555_to_rgb24},
{PIX_FMT_RGB555, PIX_FMT_RGB32, rgb555_to_rgba32},
{PIX_FMT_RGB555, PIX_FMT_RGBA32, rgb555_to_rgba32},
{PIX_FMT_RGB555, PIX_FMT_YUV420P, rgb555_to_yuv420p},
- {PIX_FMT_RGB555, PIX_FMT_NV12, rgb555_to_nv12},
- {PIX_FMT_RGB555, PIX_FMT_NV21, rgb555_to_nv21},
{PIX_FMT_RGB555, PIX_FMT_GRAY8, rgb555_to_gray},
- {PIX_FMT_RGB555, PIX_FMT_GRAY16_L, rgb555_to_gray16_l},
- {PIX_FMT_RGB555, PIX_FMT_GRAY16_B, rgb555_to_gray16_b},
{PIX_FMT_RGB565, PIX_FMT_RGB24, rgb565_to_rgb24},
{PIX_FMT_RGB565, PIX_FMT_YUV420P, rgb565_to_yuv420p},
- {PIX_FMT_RGB565, PIX_FMT_NV12, rgb565_to_nv12},
- {PIX_FMT_RGB565, PIX_FMT_NV21, rgb565_to_nv21},
{PIX_FMT_RGB565, PIX_FMT_GRAY8, rgb565_to_gray},
- {PIX_FMT_RGB565, PIX_FMT_GRAY16_L, rgb565_to_gray16_l},
- {PIX_FMT_RGB565, PIX_FMT_GRAY16_B, rgb565_to_gray16_b},
{PIX_FMT_GRAY8, PIX_FMT_RGB555, gray_to_rgb555},
{PIX_FMT_GRAY8, PIX_FMT_RGB565, gray_to_rgb565},
@@ -2860,43 +2187,11 @@
{PIX_FMT_GRAY8, PIX_FMT_ABGR32, gray_to_abgr32},
{PIX_FMT_GRAY8, PIX_FMT_MONOWHITE, gray_to_monowhite},
{PIX_FMT_GRAY8, PIX_FMT_MONOBLACK, gray_to_monoblack},
- {PIX_FMT_GRAY8, PIX_FMT_GRAY16_L, gray_to_gray16_l},
- {PIX_FMT_GRAY8, PIX_FMT_GRAY16_B, gray_to_gray16_b},
{PIX_FMT_MONOWHITE, PIX_FMT_GRAY8, monowhite_to_gray},
{PIX_FMT_MONOBLACK, PIX_FMT_GRAY8, monoblack_to_gray},
- {PIX_FMT_GRAY16_L, PIX_FMT_GRAY8, gray16_l_to_gray},
- {PIX_FMT_GRAY16_L, PIX_FMT_RGB555, gray16_l_to_rgb555},
- {PIX_FMT_GRAY16_L, PIX_FMT_RGB565, gray16_l_to_rgb565},
- {PIX_FMT_GRAY16_L, PIX_FMT_BGR24, gray16_l_to_bgr24},
- {PIX_FMT_GRAY16_L, PIX_FMT_RGB24, gray16_l_to_rgb24},
- {PIX_FMT_GRAY16_L, PIX_FMT_BGR32, gray16_l_to_bgr32},
- {PIX_FMT_GRAY16_L, PIX_FMT_RGB32, gray16_l_to_rgb32},
- {PIX_FMT_GRAY16_L, PIX_FMT_xRGB32, gray16_l_to_xrgb32},
- {PIX_FMT_GRAY16_L, PIX_FMT_BGRx32, gray16_l_to_bgrx32},
- {PIX_FMT_GRAY16_L, PIX_FMT_ABGR32, gray16_l_to_abgr32},
- {PIX_FMT_GRAY16_L, PIX_FMT_ARGB32, gray16_l_to_argb32},
- {PIX_FMT_GRAY16_L, PIX_FMT_BGRA32, gray16_l_to_bgra32},
- {PIX_FMT_GRAY16_L, PIX_FMT_RGBA32, gray16_l_to_rgba32},
- {PIX_FMT_GRAY16_L, PIX_FMT_GRAY16_B, gray16_b_to_gray16_l},
-
- {PIX_FMT_GRAY16_B, PIX_FMT_GRAY8, gray16_b_to_gray},
- {PIX_FMT_GRAY16_B, PIX_FMT_RGB555, gray16_b_to_rgb555},
- {PIX_FMT_GRAY16_B, PIX_FMT_RGB565, gray16_b_to_rgb565},
- {PIX_FMT_GRAY16_B, PIX_FMT_BGR24, gray16_b_to_bgr24},
- {PIX_FMT_GRAY16_B, PIX_FMT_RGB24, gray16_b_to_rgb24},
- {PIX_FMT_GRAY16_B, PIX_FMT_BGR32, gray16_b_to_bgr32},
- {PIX_FMT_GRAY16_B, PIX_FMT_RGB32, gray16_b_to_rgb32},
- {PIX_FMT_GRAY16_B, PIX_FMT_xRGB32, gray16_b_to_xrgb32},
- {PIX_FMT_GRAY16_B, PIX_FMT_BGRx32, gray16_b_to_bgrx32},
- {PIX_FMT_GRAY16_B, PIX_FMT_ABGR32, gray16_b_to_abgr32},
- {PIX_FMT_GRAY16_B, PIX_FMT_ARGB32, gray16_b_to_argb32},
- {PIX_FMT_GRAY16_B, PIX_FMT_BGRA32, gray16_b_to_bgra32},
- {PIX_FMT_GRAY16_B, PIX_FMT_RGBA32, gray16_b_to_rgba32},
- {PIX_FMT_GRAY16_B, PIX_FMT_GRAY16_L, gray16_b_to_gray16_l},
-
{PIX_FMT_PAL8, PIX_FMT_RGB555, pal8_to_rgb555},
{PIX_FMT_PAL8, PIX_FMT_RGB565, pal8_to_rgb565},
{PIX_FMT_PAL8, PIX_FMT_BGR24, pal8_to_bgr24},
@@ -2912,10 +2207,9 @@
{PIX_FMT_UYVY411, PIX_FMT_YUV411P, uyvy411_to_yuv411p},
- {PIX_FMT_V308, PIX_FMT_RGB24, v308_to_rgb24},
+ {PIX_FMT_AYUV4444, PIX_FMT_RGBA32, ayuv4444_to_rgba32},
- {PIX_FMT_AYUV4444, PIX_FMT_RGBA32, ayuv4444_to_rgba32},
- {PIX_FMT_AYUV4444, PIX_FMT_RGB24, ayuv4444_to_rgb24},
+ {PIX_FMT_AYUV4444, PIX_FMT_RGB24, ayuv4444_to_rgb24}
};
static ConvertEntry *
@@ -3156,8 +2450,7 @@
if (src_pix_fmt == PIX_FMT_YUV422 || dst_pix_fmt == PIX_FMT_YUV422) {
/* specific case: convert to YUV422P first */
int_pix_fmt = PIX_FMT_YUV422P;
- } else if (src_pix_fmt == PIX_FMT_UYVY422 || dst_pix_fmt == PIX_FMT_UYVY422 ||
- src_pix_fmt == PIX_FMT_YVYU422 || dst_pix_fmt == PIX_FMT_YVYU422) {
+ } else if (src_pix_fmt == PIX_FMT_UYVY422 || dst_pix_fmt == PIX_FMT_UYVY422) {
/* specific case: convert to YUV422P first */
int_pix_fmt = PIX_FMT_YUV422P;
} else if (src_pix_fmt == PIX_FMT_UYVY411 || dst_pix_fmt == PIX_FMT_UYVY411) {
@@ -3243,7 +2536,7 @@
int
img_get_alpha_info (const AVPicture * src, int pix_fmt, int width, int height)
{
- const PixFmtInfo *pf;
+ PixFmtInfo *pf = get_pix_fmt_info (pix_fmt);
int ret;
pf = get_pix_fmt_info (pix_fmt);
@@ -3385,7 +2678,6 @@
}
#endif
}
-
static void
deinterlace_line_inplace (uint8_t * lum_m4, uint8_t * lum_m3, uint8_t * lum_m2,
uint8_t * lum_m1, uint8_t * lum, int size)