comparison mplayer.c @ 6755:a31b9f15cbff

- fix audio equalizer - rewrite video equalizer handling (i teszted with mga g400 [x]mga,xv,xvidix and radeon xv,xvidix ) - fix some small gtk bug - i dunno, i don't remember ... :)
author pontscho
date Fri, 19 Jul 2002 20:51:48 +0000
parents cc917a581b6e
children 924263b4df10
comparison
equal deleted inserted replaced
6754:c925dd9372f1 6755:a31b9f15cbff
149 // Common FIFO functions, and keyboard/event FIFO code 149 // Common FIFO functions, and keyboard/event FIFO code
150 #include "fifo.c" 150 #include "fifo.c"
151 int use_stdin=0; 151 int use_stdin=0;
152 //**************************************************************************// 152 //**************************************************************************//
153 153
154 static vo_functions_t *video_out=NULL; 154 vo_functions_t *video_out=NULL;
155 ao_functions_t *audio_out=NULL; 155 ao_functions_t *audio_out=NULL;
156 156
157 // benchmark: 157 // benchmark:
158 double video_time_usage=0; 158 double video_time_usage=0;
159 double vout_time_usage=0; 159 double vout_time_usage=0;
266 extern char *ao_subdevice; 266 extern char *ao_subdevice;
267 267
268 static stream_t* stream=NULL; 268 static stream_t* stream=NULL;
269 269
270 char* current_module=NULL; // for debugging 270 char* current_module=NULL; // for debugging
271
272 int v_hw_equ_cap=0;
273 /*
274 For future:
275 int v_red_intensity=0;
276 int v_green_intensity=0;
277 int v_blue_intensity=0;
278 */
279
280 void set_video_eq( int cap )
281 {
282 mp_cmd_t * mp_cmd;
283
284 v_hw_equ_cap=cap;
285
286 mp_cmd = (mp_cmd_t *)calloc( 1,sizeof( *mp_cmd ) );
287 mp_cmd->id=MP_CMD_CONTRAST; mp_cmd->name=strdup( "contrast" );
288 mp_cmd->args[0].v.i=vo_gamma_contrast; mp_cmd->args[1].v.i=1; mp_input_queue_cmd( mp_cmd );
289
290 mp_cmd = (mp_cmd_t *)calloc( 1,sizeof( *mp_cmd ) );
291 mp_cmd->id=MP_CMD_BRIGHTNESS; mp_cmd->name=strdup( "brightness" );
292 mp_cmd->args[0].v.i=vo_gamma_brightness; mp_cmd->args[1].v.i=1; mp_input_queue_cmd( mp_cmd );
293
294 mp_cmd = (mp_cmd_t *)calloc( 1,sizeof( *mp_cmd ) );
295 mp_cmd->id=MP_CMD_HUE; mp_cmd->name=strdup( "hue" );
296 mp_cmd->args[0].v.i=vo_gamma_hue; mp_cmd->args[1].v.i=1; mp_input_queue_cmd( mp_cmd );
297
298 mp_cmd = (mp_cmd_t *)calloc( 1,sizeof( *mp_cmd ) );
299 mp_cmd->id=MP_CMD_SATURATION; mp_cmd->name=strdup( "saturation" );
300 mp_cmd->args[0].v.i=vo_gamma_saturation; mp_cmd->args[1].v.i=1; mp_input_queue_cmd( mp_cmd );
301 }
302 // ---
271 303
272 #ifdef HAVE_RTC 304 #ifdef HAVE_RTC
273 int nortc; 305 int nortc;
274 #endif 306 #endif
275 307
488 static demux_stream_t *d_dvdsub=NULL; 520 static demux_stream_t *d_dvdsub=NULL;
489 521
490 static sh_audio_t *sh_audio=NULL; 522 static sh_audio_t *sh_audio=NULL;
491 static sh_video_t *sh_video=NULL; 523 static sh_video_t *sh_video=NULL;
492 524
525
493 // for multifile support: 526 // for multifile support:
494 play_tree_iter_t* playtree_iter = NULL; 527 play_tree_iter_t* playtree_iter = NULL;
495 528
496 int file_format=DEMUXER_TYPE_UNKNOWN; 529 int file_format=DEMUXER_TYPE_UNKNOWN;
497 530
504 537
505 int osd_function=OSD_PLAY; 538 int osd_function=OSD_PLAY;
506 int osd_last_pts=-303; 539 int osd_last_pts=-303;
507 int osd_show_av_delay = 0; 540 int osd_show_av_delay = 0;
508 int osd_show_sub_delay = 0; 541 int osd_show_sub_delay = 0;
509
510 int v_hw_equ_cap=0;
511 int v_bright=50;
512 int v_cont=50;
513 int v_hue=50;
514 int v_saturation=50;
515 /*
516 For future:
517 int v_red_intensity=0;
518 int v_green_intensity=0;
519 int v_blue_intensity=0;
520 */
521 542
522 int rtc_fd=-1; 543 int rtc_fd=-1;
523 544
524 //float a_frame=0; // Audio 545 //float a_frame=0; // Audio
525 546
1341 get_hw_eq 1362 get_hw_eq
1342 */ 1363 */
1343 if(vo_vaa.get_video_eq) 1364 if(vo_vaa.get_video_eq)
1344 { 1365 {
1345 vidix_video_eq_t veq; 1366 vidix_video_eq_t veq;
1346 if(vo_vaa.get_video_eq(&veq) == 0) 1367 if( vo_vaa.get_video_eq(&veq) == 0)
1347 { 1368 {
1348 v_hw_equ_cap = veq.cap; 1369 v_hw_equ_cap = veq.cap;
1349 if(veq.cap & VEQ_CAP_BRIGHTNESS) v_bright = veq.brightness/10; 1370 if ( ( vo_gamma_brightness == -101 )&&( veq.cap & VEQ_CAP_BRIGHTNESS ) ) vo_gamma_brightness = veq.brightness / 10;
1350 if(veq.cap & VEQ_CAP_CONTRAST) v_cont = veq.contrast/10; 1371 if ( ( vo_gamma_contrast == -101 )&&( veq.cap & VEQ_CAP_CONTRAST ) ) vo_gamma_contrast = veq.contrast / 10;
1351 if(veq.cap & VEQ_CAP_HUE) v_hue = veq.hue/10; 1372 if ( ( vo_gamma_hue == -101 )&&( veq.cap & VEQ_CAP_HUE ) ) vo_gamma_hue = veq.hue / 10;
1352 if(veq.cap & VEQ_CAP_SATURATION) v_saturation=veq.saturation/10; 1373 if ( ( vo_gamma_saturation == -101 )&&( veq.cap & VEQ_CAP_SATURATION ) ) vo_gamma_saturation=veq.saturation / 10;
1353 /* 1374 /*
1354 v_red_intensity=veq.red_intensity/10; 1375 v_red_intensity=veq.red_intensity/10;
1355 v_green_intensity=veq.green_intensity/10; 1376 v_green_intensity=veq.green_intensity/10;
1356 v_blue_intensity=veq.blue_intensity/10; 1377 v_blue_intensity=veq.blue_intensity/10;
1357 */ 1378 */
1358 } 1379 }
1359 } 1380 }
1381
1382 if ( vo_gamma_brightness == -101 ) vo_gamma_brightness=0.0f;
1383 if ( vo_gamma_contrast == -101 ) vo_gamma_contrast=0.0f;
1384 if ( vo_gamma_hue == -101 ) vo_gamma_hue=0.0f;
1385 if ( vo_gamma_saturation == -101 ) vo_gamma_saturation=0.0f;
1386
1387 set_video_eq( v_hw_equ_cap );
1360 1388
1361 if(vo_flags & 0x08 && vo_spudec) 1389 if(vo_flags & 0x08 && vo_spudec)
1362 spudec_set_hw_spu(vo_spudec,video_out); 1390 spudec_set_hw_spu(vo_spudec,video_out);
1363 1391
1364 //================== MAIN: ========================== 1392 //================== MAIN: ==========================
2160 break; 2188 break;
2161 // Contrast: 2189 // Contrast:
2162 case '1': 2190 case '1':
2163 case '2': 2191 case '2':
2164 if(c=='2'){ 2192 if(c=='2'){
2165 if ( ++v_cont > 100 ) v_cont = 100; 2193 if ( ++vo_gamma_contrast > 100 ) vo_gamma_contrast = 100;
2166 } else { 2194 } else {
2167 --v_cont; 2195 --vo_gamma_contrast;
2168 if(v_hw_equ_cap & VEQ_CAP_CONTRAST) 2196 if(v_hw_equ_cap & VEQ_CAP_CONTRAST)
2169 { 2197 {
2170 if(v_cont < -100) v_cont = -100; 2198 if(vo_gamma_contrast < -100) vo_gamma_contrast = -100;
2171 } 2199 }
2172 else 2200 else
2173 { 2201 {
2174 if ( v_cont < 0 ) v_cont = 0; 2202 if ( vo_gamma_contrast < 0 ) vo_gamma_contrast = 0;
2175 } 2203 }
2176 } 2204 }
2177 if(set_video_colors(sh_video,"Contrast",v_cont)){ 2205 if(set_video_colors(sh_video,"Contrast",vo_gamma_contrast)){
2178 #ifdef USE_OSD 2206 #ifdef USE_OSD
2179 if(osd_level){ 2207 if(osd_level){
2180 osd_visible=sh_video->fps; // 1 sec 2208 osd_visible=sh_video->fps; // 1 sec
2181 vo_osd_progbar_type=OSD_CONTRAST; 2209 vo_osd_progbar_type=OSD_CONTRAST;
2182 vo_osd_progbar_value=((v_cont)<<8)/100; 2210 vo_osd_progbar_value=((vo_gamma_contrast)<<8)/100;
2183 if(v_hw_equ_cap) vo_osd_progbar_value = ((v_cont+100)<<8)/200; 2211 if(v_hw_equ_cap) vo_osd_progbar_value = ((vo_gamma_contrast+100)<<8)/200;
2184 vo_osd_changed(OSDTYPE_PROGBAR); 2212 vo_osd_changed(OSDTYPE_PROGBAR);
2185 } 2213 }
2186 #endif 2214 #endif
2187 } 2215 }
2188 break; 2216 break;
2189 2217
2190 // Brightness: 2218 // Brightness:
2191 case '3': 2219 case '3':
2192 case '4': 2220 case '4':
2193 if(c=='4'){ 2221 if(c=='4'){
2194 if ( ++v_bright > 100 ) v_bright = 100; 2222 if ( ++vo_gamma_brightness > 100 ) vo_gamma_brightness = 100;
2195 } else { 2223 } else {
2196 --v_bright; 2224 --vo_gamma_brightness;
2197 if(v_hw_equ_cap & VEQ_CAP_BRIGHTNESS) 2225 if(v_hw_equ_cap & VEQ_CAP_BRIGHTNESS)
2198 { 2226 {
2199 if(v_bright < -100) v_bright = -100; 2227 if(vo_gamma_brightness < -100) vo_gamma_brightness = -100;
2200 } 2228 }
2201 else 2229 else
2202 { 2230 {
2203 if ( v_bright < 0 ) v_bright = 0; 2231 if ( vo_gamma_brightness < 0 ) vo_gamma_brightness = 0;
2204 } 2232 }
2205 } 2233 }
2206 if(set_video_colors(sh_video,"Brightness",v_bright)){ 2234 if(set_video_colors(sh_video,"Brightness",vo_gamma_brightness)){
2207 #ifdef USE_OSD 2235 #ifdef USE_OSD
2208 if(osd_level){ 2236 if(osd_level){
2209 osd_visible=sh_video->fps; // 1 sec 2237 osd_visible=sh_video->fps; // 1 sec
2210 vo_osd_progbar_type=OSD_BRIGHTNESS; 2238 vo_osd_progbar_type=OSD_BRIGHTNESS;
2211 vo_osd_progbar_value=((v_bright)<<8)/100; 2239 vo_osd_progbar_value=((vo_gamma_brightness)<<8)/100;
2212 if(v_hw_equ_cap) vo_osd_progbar_value = ((v_bright+100)<<8)/200; 2240 if(v_hw_equ_cap) vo_osd_progbar_value = ((vo_gamma_brightness+100)<<8)/200;
2213 vo_osd_changed(OSDTYPE_PROGBAR); 2241 vo_osd_changed(OSDTYPE_PROGBAR);
2214 } 2242 }
2215 #endif 2243 #endif
2216 } 2244 }
2217 break; 2245 break;
2218 2246
2219 // Hue: 2247 // Hue:
2220 case '5': 2248 case '5':
2221 case '6': 2249 case '6':
2222 if(c=='6'){ 2250 if(c=='6'){
2223 if ( ++v_hue > 100 ) v_hue = 100; 2251 if ( ++vo_gamma_hue > 100 ) vo_gamma_hue = 100;
2224 } else { 2252 } else {
2225 --v_hue; 2253 --vo_gamma_hue;
2226 if(v_hw_equ_cap & VEQ_CAP_HUE) 2254 if(v_hw_equ_cap & VEQ_CAP_HUE)
2227 { 2255 {
2228 if(v_hue < -100) v_hue = -100; 2256 if(vo_gamma_hue < -100) vo_gamma_hue = -100;
2229 } 2257 }
2230 else 2258 else
2231 { 2259 {
2232 if ( v_hue < 0 ) v_hue = 0; 2260 if ( vo_gamma_hue < 0 ) vo_gamma_hue = 0;
2233 } 2261 }
2234 } 2262 }
2235 if(set_video_colors(sh_video,"Hue",v_hue)){ 2263 if(set_video_colors(sh_video,"Hue",vo_gamma_hue)){
2236 #ifdef USE_OSD 2264 #ifdef USE_OSD
2237 if(osd_level){ 2265 if(osd_level){
2238 osd_visible=sh_video->fps; // 1 sec 2266 osd_visible=sh_video->fps; // 1 sec
2239 vo_osd_progbar_type=OSD_HUE; 2267 vo_osd_progbar_type=OSD_HUE;
2240 vo_osd_progbar_value=((v_hue)<<8)/100; 2268 vo_osd_progbar_value=((vo_gamma_hue)<<8)/100;
2241 if(v_hw_equ_cap) vo_osd_progbar_value = ((v_hue+100)<<8)/200; 2269 if(v_hw_equ_cap) vo_osd_progbar_value = ((vo_gamma_hue+100)<<8)/200;
2242 vo_osd_changed(OSDTYPE_PROGBAR); 2270 vo_osd_changed(OSDTYPE_PROGBAR);
2243 } 2271 }
2244 #endif 2272 #endif
2245 } 2273 }
2246 break; 2274 break;
2247 2275
2248 // Saturation: 2276 // Saturation:
2249 case '7': 2277 case '7':
2250 case '8': 2278 case '8':
2251 if(c=='8'){ 2279 if(c=='8'){
2252 if ( ++v_saturation > 100 ) v_saturation = 100; 2280 if ( ++vo_gamma_saturation > 100 ) vo_gamma_saturation = 100;
2253 } else { 2281 } else {
2254 --v_saturation; 2282 --vo_gamma_saturation;
2255 if(v_hw_equ_cap & VEQ_CAP_SATURATION) 2283 if(v_hw_equ_cap & VEQ_CAP_SATURATION)
2256 { 2284 {
2257 if(v_saturation < -100) v_saturation = -100; 2285 if(vo_gamma_saturation < -100) vo_gamma_saturation = -100;
2258 } 2286 }
2259 else 2287 else
2260 { 2288 {
2261 if ( v_saturation < 0 ) v_saturation = 0; 2289 if ( vo_gamma_saturation < 0 ) vo_gamma_saturation = 0;
2262 } 2290 }
2263 } 2291 }
2264 if(set_video_colors(sh_video,"Saturation",v_saturation)){ 2292 if(set_video_colors(sh_video,"Saturation",vo_gamma_saturation)){
2265 #ifdef USE_OSD 2293 #ifdef USE_OSD
2266 if(osd_level){ 2294 if(osd_level){
2267 osd_visible=sh_video->fps; // 1 sec 2295 osd_visible=sh_video->fps; // 1 sec
2268 vo_osd_progbar_type=OSD_SATURATION; 2296 vo_osd_progbar_type=OSD_SATURATION;
2269 vo_osd_progbar_value=((v_saturation)<<8)/100; 2297 vo_osd_progbar_value=((vo_gamma_saturation)<<8)/100;
2270 if(v_hw_equ_cap) vo_osd_progbar_value = ((v_saturation+100)<<8)/200; 2298 if(v_hw_equ_cap) vo_osd_progbar_value = ((vo_gamma_saturation+100)<<8)/200;
2271 vo_osd_changed(OSDTYPE_PROGBAR); 2299 vo_osd_changed(OSDTYPE_PROGBAR);
2272 } 2300 }
2273 #endif 2301 #endif
2274 } 2302 }
2275 break; 2303 break;
2411 } 2439 }
2412 case MP_CMD_MIXER_USEMASTER : { 2440 case MP_CMD_MIXER_USEMASTER : {
2413 } break; 2441 } break;
2414 case MP_CMD_CONTRAST : { 2442 case MP_CMD_CONTRAST : {
2415 int v = cmd->args[0].v.i, abs = cmd->args[1].v.i; 2443 int v = cmd->args[0].v.i, abs = cmd->args[1].v.i;
2444 int e;
2416 if(abs) 2445 if(abs)
2417 v_cont = v > 100 ? 100 : v; 2446 vo_gamma_contrast = v > 100 ? 100 : v;
2418 else { 2447 else {
2419 if ( (v_cont += v) > 100 ) v_cont = 100; 2448 if ( (vo_gamma_contrast += v) > 100 ) vo_gamma_contrast = 100;
2420 } 2449 }
2421 if(v_hw_equ_cap & VEQ_CAP_CONTRAST) { 2450 if(vo_gamma_contrast < -100) vo_gamma_contrast = -100;
2422 if(v_cont < -100) v_cont = -100; 2451 if(v_hw_equ_cap & VEQ_CAP_CONTRAST) e=vo_gamma_contrast;
2423 } else { 2452 else e=( vo_gamma_contrast + 100 ) / 2;
2424 if(v_cont < 0) v_cont = 0; 2453 if(set_video_colors(sh_video,"Contrast",e)){
2425 }
2426 if(set_video_colors(sh_video,"Contrast",v_cont)){
2427 #ifdef USE_OSD 2454 #ifdef USE_OSD
2428 if(osd_level){ 2455 if(osd_level){
2429 osd_visible=sh_video->fps; // 1 sec 2456 osd_visible=sh_video->fps; // 1 sec
2430 vo_osd_progbar_type=OSD_CONTRAST; 2457 vo_osd_progbar_type=OSD_CONTRAST;
2431 if(v_hw_equ_cap & VEQ_CAP_CONTRAST) 2458 vo_osd_progbar_value=(vo_gamma_contrast<<7)/100 + 128;
2432 vo_osd_progbar_value=((v_cont)<<7)/100 + 128;
2433 else
2434 vo_osd_progbar_value=((v_cont)<<8)/100;
2435 vo_osd_changed(OSDTYPE_PROGBAR); 2459 vo_osd_changed(OSDTYPE_PROGBAR);
2436 } 2460 }
2437 #endif 2461 #endif
2438 } 2462 }
2439 } break; 2463 } break;
2440 case MP_CMD_BRIGHTNESS : { 2464 case MP_CMD_BRIGHTNESS : {
2441 int v = cmd->args[0].v.i, abs = cmd->args[1].v.i; 2465 int v = cmd->args[0].v.i, abs = cmd->args[1].v.i;
2466 int e;
2442 if(abs) 2467 if(abs)
2443 v_bright = v > 100 ? 100 : v; 2468 vo_gamma_brightness = v > 100 ? 100 : v;
2444 else { 2469 else {
2445 if ( (v_bright += v) > 100 ) v_bright = 100; 2470 if ( (vo_gamma_brightness += v) > 100 ) vo_gamma_brightness = 100;
2446 } 2471 }
2447 if(v_hw_equ_cap & VEQ_CAP_BRIGHTNESS) { 2472 if ( vo_gamma_brightness < -100 ) vo_gamma_brightness = -100;
2448 if(v_bright < -100) v_bright = -100; 2473 if ( v_hw_equ_cap & VEQ_CAP_BRIGHTNESS ) e=vo_gamma_brightness;
2449 } else { 2474 else e=( vo_gamma_brightness + 100 ) / 2;
2450 if ( v_bright < 0 ) v_bright = 0; 2475 if(set_video_colors(sh_video,"Brightness",e)){
2451 }
2452 if(set_video_colors(sh_video,"Brightness",v_bright)){
2453 #ifdef USE_OSD 2476 #ifdef USE_OSD
2454 if(osd_level){ 2477 if(osd_level){
2455 osd_visible=sh_video->fps; // 1 sec 2478 osd_visible=sh_video->fps; // 1 sec
2456 vo_osd_progbar_type=OSD_BRIGHTNESS; 2479 vo_osd_progbar_type=OSD_BRIGHTNESS;
2457 if(v_hw_equ_cap & VEQ_CAP_BRIGHTNESS) 2480 vo_osd_progbar_value=(vo_gamma_brightness<<7)/100 + 128;
2458 vo_osd_progbar_value=((v_bright)<<7)/100 + 128; 2481 vo_osd_changed(OSDTYPE_PROGBAR);
2459 else 2482 }
2460 vo_osd_progbar_value=((v_bright)<<8)/100; 2483 #endif // USE_OSD
2461 vo_osd_changed(OSDTYPE_PROGBAR); 2484 }
2462 }
2463 #endif
2464 }
2465 } break; 2485 } break;
2466 case MP_CMD_HUE : { 2486 case MP_CMD_HUE : {
2467 int v = cmd->args[0].v.i, abs = cmd->args[1].v.i; 2487 int v = cmd->args[0].v.i, abs = cmd->args[1].v.i;
2488 int e;
2468 if(abs) 2489 if(abs)
2469 v_hue = v > 100 ? 100 : v; 2490 vo_gamma_hue = v > 100 ? 100 : v;
2470 else { 2491 else {
2471 if ( (v_hue += v) > 100 ) v_hue = 100; 2492 if ( (vo_gamma_hue += v) > 100 ) vo_gamma_hue = 100;
2472 } 2493 }
2473 if(v_hw_equ_cap & VEQ_CAP_HUE) { 2494 if ( vo_gamma_hue < -100 ) vo_gamma_hue = -100;
2474 if(v_hue < -100) v_hue = -100; 2495 if(v_hw_equ_cap & VEQ_CAP_HUE) e=vo_gamma_hue;
2475 } else { 2496 else e=( vo_gamma_hue + 100 ) / 2;
2476 if ( v_hue < 0 ) v_hue = 0; 2497 if(set_video_colors(sh_video,"Hue",e)){
2477 }
2478 if(set_video_colors(sh_video,"Hue",v_hue)){
2479 #ifdef USE_OSD 2498 #ifdef USE_OSD
2480 if(osd_level){ 2499 if(osd_level){
2481 osd_visible=sh_video->fps; // 1 sec 2500 osd_visible=sh_video->fps; // 1 sec
2482 vo_osd_progbar_type=OSD_HUE; 2501 vo_osd_progbar_type=OSD_HUE;
2483 if(v_hw_equ_cap & VEQ_CAP_HUE) 2502 vo_osd_progbar_value=(vo_gamma_hue<<7)/100 + 128;
2484 vo_osd_progbar_value=((v_hue)<<7)/100 + 128;
2485 else
2486 vo_osd_progbar_value=((v_hue)<<8)/100;
2487 vo_osd_changed(OSDTYPE_PROGBAR); 2503 vo_osd_changed(OSDTYPE_PROGBAR);
2488 } 2504 }
2489 #endif 2505 #endif
2490 } 2506 }
2491 } break; 2507 } break;
2492 case MP_CMD_SATURATION : { 2508 case MP_CMD_SATURATION : {
2493 int v = cmd->args[0].v.i, abs = cmd->args[1].v.i; 2509 int v = cmd->args[0].v.i, abs = cmd->args[1].v.i;
2510 int e;
2494 if(abs) 2511 if(abs)
2495 v_saturation = v > 100 ? 100 : v; 2512 vo_gamma_saturation = v > 100 ? 100 : v;
2496 else { 2513 else {
2497 if ( (v_saturation += v) > 100 ) v_saturation = 100; 2514 if ( (vo_gamma_saturation += v) > 100 ) vo_gamma_saturation = 100;
2498 } 2515 }
2499 if(v_hw_equ_cap & VEQ_CAP_SATURATION) { 2516 if ( vo_gamma_saturation < -100 ) vo_gamma_saturation = -100;
2500 if(v_saturation < -100) v_saturation = -100; 2517 if(v_hw_equ_cap & VEQ_CAP_SATURATION) e=vo_gamma_saturation;
2501 } else { 2518 else e=( vo_gamma_saturation + 100 ) / 2;
2502 if ( v_saturation < 0 ) v_saturation = 0; 2519 if(set_video_colors(sh_video,"Saturation",e)){
2503 }
2504 if(set_video_colors(sh_video,"Saturation",v_saturation)){
2505 #ifdef USE_OSD 2520 #ifdef USE_OSD
2506 if(osd_level){ 2521 if(osd_level){
2507 osd_visible=sh_video->fps; // 1 sec 2522 osd_visible=sh_video->fps; // 1 sec
2508 vo_osd_progbar_type=OSD_SATURATION; 2523 vo_osd_progbar_type=OSD_SATURATION;
2509 if(v_hw_equ_cap & VEQ_CAP_SATURATION) 2524 vo_osd_progbar_value=(vo_gamma_saturation<<7)/100 + 128;
2510 vo_osd_progbar_value=((v_saturation)<<7)/100 + 128;
2511 else
2512 vo_osd_progbar_value=((v_saturation)<<8)/100;
2513 vo_osd_changed(OSDTYPE_PROGBAR); 2525 vo_osd_changed(OSDTYPE_PROGBAR);
2514 } 2526 }
2515 #endif 2527 #endif
2516 } 2528 }
2517 } break; 2529 } break;