mirror of https://github.com/mpv-player/mpv
video: make csp equalizer params float
This allows more precise adjustments. Fixes #11316
This commit is contained in:
parent
0d991eba72
commit
fb48722234
|
@ -55,6 +55,8 @@ Interface changes
|
||||||
- add `--tone-mapping=st2094-40` and `--tone-mapping=st2094-10`
|
- add `--tone-mapping=st2094-40` and `--tone-mapping=st2094-10`
|
||||||
- change `--screenshot-jxl-effort` default from `3` to `4`.
|
- change `--screenshot-jxl-effort` default from `3` to `4`.
|
||||||
- add `--tone-mapping-visualize`
|
- add `--tone-mapping-visualize`
|
||||||
|
- change type of `--brightness`, `--saturation`, `--contrast`, `--hue` and
|
||||||
|
`--gamma` to float.
|
||||||
--- mpv 0.35.0 ---
|
--- mpv 0.35.0 ---
|
||||||
- add the `--vo=gpu-next` video output driver, as well as the options
|
- add the `--vo=gpu-next` video output driver, as well as the options
|
||||||
`--allow-delayed-peak-detect`, `--builtin-scalers`,
|
`--allow-delayed-peak-detect`, `--builtin-scalers`,
|
||||||
|
|
|
@ -879,18 +879,18 @@ bool mp_colorspace_equal(struct mp_colorspace c1, struct mp_colorspace c2)
|
||||||
|
|
||||||
const struct m_sub_options mp_csp_equalizer_conf = {
|
const struct m_sub_options mp_csp_equalizer_conf = {
|
||||||
.opts = (const m_option_t[]) {
|
.opts = (const m_option_t[]) {
|
||||||
{"brightness", OPT_INT(values[MP_CSP_EQ_BRIGHTNESS]),
|
{"brightness", OPT_FLOAT(values[MP_CSP_EQ_BRIGHTNESS]),
|
||||||
M_RANGE(-100, 100)},
|
M_RANGE(-100, 100)},
|
||||||
{"saturation", OPT_INT(values[MP_CSP_EQ_SATURATION]),
|
{"saturation", OPT_FLOAT(values[MP_CSP_EQ_SATURATION]),
|
||||||
M_RANGE(-100, 100)},
|
M_RANGE(-100, 100)},
|
||||||
{"contrast", OPT_INT(values[MP_CSP_EQ_CONTRAST]),
|
{"contrast", OPT_FLOAT(values[MP_CSP_EQ_CONTRAST]),
|
||||||
M_RANGE(-100, 100)},
|
M_RANGE(-100, 100)},
|
||||||
{"hue", OPT_INT(values[MP_CSP_EQ_HUE]),
|
{"hue", OPT_FLOAT(values[MP_CSP_EQ_HUE]),
|
||||||
M_RANGE(-100, 100)},
|
M_RANGE(-100, 100)},
|
||||||
{"gamma", OPT_INT(values[MP_CSP_EQ_GAMMA]),
|
{"gamma", OPT_FLOAT(values[MP_CSP_EQ_GAMMA]),
|
||||||
M_RANGE(-100, 100)},
|
M_RANGE(-100, 100)},
|
||||||
{"video-output-levels",
|
{"video-output-levels",
|
||||||
OPT_CHOICE_C(values[MP_CSP_EQ_OUTPUT_LEVELS], mp_csp_levels_names)},
|
OPT_CHOICE_C(output_levels, mp_csp_levels_names)},
|
||||||
{0}
|
{0}
|
||||||
},
|
},
|
||||||
.size = sizeof(struct mp_csp_equalizer_opts),
|
.size = sizeof(struct mp_csp_equalizer_opts),
|
||||||
|
@ -905,7 +905,7 @@ void mp_csp_copy_equalizer_values(struct mp_csp_params *params,
|
||||||
params->hue = eq->values[MP_CSP_EQ_HUE] / 100.0 * M_PI;
|
params->hue = eq->values[MP_CSP_EQ_HUE] / 100.0 * M_PI;
|
||||||
params->saturation = (eq->values[MP_CSP_EQ_SATURATION] + 100) / 100.0;
|
params->saturation = (eq->values[MP_CSP_EQ_SATURATION] + 100) / 100.0;
|
||||||
params->gamma = exp(log(8.0) * eq->values[MP_CSP_EQ_GAMMA] / 100.0);
|
params->gamma = exp(log(8.0) * eq->values[MP_CSP_EQ_GAMMA] / 100.0);
|
||||||
params->levels_out = eq->values[MP_CSP_EQ_OUTPUT_LEVELS];
|
params->levels_out = eq->output_levels;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct mp_csp_equalizer_state *mp_csp_equalizer_create(void *ta_parent,
|
struct mp_csp_equalizer_state *mp_csp_equalizer_create(void *ta_parent,
|
||||||
|
|
|
@ -210,15 +210,15 @@ enum mp_csp_equalizer_param {
|
||||||
MP_CSP_EQ_HUE,
|
MP_CSP_EQ_HUE,
|
||||||
MP_CSP_EQ_SATURATION,
|
MP_CSP_EQ_SATURATION,
|
||||||
MP_CSP_EQ_GAMMA,
|
MP_CSP_EQ_GAMMA,
|
||||||
MP_CSP_EQ_OUTPUT_LEVELS,
|
|
||||||
MP_CSP_EQ_COUNT,
|
MP_CSP_EQ_COUNT,
|
||||||
};
|
};
|
||||||
|
|
||||||
// Default initialization with 0 is enough, except for the capabilities field
|
// Default initialization with 0 is enough, except for the capabilities field
|
||||||
struct mp_csp_equalizer_opts {
|
struct mp_csp_equalizer_opts {
|
||||||
// Value for each property is in the range [-100, 100].
|
// Value for each property is in the range [-100.0, 100.0].
|
||||||
// 0 is default, meaning neutral or no change.
|
// 0.0 is default, meaning neutral or no change.
|
||||||
int values[MP_CSP_EQ_COUNT];
|
float values[MP_CSP_EQ_COUNT];
|
||||||
|
int output_levels;
|
||||||
};
|
};
|
||||||
|
|
||||||
void mp_csp_copy_equalizer_values(struct mp_csp_params *params,
|
void mp_csp_copy_equalizer_values(struct mp_csp_params *params,
|
||||||
|
|
Loading…
Reference in New Issue