Go to the documentation of this file.
33 #define randomize_buffers(buf, size) \
36 for (j = 0; j < size; j+=4) \
37 AV_WN32(buf + j, rnd()); \
40 static const uint8_t
width[] = {12, 16, 20, 32, 36, 128};
42 {12,16,12}, {16,16,16}, {20,23,25}, {32,18,48}, {8,128,16}, {128,128,128}
45 #define MAX_STRIDE 128
46 #define MAX_HEIGHT 128
64 for (
i = 0;
i < 6;
i ++) {
87 declare_func(
void, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
89 int lumStride,
int chromStride,
int srcStride);
95 for (
i = 0;
i < 6;
i ++) {
125 uint8_t *
src0 = src0_buf + 1;
126 uint8_t *
src1 = src1_buf + 1;
127 uint8_t *dst0 = dst0_buf + 2;
128 uint8_t *dst1 = dst1_buf + 2;
131 uint8_t *,
int,
int,
int,
int,
int);
137 for (
int i = 0;
i <= 16;
i++) {
143 int src0_offset = 0, src0_stride =
MAX_STRIDE;
144 int src1_offset = 0, src1_stride =
MAX_STRIDE;
145 int dst_offset = 0, dst_stride = 2 *
MAX_STRIDE;
152 src0_offset = (
h-1)*src0_stride;
153 src0_stride = -src0_stride;
156 src1_offset = (
h-1)*src1_stride;
157 src1_stride = -src1_stride;
160 dst_offset = (
h-1)*dst_stride;
161 dst_stride = -dst_stride;
165 w,
h, src0_stride, src1_stride, dst_stride);
167 w,
h, src0_stride, src1_stride, dst_stride);
171 2 *
w + 2,
h + 1,
"dst");
185 #define MAX_LINE_SIZE 1920
204 const uint8_t *unused1,
const uint8_t *unused2,
int width,
220 const uint8_t *
src =
desc->nb_components == 3 ? src24 : src32;
227 if (memcmp(dst0_y, dst1_y,
w * 2))
230 if (
desc->nb_components == 3 ||
249 const uint8_t *
src1,
const uint8_t *
src2,
const uint8_t *src3,
250 int width, uint32_t *pal,
void *opq);
259 ctx->chrSrcHSubSample = (
i % 2) ? 0 : 1;
260 ctx->srcFormat = src_fmt;
268 ctx->chrSrcHSubSample ?
"_half" :
"",
270 const uint8_t *
src =
desc->nb_components == 3 ? src24 : src32;
279 if (memcmp(dst0_u, dst1_u,
w * 2) || memcmp(dst0_v, dst1_v,
w * 2))
282 if (
desc->nb_components == 3 ||
298 report(
"shuffle_bytes_2103");
301 report(
"shuffle_bytes_0321");
304 report(
"shuffle_bytes_1230");
307 report(
"shuffle_bytes_3012");
310 report(
"shuffle_bytes_3210");
316 report(
"interleave_bytes");
int(* func)(AVBPrint *dst, const char *in, const char *arg)
AVPixelFormat
Pixel format.
void(* shuffle_bytes_3012)(const uint8_t *src, uint8_t *dst, int src_size)
const AVPixFmtDescriptor * av_pix_fmt_desc_get(enum AVPixelFormat pix_fmt)
static const struct @438 planes[]
static enum AVPixelFormat rgb_formats[]
#define check_func(func,...)
void(* shuffle_bytes_3210)(const uint8_t *src, uint8_t *dst, int src_size)
static const char rgb2yuv[]
#define AV_PIX_FMT_RGB32_1
@ AV_PIX_FMT_BGR24
packed RGB 8:8:8, 24bpp, BGRBGR...
@ AV_PIX_FMT_BGRA
packed BGRA 8:8:8:8, 32bpp, BGRABGRA...
static void check_shuffle_bytes(void *func, const char *report)
#define randomize_buffers(buf, size)
#define FF_ARRAY_ELEMS(a)
static void check_uyvy_to_422p(void)
static const int input_sizes[]
void(* shuffle_bytes_1230)(const uint8_t *src, uint8_t *dst, int src_size)
#define LOCAL_ALIGNED_16(t, v,...)
void(* shuffle_bytes_2103)(const uint8_t *src, uint8_t *dst, int src_size)
@ AV_PIX_FMT_YUV420P
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
@ AV_PIX_FMT_RGBA
packed RGBA 8:8:8:8, 32bpp, RGBARGBA...
void(* interleaveBytes)(const uint8_t *src1, const uint8_t *src2, uint8_t *dst, int width, int height, int src1Stride, int src2Stride, int dstStride)
void checkasm_check_sw_rgb(void)
#define LOCAL_ALIGNED_32(t, v,...)
av_cold void ff_sws_rgb2rgb_init(void)
@ AV_PIX_FMT_ABGR
packed ABGR 8:8:8:8, 32bpp, ABGRABGR...
static void check_rgb_to_y(struct SwsContext *ctx)
@ AV_PIX_FMT_RGB24
packed RGB 8:8:8, 24bpp, RGBRGB...
void ff_sws_init_scale(SwsContext *c)
static void check_interleave_bytes(void)
struct SwsContext * sws_getContext(int srcW, int srcH, enum AVPixelFormat srcFormat, int dstW, int dstH, enum AVPixelFormat dstFormat, int flags, SwsFilter *srcFilter, SwsFilter *dstFilter, const double *param)
Allocate and return an SwsContext.
void(* shuffle_bytes_0321)(const uint8_t *src, uint8_t *dst, int src_size)
@ AV_PIX_FMT_ARGB
packed ARGB 8:8:8:8, 32bpp, ARGBARGB...
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)
#define i(width, name, range_min, range_max)
static const uint8_t width[]
static void check_rgb_to_uv(struct SwsContext *ctx)
void sws_freeContext(struct SwsContext *swsContext)
Free the swscaler context swsContext.
@ AV_PIX_FMT_YUV444P
planar YUV 4:4:4, 24bpp, (1 Cr & Cb sample per 1x1 Y samples)
Descriptor that unambiguously describes how the bits of a pixel are stored in the up to 4 data planes...
#define declare_func(ret,...)
#define checkasm_check(prefix,...)