#include <inttypes.h>
#include "config.h"
#include "libavutil/x86_cpu.h"
#include "libavutil/bswap.h"
#include "rgb2rgb.h"
#include "swscale.h"
#include "swscale_internal.h"
#include "rgb2rgb_template.c"
Go to the source code of this file.
Defines | |
#define | FAST_BGR2YV12 |
#define | RGB2YUV_SHIFT 8 |
#define | BY ((int)( 0.098*(1<<RGB2YUV_SHIFT)+0.5)) |
#define | BV ((int)(-0.071*(1<<RGB2YUV_SHIFT)+0.5)) |
#define | BU ((int)( 0.439*(1<<RGB2YUV_SHIFT)+0.5)) |
#define | GY ((int)( 0.504*(1<<RGB2YUV_SHIFT)+0.5)) |
#define | GV ((int)(-0.368*(1<<RGB2YUV_SHIFT)+0.5)) |
#define | GU ((int)(-0.291*(1<<RGB2YUV_SHIFT)+0.5)) |
#define | RY ((int)( 0.257*(1<<RGB2YUV_SHIFT)+0.5)) |
#define | RV ((int)( 0.439*(1<<RGB2YUV_SHIFT)+0.5)) |
#define | RU ((int)(-0.148*(1<<RGB2YUV_SHIFT)+0.5)) |
#define | HAVE_MMX 0 |
#define | HAVE_MMX2 0 |
#define | HAVE_AMD3DNOW 0 |
#define | HAVE_SSE2 0 |
#define | RENAME(a) a ## _C |
Functions | |
void | sws_rgb2rgb_init (int flags) |
void | palette8topacked32 (const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette) |
Convert the palette to the same packet 32-bit format as the palette. | |
void | palette8topacked24 (const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette) |
Palette format: ABCD -> dst format: ABC. | |
void | palette8torgb16 (const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette) |
Palette is assumed to contain BGR16, see rgb32to16 to convert the palette. | |
void | palette8tobgr16 (const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette) |
void | palette8torgb15 (const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette) |
Palette is assumed to contain BGR15, see rgb32to15 to convert the palette. | |
void | palette8tobgr15 (const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette) |
void | rgb32to24 (const uint8_t *src, uint8_t *dst, long src_size) |
void | rgb24to32 (const uint8_t *src, uint8_t *dst, long src_size) |
void | rgb16tobgr32 (const uint8_t *src, uint8_t *dst, long src_size) |
void | rgb16to24 (const uint8_t *src, uint8_t *dst, long src_size) |
void | rgb16tobgr16 (const uint8_t *src, uint8_t *dst, long src_size) |
void | rgb16tobgr15 (const uint8_t *src, uint8_t *dst, long src_size) |
void | rgb15tobgr32 (const uint8_t *src, uint8_t *dst, long src_size) |
void | rgb15to24 (const uint8_t *src, uint8_t *dst, long src_size) |
void | rgb15tobgr16 (const uint8_t *src, uint8_t *dst, long src_size) |
void | rgb15tobgr15 (const uint8_t *src, uint8_t *dst, long src_size) |
void | bgr8torgb8 (const uint8_t *src, uint8_t *dst, long src_size) |
Variables | |
void(* | rgb24tobgr32 )(const uint8_t *src, uint8_t *dst, long src_size) |
void(* | rgb24tobgr16 )(const uint8_t *src, uint8_t *dst, long src_size) |
void(* | rgb24tobgr15 )(const uint8_t *src, uint8_t *dst, long src_size) |
void(* | rgb32tobgr24 )(const uint8_t *src, uint8_t *dst, long src_size) |
void(* | rgb32to16 )(const uint8_t *src, uint8_t *dst, long src_size) |
void(* | rgb32to15 )(const uint8_t *src, uint8_t *dst, long src_size) |
void(* | rgb15to16 )(const uint8_t *src, uint8_t *dst, long src_size) |
void(* | rgb15tobgr24 )(const uint8_t *src, uint8_t *dst, long src_size) |
void(* | rgb15to32 )(const uint8_t *src, uint8_t *dst, long src_size) |
void(* | rgb16to15 )(const uint8_t *src, uint8_t *dst, long src_size) |
void(* | rgb16tobgr24 )(const uint8_t *src, uint8_t *dst, long src_size) |
void(* | rgb16to32 )(const uint8_t *src, uint8_t *dst, long src_size) |
void(* | rgb24tobgr24 )(const uint8_t *src, uint8_t *dst, long src_size) |
void(* | rgb24to16 )(const uint8_t *src, uint8_t *dst, long src_size) |
void(* | rgb24to15 )(const uint8_t *src, uint8_t *dst, long src_size) |
void(* | rgb32tobgr32 )(const uint8_t *src, uint8_t *dst, long src_size) |
void(* | rgb32tobgr16 )(const uint8_t *src, uint8_t *dst, long src_size) |
void(* | rgb32tobgr15 )(const uint8_t *src, uint8_t *dst, long src_size) |
void(* | yv12toyuy2 )(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst, long width, long height, long lumStride, long chromStride, long dstStride) |
Height should be a multiple of 2 and width should be a multiple of 16. | |
void(* | yv12touyvy )(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst, long width, long height, long lumStride, long chromStride, long dstStride) |
Height should be a multiple of 2 and width should be a multiple of 16. | |
void(* | yuv422ptoyuy2 )(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst, long width, long height, long lumStride, long chromStride, long dstStride) |
Width should be a multiple of 16. | |
void(* | yuv422ptouyvy )(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst, long width, long height, long lumStride, long chromStride, long dstStride) |
Width should be a multiple of 16. | |
void(* | yuy2toyv12 )(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst, long width, long height, long lumStride, long chromStride, long srcStride) |
Height should be a multiple of 2 and width should be a multiple of 16. | |
void(* | rgb24toyv12 )(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst, long width, long height, long lumStride, long chromStride, long srcStride) |
Height should be a multiple of 2 and width should be a multiple of 2. | |
void(* | planar2x )(const uint8_t *src, uint8_t *dst, long width, long height, long srcStride, long dstStride) |
void(* | interleaveBytes )(uint8_t *src1, uint8_t *src2, uint8_t *dst, long width, long height, long src1Stride, long src2Stride, long dstStride) |
void(* | vu9_to_vu12 )(const uint8_t *src1, const uint8_t *src2, uint8_t *dst1, uint8_t *dst2, long width, long height, long srcStride1, long srcStride2, long dstStride1, long dstStride2) |
void(* | yvu9_to_yuy2 )(const uint8_t *src1, const uint8_t *src2, const uint8_t *src3, uint8_t *dst, long width, long height, long srcStride1, long srcStride2, long srcStride3, long dstStride) |
#define BU ((int)( 0.439*(1<<RGB2YUV_SHIFT)+0.5)) |
#define BV ((int)(-0.071*(1<<RGB2YUV_SHIFT)+0.5)) |
#define BY ((int)( 0.098*(1<<RGB2YUV_SHIFT)+0.5)) |
#define GU ((int)(-0.291*(1<<RGB2YUV_SHIFT)+0.5)) |
#define GV ((int)(-0.368*(1<<RGB2YUV_SHIFT)+0.5)) |
#define GY ((int)( 0.504*(1<<RGB2YUV_SHIFT)+0.5)) |
#define RGB2YUV_SHIFT 8 |
Definition at line 128 of file rgb2rgb.c.
Referenced by bgr24ToUV_half_TMPL(), bgr24ToUV_TMPL(), bgr24ToY_TMPL(), rgb24ToY_TMPL(), rgb24toyv12_TMPL(), and sws_scale().
#define RU ((int)(-0.148*(1<<RGB2YUV_SHIFT)+0.5)) |
#define RV ((int)( 0.439*(1<<RGB2YUV_SHIFT)+0.5)) |
#define RY ((int)( 0.257*(1<<RGB2YUV_SHIFT)+0.5)) |
void bgr8torgb8 | ( | const uint8_t * | src, | |
uint8_t * | dst, | |||
long | src_size | |||
) |
void palette8tobgr15 | ( | const uint8_t * | src, | |
uint8_t * | dst, | |||
long | num_pixels, | |||
const uint8_t * | palette | |||
) |
void palette8tobgr16 | ( | const uint8_t * | src, | |
uint8_t * | dst, | |||
long | num_pixels, | |||
const uint8_t * | palette | |||
) |
void palette8topacked24 | ( | const uint8_t * | src, | |
uint8_t * | dst, | |||
long | num_pixels, | |||
const uint8_t * | palette | |||
) |
Palette format: ABCD -> dst format: ABC.
Definition at line 213 of file rgb2rgb.c.
Referenced by pal2rgbWrapper().
void palette8topacked32 | ( | const uint8_t * | src, | |
uint8_t * | dst, | |||
long | num_pixels, | |||
const uint8_t * | palette | |||
) |
Convert the palette to the same packet 32-bit format as the palette.
Definition at line 202 of file rgb2rgb.c.
Referenced by pal2rgbWrapper().
void palette8torgb15 | ( | const uint8_t * | src, | |
uint8_t * | dst, | |||
long | num_pixels, | |||
const uint8_t * | palette | |||
) |
void palette8torgb16 | ( | const uint8_t * | src, | |
uint8_t * | dst, | |||
long | num_pixels, | |||
const uint8_t * | palette | |||
) |
void rgb15to24 | ( | const uint8_t * | src, | |
uint8_t * | dst, | |||
long | src_size | |||
) |
void rgb15tobgr15 | ( | const uint8_t * | src, | |
uint8_t * | dst, | |||
long | src_size | |||
) |
void rgb15tobgr16 | ( | const uint8_t * | src, | |
uint8_t * | dst, | |||
long | src_size | |||
) |
void rgb15tobgr32 | ( | const uint8_t * | src, | |
uint8_t * | dst, | |||
long | src_size | |||
) |
void rgb16to24 | ( | const uint8_t * | src, | |
uint8_t * | dst, | |||
long | src_size | |||
) |
void rgb16tobgr15 | ( | const uint8_t * | src, | |
uint8_t * | dst, | |||
long | src_size | |||
) |
void rgb16tobgr16 | ( | const uint8_t * | src, | |
uint8_t * | dst, | |||
long | src_size | |||
) |
void rgb16tobgr32 | ( | const uint8_t * | src, | |
uint8_t * | dst, | |||
long | src_size | |||
) |
void rgb24to32 | ( | const uint8_t * | src, | |
uint8_t * | dst, | |||
long | src_size | |||
) |
void rgb32to24 | ( | const uint8_t * | src, | |
uint8_t * | dst, | |||
long | src_size | |||
) |
void sws_rgb2rgb_init | ( | int | flags | ) |
void(* interleaveBytes)(uint8_t *src1, uint8_t *src2, uint8_t *dst, long width, long height, long src1Stride, long src2Stride, long dstStride) |
Referenced by PlanarToNV12Wrapper(), and rgb2rgb_init_TMPL().
void(* planar2x)(const uint8_t *src, uint8_t *dst, long width, long height, long srcStride, long dstStride) |
Referenced by rgb2rgb_init_TMPL(), and yvu9toyv12Wrapper().
Referenced by main(), rgb2rgb_init_TMPL(), rgb2rgbWrapper(), and sws_getContext().
Referenced by main(), rgb2rgb_init_TMPL(), and rgb2rgbWrapper().
void(* rgb15tobgr24)(const uint8_t *src, uint8_t *dst, long src_size) |
Referenced by main(), rgb2rgb_init_TMPL(), and rgb2rgbWrapper().
Referenced by main(), rgb2rgb_init_TMPL(), and rgb2rgbWrapper().
Referenced by main(), rgb2rgb_init_TMPL(), and rgb2rgbWrapper().
void(* rgb16tobgr24)(const uint8_t *src, uint8_t *dst, long src_size) |
Referenced by main(), rgb2rgb_init_TMPL(), and rgb2rgbWrapper().
Referenced by main(), rgb2rgb_init_TMPL(), and rgb2rgbWrapper().
Referenced by main(), rgb2rgb_init_TMPL(), and rgb2rgbWrapper().
void(* rgb24tobgr15)(const uint8_t *src, uint8_t *dst, long src_size) |
Referenced by main(), rgb2rgb_init_TMPL(), and rgb2rgbWrapper().
void(* rgb24tobgr16)(const uint8_t *src, uint8_t *dst, long src_size) |
Referenced by main(), rgb2rgb_init_TMPL(), and rgb2rgbWrapper().
void(* rgb24tobgr24)(const uint8_t *src, uint8_t *dst, long src_size) |
Referenced by main(), rgb2rgb_init_TMPL(), and rgb2rgbWrapper().
void(* rgb24tobgr32)(const uint8_t *src, uint8_t *dst, long src_size) |
Referenced by main(), rgb2rgb_init_TMPL(), and rgb2rgbWrapper().
void(* rgb24toyv12)(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst, long width, long height, long lumStride, long chromStride, long srcStride) |
Height should be a multiple of 2 and width should be a multiple of 2.
(If this is a problem for anyone then tell me, and I will fix it.) Chrominance data is only taken from every second line, others are ignored. FIXME: Write high quality version.
Referenced by bgr24toyv12Wrapper(), and rgb2rgb_init_TMPL().
Referenced by main(), rgb2rgb_init_TMPL(), and rgb2rgbWrapper().
Referenced by main(), rgb2rgb_init_TMPL(), and rgb2rgbWrapper().
void(* rgb32tobgr15)(const uint8_t *src, uint8_t *dst, long src_size) |
Referenced by main(), rgb2rgb_init_TMPL(), and rgb2rgbWrapper().
void(* rgb32tobgr16)(const uint8_t *src, uint8_t *dst, long src_size) |
Referenced by main(), rgb2rgb_init_TMPL(), and rgb2rgbWrapper().
void(* rgb32tobgr24)(const uint8_t *src, uint8_t *dst, long src_size) |
Referenced by main(), rgb2rgb_init_TMPL(), and rgb2rgbWrapper().
void(* rgb32tobgr32)(const uint8_t *src, uint8_t *dst, long src_size) |
Referenced by main(), rgb2rgb_init_TMPL(), and rgb2rgbWrapper().
void(* vu9_to_vu12)(const uint8_t *src1, const uint8_t *src2, uint8_t *dst1, uint8_t *dst2, long width, long height, long srcStride1, long srcStride2, long dstStride1, long dstStride2) |
Referenced by rgb2rgb_init_TMPL().
void(* yuv422ptouyvy)(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst, long width, long height, long lumStride, long chromStride, long dstStride) |
void(* yuv422ptoyuy2)(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst, long width, long height, long lumStride, long chromStride, long dstStride) |
void(* yuy2toyv12)(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst, long width, long height, long lumStride, long chromStride, long srcStride) |
Height should be a multiple of 2 and width should be a multiple of 16.
(If this is a problem for anyone then tell me, and I will fix it.)
Referenced by rgb2rgb_init_TMPL().
void(* yv12touyvy)(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst, long width, long height, long lumStride, long chromStride, long dstStride) |
Height should be a multiple of 2 and width should be a multiple of 16.
(If this is a problem for anyone then tell me, and I will fix it.)
Referenced by PlanarToUyvyWrapper(), rgb2rgb_init_TMPL(), and yv12touyvy_unscaled_altivec().
void(* yv12toyuy2)(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst, long width, long height, long lumStride, long chromStride, long dstStride) |
Height should be a multiple of 2 and width should be a multiple of 16.
(If this is a problem for anyone then tell me, and I will fix it.) Chrominance data is only taken from every second line, others are ignored. FIXME: Write high quality version. Height should be a multiple of 2 and width should be a multiple of 16. (If this is a problem for anyone then tell me, and I will fix it.)
Referenced by PlanarToYuy2Wrapper(), rgb2rgb_init_TMPL(), and yv12toyuy2_unscaled_altivec().
void(* yvu9_to_yuy2)(const uint8_t *src1, const uint8_t *src2, const uint8_t *src3, uint8_t *dst, long width, long height, long srcStride1, long srcStride2, long srcStride3, long dstStride) |
Referenced by rgb2rgb_init_TMPL().