diff mplayer.c @ 4388:b6b429d10296

Support for HW equalizing
author nick
date Sun, 27 Jan 2002 18:39:53 +0000
parents 9768db9a360a
children 817530449706
line wrap: on
line diff
--- a/mplayer.c	Sun Jan 27 18:29:33 2002 +0000
+++ b/mplayer.c	Sun Jan 27 18:39:53 2002 +0000
@@ -114,6 +114,12 @@
              Video accelerated architecture
 **************************************************************************/
 vo_vaa_t vo_vaa;
+int v_hw_equ_cap=0;
+int v_bright=50;
+int v_cont=50;
+int v_hue=50;
+int v_saturation=50;
+
 //**************************************************************************//
 //             Config file
 //**************************************************************************//
@@ -440,10 +446,12 @@
 int osd_show_av_delay = 0;
 int osd_show_sub_delay = 0;
 
-int v_bright=50;
-int v_cont=50;
-int v_hue=50;
-int v_saturation=50;
+/*
+For future:
+int v_red_intensity=0;
+int v_green_intensity=0;
+int v_blue_intensity=0;
+*/
 
 int vo_flags=0;
 
@@ -1310,6 +1318,26 @@
    inited_flags|=INITED_VO;
    mp_msg(MSGT_CPLAYER,MSGL_V,"INFO: Video OUT driver init OK!\n");
    video_out->query_vaa(&vo_vaa);
+   /*
+	get_hw_eq
+   */
+   if(vo_vaa.get_video_eq)
+   {
+	vidix_video_eq_t veq;
+	if(vo_vaa.get_video_eq(&veq) == 0)
+	{
+	    v_hw_equ_cap = veq.cap;
+	    v_bright = veq.brightness/10;
+	    v_cont = veq.contrast/10;
+	    v_hue = veq.hue/10;
+	    v_saturation=veq.saturation/10;
+	    /*
+	    v_red_intensity=veq.red_intensity/10;
+	    v_green_intensity=veq.green_intensity/10;
+	    v_blue_intensity=veq.blue_intensity/10;
+	    */
+	}
+   }
    fflush(stdout);
    
 //================== MAIN: ==========================
@@ -2068,7 +2096,15 @@
         if(c=='2'){
 	    if ( ++v_cont > 100 ) v_cont = 100;
         } else {
-    	    if ( --v_cont < 0 ) v_cont = 0;	    
+	    --v_cont;
+	    if(v_hw_equ_cap)
+	    {
+		if(v_cont < -100) v_cont = -100;
+	    }
+	    else
+	    {
+    		if ( v_cont < 0 ) v_cont = 0;	    
+	    }
         }
 	if(set_video_colors(sh_video,"Contrast",v_cont)){
 #ifdef USE_OSD
@@ -2076,6 +2112,7 @@
             	    osd_visible=sh_video->fps; // 1 sec
 	    	    vo_osd_progbar_type=OSD_CONTRAST;
             	    vo_osd_progbar_value=((v_cont)<<8)/100;
+		    if(v_hw_equ_cap) vo_osd_progbar_value = ((v_cont+100)<<8)/200;
 		}
 #endif
 	}
@@ -2087,7 +2124,15 @@
         if(c=='4'){
 	    if ( ++v_bright > 100 ) v_bright = 100;
         } else {
-    	    if ( --v_bright < 0 ) v_bright = 0;	    
+	    --v_bright;
+	    if(v_hw_equ_cap)
+	    {
+		if(v_bright < -100) v_bright = -100;
+	    }
+	    else
+	    {
+    		if ( v_bright < 0 ) v_bright = 0;	    
+	    }
         }
 	if(set_video_colors(sh_video,"Brightness",v_bright)){
 #ifdef USE_OSD
@@ -2095,6 +2140,7 @@
             	    osd_visible=sh_video->fps; // 1 sec
 	    	    vo_osd_progbar_type=OSD_BRIGHTNESS;
             	    vo_osd_progbar_value=((v_bright)<<8)/100;
+		    if(v_hw_equ_cap) vo_osd_progbar_value = ((v_bright+100)<<8)/200;
 		}
 #endif
 	}
@@ -2106,7 +2152,15 @@
         if(c=='6'){
 	    if ( ++v_hue > 100 ) v_hue = 100;
         } else {
-    	    if ( --v_hue < 0 ) v_hue = 0;	    
+	    --v_hue;
+	    if(v_hw_equ_cap)
+	    {
+		if(v_hue < -100) v_hue = -100;
+	    }
+	    else
+	    {
+    		if ( v_hue < 0 ) v_hue = 0;	    
+	    }
         }
 	if(set_video_colors(sh_video,"Hue",v_hue)){
 #ifdef USE_OSD
@@ -2114,6 +2168,7 @@
             	    osd_visible=sh_video->fps; // 1 sec
 	    	    vo_osd_progbar_type=OSD_HUE;
             	    vo_osd_progbar_value=((v_hue)<<8)/100;
+		    if(v_hw_equ_cap) vo_osd_progbar_value = ((v_hue+100)<<8)/200;
 		}
 #endif
 	}
@@ -2125,7 +2180,15 @@
         if(c=='8'){
 	    if ( ++v_saturation > 100 ) v_saturation = 100;
         } else {
-    	    if ( --v_saturation < 0 ) v_saturation = 0;	    
+	    --v_saturation;
+	    if(v_hw_equ_cap)
+	    {
+		if(v_saturation < -100) v_saturation = -100;
+	    }
+	    else
+	    {
+    		if ( v_saturation < 0 ) v_saturation = 0;	    
+	    }
         }
 	if(set_video_colors(sh_video,"Saturation",v_saturation)){
 #ifdef USE_OSD
@@ -2133,6 +2196,7 @@
             	    osd_visible=sh_video->fps; // 1 sec
 	    	    vo_osd_progbar_type=OSD_SATURATION;
             	    vo_osd_progbar_value=((v_saturation)<<8)/100;
+		    if(v_hw_equ_cap) vo_osd_progbar_value = ((v_saturation+100)<<8)/200;
 		}
 #endif
 	}