summaryrefslogtreecommitdiffstats
path: root/mplayer.c
diff options
context:
space:
mode:
authorarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-09-27 21:08:36 +0000
committerarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-09-27 21:08:36 +0000
commit0bcbbd87050974c83b19a7497aa49b6c1e0f7720 (patch)
tree2951282f63917ba7fff95e2ab84e1914ceb5f5db /mplayer.c
parentea2e1768d25f7c077f1ecf0a7456c05fd376f908 (diff)
downloadmpv-0bcbbd87050974c83b19a7497aa49b6c1e0f7720.tar.bz2
mpv-0bcbbd87050974c83b19a7497aa49b6c1e0f7720.tar.xz
-vf eq2, LUT-based brightness/contrast/gamma correction (Y-only)
by Hampa Hug <hhug@student.ethz.ch> git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@7518 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'mplayer.c')
-rw-r--r--mplayer.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/mplayer.c b/mplayer.c
index eaae9343b6..18210fd313 100644
--- a/mplayer.c
+++ b/mplayer.c
@@ -251,6 +251,7 @@ static demuxer_t *demuxer=NULL;
char* current_module=NULL; // for debugging
+int vo_gamma_gamma = 1000;
int vo_gamma_brightness = 1000;
int vo_gamma_contrast = 1000;
int vo_gamma_saturation = 1000;
@@ -1268,6 +1269,8 @@ if(auto_quality>0){
current_module="init_vo";
if (sh_video)
{
+ if (vo_gamma_gamma != 1000)
+ set_video_colors (sh_video, "gamma", vo_gamma_gamma);
if (vo_gamma_brightness != 1000)
set_video_colors(sh_video, "brightness", vo_gamma_brightness);
if (vo_gamma_contrast != 1000)
@@ -1985,6 +1988,37 @@ if (stream->type==STREAMTYPE_DVDNAV && dvd_nav_still)
eof = PT_NEXT_SRC;
}
} break;
+ case MP_CMD_GAMMA : {
+ int v = cmd->args[0].v.i, abs = cmd->args[1].v.i;
+
+ if (!sh_video)
+ break;
+
+ if (vo_gamma_gamma == 1000)
+ {
+ vo_gamma_gamma = 0;
+ get_video_colors (sh_video, "gamma", &vo_gamma_gamma);
+ }
+
+ if (abs)
+ vo_gamma_gamma = v;
+ else
+ vo_gamma_gamma += v;
+
+ if (vo_gamma_gamma > 100)
+ vo_gamma_gamma = 100;
+ else if (vo_gamma_gamma < -100)
+ vo_gamma_gamma = -100;
+ set_video_colors(sh_video, "gamma", vo_gamma_gamma);
+#ifdef USE_OSD
+ if(osd_level){
+ osd_visible=sh_video->fps; // 1 sec
+ vo_osd_progbar_type=OSD_BRIGHTNESS;
+ vo_osd_progbar_value=(vo_gamma_gamma<<7)/100 + 128;
+ vo_osd_changed(OSDTYPE_PROGBAR);
+ }
+#endif // USE_OSD
+ } break;
case MP_CMD_BRIGHTNESS : {
int v = cmd->args[0].v.i, abs = cmd->args[1].v.i;