summaryrefslogtreecommitdiffstats
path: root/video
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2015-01-06 15:04:29 +0100
committerwm4 <wm4@nowhere>2015-01-06 16:50:58 +0100
commita52ca8a2b075388dc7dd5012e4e3f4871e26b133 (patch)
tree8a29d2451c9763d425e37ba6501644a0f3d06bdb /video
parent02362f938f0a782a39e4c069b150650fb4171dc7 (diff)
downloadmpv-a52ca8a2b075388dc7dd5012e4e3f4871e26b133.tar.bz2
mpv-a52ca8a2b075388dc7dd5012e4e3f4871e26b133.tar.xz
csputils: get rid of mp_csp_details
It used to be central, but now it's just unneeded.
Diffstat (limited to 'video')
-rw-r--r--video/csputils.c12
-rw-r--r--video/csputils.h15
-rw-r--r--video/out/gl_video.c11
-rw-r--r--video/out/vo_direct3d.c6
-rw-r--r--video/out/vo_opengl_old.c9
-rw-r--r--video/sws_utils.h1
-rw-r--r--video/vdpau_mixer.c6
7 files changed, 26 insertions, 34 deletions
diff --git a/video/csputils.c b/video/csputils.c
index ab49d30247..db206330bd 100644
--- a/video/csputils.c
+++ b/video/csputils.c
@@ -525,14 +525,14 @@ static void luma_coeffs(float m[3][4], float lr, float lg, float lb)
// get the coefficients of the yuv -> rgb conversion matrix
void mp_get_yuv2rgb_coeffs(struct mp_csp_params *params, float m[3][4])
{
- int format = params->colorspace.format;
- if (format <= MP_CSP_AUTO || format >= MP_CSP_COUNT)
- format = MP_CSP_BT_601;
- int levels_in = params->colorspace.levels_in;
+ int colorspace = params->colorspace;
+ if (colorspace <= MP_CSP_AUTO || colorspace >= MP_CSP_COUNT)
+ colorspace = MP_CSP_BT_601;
+ int levels_in = params->levels_in;
if (levels_in <= MP_CSP_LEVELS_AUTO || levels_in >= MP_CSP_LEVELS_COUNT)
levels_in = MP_CSP_LEVELS_TV;
- switch (format) {
+ switch (colorspace) {
case MP_CSP_BT_601: luma_coeffs(m, 0.299, 0.587, 0.114 ); break;
case MP_CSP_BT_709: luma_coeffs(m, 0.2126, 0.7152, 0.0722); break;
case MP_CSP_SMPTE_240M: luma_coeffs(m, 0.2122, 0.7013, 0.0865); break;
@@ -601,7 +601,7 @@ void mp_get_yuv2rgb_coeffs(struct mp_csp_params *params, float m[3][4])
abort();
}
- int levels_out = params->colorspace.levels_out;
+ int levels_out = params->levels_out;
if (levels_out <= MP_CSP_LEVELS_AUTO || levels_out >= MP_CSP_LEVELS_COUNT)
levels_out = MP_CSP_LEVELS_PC;
struct rgblevels { double min, max; }
diff --git a/video/csputils.h b/video/csputils.h
index 1ad88bf261..4e2fe611b3 100644
--- a/video/csputils.h
+++ b/video/csputils.h
@@ -106,17 +106,10 @@ extern const char *const mp_stereo3d_names[MP_STEREO3D_COUNT];
#define MP_STEREO3D_NAME_DEF(x, def) \
(MP_STEREO3D_NAME(x) ? MP_STEREO3D_NAME(x) : (def))
-struct mp_csp_details {
- enum mp_csp format;
+struct mp_csp_params {
+ enum mp_csp colorspace;
enum mp_csp_levels levels_in; // encoded video
enum mp_csp_levels levels_out; // output device
-};
-
-// initializer for struct mp_csp_details that contains reasonable defaults
-#define MP_CSP_DETAILS_DEFAULTS {MP_CSP_BT_601, MP_CSP_LEVELS_TV, MP_CSP_LEVELS_PC}
-
-struct mp_csp_params {
- struct mp_csp_details colorspace;
float brightness;
float contrast;
float hue;
@@ -133,7 +126,9 @@ struct mp_csp_params {
};
#define MP_CSP_PARAMS_DEFAULTS { \
- .colorspace = MP_CSP_DETAILS_DEFAULTS, \
+ .colorspace = MP_CSP_BT_601, \
+ .levels_in = MP_CSP_LEVELS_TV, \
+ .levels_out = MP_CSP_LEVELS_PC, \
.brightness = 0, .contrast = 1, .hue = 0, .saturation = 1, \
.rgamma = 1, .ggamma = 1, .bgamma = 1, \
.texture_bits = 8, .input_bits = 8}
diff --git a/video/out/gl_video.c b/video/out/gl_video.c
index 24a7a13f1d..1ff0d9d333 100644
--- a/video/out/gl_video.c
+++ b/video/out/gl_video.c
@@ -638,19 +638,16 @@ static void update_uniforms(struct gl_video *p, GLuint program)
gl->UseProgram(program);
- struct mp_csp_details csp = MP_CSP_DETAILS_DEFAULTS;
- csp.levels_in = p->image_params.colorlevels;
- csp.levels_out = p->image_params.outputlevels;
- csp.format = p->image_params.colorspace;
-
struct mp_csp_params cparams = {
- .colorspace = csp,
+ .colorspace = p->image_params.colorspace,
+ .levels_in = p->image_params.colorlevels,
+ .levels_out = p->image_params.outputlevels,
.input_bits = p->plane_bits,
.texture_bits = (p->plane_bits + 7) & ~7,
};
mp_csp_copy_equalizer_values(&cparams, &p->video_eq);
if (p->image_desc.flags & MP_IMGFLAG_XYZ) {
- cparams.colorspace.format = MP_CSP_XYZ;
+ cparams.colorspace = MP_CSP_XYZ;
cparams.input_bits = 8;
cparams.texture_bits = 8;
}
diff --git a/video/out/vo_direct3d.c b/video/out/vo_direct3d.c
index 52ec690cf3..4a2c86aab7 100644
--- a/video/out/vo_direct3d.c
+++ b/video/out/vo_direct3d.c
@@ -1152,9 +1152,9 @@ static void update_colorspace(d3d_priv *priv)
{
float coeff[3][4];
struct mp_csp_params csp = MP_CSP_PARAMS_DEFAULTS;
- csp.colorspace.format = priv->params.colorspace;
- csp.colorspace.levels_in = priv->params.colorlevels;
- csp.colorspace.levels_out = priv->params.outputlevels;
+ csp.colorspace = priv->params.colorspace;
+ csp.levels_in = priv->params.colorlevels;
+ csp.levels_out = priv->params.outputlevels;
mp_csp_copy_equalizer_values(&csp, &priv->video_eq);
if (priv->use_shaders) {
diff --git a/video/out/vo_opengl_old.c b/video/out/vo_opengl_old.c
index dc105baaaa..b88b36e5d1 100644
--- a/video/out/vo_opengl_old.c
+++ b/video/out/vo_opengl_old.c
@@ -1346,10 +1346,11 @@ static void update_yuvconv(struct vo *vo)
if (!vo->params)
return;
- struct mp_csp_params cparams = { .colorspace = MP_CSP_DETAILS_DEFAULTS };
- cparams.colorspace.format = vo->params->colorspace;
- cparams.colorspace.levels_in = vo->params->colorlevels;
- cparams.colorspace.levels_out = vo->params->outputlevels;
+ struct mp_csp_params cparams = {
+ .colorspace = vo->params->colorspace,
+ .levels_in = vo->params->colorlevels,
+ .levels_out = vo->params->outputlevels,
+ };
mp_csp_copy_equalizer_values(&cparams, &p->video_eq);
gl_conversion_params_t params = {
p->target, p->yuvconvtype, cparams,
diff --git a/video/sws_utils.h b/video/sws_utils.h
index 212e1405b4..cf9aa827b2 100644
--- a/video/sws_utils.h
+++ b/video/sws_utils.h
@@ -6,7 +6,6 @@
#include "mp_image.h"
struct mp_image;
-struct mp_csp_details;
struct sws_opts;
// libswscale currently requires 16 bytes alignment for row pointers and
diff --git a/video/vdpau_mixer.c b/video/vdpau_mixer.c
index 1112cb0de3..7b45ca7f55 100644
--- a/video/vdpau_mixer.c
+++ b/video/vdpau_mixer.c
@@ -197,9 +197,9 @@ static int create_vdp_mixer(struct mp_vdpau_mixer *mixer)
VdpCSCMatrix matrix;
struct mp_csp_params cparams = MP_CSP_PARAMS_DEFAULTS;
- cparams.colorspace.format = mixer->image_params.colorspace;
- cparams.colorspace.levels_in = mixer->image_params.colorlevels;
- cparams.colorspace.levels_out = mixer->image_params.outputlevels;
+ cparams.colorspace = mixer->image_params.colorspace;
+ cparams.levels_in = mixer->image_params.colorlevels;
+ cparams.levels_out = mixer->image_params.outputlevels;
mp_csp_copy_equalizer_values(&cparams, &mixer->video_eq);
mp_get_yuv2rgb_coeffs(&cparams, matrix);