FFmpeg
|
#include <inttypes.h>
#include "libavutil/attributes.h"
#include "libavutil/bswap.h"
#include "config.h"
#include "rgb2rgb.h"
#include "swscale.h"
#include "swscale_internal.h"
#include "rgb2rgb_template.c"
Go to the source code of this file.
Macros | |
#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) |
#define | DEFINE_RGB48TOBGR48(need_bswap, swap) |
#define | DEFINE_RGB64TOBGR48(need_bswap, swap) |
#define | DEFINE_RGB64TO48(need_bswap, swap) |
Functions | |
av_cold 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(* | rgb32tobgr24 )(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(* | rgb24tobgr32 )(const uint8_t *src, uint8_t *dst, int src_size) |
void(* | rgb24tobgr24 )(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(* | rgb16tobgr24 )(const uint8_t *src, uint8_t *dst, int src_size) |
void(* | rgb15tobgr24 )(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(* | rgb24to16 )(const uint8_t *src, uint8_t *dst, int src_size) |
void(* | rgb24to15 )(const uint8_t *src, uint8_t *dst, int src_size) |
void(* | rgb16to32 )(const uint8_t *src, uint8_t *dst, int src_size) |
void(* | rgb16to15 )(const uint8_t *src, uint8_t *dst, int src_size) |
void(* | rgb15to16 )(const uint8_t *src, uint8_t *dst, int src_size) |
void(* | rgb15to32 )(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(* | 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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
void(* | ff_rgb24toyv12 )(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst, int width, int height, int lumStride, int chromStride, int srcStride, int32_t *rgb2yuv) |
Height should be a multiple of 2 and width should be a multiple of 2. More... | |
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(* | deinterleaveBytes )(const uint8_t *src, uint8_t *dst1, uint8_t *dst2, int width, int height, int srcStride, int dst1Stride, int dst2Stride) |
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 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_RGB48TOBGR48 | ( | need_bswap, | |
swap | |||
) |
#define DEFINE_RGB64TOBGR48 | ( | need_bswap, | |
swap | |||
) |
#define DEFINE_RGB64TO48 | ( | need_bswap, | |
swap | |||
) |
Definition at line 132 of file rgb2rgb.c.
Referenced by main(), and sws_init_context().
Definition at line 139 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 157 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 177 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 199 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 218 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 232 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 242 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 252 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 274 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 288 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 298 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 309 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 35 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().
Definition at line 37 of file rgb2rgb.c.
Referenced by findRgbConvFn(), main(), rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
Definition at line 38 of file rgb2rgb.c.
Referenced by findRgbConvFn(), main(), rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
Definition at line 39 of file rgb2rgb.c.
Referenced by findRgbConvFn(), main(), rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
Definition at line 40 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 42 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().
Definition at line 45 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 47 of file rgb2rgb.c.
Referenced by findRgbConvFn(), main(), rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
Definition at line 48 of file rgb2rgb.c.
Referenced by findRgbConvFn(), main(), rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
Definition at line 49 of file rgb2rgb.c.
Referenced by findRgbConvFn(), main(), rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
Definition at line 50 of file rgb2rgb.c.
Referenced by findRgbConvFn(), main(), rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
Definition at line 51 of file rgb2rgb.c.
Referenced by findRgbConvFn(), main(), rgb2rgb_init_c(), rgb2rgb_init_TMPL(), and sws_init_context().
Definition at line 52 of file rgb2rgb.c.
Referenced by findRgbConvFn(), main(), rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
Definition at line 54 of file rgb2rgb.c.
Referenced by findRgbConvFn(), main(), 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 56 of file rgb2rgb.c.
Referenced by planarToYuy2Wrapper(), rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
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 60 of file rgb2rgb.c.
Referenced by planarToUyvyWrapper(), rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
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 64 of file rgb2rgb.c.
Referenced by rgb2rgb_init_c(), rgb2rgb_init_TMPL(), and yuv422pToYuy2Wrapper().
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 68 of file rgb2rgb.c.
Referenced by rgb2rgb_init_c(), rgb2rgb_init_TMPL(), and yuv422pToUyvyWrapper().
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 72 of file rgb2rgb.c.
Referenced by rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
void(* ff_rgb24toyv12)(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst, int width, int height, int lumStride, int chromStride, int srcStride, int32_t *rgb2yuv) |
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 76 of file rgb2rgb.c.
Referenced by bgr24ToYv12Wrapper(), 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 81 of file rgb2rgb.c.
Referenced by rgb2rgb_init_c(), rgb2rgb_init_TMPL(), and yvu9ToYv12Wrapper().
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 83 of file rgb2rgb.c.
Referenced by planarToNv12Wrapper(), rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
void(* deinterleaveBytes)(const uint8_t *src, uint8_t *dst1, uint8_t *dst2, int width, int height, int srcStride, int dst1Stride, int dst2Stride) |
Definition at line 86 of file rgb2rgb.c.
Referenced by nv12ToPlanarWrapper(), rgb2rgb_init_c(), and rgb2rgb_init_TMPL().
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 89 of file rgb2rgb.c.
Referenced by 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 94 of file rgb2rgb.c.
Referenced by 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 99 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 102 of file rgb2rgb.c.
Referenced by rgb2rgb_init_c(), rgb2rgb_init_TMPL(), and uyvyToYuv422Wrapper().
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 105 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 108 of file rgb2rgb.c.
Referenced by rgb2rgb_init_c(), rgb2rgb_init_TMPL(), and yuyvToYuv422Wrapper().