31 #define randomize_buffers(buf, size) \ 34 for (j = 0; j < size; j+=4) \ 35 AV_WN32(buf + j, rnd()); \ 38 #define SRC_PIXELS 128 42 #define MAX_FILTER_WIDTH 40 43 #define FILTER_SIZES 5 44 static const int filter_sizes[
FILTER_SIZES] = { 4, 8, 16, 32, 40 };
46 #define HSCALE_PAIRS 2 68 const int32_t *filterPos,
int filterSize);
78 width = filter_sizes[fsi];
80 ctx->
srcBpc = hscale_pairs[hpi][0];
81 ctx->
dstBpc = hscale_pairs[hpi][1];
100 for (j = 0; j <
width; j++) {
101 filter[i * width + j] = -((1 << 14) / (width - 1));
103 filter[i * width + (
rnd() %
width)] = ((1 << 15) - 1);
111 filter[SRC_PIXELS * width +
i] =
rnd();
116 memset(dst0, 0, SRC_PIXELS *
sizeof(dst0[0]));
117 memset(dst1, 0, SRC_PIXELS *
sizeof(dst1[0]));
119 call_ref(
NULL, dst0, SRC_PIXELS, src, filter, filterPos, width);
120 call_new(
NULL, dst1, SRC_PIXELS, src, filter, filterPos, width);
121 if (memcmp(dst0, dst1, SRC_PIXELS *
sizeof(dst0[0])))
123 bench_new(
NULL, dst0, SRC_PIXELS, src, filter, filterPos, width);
void checkasm_check_sw_scale(void)
void(* hcScale)(struct SwsContext *c, int16_t *dst, int dstW, const uint8_t *src, const int16_t *filter, const int32_t *filterPos, int filterSize)
static void check_hscale(void)
Memory handling functions.
static void filter(int16_t *output, ptrdiff_t out_stride, int16_t *low, ptrdiff_t low_stride, int16_t *high, ptrdiff_t high_stride, int len, int clip)
av_warn_unused_result int sws_init_context(struct SwsContext *sws_context, SwsFilter *srcFilter, SwsFilter *dstFilter)
Initialize the swscaler context sws_context.
#define i(width, name, range_min, range_max)
int hLumFilterSize
Horizontal filter size for luma/alpha pixels.
SwsFunc ff_getSwsFunc(SwsContext *c)
Return function pointer to fastest main scaler path function depending on architecture and available ...
int hChrFilterSize
Horizontal filter size for chroma pixels.
void sws_freeContext(struct SwsContext *swsContext)
Free the swscaler context swsContext.
#define randomize_buffers(buf, size)
#define declare_func_emms(cpu_flags, ret,...)
int dstW
Width of destination luma/alpha planes.
#define AV_CPU_FLAG_MMX
standard MMX
#define check_func(func,...)
struct SwsContext * sws_alloc_context(void)
Allocate an empty SwsContext.
#define LOCAL_ALIGNED_32(t, v,...)
common internal and external API header