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_RGB48TOBGR48(need_bswap, swap) |
#define | DEFINE_RGB64TOBGR48(need_bswap, swap) |
#define | DEFINE_RGB64TO48(need_bswap, swap) |
#define | DEFINE_RGB48TOBGR64(need_bswap, swap) |
#define | DEFINE_RGB48TO64(need_bswap, swap) |
Functions | |
av_cold void | ff_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_0321 )(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(* | shuffle_bytes_1230 )(const uint8_t *src, uint8_t *dst, int src_size) |
void(* | shuffle_bytes_3012 )(const uint8_t *src, uint8_t *dst, int src_size) |
void(* | shuffle_bytes_3210 )(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 | |||
) |
#define DEFINE_RGB48TOBGR64 | ( | need_bswap, | |
swap | |||
) |
#define DEFINE_RGB48TO64 | ( | need_bswap, | |
swap | |||
) |
av_cold void ff_sws_rgb2rgb_init | ( | void | ) |
Definition at line 137 of file rgb2rgb.c.
Referenced by checkasm_check_sw_rgb(), main(), and sws_init_context().
void rgb32to24 | ( | const uint8_t * | src, |
uint8_t * | dst, | ||
int | src_size | ||
) |
Definition at line 151 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
void rgb24to32 | ( | const uint8_t * | src, |
uint8_t * | dst, | ||
int | src_size | ||
) |
Definition at line 169 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
void rgb16tobgr32 | ( | const uint8_t * | src, |
uint8_t * | dst, | ||
int | src_size | ||
) |
Definition at line 189 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
void rgb12to15 | ( | const uint8_t * | src, |
uint8_t * | dst, | ||
int | src_size | ||
) |
Definition at line 211 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
void rgb16to24 | ( | const uint8_t * | src, |
uint8_t * | dst, | ||
int | src_size | ||
) |
Definition at line 230 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
void rgb16tobgr16 | ( | const uint8_t * | src, |
uint8_t * | dst, | ||
int | src_size | ||
) |
Definition at line 244 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
void rgb16tobgr15 | ( | const uint8_t * | src, |
uint8_t * | dst, | ||
int | src_size | ||
) |
Definition at line 254 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
void rgb15tobgr32 | ( | const uint8_t * | src, |
uint8_t * | dst, | ||
int | src_size | ||
) |
Definition at line 264 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
void rgb15to24 | ( | const uint8_t * | src, |
uint8_t * | dst, | ||
int | src_size | ||
) |
Definition at line 286 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
void rgb15tobgr16 | ( | const uint8_t * | src, |
uint8_t * | dst, | ||
int | src_size | ||
) |
Definition at line 300 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
void rgb15tobgr15 | ( | const uint8_t * | src, |
uint8_t * | dst, | ||
int | src_size | ||
) |
Definition at line 310 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
void rgb12tobgr12 | ( | const uint8_t * | src, |
uint8_t * | dst, | ||
int | src_size | ||
) |
Definition at line 321 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(), and rgb2rgb_init_TMPL().
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 checkasm_check_sw_rgb(), findRgbConvFn(), rgb2rgb_init_c(), rgb2rgb_init_riscv(), and rgb2rgb_init_x86().
Definition at line 55 of file rgb2rgb.c.
Referenced by checkasm_check_sw_rgb(), findRgbConvFn(), main(), rgb2rgb_init_c(), rgb2rgb_init_riscv(), and rgb2rgb_init_x86().
Definition at line 56 of file rgb2rgb.c.
Referenced by checkasm_check_sw_rgb(), findRgbConvFn(), rgb2rgb_init_c(), rgb2rgb_init_riscv(), and rgb2rgb_init_x86().
Definition at line 57 of file rgb2rgb.c.
Referenced by checkasm_check_sw_rgb(), findRgbConvFn(), rgb2rgb_init_c(), rgb2rgb_init_riscv(), and rgb2rgb_init_x86().
Definition at line 58 of file rgb2rgb.c.
Referenced by checkasm_check_sw_rgb(), findRgbConvFn(), rgb2rgb_init_c(), rgb2rgb_init_riscv(), and rgb2rgb_init_x86().
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 61 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 65 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 69 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 73 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 77 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 81 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 86 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 88 of file rgb2rgb.c.
Referenced by check_interleave_bytes(), planarToNv12Wrapper(), planarToNv24Wrapper(), rgb2rgb_init_aarch64(), rgb2rgb_init_c(), rgb2rgb_init_loongarch(), rgb2rgb_init_riscv(), 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 91 of file rgb2rgb.c.
Referenced by nv12ToPlanarWrapper(), nv24ToPlanarWrapper(), 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 94 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 99 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 104 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 107 of file rgb2rgb.c.
Referenced by check_uyvy_to_422p(), rgb2rgb_init_c(), rgb2rgb_init_riscv(), rgb2rgb_init_TMPL(), rgb2rgb_init_x86(), 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 110 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 113 of file rgb2rgb.c.
Referenced by rgb2rgb_init_c(), rgb2rgb_init_riscv(), rgb2rgb_init_TMPL(), and yuyvToYuv422Wrapper().