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 | 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(* | 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 133 of file rgb2rgb.c.
Referenced by main(), and sws_init_context().
Definition at line 140 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 158 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 178 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 200 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 219 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 233 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 243 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 253 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 275 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 289 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 299 of file rgb2rgb.c.
Referenced by findRgbConvFn(), and main().
Definition at line 310 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(), and rgb2rgb_init_c().
Definition at line 55 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 57 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 61 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 65 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 69 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 73 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 77 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 82 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 84 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 87 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 90 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 95 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 100 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 103 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 106 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 109 of file rgb2rgb.c.
Referenced by rgb2rgb_init_c(), rgb2rgb_init_TMPL(), and yuyvToYuv422Wrapper().