summaryrefslogtreecommitdiffstats
path: root/test/scale_test.h
blob: f49b456ecb527f04c82630b0f0d7afa94d45eb41 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#pragma once

#include "tests.h"
#include "video/mp_image.h"

struct scale_test_fns {
    bool (*scale)(void *ctx, struct mp_image *dst, struct mp_image *src);
    bool (*supports_fmts)(void *ctx, int imgfmt_dst, int imgfmt_src);
};

struct scale_test {
    // To be filled in by user.
    const struct scale_test_fns *fns;
    void *fns_priv;
    const char *test_name;
    struct test_ctx *ctx;

    // Private.
    struct mp_image *img_repack_rgb8;
    struct mp_image *img_repack_rgba8;
    struct mp_image *img_repack_rgb16;
    struct mp_image *img_repack_rgba16;
    struct mp_sws_context *sws;
    int fail;
};

// Test color repacking between packed formats (typically RGB).
void repack_test_run(struct scale_test *stest);