mirror of
https://github.com/mpv-player/mpv.git
synced 2025-12-28 05:33:14 +00:00
csputils: add missing gamma support
We have MP_CSP_TRC defined, but it wasn't being used by practically anything. This commit adds missing conversion logic, adds it to mp_image, and moves the auto-guessing logic to where it should be, in mp_image_params_guess_csp (and out of vo_opengl). Note that this also fixes a minor bug: csp_prim was not being copied between mp_image structs if the format was not YUV in both cases, but this is wrong - the primaries are always relevant.
This commit is contained in:
@@ -68,16 +68,20 @@ enum mp_csp_prim {
|
||||
MP_CSP_PRIM_COUNT
|
||||
};
|
||||
|
||||
enum mp_csp_trc {
|
||||
MP_CSP_TRC_NONE,
|
||||
MP_CSP_TRC_BT_1886,
|
||||
MP_CSP_TRC_SRGB,
|
||||
MP_CSP_TRC_LINEAR
|
||||
};
|
||||
|
||||
// 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];
|
||||
|
||||
enum mp_csp_trc {
|
||||
MP_CSP_TRC_AUTO,
|
||||
MP_CSP_TRC_BT_1886,
|
||||
MP_CSP_TRC_SRGB,
|
||||
MP_CSP_TRC_LINEAR,
|
||||
MP_CSP_TRC_COUNT
|
||||
};
|
||||
|
||||
// Any enum mp_csp_trc value is a valid index (except MP_CSP_TRC_COUNT)
|
||||
extern const char *const mp_csp_trc_names[MP_CSP_TRC_COUNT];
|
||||
|
||||
// These constants are based on the ICC specification (Table 23) and match
|
||||
// up with the API of LittleCMS, which treats them as integers.
|
||||
enum mp_render_intent {
|
||||
@@ -205,6 +209,8 @@ int mp_csp_levels_to_avcol_range(enum mp_csp_levels range);
|
||||
|
||||
int mp_csp_prim_to_avcol_pri(enum mp_csp_prim prim);
|
||||
|
||||
int mp_csp_trc_to_avcol_trc(enum mp_csp_trc trc);
|
||||
|
||||
enum mp_csp mp_csp_guess_colorspace(int width, int height);
|
||||
enum mp_csp_prim mp_csp_guess_primaries(int width, int height);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user