#include <inttypes.h>
#include "config.h"
#include "rgb2rgb.h"
#include "swscale.h"
#include "swscale_internal.h"
#include "x86_cpu.h"
#include "bswap.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 | RENAME(a) a ## _C |
Functions | |
void | sws_rgb2rgb_init (int flags) |
void | palette8torgb32 (const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette) |
Palette is assumed to contain BGR32. | |
void | palette8tobgr32 (const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette) |
void | palette8torgb24 (const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette) |
Palette is assumed to contain BGR32. | |
void | palette8tobgr24 (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) |
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 | rgb32tobgr24 (const uint8_t *src, uint8_t *dst, long src_size) |
void | rgb24tobgr32 (const uint8_t *src, uint8_t *dst, long src_size) |
void | rgb16tobgr32 (const uint8_t *src, uint8_t *dst, long src_size) |
void | rgb16tobgr24 (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 | rgb15tobgr24 (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 | rgb8tobgr8 (const uint8_t *src, uint8_t *dst, long src_size) |
Variables | |
void(* | rgb24to32 )(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(* | rgb32to24 )(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(* | rgb15to24 )(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(* | rgb16to24 )(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(* | rgb24tobgr16 )(const uint8_t *src, uint8_t *dst, long src_size) |
void(* | rgb24tobgr15 )(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 (if this is a problem for anyone then tell me, and ill fix it) chrominance data is only taken from every secound line others are ignored FIXME write HQ version | |
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 ill fix it) | |
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(* | 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 ill fix it) | |
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 ill fix it) chrominance data is only taken from every secound line others are ignored FIXME write HQ version | |
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)) |
Definition at line 144 of file rgb2rgb.c.
Referenced by bgr15ToUV_TMPL(), bgr16ToUV_TMPL(), bgr24ToUV_TMPL(), bgr32ToUV_TMPL(), rgb15ToUV_TMPL(), rgb16ToUV_TMPL(), rgb24ToUV_TMPL(), rgb24toyv12_TMPL(), and rgb32ToUV_TMPL().
#define BV ((int)(-0.071*(1<<RGB2YUV_SHIFT)+0.5)) |
Definition at line 143 of file rgb2rgb.c.
Referenced by bgr15ToUV_TMPL(), bgr16ToUV_TMPL(), bgr24ToUV_TMPL(), bgr32ToUV_TMPL(), rgb15ToUV_TMPL(), rgb16ToUV_TMPL(), rgb24ToUV_TMPL(), rgb24toyv12_TMPL(), and rgb32ToUV_TMPL().
#define BY ((int)( 0.098*(1<<RGB2YUV_SHIFT)+0.5)) |
Definition at line 142 of file rgb2rgb.c.
Referenced by bgr15ToY_TMPL(), bgr16ToY_TMPL(), bgr24ToY_TMPL(), bgr32ToY_TMPL(), rgb15ToY_TMPL(), rgb16ToY_TMPL(), rgb24ToY_TMPL(), rgb24toyv12_TMPL(), and rgb32ToY_TMPL().
#define GU ((int)(-0.291*(1<<RGB2YUV_SHIFT)+0.5)) |
Definition at line 147 of file rgb2rgb.c.
Referenced by bgr15ToUV_TMPL(), bgr16ToUV_TMPL(), bgr24ToUV_TMPL(), bgr32ToUV_TMPL(), rgb15ToUV_TMPL(), rgb16ToUV_TMPL(), rgb24ToUV_TMPL(), rgb24toyv12_TMPL(), and rgb32ToUV_TMPL().
#define GV ((int)(-0.368*(1<<RGB2YUV_SHIFT)+0.5)) |
Definition at line 146 of file rgb2rgb.c.
Referenced by bgr15ToUV_TMPL(), bgr16ToUV_TMPL(), bgr24ToUV_TMPL(), bgr32ToUV_TMPL(), rgb15ToUV_TMPL(), rgb16ToUV_TMPL(), rgb24ToUV_TMPL(), rgb24toyv12_TMPL(), and rgb32ToUV_TMPL().
#define GY ((int)( 0.504*(1<<RGB2YUV_SHIFT)+0.5)) |
Definition at line 145 of file rgb2rgb.c.
Referenced by bgr15ToY_TMPL(), bgr16ToY_TMPL(), bgr24ToY_TMPL(), bgr32ToY_TMPL(), rgb15ToY_TMPL(), rgb16ToY_TMPL(), rgb24ToY_TMPL(), rgb24toyv12_TMPL(), and rgb32ToY_TMPL().
#define RGB2YUV_SHIFT 8 |
Definition at line 141 of file rgb2rgb.c.
Referenced by bgr15ToUV_TMPL(), bgr15ToY_TMPL(), bgr16ToUV_TMPL(), bgr16ToY_TMPL(), bgr24ToUV_TMPL(), bgr24ToY_TMPL(), bgr32ToUV_TMPL(), bgr32ToY_TMPL(), rgb15ToUV_TMPL(), rgb15ToY_TMPL(), rgb16ToUV_TMPL(), rgb16ToY_TMPL(), rgb24ToUV_TMPL(), rgb24ToY_TMPL(), rgb24toyv12_TMPL(), rgb32ToUV_TMPL(), and rgb32ToY_TMPL().
#define RU ((int)(-0.148*(1<<RGB2YUV_SHIFT)+0.5)) |
Definition at line 150 of file rgb2rgb.c.
Referenced by bgr15ToUV_TMPL(), bgr16ToUV_TMPL(), bgr24ToUV_TMPL(), bgr32ToUV_TMPL(), rgb15ToUV_TMPL(), rgb16ToUV_TMPL(), rgb24ToUV_TMPL(), rgb24toyv12_TMPL(), and rgb32ToUV_TMPL().
#define RV ((int)( 0.439*(1<<RGB2YUV_SHIFT)+0.5)) |
Definition at line 149 of file rgb2rgb.c.
Referenced by bgr15ToUV_TMPL(), bgr16ToUV_TMPL(), bgr24ToUV_TMPL(), bgr32ToUV_TMPL(), rgb15ToUV_TMPL(), rgb16ToUV_TMPL(), rgb24ToUV_TMPL(), rgb24toyv12_TMPL(), and rgb32ToUV_TMPL().
#define RY ((int)( 0.257*(1<<RGB2YUV_SHIFT)+0.5)) |
Definition at line 148 of file rgb2rgb.c.
Referenced by bgr15ToY_TMPL(), bgr16ToY_TMPL(), bgr24ToY_TMPL(), bgr32ToY_TMPL(), rgb15ToY_TMPL(), rgb16ToY_TMPL(), rgb24ToY_TMPL(), rgb24toyv12_TMPL(), and rgb32ToY_TMPL().
void(* interleaveBytes)(uint8_t *src1, uint8_t *src2, uint8_t *dst, long width, long height, long src1Stride, long src2Stride, long dstStride) |
Referenced by 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().
Referenced by main(), and rgb2rgb_init_TMPL().
Referenced by main(), and rgb2rgb_init_TMPL().
Referenced by main(), and rgb2rgb_init_TMPL().
Referenced by main(), and rgb2rgb_init_TMPL().
Referenced by main(), and rgb2rgb_init_TMPL().
Referenced by main(), and rgb2rgb_init_TMPL().
Referenced by main(), and rgb2rgb_init_TMPL().
Referenced by main(), and rgb2rgb_init_TMPL().
Referenced by main(), and rgb2rgb_init_TMPL().
void(* rgb24tobgr15)(const uint8_t *src, uint8_t *dst, long src_size) |
Referenced by main(), and rgb2rgb_init_TMPL().
void(* rgb24tobgr16)(const uint8_t *src, uint8_t *dst, long src_size) |
Referenced by main(), and rgb2rgb_init_TMPL().
void(* rgb24tobgr24)(const uint8_t *src, uint8_t *dst, long src_size) |
Referenced by main(), and rgb2rgb_init_TMPL().
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 ill fix it) chrominance data is only taken from every secound line others are ignored FIXME write HQ version
Referenced by rgb2rgb_init_TMPL(), and simpleCopy().
Referenced by main(), and rgb2rgb_init_TMPL().
Referenced by main(), and rgb2rgb_init_TMPL().
Referenced by main(), and rgb2rgb_init_TMPL().
void(* rgb32tobgr15)(const uint8_t *src, uint8_t *dst, long src_size) |
Referenced by main(), and rgb2rgb_init_TMPL().
void(* rgb32tobgr16)(const uint8_t *src, uint8_t *dst, long src_size) |
Referenced by main(), and rgb2rgb_init_TMPL().
void(* rgb32tobgr32)(const uint8_t *src, uint8_t *dst, long src_size) |
Referenced by main(), and rgb2rgb_init_TMPL().
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(* 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 ill 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 ill fix it)
Referenced by 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 ill fix it) chrominance data is only taken from every secound line others are ignored FIXME write HQ 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 ill fix it)
Referenced by 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().