summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/xvmc
diff options
context:
space:
mode:
authorNayan Deshmukh <nayan26deshmukh@gmail.com>2016-06-08 14:52:48 +0530
committerChristian König <christian.koenig@amd.com>2016-06-09 14:23:07 +0200
commitf24eb5a17830b8137045a626dbd55e75ed5e708d (patch)
tree18b9b2d2c5ab3b25ea7181bc467cf4b6a3aa66b3 /src/gallium/state_trackers/xvmc
parent037ce5d7343829a69ec9c7361a0964bc1366b019 (diff)
downloadexternal_mesa3d-f24eb5a17830b8137045a626dbd55e75ed5e708d.zip
external_mesa3d-f24eb5a17830b8137045a626dbd55e75ed5e708d.tar.gz
external_mesa3d-f24eb5a17830b8137045a626dbd55e75ed5e708d.tar.bz2
vl: Apply luma key filter before CSC conversion
Apply the luma key filter to the YCbCr values during the CSC conversion in video buffer shader. The initial values of max and min luma are set to opposite values to disable the filter initially and will be set when enabling it. Add extra parmeters min and max luma for the luma key filter in vl_compositor_set_csc_matrix in va, xvmc. Setting them to opposite value 1.f and 0.f respectively won't effect the CSC conversion v2: -Squash 1,2 and 3 into one patch to avoid breaking build of other components. (Christian) -use ureg_swizzle. (Christian) -change name of the variables. (Christian) v3: -Squash all patches in one to avoid breaking of build. (Emil) -wrap functions properly. (Emil) -use 0.0f and 1.0f instead of 0.f and 1.f respectively. (Emil) v4: -Divide it in two patches one which introduces the functionality and assigs dummy values to the changed functions and second which implements the lumakey filter. (Christian) -use ureg_scalar instead ureg_swizzle. (Christian) Signed-off-by: Nayan Deshmukh <nayan26deshmukh@gmail.com> Reviewed-by: Christian König <christian.koenig@amd.com>
Diffstat (limited to 'src/gallium/state_trackers/xvmc')
-rw-r--r--src/gallium/state_trackers/xvmc/attributes.c2
-rw-r--r--src/gallium/state_trackers/xvmc/context.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/gallium/state_trackers/xvmc/attributes.c b/src/gallium/state_trackers/xvmc/attributes.c
index 2d8f00b..3757056 100644
--- a/src/gallium/state_trackers/xvmc/attributes.c
+++ b/src/gallium/state_trackers/xvmc/attributes.c
@@ -110,7 +110,7 @@ Status XvMCSetAttribute(Display *dpy, XvMCContext *context, Atom attribute, int
context_priv->color_standard,
&context_priv->procamp, true, &csc
);
- vl_compositor_set_csc_matrix(&context_priv->cstate, (const vl_csc_matrix *)&csc);
+ vl_compositor_set_csc_matrix(&context_priv->cstate, (const vl_csc_matrix *)&csc, 1.0f, 0.0f);
XVMC_MSG(XVMC_TRACE, "[XvMC] Set attribute %s to value %d.\n", attr, value);
diff --git a/src/gallium/state_trackers/xvmc/context.c b/src/gallium/state_trackers/xvmc/context.c
index a6991ab..e9014c8 100644
--- a/src/gallium/state_trackers/xvmc/context.c
+++ b/src/gallium/state_trackers/xvmc/context.c
@@ -293,7 +293,7 @@ Status XvMCCreateContext(Display *dpy, XvPortID port, int surface_type_id,
context_priv->color_standard,
&context_priv->procamp, true, &csc
);
- vl_compositor_set_csc_matrix(&context_priv->cstate, (const vl_csc_matrix *)&csc);
+ vl_compositor_set_csc_matrix(&context_priv->cstate, (const vl_csc_matrix *)&csc, 1.0f, 0.0f);
context_priv->vscreen = vscreen;
context_priv->pipe = pipe;