summaryrefslogtreecommitdiffstats
path: root/video
diff options
context:
space:
mode:
Diffstat (limited to 'video')
-rw-r--r--video/out/gpu/utils.c15
-rw-r--r--video/out/gpu/utils.h3
-rw-r--r--video/out/gpu/video.c15
-rw-r--r--video/sws_utils.c3
4 files changed, 21 insertions, 15 deletions
diff --git a/video/out/gpu/utils.c b/video/out/gpu/utils.c
index 2c625dc26a..8a1aacfff5 100644
--- a/video/out/gpu/utils.c
+++ b/video/out/gpu/utils.c
@@ -39,6 +39,21 @@ void gl_transform_ortho_fbo(struct gl_transform *t, struct ra_fbo fbo)
gl_transform_ortho(t, 0, fbo.tex->params.w, 0, fbo.tex->params.h * y_dir);
}
+float gl_video_scale_ambient_lux(float lmin, float lmax,
+ float rmin, float rmax, float lux)
+{
+ assert(lmax > lmin);
+
+ float num = (rmax - rmin) * (log10(lux) - log10(lmin));
+ float den = log10(lmax) - log10(lmin);
+ float result = num / den + rmin;
+
+ // clamp the result
+ float max = MPMAX(rmax, rmin);
+ float min = MPMIN(rmax, rmin);
+ return MPMAX(MPMIN(result, max), min);
+}
+
void ra_buf_pool_uninit(struct ra *ra, struct ra_buf_pool *pool)
{
for (int i = 0; i < pool->num_buffers; i++)
diff --git a/video/out/gpu/utils.h b/video/out/gpu/utils.h
index ac0cbf28d7..215873eec8 100644
--- a/video/out/gpu/utils.h
+++ b/video/out/gpu/utils.h
@@ -65,6 +65,9 @@ void gl_transform_trans(struct gl_transform t, struct gl_transform *x);
void gl_transform_ortho_fbo(struct gl_transform *t, struct ra_fbo fbo);
+float gl_video_scale_ambient_lux(float lmin, float lmax,
+ float rmin, float rmax, float lux);
+
// A pool of buffers, which can grow as needed
struct ra_buf_pool {
struct ra_buf_params current_params;
diff --git a/video/out/gpu/video.c b/video/out/gpu/video.c
index df689b53c3..21e004cd43 100644
--- a/video/out/gpu/video.c
+++ b/video/out/gpu/video.c
@@ -4239,21 +4239,6 @@ static int validate_error_diffusion_opt(struct mp_log *log, const m_option_t *op
return r;
}
-float gl_video_scale_ambient_lux(float lmin, float lmax,
- float rmin, float rmax, float lux)
-{
- assert(lmax > lmin);
-
- float num = (rmax - rmin) * (log10(lux) - log10(lmin));
- float den = log10(lmax) - log10(lmin);
- float result = num / den + rmin;
-
- // clamp the result
- float max = MPMAX(rmax, rmin);
- float min = MPMIN(rmax, rmin);
- return MPMAX(MPMIN(result, max), min);
-}
-
void gl_video_set_ambient_lux(struct gl_video *p, int lux)
{
if (p->opts.gamma_auto) {
diff --git a/video/sws_utils.c b/video/sws_utils.c
index 0f1708af3f..5e9c35876a 100644
--- a/video/sws_utils.c
+++ b/video/sws_utils.c
@@ -213,6 +213,9 @@ struct mp_sws_context *mp_sws_alloc(void *talloc_ctx)
// if the user changes any options.
void mp_sws_enable_cmdline_opts(struct mp_sws_context *ctx, struct mpv_global *g)
{
+ // Should only ever be NULL for tests.
+ if (!g)
+ return;
if (ctx->opts_cache)
return;