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 | |||
) |
Definition at line 137 of file rgb2rgb.c.
Referenced by checkasm_check_sw_rgb(), main(), and sws_init_context().
Definition at line 144 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 162 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 182 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 204 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 223 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 237 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 247 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 257 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 279 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 293 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 303 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 314 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 checkasm_check_sw_rgb(), findRgbConvFn(), rgb2rgb_init_c(), and rgb2rgb_init_x86().
Definition at line 55 of file rgb2rgb.c.
Referenced by checkasm_check_sw_rgb(), findRgbConvFn(), main(), rgb2rgb_init_c(), and rgb2rgb_init_x86().
Definition at line 56 of file rgb2rgb.c.
Referenced by checkasm_check_sw_rgb(), findRgbConvFn(), rgb2rgb_init_c(), and rgb2rgb_init_x86().
Definition at line 57 of file rgb2rgb.c.
Referenced by checkasm_check_sw_rgb(), findRgbConvFn(), rgb2rgb_init_c(), and rgb2rgb_init_x86().
Definition at line 58 of file rgb2rgb.c.
Referenced by checkasm_check_sw_rgb(), findRgbConvFn(), rgb2rgb_init_c(), 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 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 91 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 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_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().