#include <inttypes.h>
#include "config.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 | 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 | DEFINE_SHUFFLE_BYTES(a, b, c, d) |
Functions | |
void | sws_rgb2rgb_init (void) |
void | palette8topacked32 (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) |
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 | rgb32to24 (const uint8_t *src, uint8_t *dst, int src_size) |
void | rgb24to32 (const uint8_t *src, uint8_t *dst, int src_size) |
void | rgb16tobgr32 (const uint8_t *src, uint8_t *dst, int src_size) |
void | rgb16to24 (const uint8_t *src, uint8_t *dst, int src_size) |
void | rgb16tobgr16 (const uint8_t *src, uint8_t *dst, int src_size) |
void | rgb16tobgr15 (const uint8_t *src, uint8_t *dst, int src_size) |
void | rgb15tobgr32 (const uint8_t *src, uint8_t *dst, int src_size) |
void | rgb15to24 (const uint8_t *src, uint8_t *dst, int src_size) |
void | rgb15tobgr16 (const uint8_t *src, uint8_t *dst, int src_size) |
void | rgb15tobgr15 (const uint8_t *src, uint8_t *dst, int src_size) |
void | bgr8torgb8 (const uint8_t *src, uint8_t *dst, int src_size) |
DEFINE_SHUFFLE_BYTES (0, 3, 2, 1) | |
DEFINE_SHUFFLE_BYTES (1, 2, 3, 0) | |
DEFINE_SHUFFLE_BYTES (3, 0, 1, 2) | |
DEFINE_SHUFFLE_BYTES (3, 2, 1, 0) | |
Variables | |
void(* | rgb24tobgr32 )(const uint8_t *src, uint8_t *dst, int src_size) |
void(* | rgb24tobgr16 )(const uint8_t *src, uint8_t *dst, int src_size) |
void(* | rgb24tobgr15 )(const uint8_t *src, uint8_t *dst, int src_size) |
void(* | rgb32tobgr24 )(const uint8_t *src, uint8_t *dst, int src_size) |
void(* | rgb32to16 )(const uint8_t *src, uint8_t *dst, int src_size) |
void(* | rgb32to15 )(const uint8_t *src, uint8_t *dst, int src_size) |
void(* | rgb15to16 )(const uint8_t *src, uint8_t *dst, int src_size) |
void(* | rgb15tobgr24 )(const uint8_t *src, uint8_t *dst, int src_size) |
void(* | rgb15to32 )(const uint8_t *src, uint8_t *dst, int src_size) |
void(* | rgb16to15 )(const uint8_t *src, uint8_t *dst, int src_size) |
void(* | rgb16tobgr24 )(const uint8_t *src, uint8_t *dst, int src_size) |
void(* | rgb16to32 )(const uint8_t *src, uint8_t *dst, int src_size) |
void(* | rgb24tobgr24 )(const uint8_t *src, uint8_t *dst, int src_size) |
void(* | rgb24to16 )(const uint8_t *src, uint8_t *dst, int src_size) |
void(* | rgb24to15 )(const uint8_t *src, uint8_t *dst, int src_size) |
void(* | shuffle_bytes_2103 )(const uint8_t *src, uint8_t *dst, int src_size) |
void(* | rgb32tobgr16 )(const uint8_t *src, uint8_t *dst, int src_size) |
void(* | rgb32tobgr15 )(const uint8_t *src, uint8_t *dst, int src_size) |
void(* | yv12toyuy2 )(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst, int width, int height, int lumStride, int chromStride, int 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, int width, int height, int lumStride, int chromStride, int 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, int width, int height, int lumStride, int chromStride, int 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, int width, int height, int lumStride, int chromStride, int dstStride) |
Width should be a multiple of 16. | |
void(* | yuy2toyv12 )(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst, int width, int height, int lumStride, int chromStride, int 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, int width, int height, int lumStride, int chromStride, int 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, int width, int height, int srcStride, int dstStride) |
void(* | interleaveBytes )(const uint8_t *src1, const uint8_t *src2, uint8_t *dst, int width, int height, int src1Stride, int src2Stride, int dstStride) |
void(* | vu9_to_vu12 )(const uint8_t *src1, const uint8_t *src2, uint8_t *dst1, uint8_t *dst2, int width, int height, int srcStride1, int srcStride2, int dstStride1, int dstStride2) |
void(* | yvu9_to_yuy2 )(const uint8_t *src1, const uint8_t *src2, const uint8_t *src3, uint8_t *dst, int width, int height, int srcStride1, int srcStride2, int srcStride3, int dstStride) |
void(* | uyvytoyuv420 )(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src, int width, int height, int lumStride, int chromStride, int srcStride) |
void(* | uyvytoyuv422 )(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src, int width, int height, int lumStride, int chromStride, int srcStride) |
void(* | yuyvtoyuv420 )(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src, int width, int height, int lumStride, int chromStride, int srcStride) |
void(* | yuyvtoyuv422 )(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src, int width, int height, int lumStride, int chromStride, int srcStride) |
#define BU ((int)( 0.439*(1<<RGB2YUV_SHIFT)+0.5)) |
Definition at line 100 of file rgb2rgb.c.
Referenced by bgr24ToUV_c(), bgr24ToUV_half_c(), rgb16_32ToUV_c_template(), rgb16_32ToUV_half_c_template(), rgb24ToUV_c(), rgb24ToUV_half_c(), rgb24toyv12_c(), rgb48ToUV_c_template(), rgb48ToUV_half_c_template(), and sws_scale().
#define BV ((int)(-0.071*(1<<RGB2YUV_SHIFT)+0.5)) |
Definition at line 99 of file rgb2rgb.c.
Referenced by bgr24ToUV_c(), bgr24ToUV_half_c(), rgb16_32ToUV_c_template(), rgb16_32ToUV_half_c_template(), rgb24ToUV_c(), rgb24ToUV_half_c(), rgb24toyv12_c(), rgb48ToUV_c_template(), rgb48ToUV_half_c_template(), and sws_scale().
#define BY ((int)( 0.098*(1<<RGB2YUV_SHIFT)+0.5)) |
Definition at line 98 of file rgb2rgb.c.
Referenced by bgr24ToY_c(), rgb16_32ToY_c_template(), rgb24ToY_c(), rgb24toyv12_c(), rgb48ToY_c_template(), and sws_scale().
#define DEFINE_SHUFFLE_BYTES | ( | a, | |||
b, | |||||
c, | |||||
d | ) |
#define GU ((int)(-0.291*(1<<RGB2YUV_SHIFT)+0.5)) |
Definition at line 103 of file rgb2rgb.c.
Referenced by bgr24ToUV_c(), bgr24ToUV_half_c(), rgb16_32ToUV_c_template(), rgb16_32ToUV_half_c_template(), rgb24ToUV_c(), rgb24ToUV_half_c(), rgb24toyv12_c(), rgb48ToUV_c_template(), rgb48ToUV_half_c_template(), and sws_scale().
#define GV ((int)(-0.368*(1<<RGB2YUV_SHIFT)+0.5)) |
Definition at line 102 of file rgb2rgb.c.
Referenced by bgr24ToUV_c(), bgr24ToUV_half_c(), rgb16_32ToUV_c_template(), rgb16_32ToUV_half_c_template(), rgb24ToUV_c(), rgb24ToUV_half_c(), rgb24toyv12_c(), rgb48ToUV_c_template(), rgb48ToUV_half_c_template(), and sws_scale().
#define GY ((int)( 0.504*(1<<RGB2YUV_SHIFT)+0.5)) |
Definition at line 101 of file rgb2rgb.c.
Referenced by bgr24ToY_c(), rgb16_32ToY_c_template(), rgb24ToY_c(), rgb24toyv12_c(), rgb48ToY_c_template(), and sws_scale().
#define RGB2YUV_SHIFT 8 |
Definition at line 97 of file rgb2rgb.c.
Referenced by bgr24ToUV_c(), bgr24ToUV_half_c(), bgr24ToY_c(), rgb24ToUV_c(), rgb24ToUV_half_c(), rgb24ToY_c(), rgb24toyv12_c(), rgb48ToUV_c_template(), rgb48ToUV_half_c_template(), rgb48ToY_c_template(), and sws_scale().
#define RU ((int)(-0.148*(1<<RGB2YUV_SHIFT)+0.5)) |
Definition at line 106 of file rgb2rgb.c.
Referenced by bgr24ToUV_c(), bgr24ToUV_half_c(), rgb16_32ToUV_c_template(), rgb16_32ToUV_half_c_template(), rgb24ToUV_c(), rgb24ToUV_half_c(), rgb24toyv12_c(), rgb48ToUV_c_template(), rgb48ToUV_half_c_template(), and sws_scale().
#define RV ((int)( 0.439*(1<<RGB2YUV_SHIFT)+0.5)) |
Definition at line 105 of file rgb2rgb.c.
Referenced by bgr24ToUV_c(), bgr24ToUV_half_c(), rgb16_32ToUV_c_template(), rgb16_32ToUV_half_c_template(), rgb24ToUV_c(), rgb24ToUV_half_c(), rgb24toyv12_c(), rgb48ToUV_c_template(), rgb48ToUV_half_c_template(), and sws_scale().
#define RY ((int)( 0.257*(1<<RGB2YUV_SHIFT)+0.5)) |
Definition at line 104 of file rgb2rgb.c.
Referenced by bgr24ToY_c(), rgb16_32ToY_c_template(), rgb24ToY_c(), rgb24toyv12_c(), rgb48ToY_c_template(), and sws_scale().
void bgr8torgb8 | ( | const uint8_t * | src, | |
uint8_t * | dst, | |||
int | src_size | |||
) |
DEFINE_SHUFFLE_BYTES | ( | 3 | , | |
2 | , | |||
1 | , | |||
0 | ||||
) |
DEFINE_SHUFFLE_BYTES | ( | 3 | , | |
0 | , | |||
1 | , | |||
2 | ||||
) |
DEFINE_SHUFFLE_BYTES | ( | 1 | , | |
2 | , | |||
3 | , | |||
0 | ||||
) |
DEFINE_SHUFFLE_BYTES | ( | 0 | , | |
3 | , | |||
2 | , | |||
1 | ||||
) |
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 | |||
) |
void palette8topacked32 | ( | 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, | |||
int | src_size | |||
) |
void rgb15tobgr15 | ( | const uint8_t * | src, | |
uint8_t * | dst, | |||
int | src_size | |||
) |
void rgb15tobgr16 | ( | const uint8_t * | src, | |
uint8_t * | dst, | |||
int | src_size | |||
) |
void rgb15tobgr32 | ( | const uint8_t * | src, | |
uint8_t * | dst, | |||
int | src_size | |||
) |
void rgb16to24 | ( | const uint8_t * | src, | |
uint8_t * | dst, | |||
int | src_size | |||
) |
void rgb16tobgr15 | ( | const uint8_t * | src, | |
uint8_t * | dst, | |||
int | src_size | |||
) |
void rgb16tobgr16 | ( | const uint8_t * | src, | |
uint8_t * | dst, | |||
int | src_size | |||
) |
void rgb16tobgr32 | ( | const uint8_t * | src, | |
uint8_t * | dst, | |||
int | src_size | |||
) |
void rgb24to32 | ( | const uint8_t * | src, | |
uint8_t * | dst, | |||
int | src_size | |||
) |
void rgb32to24 | ( | const uint8_t * | src, | |
uint8_t * | dst, | |||
int | src_size | |||
) |
void sws_rgb2rgb_init | ( | void | ) |
void(* interleaveBytes)(const uint8_t *src1, const uint8_t *src2, uint8_t *dst, int width, int height, int src1Stride, int src2Stride, int dstStride) |
Referenced by planarToNv12Wrapper(), rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
void(* planar2x)(const uint8_t *src, uint8_t *dst, int width, int height, int srcStride, int dstStride) |
Referenced by rgb2rgb_init_c(), rgb2rgb_init_TMPL(), and yvu9ToYv12Wrapper().
Referenced by main(), rgb2rgb_init_c(), rgb2rgb_init_TMPL(), rgbToRgbWrapper(), and sws_init_context().
Referenced by main(), rgb2rgb_init_c(), rgb2rgb_init_TMPL(), and rgbToRgbWrapper().
void(* rgb15tobgr24)(const uint8_t *src, uint8_t *dst, int src_size) |
Referenced by main(), rgb2rgb_init_c(), rgb2rgb_init_TMPL(), and rgbToRgbWrapper().
Referenced by main(), rgb2rgb_init_c(), rgb2rgb_init_TMPL(), and rgbToRgbWrapper().
Referenced by main(), rgb2rgb_init_c(), rgb2rgb_init_TMPL(), and rgbToRgbWrapper().
void(* rgb16tobgr24)(const uint8_t *src, uint8_t *dst, int src_size) |
Referenced by main(), rgb2rgb_init_c(), rgb2rgb_init_TMPL(), and rgbToRgbWrapper().
Referenced by main(), rgb2rgb_init_c(), rgb2rgb_init_TMPL(), and rgbToRgbWrapper().
Referenced by main(), rgb2rgb_init_c(), rgb2rgb_init_TMPL(), and rgbToRgbWrapper().
void(* rgb24tobgr15)(const uint8_t *src, uint8_t *dst, int src_size) |
Referenced by main(), rgb2rgb_init_c(), rgb2rgb_init_TMPL(), and rgbToRgbWrapper().
void(* rgb24tobgr16)(const uint8_t *src, uint8_t *dst, int src_size) |
Referenced by main(), rgb2rgb_init_c(), rgb2rgb_init_TMPL(), and rgbToRgbWrapper().
void(* rgb24tobgr24)(const uint8_t *src, uint8_t *dst, int src_size) |
Referenced by main(), rgb2rgb_init_c(), rgb2rgb_init_TMPL(), and rgbToRgbWrapper().
void(* rgb24tobgr32)(const uint8_t *src, uint8_t *dst, int src_size) |
Referenced by main(), rgb2rgb_init_c(), rgb2rgb_init_TMPL(), and rgbToRgbWrapper().
void(* rgb24toyv12)(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst, int width, int height, int lumStride, int chromStride, int 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(), rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
Referenced by main(), rgb2rgb_init_c(), rgb2rgb_init_TMPL(), and rgbToRgbWrapper().
Referenced by main(), rgb2rgb_init_c(), rgb2rgb_init_TMPL(), and rgbToRgbWrapper().
void(* rgb32tobgr15)(const uint8_t *src, uint8_t *dst, int src_size) |
Referenced by main(), rgb2rgb_init_c(), rgb2rgb_init_TMPL(), and rgbToRgbWrapper().
void(* rgb32tobgr16)(const uint8_t *src, uint8_t *dst, int src_size) |
Referenced by main(), rgb2rgb_init_c(), rgb2rgb_init_TMPL(), and rgbToRgbWrapper().
void(* rgb32tobgr24)(const uint8_t *src, uint8_t *dst, int src_size) |
Referenced by main(), rgb2rgb_init_c(), rgb2rgb_init_TMPL(), and rgbToRgbWrapper().
void(* shuffle_bytes_2103)(const uint8_t *src, uint8_t *dst, int src_size) |
Referenced by main(), rgb2rgb_init_c(), rgb2rgb_init_TMPL(), and rgbToRgbWrapper().
void(* uyvytoyuv420)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src, int width, int height, int lumStride, int chromStride, int srcStride) |
Referenced by rgb2rgb_init_c(), rgb2rgb_init_TMPL(), and uyvyToYuv420Wrapper().
void(* uyvytoyuv422)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src, int width, int height, int lumStride, int chromStride, int srcStride) |
Referenced by rgb2rgb_init_c(), rgb2rgb_init_TMPL(), and uyvyToYuv422Wrapper().
void(* vu9_to_vu12)(const uint8_t *src1, const uint8_t *src2, uint8_t *dst1, uint8_t *dst2, int width, int height, int srcStride1, int srcStride2, int dstStride1, int dstStride2) |
Referenced by rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
void(* yuv422ptouyvy)(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst, int width, int height, int lumStride, int chromStride, int dstStride) |
Width should be a multiple of 16.
Referenced by rgb2rgb_init_c(), rgb2rgb_init_TMPL(), and yuv422pToUyvyWrapper().
void(* yuv422ptoyuy2)(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst, int width, int height, int lumStride, int chromStride, int dstStride) |
Width should be a multiple of 16.
Referenced by rgb2rgb_init_c(), rgb2rgb_init_TMPL(), and yuv422pToYuy2Wrapper().
void(* yuy2toyv12)(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst, int width, int height, int lumStride, int chromStride, int 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_c(), and rgb2rgb_init_TMPL().
void(* yuyvtoyuv420)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src, int width, int height, int lumStride, int chromStride, int srcStride) |
Referenced by rgb2rgb_init_c(), rgb2rgb_init_TMPL(), and yuyvToYuv420Wrapper().
void(* yuyvtoyuv422)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src, int width, int height, int lumStride, int chromStride, int srcStride) |
Referenced by rgb2rgb_init_c(), rgb2rgb_init_TMPL(), and yuyvToYuv422Wrapper().
void(* yv12touyvy)(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst, int width, int height, int lumStride, int chromStride, int 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_c(), and rgb2rgb_init_TMPL().
void(* yv12toyuy2)(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst, int width, int height, int lumStride, int chromStride, int 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 planarToYuy2Wrapper(), rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
void(* yvu9_to_yuy2)(const uint8_t *src1, const uint8_t *src2, const uint8_t *src3, uint8_t *dst, int width, int height, int srcStride1, int srcStride2, int srcStride3, int dstStride) |
Referenced by rgb2rgb_init_c(), and rgb2rgb_init_TMPL().