[Mplayer-cvslog] CVS: main/libmpcodecs vf_eq2.c,1.7,1.8
Michael Niedermayer CVS
michael at mplayerhq.hu
Sun Oct 19 01:03:00 CEST 2003
Update of /cvsroot/mplayer/main/libmpcodecs
In directory mail:/var/tmp.root/cvs-serv21913
Modified Files:
vf_eq2.c
Log Message:
gamma weight patch by (Alexander Stege <mplayer at legale-software dot com>)
Index: vf_eq2.c
===================================================================
RCS file: /cvsroot/mplayer/main/libmpcodecs/vf_eq2.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- vf_eq2.c 17 Oct 2003 17:15:38 -0000 1.7
+++ vf_eq2.c 18 Oct 2003 23:02:30 -0000 1.8
@@ -43,6 +43,7 @@
double c;
double b;
double g;
+ double w;
} eq2_param_t;
typedef struct vf_priv_s {
@@ -53,6 +54,7 @@
double saturation;
double gamma;
+ double gamma_weight;
double rgamma;
double ggamma;
double bgamma;
@@ -68,8 +70,11 @@
{
unsigned i;
double g, v;
+ double lw, gw;
g = par->g;
+ gw = par->w;
+ lw = 1.0 - gw;
if ((g < 0.001) || (g > 1000.0)) {
g = 1.0;
@@ -85,7 +90,7 @@
par->lut[i] = 0;
}
else {
- v = pow (v, g);
+ v = v*lw + pow(v, g)*gw;
if (v >= 1.0) {
par->lut[i] = 255;
@@ -320,6 +325,7 @@
eq2->param[0].g = eq2->gamma * eq2->ggamma;
eq2->param[1].g = sqrt (eq2->bgamma / eq2->ggamma);
eq2->param[2].g = sqrt (eq2->rgamma / eq2->ggamma);
+ eq2->param[0].w = eq2->param[1].w = eq2->param[2].w = eq2->gamma_weight;
eq2->param[0].lut_clean = 0;
eq2->param[1].lut_clean = 0;
@@ -434,7 +440,7 @@
{
unsigned i;
vf_eq2_t *eq2;
- double par[7];
+ double par[8];
vf->control = control;
vf->query_format = query_format;
@@ -461,6 +467,7 @@
eq2->saturation = 1.0;
eq2->gamma = 1.0;
+ eq2->gamma_weight = 1.0;
eq2->rgamma = 1.0;
eq2->ggamma = 1.0;
eq2->bgamma = 1.0;
@@ -473,11 +480,12 @@
par[4] = 1.0;
par[5] = 1.0;
par[6] = 1.0;
+ par[7] = 1.0;
#ifdef USE_SETLOCALE
setlocale (LC_NUMERIC, "C");
#endif
- sscanf (args, "%lf:%lf:%lf:%lf:%lf:%lf:%lf",
- par, par + 1, par + 2, par + 3, par + 4, par + 5, par + 6
+ sscanf (args, "%lf:%lf:%lf:%lf:%lf:%lf:%lf:%lf",
+ par, par + 1, par + 2, par + 3, par + 4, par + 5, par + 6, par + 7
);
#ifdef USE_SETLOCALE
setlocale (LC_NUMERIC, "");
@@ -486,6 +494,7 @@
eq2->rgamma = par[4];
eq2->ggamma = par[5];
eq2->bgamma = par[6];
+ eq2->gamma_weight = par[7];
set_gamma (eq2, par[0]);
set_contrast (eq2, par[1]);
More information about the MPlayer-cvslog
mailing list