[MOVED FROM BAD 37/68] colorspace: Add const to the source arrays and the getline/putline table

This commit is contained in:
Sebastian Dröge 2010-10-31 20:40:09 +01:00 committed by Wim Taymans
parent dd00c712c9
commit d75118e42f
2 changed files with 172 additions and 95 deletions

View file

@ -28,7 +28,7 @@
static void colorspace_convert_generic (ColorspaceConvert * convert,
guint8 * dest, guint8 * src);
guint8 * dest, const guint8 * src);
static void colorspace_convert_lookup_fastpath (ColorspaceConvert * convert);
static void colorspace_convert_lookup_getput (ColorspaceConvert * convert);
@ -106,7 +106,7 @@ colorspace_convert_set_palette (ColorspaceConvert * convert, guint32 * palette)
void
colorspace_convert_convert (ColorspaceConvert * convert,
guint8 * dest, guint8 * src)
guint8 * dest, const guint8 * src)
{
convert->convert (convert, dest, src);
}
@ -117,7 +117,8 @@ colorspace_convert_convert (ColorspaceConvert * convert,
((dir) + convert-> dir ## _offset[(comp)] + convert-> dir ## _stride[(comp)] * (line))
static void
getline_I420 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
getline_I420 (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
cogorc_getline_I420 (dest,
FRAME_GET_LINE (src, 0, j),
@ -126,7 +127,8 @@ getline_I420 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
}
static void
putline_I420 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
putline_I420 (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
cogorc_putline_I420 (FRAME_GET_LINE (dest, 0, j),
FRAME_GET_LINE (dest, 1, j >> 1),
@ -134,7 +136,8 @@ putline_I420 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
}
static void
getline_YV12 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
getline_YV12 (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
cogorc_getline_I420 (dest,
FRAME_GET_LINE (src, 0, j),
@ -143,7 +146,8 @@ getline_YV12 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
}
static void
putline_YV12 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
putline_YV12 (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
cogorc_putline_I420 (FRAME_GET_LINE (dest, 0, j),
FRAME_GET_LINE (dest, 1, j >> 1),
@ -151,46 +155,53 @@ putline_YV12 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
}
static void
getline_YUY2 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
getline_YUY2 (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
cogorc_getline_YUY2 (dest, FRAME_GET_LINE (src, 0, j), convert->width / 2);
}
static void
putline_YUY2 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
putline_YUY2 (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
cogorc_putline_YUY2 (FRAME_GET_LINE (dest, 0, j), src, convert->width / 2);
}
static void
getline_UYVY (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
getline_UYVY (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
cogorc_getline_UYVY (dest, FRAME_GET_LINE (src, 0, j), convert->width / 2);
}
static void
putline_UYVY (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
putline_UYVY (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
cogorc_putline_UYVY (FRAME_GET_LINE (dest, 0, j), src, convert->width / 2);
}
static void
getline_YVYU (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
getline_YVYU (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
cogorc_getline_YVYU (dest, FRAME_GET_LINE (src, 0, j), convert->width / 2);
}
static void
putline_YVYU (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
putline_YVYU (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
cogorc_putline_YVYU (FRAME_GET_LINE (dest, 0, j), src, convert->width / 2);
}
static void
getline_v308 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
getline_v308 (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
int i;
guint8 *srcline = FRAME_GET_LINE (src, 0, j);
const guint8 *srcline = FRAME_GET_LINE (src, 0, j);
for (i = 0; i < convert->width; i++) {
dest[i * 4 + 0] = 0xff;
dest[i * 4 + 1] = srcline[i * 3 + 0];
@ -200,7 +211,8 @@ getline_v308 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
}
static void
putline_v308 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
putline_v308 (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
int i;
guint8 *destline = FRAME_GET_LINE (dest, 0, j);
@ -212,23 +224,26 @@ putline_v308 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
}
static void
getline_AYUV (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
getline_AYUV (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
memcpy (dest, FRAME_GET_LINE (src, 0, j), convert->width * 4);
}
static void
putline_AYUV (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
putline_AYUV (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
memcpy (FRAME_GET_LINE (dest, 0, j), src, convert->width * 4);
}
#if 0
static void
getline_v410 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
getline_v410 (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
int i;
guint8 *srcline = FRAME_GET_LINE (src, 0, j);
const guint8 *srcline = FRAME_GET_LINE (src, 0, j);
for (i = 0; i < convert->width; i++) {
dest[i * 4 + 0] = GST_READ_UINT16_LE (srcline + i * 8 + 0);
dest[i * 4 + 1] = GST_READ_UINT16_LE (srcline + i * 8 + 2);
@ -239,10 +254,11 @@ getline_v410 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
#endif
static void
getline_v210 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
getline_v210 (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
int i;
guint8 *srcline = FRAME_GET_LINE (src, 0, j);
const guint8 *srcline = FRAME_GET_LINE (src, 0, j);
for (i = 0; i < convert->width; i += 6) {
guint32 a0, a1, a2, a3;
@ -305,7 +321,8 @@ getline_v210 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
}
static void
putline_v210 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
putline_v210 (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
int i;
guint8 *destline = FRAME_GET_LINE (dest, 0, j);
@ -344,10 +361,11 @@ putline_v210 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
}
static void
getline_v216 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
getline_v216 (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
int i;
guint8 *srcline = FRAME_GET_LINE (src, 0, j);
const guint8 *srcline = FRAME_GET_LINE (src, 0, j);
for (i = 0; i < convert->width; i++) {
dest[i * 4 + 0] = 0xff;
dest[i * 4 + 1] = GST_READ_UINT16_LE (srcline + i * 4 + 2);
@ -357,7 +375,8 @@ getline_v216 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
}
static void
putline_v216 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
putline_v216 (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
int i;
guint8 *destline = FRAME_GET_LINE (dest, 0, j);
@ -370,7 +389,8 @@ putline_v216 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
}
static void
getline_Y42B (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
getline_Y42B (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
cogorc_getline_Y42B (dest,
FRAME_GET_LINE (src, 0, j),
@ -379,7 +399,8 @@ getline_Y42B (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
}
static void
putline_Y42B (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
putline_Y42B (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
cogorc_putline_Y42B (FRAME_GET_LINE (dest, 0, j),
FRAME_GET_LINE (dest, 1, j),
@ -387,7 +408,8 @@ putline_Y42B (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
}
static void
getline_Y444 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
getline_Y444 (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
cogorc_getline_Y444 (dest,
FRAME_GET_LINE (src, 0, j),
@ -395,7 +417,8 @@ getline_Y444 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
}
static void
putline_Y444 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
putline_Y444 (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
cogorc_putline_Y444 (FRAME_GET_LINE (dest, 0, j),
FRAME_GET_LINE (dest, 1, j),
@ -403,58 +426,67 @@ putline_Y444 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
}
static void
getline_Y800 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
getline_Y800 (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
cogorc_getline_Y800 (dest, FRAME_GET_LINE (src, 0, j), convert->width);
}
static void
putline_Y800 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
putline_Y800 (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
cogorc_putline_Y800 (FRAME_GET_LINE (dest, 0, j), src, convert->width);
}
static void
getline_BGRA (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
getline_BGRA (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
cogorc_getline_BGRA (dest, FRAME_GET_LINE (src, 0, j), convert->width);
}
static void
putline_BGRA (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
putline_BGRA (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
cogorc_putline_BGRA (FRAME_GET_LINE (dest, 0, j), src, convert->width);
}
static void
getline_ABGR (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
getline_ABGR (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
cogorc_getline_ABGR (dest, FRAME_GET_LINE (src, 0, j), convert->width);
}
static void
putline_ABGR (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
putline_ABGR (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
cogorc_putline_ABGR (FRAME_GET_LINE (dest, 0, j), src, convert->width);
}
static void
getline_RGBA (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
getline_RGBA (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
cogorc_getline_RGBA (dest, FRAME_GET_LINE (src, 0, j), convert->width);
}
static void
putline_RGBA (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
putline_RGBA (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
cogorc_putline_RGBA (FRAME_GET_LINE (dest, 0, j), src, convert->width);
}
static void
getline_RGB (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
getline_RGB (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
int i;
guint8 *srcline = FRAME_GET_LINE (src, 0, j);
const guint8 *srcline = FRAME_GET_LINE (src, 0, j);
for (i = 0; i < convert->width; i++) {
dest[i * 4 + 0] = 0xff;
dest[i * 4 + 1] = srcline[i * 3 + 0];
@ -464,7 +496,8 @@ getline_RGB (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
}
static void
putline_RGB (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
putline_RGB (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
int i;
guint8 *destline = FRAME_GET_LINE (dest, 0, j);
@ -476,10 +509,11 @@ putline_RGB (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
}
static void
getline_BGR (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
getline_BGR (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
int i;
guint8 *srcline = FRAME_GET_LINE (src, 0, j);
const guint8 *srcline = FRAME_GET_LINE (src, 0, j);
for (i = 0; i < convert->width; i++) {
dest[i * 4 + 0] = 0xff;
dest[i * 4 + 1] = srcline[i * 3 + 2];
@ -489,7 +523,8 @@ getline_BGR (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
}
static void
putline_BGR (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
putline_BGR (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
int i;
guint8 *destline = FRAME_GET_LINE (dest, 0, j);
@ -501,7 +536,8 @@ putline_BGR (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
}
static void
getline_NV12 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
getline_NV12 (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
cogorc_getline_NV12 (dest,
FRAME_GET_LINE (src, 0, j),
@ -509,14 +545,16 @@ getline_NV12 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
}
static void
putline_NV12 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
putline_NV12 (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
cogorc_putline_NV12 (FRAME_GET_LINE (dest, 0, j),
FRAME_GET_LINE (dest, 1, j >> 1), src, convert->width / 2);
}
static void
getline_NV21 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
getline_NV21 (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
cogorc_getline_NV21 (dest,
FRAME_GET_LINE (src, 0, j),
@ -524,14 +562,16 @@ getline_NV21 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
}
static void
putline_NV21 (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
putline_NV21 (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
cogorc_putline_NV21 (FRAME_GET_LINE (dest, 0, j),
FRAME_GET_LINE (dest, 2, j >> 1), src, convert->width / 2);
}
static void
getline_UYVP (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
getline_UYVP (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
int i;
@ -557,7 +597,8 @@ getline_UYVP (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
}
static void
putline_UYVP (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
putline_UYVP (ColorspaceConvert * convert, guint8 * dest, const guint8 * src,
int j)
{
int i;
@ -584,12 +625,12 @@ putline_UYVP (ColorspaceConvert * convert, guint8 * dest, guint8 * src, int j)
typedef struct
{
GstVideoFormat format;
void (*getline) (ColorspaceConvert * convert, guint8 * dest, guint8 * src,
int j);
void (*putline) (ColorspaceConvert * convert, guint8 * dest, guint8 * src,
int j);
void (*getline) (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src, int j);
void (*putline) (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src, int j);
} ColorspaceLine;
static ColorspaceLine lines[] = {
static const ColorspaceLine lines[] = {
{GST_VIDEO_FORMAT_I420, getline_I420, putline_I420},
{GST_VIDEO_FORMAT_YV12, getline_YV12, putline_YV12},
{GST_VIDEO_FORMAT_YUY2, getline_YUY2, putline_YUY2},
@ -714,7 +755,7 @@ colorspace_convert_lookup_getput (ColorspaceConvert * convert)
static void
colorspace_convert_generic (ColorspaceConvert * convert, guint8 * dest,
guint8 * src)
const guint8 * src)
{
int j;
@ -739,7 +780,8 @@ colorspace_convert_generic (ColorspaceConvert * convert, guint8 * dest,
/* Fast paths */
static void
convert_I420_YUY2 (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_I420_YUY2 (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
int i;
@ -754,7 +796,8 @@ convert_I420_YUY2 (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
}
static void
convert_I420_UYVY (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_I420_UYVY (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
int i;
@ -769,7 +812,8 @@ convert_I420_UYVY (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
}
static void
convert_I420_AYUV (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_I420_AYUV (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
int i;
@ -784,7 +828,8 @@ convert_I420_AYUV (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
}
static void
convert_I420_Y42B (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_I420_Y42B (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
cogorc_memcpy_2d (FRAME_GET_LINE (dest, 0, 0), convert->dest_stride[0],
FRAME_GET_LINE (src, 0, 0), convert->src_stride[0],
@ -802,7 +847,8 @@ convert_I420_Y42B (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
}
static void
convert_I420_Y444 (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_I420_Y444 (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
cogorc_memcpy_2d (FRAME_GET_LINE (dest, 0, 0), convert->dest_stride[0],
FRAME_GET_LINE (src, 0, 0), convert->src_stride[0],
@ -822,7 +868,8 @@ convert_I420_Y444 (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
}
static void
convert_YUY2_I420 (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_YUY2_I420 (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
int i;
@ -837,7 +884,8 @@ convert_YUY2_I420 (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
}
static void
convert_YUY2_AYUV (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_YUY2_AYUV (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
cogorc_convert_YUY2_AYUV (FRAME_GET_LINE (dest, 0, 0),
convert->dest_stride[0], FRAME_GET_LINE (src, 0, 0),
@ -845,7 +893,8 @@ convert_YUY2_AYUV (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
}
static void
convert_YUY2_Y42B (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_YUY2_Y42B (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
cogorc_convert_YUY2_Y42B (FRAME_GET_LINE (dest, 0, 0),
convert->dest_stride[0], FRAME_GET_LINE (dest, 1, 0),
@ -855,7 +904,8 @@ convert_YUY2_Y42B (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
}
static void
convert_YUY2_Y444 (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_YUY2_Y444 (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
cogorc_convert_YUY2_Y444 (FRAME_GET_LINE (dest, 0, 0),
convert->dest_stride[0], FRAME_GET_LINE (dest, 1, 0),
@ -866,7 +916,8 @@ convert_YUY2_Y444 (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
static void
convert_UYVY_I420 (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_UYVY_I420 (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
int i;
@ -881,7 +932,8 @@ convert_UYVY_I420 (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
}
static void
convert_UYVY_AYUV (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_UYVY_AYUV (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
cogorc_convert_UYVY_AYUV (FRAME_GET_LINE (dest, 0, 0),
convert->dest_stride[0], FRAME_GET_LINE (src, 0, 0),
@ -889,7 +941,8 @@ convert_UYVY_AYUV (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
}
static void
convert_UYVY_YUY2 (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_UYVY_YUY2 (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
cogorc_convert_UYVY_YUY2 (FRAME_GET_LINE (dest, 0, 0),
convert->dest_stride[0], FRAME_GET_LINE (src, 0, 0),
@ -897,7 +950,8 @@ convert_UYVY_YUY2 (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
}
static void
convert_UYVY_Y42B (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_UYVY_Y42B (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
cogorc_convert_UYVY_Y42B (FRAME_GET_LINE (dest, 0, 0),
convert->dest_stride[0], FRAME_GET_LINE (dest, 1, 0),
@ -907,7 +961,8 @@ convert_UYVY_Y42B (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
}
static void
convert_UYVY_Y444 (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_UYVY_Y444 (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
cogorc_convert_UYVY_Y444 (FRAME_GET_LINE (dest, 0, 0),
convert->dest_stride[0], FRAME_GET_LINE (dest, 1, 0),
@ -917,7 +972,8 @@ convert_UYVY_Y444 (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
}
static void
convert_AYUV_I420 (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_AYUV_I420 (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
cogorc_convert_AYUV_I420 (FRAME_GET_LINE (dest, 0, 0),
2 * convert->dest_stride[0], FRAME_GET_LINE (dest, 0, 1),
@ -929,7 +985,8 @@ convert_AYUV_I420 (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
}
static void
convert_AYUV_YUY2 (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_AYUV_YUY2 (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
cogorc_convert_AYUV_YUY2 (FRAME_GET_LINE (dest, 0, 0),
convert->dest_stride[0], FRAME_GET_LINE (src, 0, 0),
@ -937,7 +994,8 @@ convert_AYUV_YUY2 (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
}
static void
convert_AYUV_UYVY (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_AYUV_UYVY (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
cogorc_convert_AYUV_UYVY (FRAME_GET_LINE (dest, 0, 0),
convert->dest_stride[0], FRAME_GET_LINE (src, 0, 0),
@ -945,7 +1003,8 @@ convert_AYUV_UYVY (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
}
static void
convert_AYUV_Y42B (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_AYUV_Y42B (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
cogorc_convert_AYUV_Y42B (FRAME_GET_LINE (dest, 0, 0),
convert->dest_stride[0], FRAME_GET_LINE (dest, 1, 0),
@ -955,7 +1014,8 @@ convert_AYUV_Y42B (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
}
static void
convert_AYUV_Y444 (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_AYUV_Y444 (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
cogorc_convert_AYUV_Y444 (FRAME_GET_LINE (dest, 0, 0),
convert->dest_stride[0], FRAME_GET_LINE (dest, 1, 0),
@ -965,7 +1025,8 @@ convert_AYUV_Y444 (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
}
static void
convert_Y42B_I420 (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_Y42B_I420 (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
cogorc_memcpy_2d (FRAME_GET_LINE (dest, 0, 0), convert->dest_stride[0],
FRAME_GET_LINE (src, 0, 0), convert->src_stride[0],
@ -985,7 +1046,8 @@ convert_Y42B_I420 (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
}
static void
convert_Y42B_Y444 (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_Y42B_Y444 (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
cogorc_memcpy_2d (FRAME_GET_LINE (dest, 0, 0), convert->dest_stride[0],
FRAME_GET_LINE (src, 0, 0), convert->src_stride[0],
@ -1001,7 +1063,8 @@ convert_Y42B_Y444 (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
}
static void
convert_Y42B_YUY2 (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_Y42B_YUY2 (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
cogorc_convert_Y42B_YUY2 (FRAME_GET_LINE (dest, 0, 0),
convert->dest_stride[0], FRAME_GET_LINE (src, 0, 0),
@ -1011,7 +1074,8 @@ convert_Y42B_YUY2 (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
}
static void
convert_Y42B_UYVY (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_Y42B_UYVY (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
cogorc_convert_Y42B_UYVY (FRAME_GET_LINE (dest, 0, 0),
convert->dest_stride[0], FRAME_GET_LINE (src, 0, 0),
@ -1021,7 +1085,8 @@ convert_Y42B_UYVY (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
}
static void
convert_Y42B_AYUV (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_Y42B_AYUV (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
cogorc_convert_Y42B_AYUV (FRAME_GET_LINE (dest, 0, 0),
convert->dest_stride[0], FRAME_GET_LINE (src, 0, 0),
@ -1031,7 +1096,8 @@ convert_Y42B_AYUV (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
}
static void
convert_Y444_I420 (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_Y444_I420 (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
cogorc_memcpy_2d (FRAME_GET_LINE (dest, 0, 0), convert->dest_stride[0],
FRAME_GET_LINE (src, 0, 0), convert->src_stride[0],
@ -1051,7 +1117,8 @@ convert_Y444_I420 (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
}
static void
convert_Y444_Y42B (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_Y444_Y42B (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
cogorc_memcpy_2d (FRAME_GET_LINE (dest, 0, 0), convert->dest_stride[0],
FRAME_GET_LINE (src, 0, 0), convert->src_stride[0],
@ -1067,7 +1134,8 @@ convert_Y444_Y42B (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
}
static void
convert_Y444_YUY2 (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_Y444_YUY2 (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
cogorc_convert_Y444_YUY2 (FRAME_GET_LINE (dest, 0, 0),
convert->dest_stride[0], FRAME_GET_LINE (src, 0, 0),
@ -1077,7 +1145,8 @@ convert_Y444_YUY2 (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
}
static void
convert_Y444_UYVY (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_Y444_UYVY (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
cogorc_convert_Y444_UYVY (FRAME_GET_LINE (dest, 0, 0),
convert->dest_stride[0], FRAME_GET_LINE (src, 0, 0),
@ -1087,7 +1156,8 @@ convert_Y444_UYVY (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
}
static void
convert_Y444_AYUV (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_Y444_AYUV (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
cogorc_convert_Y444_AYUV (FRAME_GET_LINE (dest, 0, 0),
convert->dest_stride[0], FRAME_GET_LINE (src, 0, 0),
@ -1097,7 +1167,8 @@ convert_Y444_AYUV (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
}
static void
convert_AYUV_ARGB (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_AYUV_ARGB (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
cogorc_convert_AYUV_ARGB (FRAME_GET_LINE (dest, 0, 0),
convert->dest_stride[0], FRAME_GET_LINE (src, 0, 0),
@ -1105,7 +1176,8 @@ convert_AYUV_ARGB (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
}
static void
convert_AYUV_BGRA (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_AYUV_BGRA (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
cogorc_convert_AYUV_BGRA (FRAME_GET_LINE (dest, 0, 0),
convert->dest_stride[0], FRAME_GET_LINE (src, 0, 0),
@ -1113,7 +1185,8 @@ convert_AYUV_BGRA (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
}
static void
convert_AYUV_ABGR (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_AYUV_ABGR (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
cogorc_convert_AYUV_ABGR (FRAME_GET_LINE (dest, 0, 0),
convert->dest_stride[0], FRAME_GET_LINE (src, 0, 0),
@ -1121,7 +1194,8 @@ convert_AYUV_ABGR (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
}
static void
convert_AYUV_RGBA (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_AYUV_RGBA (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
cogorc_convert_AYUV_RGBA (FRAME_GET_LINE (dest, 0, 0),
convert->dest_stride[0], FRAME_GET_LINE (src, 0, 0),
@ -1129,7 +1203,8 @@ convert_AYUV_RGBA (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
}
static void
convert_I420_BGRA (ColorspaceConvert * convert, guint8 * dest, guint8 * src)
convert_I420_BGRA (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src)
{
int i;
int quality = 0;
@ -1168,7 +1243,8 @@ typedef struct
{
GstVideoFormat from_format;
GstVideoFormat to_format;
void (*convert) (ColorspaceConvert * convert, guint8 * dest, guint8 * src);
void (*convert) (ColorspaceConvert * convert, guint8 * dest,
const guint8 * src);
} ColorspaceTransform;
static const ColorspaceTransform transforms[] = {
{GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_YUY2, convert_I420_YUY2},

View file

@ -47,21 +47,22 @@ struct _ColorspaceConvert {
int src_offset[4];
int src_stride[4];
void (*convert) (ColorspaceConvert *convert, guint8 *dest, guint8 *src);
void (*getline) (ColorspaceConvert *convert, guint8 *dest, guint8 *src, int j);
void (*putline) (ColorspaceConvert *convert, guint8 *dest, guint8 *src, int j);
void (*convert) (ColorspaceConvert *convert, guint8 *dest, const guint8 *src);
void (*getline) (ColorspaceConvert *convert, guint8 *dest, const guint8 *src, int j);
void (*putline) (ColorspaceConvert *convert, guint8 *dest, const guint8 *src, int j);
void (*matrix) (ColorspaceConvert *convert);
};
ColorspaceConvert * colorspace_convert_new (GstVideoFormat to_format,
GstVideoFormat from_format, int width, int height);
ColorSpaceColorSpec from_spec, GstVideoFormat from_format,
ColorSpaceColorSpec to_spec, int width, int height);
void colorspace_convert_set_interlaced (ColorspaceConvert *convert,
gboolean interlaced);
void colorspace_convert_set_palette (ColorspaceConvert *convert,
guint32 *palette);
void colorspace_convert_free (ColorspaceConvert * convert);
void colorspace_convert_convert (ColorspaceConvert * convert,
guint8 *dest, guint8 *src);
guint8 *dest, const guint8 *src);
G_END_DECLS