#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().
 1.5.8