1 #include "tests.h" 2 #include "libplacebo/utils/dav1d.h" 3 main()4int 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