#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 | 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 | rgb12to15 (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 | rgb12tobgr12 (const uint8_t *src, uint8_t *dst, int src_size) |
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 rgb24toyv12_c().
#define BV ((int)(-0.071*(1<<RGB2YUV_SHIFT)+0.5)) |
Definition at line 99 of file rgb2rgb.c.
Referenced by rgb24toyv12_c().
#define BY ((int)( 0.098*(1<<RGB2YUV_SHIFT)+0.5)) |
Definition at line 98 of file rgb2rgb.c.
Referenced by rgb24toyv12_c().
#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 rgb24toyv12_c().
#define GV ((int)(-0.368*(1<<RGB2YUV_SHIFT)+0.5)) |
Definition at line 102 of file rgb2rgb.c.
Referenced by rgb24toyv12_c().
#define GY ((int)( 0.504*(1<<RGB2YUV_SHIFT)+0.5)) |
Definition at line 101 of file rgb2rgb.c.
Referenced by rgb24toyv12_c().
#define RGB2YUV_SHIFT 8 |
Definition at line 97 of file rgb2rgb.c.
Referenced by rgb24toyv12_c().
#define RU ((int)(-0.148*(1<<RGB2YUV_SHIFT)+0.5)) |
Definition at line 106 of file rgb2rgb.c.
Referenced by rgb24toyv12_c().
#define RV ((int)( 0.439*(1<<RGB2YUV_SHIFT)+0.5)) |
Definition at line 105 of file rgb2rgb.c.
Referenced by rgb24toyv12_c().
#define RY ((int)( 0.257*(1<<RGB2YUV_SHIFT)+0.5)) |
Definition at line 104 of file rgb2rgb.c.
Referenced by rgb24toyv12_c().
Definition at line 186 of file rgb2rgb.c.
Referenced by findRgbConvFn().
void rgb12tobgr12 | ( | const uint8_t * | src, |
uint8_t * | dst, | ||
int | src_size | ||
) |
Definition at line 304 of file rgb2rgb.c.
Referenced by findRgbConvFn().
Definition at line 265 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
void rgb15tobgr15 | ( | const uint8_t * | src, |
uint8_t * | dst, | ||
int | src_size | ||
) |
Definition at line 291 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
void rgb15tobgr16 | ( | const uint8_t * | src, |
uint8_t * | dst, | ||
int | src_size | ||
) |
Definition at line 280 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
void rgb15tobgr32 | ( | const uint8_t * | src, |
uint8_t * | dst, | ||
int | src_size | ||
) |
Definition at line 242 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 205 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
void rgb16tobgr15 | ( | const uint8_t * | src, |
uint8_t * | dst, | ||
int | src_size | ||
) |
Definition at line 231 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
void rgb16tobgr16 | ( | const uint8_t * | src, |
uint8_t * | dst, | ||
int | src_size | ||
) |
Definition at line 220 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
void rgb16tobgr32 | ( | const uint8_t * | src, |
uint8_t * | dst, | ||
int | src_size | ||
) |
Definition at line 163 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 144 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 126 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
void sws_rgb2rgb_init | ( | void | ) |
Definition at line 119 of file rgb2rgb.c.
Referenced by main(), and sws_init_context().
void(* interleaveBytes)(const uint8_t *src1, const uint8_t *src2, uint8_t *dst, int width, int height, int src1Stride, int src2Stride, int dstStride) |
Definition at line 71 of file rgb2rgb.c.
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) |
Definition at line 69 of file rgb2rgb.c.
Referenced by rgb2rgb_init_c(), rgb2rgb_init_TMPL(), and yvu9ToYv12Wrapper().
Definition at line 38 of file rgb2rgb.c.
Referenced by findRgbConvFn(), main(), rgb2rgb_init_c(), rgb2rgb_init_TMPL(), and sws_init_context().
Definition at line 40 of file rgb2rgb.c.
Referenced by findRgbConvFn(), main(), rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
void(* rgb15tobgr24)(const uint8_t *src, uint8_t *dst, int src_size) |
Definition at line 39 of file rgb2rgb.c.
Referenced by findRgbConvFn(), main(), rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
Definition at line 41 of file rgb2rgb.c.
Referenced by findRgbConvFn(), main(), rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
Definition at line 43 of file rgb2rgb.c.
Referenced by findRgbConvFn(), main(), rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
void(* rgb16tobgr24)(const uint8_t *src, uint8_t *dst, int src_size) |
Definition at line 42 of file rgb2rgb.c.
Referenced by findRgbConvFn(), main(), rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
Definition at line 46 of file rgb2rgb.c.
Referenced by findRgbConvFn(), main(), rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
Definition at line 45 of file rgb2rgb.c.
Referenced by findRgbConvFn(), main(), rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
void(* rgb24tobgr15)(const uint8_t *src, uint8_t *dst, int src_size) |
Definition at line 34 of file rgb2rgb.c.
Referenced by findRgbConvFn(), main(), rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
void(* rgb24tobgr16)(const uint8_t *src, uint8_t *dst, int src_size) |
Definition at line 33 of file rgb2rgb.c.
Referenced by findRgbConvFn(), main(), rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
void(* rgb24tobgr24)(const uint8_t *src, uint8_t *dst, int src_size) |
Definition at line 44 of file rgb2rgb.c.
Referenced by findRgbConvFn(), main(), rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
void(* rgb24tobgr32)(const uint8_t *src, uint8_t *dst, int src_size) |
Definition at line 32 of file rgb2rgb.c.
Referenced by findRgbConvFn(), main(), rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
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.
Definition at line 66 of file rgb2rgb.c.
Referenced by bgr24ToYv12Wrapper(), rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
Definition at line 37 of file rgb2rgb.c.
Referenced by findRgbConvFn(), main(), rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
Definition at line 36 of file rgb2rgb.c.
Referenced by findRgbConvFn(), main(), rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
void(* rgb32tobgr15)(const uint8_t *src, uint8_t *dst, int src_size) |
Definition at line 49 of file rgb2rgb.c.
Referenced by findRgbConvFn(), main(), rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
void(* rgb32tobgr16)(const uint8_t *src, uint8_t *dst, int src_size) |
Definition at line 48 of file rgb2rgb.c.
Referenced by findRgbConvFn(), main(), rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
void(* rgb32tobgr24)(const uint8_t *src, uint8_t *dst, int src_size) |
Definition at line 35 of file rgb2rgb.c.
Referenced by findRgbConvFn(), main(), rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
void(* shuffle_bytes_2103)(const uint8_t *src, uint8_t *dst, int src_size) |
Definition at line 47 of file rgb2rgb.c.
Referenced by findRgbConvFn(), main(), rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
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) |
Definition at line 84 of file rgb2rgb.c.
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) |
Definition at line 87 of file rgb2rgb.c.
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) |
Definition at line 74 of file rgb2rgb.c.
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.
Definition at line 60 of file rgb2rgb.c.
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.
Definition at line 57 of file rgb2rgb.c.
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.)
Definition at line 63 of file rgb2rgb.c.
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) |
Definition at line 90 of file rgb2rgb.c.
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) |
Definition at line 93 of file rgb2rgb.c.
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.)
Definition at line 54 of file rgb2rgb.c.
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.)
Definition at line 51 of file rgb2rgb.c.
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) |
Definition at line 79 of file rgb2rgb.c.
Referenced by rgb2rgb_init_c(), and rgb2rgb_init_TMPL().