Merge commit '0fd0d4fd0a518e30ff23972828ad7cf7f35cfb9d'

* commit '0fd0d4fd0a518e30ff23972828ad7cf7f35cfb9d':
  swscale-test: const correctness

Merged-by: James Almer <jamrial@gmail.com>
This commit is contained in:
James Almer 2017-10-30 12:33:01 -03:00
commit 087e9ab1b3
1 changed files with 14 additions and 10 deletions

View File

@ -55,8 +55,8 @@
(x) == AV_PIX_FMT_RGB32_1 || \ (x) == AV_PIX_FMT_RGB32_1 || \
(x) == AV_PIX_FMT_YUVA420P) (x) == AV_PIX_FMT_YUVA420P)
static uint64_t getSSD(const uint8_t *src1, const uint8_t *src2, int stride1, static uint64_t getSSD(const uint8_t *src1, const uint8_t *src2,
int stride2, int w, int h) int stride1, int stride2, int w, int h)
{ {
int x, y; int x, y;
uint64_t ssd = 0; uint64_t ssd = 0;
@ -80,7 +80,7 @@ struct Results {
// test by ref -> src -> dst -> out & compare out against ref // test by ref -> src -> dst -> out & compare out against ref
// ref & out are YV12 // ref & out are YV12
static int doTest(uint8_t *ref[4], int refStride[4], int w, int h, static int doTest(const uint8_t * const ref[4], int refStride[4], int w, int h,
enum AVPixelFormat srcFormat, enum AVPixelFormat dstFormat, enum AVPixelFormat srcFormat, enum AVPixelFormat dstFormat,
int srcW, int srcH, int dstW, int dstH, int flags, int srcW, int srcH, int dstW, int dstH, int flags,
struct Results *r) struct Results *r)
@ -90,7 +90,7 @@ static int doTest(uint8_t *ref[4], int refStride[4], int w, int h,
const AVPixFmtDescriptor *desc_dst = av_pix_fmt_desc_get(dstFormat); const AVPixFmtDescriptor *desc_dst = av_pix_fmt_desc_get(dstFormat);
static enum AVPixelFormat cur_srcFormat; static enum AVPixelFormat cur_srcFormat;
static int cur_srcW, cur_srcH; static int cur_srcW, cur_srcH;
static uint8_t *src[4]; static const uint8_t *src[4];
static int srcStride[4]; static int srcStride[4];
uint8_t *dst[4] = { 0 }; uint8_t *dst[4] = { 0 };
uint8_t *out[4] = { 0 }; uint8_t *out[4] = { 0 };
@ -132,7 +132,8 @@ static int doTest(uint8_t *ref[4], int refStride[4], int w, int h,
res = -1; res = -1;
goto end; goto end;
} }
sws_scale(srcContext, (const uint8_t * const*)ref, refStride, 0, h, src, srcStride); sws_scale(srcContext, ref, refStride, 0, h,
(uint8_t * const *) src, srcStride);
sws_freeContext(srcContext); sws_freeContext(srcContext);
cur_srcFormat = srcFormat; cur_srcFormat = srcFormat;
@ -211,7 +212,8 @@ static int doTest(uint8_t *ref[4], int refStride[4], int w, int h,
res = -1; res = -1;
goto end; goto end;
} }
sws_scale(outContext, (const uint8_t * const*)dst, dstStride, 0, dstH, out, refStride); sws_scale(outContext, (const uint8_t * const *) dst, dstStride, 0, dstH,
out, refStride);
ssdY = getSSD(ref[0], out[0], refStride[0], refStride[0], w, h); ssdY = getSSD(ref[0], out[0], refStride[0], refStride[0], w, h);
if (hasChroma(srcFormat) && hasChroma(dstFormat)) { if (hasChroma(srcFormat) && hasChroma(dstFormat)) {
@ -249,7 +251,8 @@ end:
return res; return res;
} }
static void selfTest(uint8_t *ref[4], int refStride[4], int w, int h, static void selfTest(const uint8_t * const ref[4], int refStride[4],
int w, int h,
enum AVPixelFormat srcFormat_in, enum AVPixelFormat srcFormat_in,
enum AVPixelFormat dstFormat_in) enum AVPixelFormat dstFormat_in)
{ {
@ -299,7 +302,8 @@ static void selfTest(uint8_t *ref[4], int refStride[4], int w, int h,
} }
} }
static int fileTest(uint8_t *ref[4], int refStride[4], int w, int h, FILE *fp, static int fileTest(const uint8_t * const ref[4], int refStride[4],
int w, int h, FILE *fp,
enum AVPixelFormat srcFormat_in, enum AVPixelFormat srcFormat_in,
enum AVPixelFormat dstFormat_in) enum AVPixelFormat dstFormat_in)
{ {
@ -362,7 +366,7 @@ int main(int argc, char **argv)
const uint8_t * const rgb_src[4] = { rgb_data, NULL, NULL, NULL }; const uint8_t * const rgb_src[4] = { rgb_data, NULL, NULL, NULL };
int rgb_stride[4] = { 4 * W, 0, 0, 0 }; int rgb_stride[4] = { 4 * W, 0, 0, 0 };
uint8_t *data = av_malloc(4 * W * H); uint8_t *data = av_malloc(4 * W * H);
uint8_t *src[4] = { data, data + W * H, data + W * H * 2, data + W * H * 3 }; const uint8_t * const src[4] = { data, data + W * H, data + W * H * 2, data + W * H * 3 };
int stride[4] = { W, W, W, W }; int stride[4] = { W, W, W, W };
int x, y; int x, y;
struct SwsContext *sws; struct SwsContext *sws;
@ -418,7 +422,7 @@ bad_option:
for (y = 0; y < H; y++) for (y = 0; y < H; y++)
for (x = 0; x < W * 4; x++) for (x = 0; x < W * 4; x++)
rgb_data[ x + y * 4 * W] = av_lfg_get(&rand); rgb_data[ x + y * 4 * W] = av_lfg_get(&rand);
sws_scale(sws, rgb_src, rgb_stride, 0, H / 12, src, stride); sws_scale(sws, rgb_src, rgb_stride, 0, H / 12, (uint8_t * const *) src, stride);
sws_freeContext(sws); sws_freeContext(sws);
av_free(rgb_data); av_free(rgb_data);