diff options
author | arpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-09-27 21:08:36 +0000 |
---|---|---|
committer | arpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-09-27 21:08:36 +0000 |
commit | 0bcbbd87050974c83b19a7497aa49b6c1e0f7720 (patch) | |
tree | 2951282f63917ba7fff95e2ab84e1914ceb5f5db /mplayer.c | |
parent | ea2e1768d25f7c077f1ecf0a7456c05fd376f908 (diff) | |
download | mpv-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.c | 34 |
1 files changed, 34 insertions, 0 deletions
@@ -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; |