1 #include "tests.h"
2 #include "libplacebo/utils/dav1d.h"
3 
main()4 int main()
5 {
6     // Test enum functions
7     for (enum pl_color_system sys = 0; sys < PL_COLOR_SYSTEM_COUNT; sys++) {
8         enum Dav1dMatrixCoefficients mc = pl_system_to_dav1d(sys);
9         enum pl_color_system sys2 = pl_system_from_dav1d(mc);
10         // Exceptions to the rule, due to different handling in dav1d
11         if (sys != PL_COLOR_SYSTEM_BT_2100_HLG && sys != PL_COLOR_SYSTEM_XYZ)
12             REQUIRE(!sys2 || sys2 == sys);
13     }
14 
15     for (enum pl_color_levels lev = 0; lev < PL_COLOR_LEVELS_COUNT; lev++) {
16         int range = pl_levels_to_dav1d(lev);
17         enum pl_color_levels lev2 = pl_levels_from_dav1d(range);
18         if (lev != PL_COLOR_LEVELS_UNKNOWN)
19             REQUIRE(lev2 == lev);
20     }
21 
22     for (enum pl_color_primaries prim = 0; prim < PL_COLOR_PRIM_COUNT; prim++) {
23         enum Dav1dColorPrimaries dpri = pl_primaries_to_dav1d(prim);
24         enum pl_color_primaries prim2 = pl_primaries_from_dav1d(dpri);
25         REQUIRE(!prim2 || prim2 == prim);
26     }
27 
28     for (enum pl_color_transfer trc = 0; trc < PL_COLOR_TRC_COUNT; trc++) {
29         enum Dav1dTransferCharacteristics dtrc = pl_transfer_to_dav1d(trc);
30         enum pl_color_transfer trc2 = pl_transfer_from_dav1d(dtrc);
31         REQUIRE(!trc2 || trc2 == trc);
32     }
33 
34     for (enum pl_chroma_location loc = 0; loc < PL_CHROMA_COUNT; loc++) {
35         enum Dav1dChromaSamplePosition dloc = pl_chroma_to_dav1d(loc);
36         enum pl_chroma_location loc2 = pl_chroma_from_dav1d(dloc);
37         REQUIRE(!loc2 || loc2 == loc);
38     }
39 }
40