summaryrefslogtreecommitdiffstats
path: root/libmpdemux/tv.c
diff options
context:
space:
mode:
authoralex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-11-16 22:59:07 +0000
committeralex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-11-16 22:59:07 +0000
commitc451b1fe262fe39515f14ce82f2a590004e96d34 (patch)
treed58328865d1561891e51749c705e1ebd816c6674 /libmpdemux/tv.c
parent1e50777fb8e235375783868c223b466ca9e39e1b (diff)
downloadmpv-c451b1fe262fe39515f14ce82f2a590004e96d34.tar.bz2
mpv-c451b1fe262fe39515f14ce82f2a590004e96d34.tar.xz
added support for setting color values
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@2938 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/tv.c')
-rw-r--r--libmpdemux/tv.c82
1 files changed, 82 insertions, 0 deletions
diff --git a/libmpdemux/tv.c b/libmpdemux/tv.c
index 9c93624e38..685b70e01a 100644
--- a/libmpdemux/tv.c
+++ b/libmpdemux/tv.c
@@ -284,4 +284,86 @@ int tv_uninit(tvi_handle_t *tvh)
{
return(tvh->functions->uninit(tvh->priv));
}
+
+/* utilities for mplayer (not mencoder!!) */
+int tv_set_color_options(tvi_handle_t *tvh, int opt, int value)
+{
+ tvi_functions_t *funcs = tvh->functions;
+
+ switch(opt)
+ {
+ case TV_COLOR_BRIGHTNESS:
+ if (value == 50)
+ value = 32768;
+ if (value > 50)
+ {
+ value *= 100;
+ value += 32768;
+ }
+ if (value < 50)
+ {
+ int i;
+ value *= 100;
+ i = value;
+ value = 32768 - i;
+ }
+ funcs->control(tvh->priv, TVI_CONTROL_VID_SET_BRIGHTNESS, &value);
+ break;
+ case TV_COLOR_HUE:
+ if (value == 50)
+ value = 32768;
+ if (value > 50)
+ {
+ value *= 100;
+ value += 32768;
+ }
+ if (value < 50)
+ {
+ int i;
+ value *= 100;
+ i = value;
+ value = 32768 - i;
+ }
+ funcs->control(tvh->priv, TVI_CONTROL_VID_SET_HUE, &value);
+ break;
+ case TV_COLOR_SATURATION:
+ if (value == 50)
+ value = 32512;
+ if (value > 50)
+ {
+ value *= 100;
+ value += 32512;
+ }
+ if (value < 50)
+ {
+ int i;
+ value *= 100;
+ i = value;
+ value = 32512 - i;
+ }
+ funcs->control(tvh->priv, TVI_CONTROL_VID_SET_SATURATION, &value);
+ break;
+ case TV_COLOR_CONTRAST:
+ if (value == 50)
+ value = 27648;
+ if (value > 50)
+ {
+ value *= 100;
+ value += 27648;
+ }
+ if (value < 50)
+ {
+ int i;
+ value *= 100;
+ i = value;
+ value = 27648 - i;
+ }
+ funcs->control(tvh->priv, TVI_CONTROL_VID_SET_CONTRAST, &value);
+ break;
+ default:
+ mp_msg(MSGT_TV, MSGL_WARN, "Unknown color option (%d) specified!\n", opt);
+ }
+
+ return(1);
+}
#endif /* USE_TV */