[MPlayer-cvslog] r22250 - in trunk: libmpcodecs/vf_vo.c libvo/video_out.c libvo/video_out.h libvo/vo_gl.c libvo/vo_gl2.c libvo/vo_x11.c libvo/vo_xv.c libvo/vo_xvidix.c libvo/vo_xvmc.c mencoder.c
reimar
subversion at mplayerhq.hu
Sat Feb 17 21:58:56 CET 2007
Author: reimar
Date: Sat Feb 17 21:58:55 2007
New Revision: 22250
Modified:
trunk/libmpcodecs/vf_vo.c
trunk/libvo/video_out.c
trunk/libvo/video_out.h
trunk/libvo/vo_gl.c
trunk/libvo/vo_gl2.c
trunk/libvo/vo_x11.c
trunk/libvo/vo_xv.c
trunk/libvo/vo_xvidix.c
trunk/libvo/vo_xvmc.c
trunk/mencoder.c
Log:
Move common vo initialization code to video_out.c
Modified: trunk/libmpcodecs/vf_vo.c
==============================================================================
--- trunk/libmpcodecs/vf_vo.c (original)
+++ trunk/libmpcodecs/vf_vo.c Sat Feb 17 21:58:55 2007
@@ -62,7 +62,7 @@
// save vo's stride capability for the wanted colorspace:
vf->default_caps=query_format(vf,outfmt) & VFCAP_ACCEPT_STRIDE;
- if(video_out->config(width,height,d_width,d_height,flags,"MPlayer",outfmt))
+ if(config_video_out(video_out,width,height,d_width,d_height,flags,"MPlayer",outfmt))
return 0;
#ifdef USE_ASS
Modified: trunk/libvo/video_out.c
==============================================================================
--- trunk/libvo/video_out.c (original)
+++ trunk/libvo/video_out.c Sat Feb 17 21:58:55 2007
@@ -11,6 +11,8 @@
#include "config.h"
#include "video_out.h"
+#include "aspect.h"
+#include "geometry.h"
#include "mp_msg.h"
#include "help_mp.h"
@@ -322,6 +324,26 @@
return NULL;
}
+int config_video_out(vo_functions_t *vo, uint32_t width, uint32_t height,
+ uint32_t d_width, uint32_t d_height, uint32_t flags,
+ char *title, uint32_t format) {
+ panscan_init();
+ aspect_save_orig(width,height);
+ aspect_save_prescale(d_width,d_height);
+ vo->control(VOCTRL_UPDATE_SCREENINFO, NULL);
+
+ aspect(&d_width,&d_height,A_NOZOOM);
+ vo_dx = (int)(vo_screenwidth - d_width) / 2;
+ vo_dy = (int)(vo_screenheight - d_height) / 2;
+ geometry(&vo_dx, &vo_dy, &d_width, &d_height,
+ vo_screenwidth, vo_screenheight);
+ vo_dx += xinerama_x;
+ vo_dy += xinerama_y;
+ vo_dwidth = d_width;
+ vo_dheight = d_height;
+
+ return vo->config(width, height, d_width, d_height, flags, title, format);
+}
#if defined(HAVE_FBDEV)||defined(HAVE_VESA)
/* Borrowed from vo_fbdev.c
Modified: trunk/libvo/video_out.h
==============================================================================
--- trunk/libvo/video_out.h (original)
+++ trunk/libvo/video_out.h Sat Feb 17 21:58:55 2007
@@ -68,6 +68,8 @@
#define VOCTRL_SET_DEINTERLACE 30
#define VOCTRL_GET_DEINTERLACE 31
+#define VOCTRL_UPDATE_SCREENINFO 32
+
// Vo can be used by xover
#define VOCTRL_XOVERLAY_SUPPORT 22
@@ -179,6 +181,9 @@
int vo_init(void);
vo_functions_t* init_best_video_out(char** vo_list);
+int config_video_out(vo_functions_t *vo, uint32_t width, uint32_t height,
+ uint32_t d_width, uint32_t d_height, uint32_t flags,
+ char *title, uint32_t format);
void list_video_out(void);
// NULL terminated array of all drivers
Modified: trunk/libvo/vo_gl.c
==============================================================================
--- trunk/libvo/vo_gl.c (original)
+++ trunk/libvo/vo_gl.c Sat Feb 17 21:58:55 2007
@@ -451,23 +451,9 @@
int_pause = 0;
vo_flipped = !!(flags & VOFLAG_FLIPPING);
- panscan_init();
- aspect_save_orig(width,height);
- aspect_save_prescale(d_width,d_height);
- update_xinerama_info();
-
- aspect(&d_width,&d_height,A_NOZOOM);
- vo_dx = (int)(vo_screenwidth - d_width) / 2;
- vo_dy = (int)(vo_screenheight - d_height) / 2;
- geometry(&vo_dx, &vo_dy, &d_width, &d_height,
- vo_screenwidth, vo_screenheight);
- vo_dx += xinerama_x;
- vo_dy += xinerama_y;
#ifdef HAVE_NEW_GUI
if (use_gui) {
// GUI creates and manages window for us
- vo_dwidth = d_width;
- vo_dheight= d_height;
guiGetEvent(guiSetShVideo, 0);
#ifndef GL_WIN32
goto glconfig;
@@ -1066,6 +1052,9 @@
return VO_TRUE;
}
break;
+ case VOCTRL_UPDATE_SCREENINFO:
+ update_xinerama_info();
+ return VO_TRUE;
}
return VO_NOTIMPL;
}
Modified: trunk/libvo/vo_gl2.c
==============================================================================
--- trunk/libvo/vo_gl2.c (original)
+++ trunk/libvo/vo_gl2.c Sat Feb 17 21:58:55 2007
@@ -738,8 +738,6 @@
#ifdef HAVE_NEW_GUI
static int config_glx_gui(uint32_t d_width, uint32_t d_height) {
- vo_dwidth = d_width;
- vo_dheight = d_height;
guiGetEvent( guiSetShVideo,0 ); // the GUI will set up / resize the window
return 0;
}
@@ -810,19 +808,6 @@
int_pause = 0;
- panscan_init();
- aspect_save_orig(width,height);
- aspect_save_prescale(d_width,d_height);
- update_xinerama_info();
-
- aspect(&d_width,&d_height,A_NOZOOM);
- vo_dx = (int)(vo_screenwidth - d_width) / 2;
- vo_dy = (int)(vo_screenheight - d_height) / 2;
- geometry(&vo_dx, &vo_dy, &d_width, &d_height,
- vo_screenwidth, vo_screenheight);
- vo_dx += xinerama_x;
- vo_dy += xinerama_y;
-
#ifdef HAVE_NEW_GUI
if (use_gui) {
if (config_glx_gui(d_width, d_height) == -1)
@@ -1142,6 +1127,9 @@
return vo_x11_get_equalizer(data, value);
}
#endif
+ case VOCTRL_UPDATE_SCREENINFO:
+ update_xinerama_info();
+ return VO_TRUE;
}
return VO_NOTIMPL;
}
Modified: trunk/libvo/vo_x11.c
==============================================================================
--- trunk/libvo/vo_x11.c (original)
+++ trunk/libvo/vo_x11.c Sat Feb 17 21:58:55 2007
@@ -336,15 +336,6 @@
in_format = format;
srcW = width;
srcH = height;
- update_xinerama_info();
- vo_dx = (vo_screenwidth - d_width) / 2;
- vo_dy = (vo_screenheight - d_height) / 2;
- geometry(&vo_dx, &vo_dy, &d_width, &d_height, vo_screenwidth,
- vo_screenheight);
- vo_dx += xinerama_x;
- vo_dy += xinerama_y;
- vo_dwidth = d_width;
- vo_dheight = d_height;
if (flags & (VOFLAG_FULLSCREEN|VOFLAG_MODESWITCHING))
fullscreen = 1;
@@ -834,6 +825,9 @@
vo_x11_clearwindow(mDisplay, vo_window);
}
return VO_TRUE;
+ case VOCTRL_UPDATE_SCREENINFO:
+ update_xinerama_info();
+ return VO_TRUE;
}
return VO_NOTIMPL;
}
Modified: trunk/libvo/vo_xv.c
==============================================================================
--- trunk/libvo/vo_xv.c (original)
+++ trunk/libvo/vo_xv.c Sat Feb 17 21:58:55 2007
@@ -168,11 +168,6 @@
static uint32_t vm_height;
#endif
- panscan_init();
-
- aspect_save_orig(width, height);
- aspect_save_prescale(d_width, d_height);
-
image_height = height;
image_width = width;
image_format = format;
@@ -190,17 +185,6 @@
int_pause = 0;
visible_buf = -1;
- update_xinerama_info();
- aspect(&d_width, &d_height, A_NOZOOM);
- vo_dx = (vo_screenwidth - d_width) / 2;
- vo_dy = (vo_screenheight - d_height) / 2;
- geometry(&vo_dx, &vo_dy, &d_width, &d_height, vo_screenwidth,
- vo_screenheight);
- vo_dx += xinerama_x;
- vo_dy += xinerama_y;
- vo_dwidth = d_width;
- vo_dheight = d_height;
-
#ifdef HAVE_XF86VM
if (flags & VOFLAG_MODESWITCHING)
vm = 1;
@@ -1004,6 +988,9 @@
case VOCTRL_ONTOP:
vo_x11_ontop();
return VO_TRUE;
+ case VOCTRL_UPDATE_SCREENINFO:
+ update_xinerama_info();
+ return VO_TRUE;
}
return VO_NOTIMPL;
}
Modified: trunk/libvo/vo_xvidix.c
==============================================================================
--- trunk/libvo/vo_xvidix.c (original)
+++ trunk/libvo/vo_xvidix.c Sat Feb 17 21:58:55 2007
@@ -240,23 +240,11 @@
title = "MPlayer VIDIX X11 Overlay";
- panscan_init();
-
image_height = height;
image_width = width;
image_format = format;
vo_mouse_autohide = 1;
- aspect_save_orig(width, height);
- aspect_save_prescale(d_width, d_height);
- aspect_save_screenres(vo_screenwidth, vo_screenheight);
-
- vo_dx = 0;
- vo_dy = 0;
- vo_dx = (vo_screenwidth - d_width) / 2;
- vo_dy = (vo_screenheight - d_height) / 2;
- geometry(&vo_dx, &vo_dy, &d_width, &d_height, vo_screenwidth,
- vo_screenheight);
window_width = d_width;
window_height = d_height;
@@ -288,11 +276,6 @@
}
mp_msg(MSGT_VO, MSGL_V, "Using colorkey: %x\n", colorkey);
- aspect(&d_width, &d_height, A_NOZOOM);
-
- vo_dwidth = d_width;
- vo_dheight = d_height;
-
#ifdef HAVE_NEW_GUI
if (use_gui)
guiGetEvent(guiSetShVideo, 0); // the GUI will set up / resize the window
@@ -556,6 +539,10 @@
return vidix_control(request, data, value);
}
+ case VOCTRL_UPDATE_SCREENINFO:
+ aspect_save_screenres(vo_screenwidth, vo_screenheight);
+ return VO_TRUE;
+
}
return vidix_control(request, data);
// return VO_NOTIMPL;
Modified: trunk/libvo/vo_xvmc.c
==============================================================================
--- trunk/libvo/vo_xvmc.c (original)
+++ trunk/libvo/vo_xvmc.c Sat Feb 17 21:58:55 2007
@@ -601,24 +601,11 @@
vo_xv_enable_vsync();//it won't break anything
//taken from vo_xv
- panscan_init();
-
- aspect_save_orig(width,height);
- aspect_save_prescale(d_width,d_height);
-
image_height = height;
image_width = width;
vo_mouse_autohide = 1;
- update_xinerama_info();
- aspect(&d_width,&d_height,A_NOZOOM);
- vo_dx=( vo_screenwidth - d_width ) / 2; vo_dy=( vo_screenheight - d_height ) / 2;
- geometry(&vo_dx, &vo_dy, &d_width, &d_height, vo_screenwidth, vo_screenheight);
- vo_dx += xinerama_x;
- vo_dy += xinerama_y;
- vo_dwidth=d_width; vo_dheight=d_height;
-
#ifdef HAVE_XF86VM
if( flags&VOFLAG_MODESWITCHING ) vm = 1;
#endif
@@ -1442,6 +1429,9 @@
return(vo_xv_get_eq(xv_port, data, value));
}
+ case VOCTRL_UPDATE_SCREENINFO:
+ update_xinerama_info();
+ return VO_TRUE;
}
return VO_NOTIMPL;
}
Modified: trunk/mencoder.c
==============================================================================
--- trunk/mencoder.c (original)
+++ trunk/mencoder.c Sat Feb 17 21:58:55 2007
@@ -214,6 +214,12 @@
char *info_sourceform=NULL;
char *info_comment=NULL;
+// Needed by libmpcodecs vf_vo.c
+int config_video_out(vo_functions_t *vo, uint32_t width, uint32_t height,
+ uint32_t d_width, uint32_t d_height, uint32_t flags,
+ char *title, uint32_t format) {
+ return 1;
+}
// Needed by libmpdemux.
int mp_input_check_interrupt(int time) {
usec_sleep(time);
More information about the MPlayer-cvslog
mailing list