[Mplayer-cvslog] CVS: main mplayer.c,1.376,1.377 mencoder.c,1.70,1.71 dec_video.c,1.88,1.89
Nick Kurshev
nick at mplayer.dev.hu
Sun Jan 27 19:39:56 CET 2002
Update of /cvsroot/mplayer/main
In directory mplayer:/var/tmp.root/cvs-serv22109/main
Modified Files:
mplayer.c mencoder.c dec_video.c
Log Message:
Support for HW equalizing
Index: mplayer.c
===================================================================
RCS file: /cvsroot/mplayer/main/mplayer.c,v
retrieving revision 1.376
retrieving revision 1.377
diff -u -r1.376 -r1.377
--- mplayer.c 27 Jan 2002 17:02:38 -0000 1.376
+++ mplayer.c 27 Jan 2002 18:39:53 -0000 1.377
@@ -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
}
Index: mencoder.c
===================================================================
RCS file: /cvsroot/mplayer/main/mencoder.c,v
retrieving revision 1.70
retrieving revision 1.71
diff -u -r1.70 -r1.71
--- mencoder.c 27 Jan 2002 18:29:33 -0000 1.70
+++ mencoder.c 27 Jan 2002 18:39:53 -0000 1.71
@@ -84,6 +84,17 @@
#include "fastmemcpy.h"
+/**************************************************************************
+ 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;
+
+
//--------------------------
// cache2:
Index: dec_video.c
===================================================================
RCS file: /cvsroot/mplayer/main/dec_video.c,v
retrieving revision 1.88
retrieving revision 1.89
diff -u -r1.88 -r1.89
--- dec_video.c 22 Jan 2002 05:39:26 -0000 1.88
+++ dec_video.c 27 Jan 2002 18:39:53 -0000 1.89
@@ -38,6 +38,12 @@
extern double video_time_usage;
extern double vout_time_usage;
+extern vo_vaa_t vo_vaa;
+extern int v_hw_equ_cap;
+extern int v_bright;
+extern int v_cont;
+extern int v_hue;
+extern int v_saturation;
extern int frameratecode2framerate[16];
@@ -89,7 +95,6 @@
#ifdef USE_TV
#include "libmpdemux/tv.h"
-
extern int tv_param_on;
extern tvi_handle_t *tv_handler;
#endif
@@ -277,6 +282,21 @@
}
int set_video_colors(sh_video_t *sh_video,char *item,int value){
+ if(v_hw_equ_cap != 0)
+ {
+ if(vo_vaa.set_video_eq)
+ {
+ vidix_video_eq_t veq;
+ veq.cap = VEQ_CAP_BRIGHTNESS | VEQ_CAP_CONTRAST | VEQ_CAP_SATURATION | VEQ_CAP_HUE;
+ veq.brightness = v_bright*10;
+ veq.contrast = v_cont*10;
+ veq.saturation = v_saturation*10;
+ veq.hue = v_hue;
+ veq.flags = VEQ_FLG_ITU_R_BT_601; /* Fixme please !!! */
+ vo_vaa.set_video_eq(&veq);
+ }
+ return 1;
+ }
#ifdef USE_DIRECTSHOW
if(sh_video->codec->driver==VFM_DSHOW){
DS_VideoDecoder_SetValue(ds_vdec,item,value);
More information about the MPlayer-cvslog
mailing list