diff options
Diffstat (limited to 'video/csputils.h')
-rw-r--r-- | video/csputils.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/video/csputils.h b/video/csputils.h index 57e10b3c27..d7d052a753 100644 --- a/video/csputils.h +++ b/video/csputils.h @@ -57,6 +57,18 @@ enum mp_csp_levels { // Any enum mp_csp_levels value is a valid index (except MP_CSP_LEVELS_COUNT) extern const char *const mp_csp_levels_names[MP_CSP_LEVELS_COUNT]; +enum mp_csp_prim { + MP_CSP_PRIM_AUTO, + MP_CSP_PRIM_BT_601_525, + MP_CSP_PRIM_BT_601_625, + MP_CSP_PRIM_BT_709, + MP_CSP_PRIM_BT_2020, + MP_CSP_PRIM_COUNT +}; + +// Any enum mp_csp_prim value is a valid index (except MP_CSP_PRIM_COUNT) +extern const char *const mp_csp_prim_names[MP_CSP_PRIM_COUNT]; + struct mp_csp_details { enum mp_csp format; enum mp_csp_levels levels_in; // encoded video @@ -141,10 +153,14 @@ enum mp_csp avcol_spc_to_mp_csp(int avcolorspace); enum mp_csp_levels avcol_range_to_mp_csp_levels(int avrange); +enum mp_csp_prim avcol_pri_to_mp_csp_prim(int avpri); + int mp_csp_to_avcol_spc(enum mp_csp colorspace); int mp_csp_levels_to_avcol_range(enum mp_csp_levels range); +int mp_csp_prim_to_avcol_pri(enum mp_csp_prim prim); + enum mp_csp mp_csp_guess_colorspace(int width, int height); enum mp_chroma_location avchroma_location_to_mp(int avloc); @@ -160,6 +176,8 @@ void mp_gen_gamma_map(unsigned char *map, int size, float gamma); #define COL_U 1 #define COL_V 2 #define COL_C 3 +void mp_get_cms_matrix(enum mp_csp_prim source, float m[3][3]); + void mp_get_yuv2rgb_coeffs(struct mp_csp_params *params, float yuv2rgb[3][4]); void mp_gen_yuv2rgb_map(struct mp_csp_params *params, uint8_t *map, int size); |