annotate libvo/vo_xmga.c @ 9660:c2d23e02522b

improvements to detc filter: -> use of 8x8 blocks rather than 16x16 to better localize the search for interlacing. this helps detect interlacing in very small motions, e.g. mouths in anime. -> removed some redundant conditions in the logic -> looser condition for detecting lacing and more forgiving of slight mismatches between fields from the two telecine frames to make up for quantization noise in low quality encodes. this code is still mostly experimental but probably better than the old version, so maybe it should be backported to 0.90...?
author rfelker
date Sun, 23 Mar 2003 03:36:24 +0000
parents edfe34c5405d
children 07870312c054
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
100
201c2f931497 added #define SHOW_TIME option... (debug)
arpi_esp
parents: 56
diff changeset
1
201c2f931497 added #define SHOW_TIME option... (debug)
arpi_esp
parents: 56
diff changeset
2 //#define SHOW_TIME
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
4 /*
7680
d60cfb1f8b37 more cleanup, some -vo mga fullscreen fixes
arpi
parents: 7679
diff changeset
5 * vo_xmga.c
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
6 *
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
7 * Copyright (C) Zoltan Ponekker - Jan 2001
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
8 *
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
9 */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
10
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
11 #include <stdio.h>
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
12 #include <stdlib.h>
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
13 #include <string.h>
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
14
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
15 #include "config.h"
6296
74115095d9fe msg/i18n fixes and some printf->mp_msg
arpi
parents: 6095
diff changeset
16
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
17 #include "video_out.h"
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
18 #include "video_out_internal.h"
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
19
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
20
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
21 #include <sys/ioctl.h>
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
22 #include <unistd.h>
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
23 #include <fcntl.h>
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
24 #include <sys/mman.h>
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
25
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
26 #include "drivers/mga_vid.h"
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
27
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
28 #include <X11/Xlib.h>
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
29 #include <X11/Xutil.h>
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
30 #include <errno.h>
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
31
4017
21a75ab24703 Xinerama patch number two by attila.
atmos4
parents: 3990
diff changeset
32 #ifdef HAVE_XINERAMA
21a75ab24703 Xinerama patch number two by attila.
atmos4
parents: 3990
diff changeset
33 #include <X11/extensions/Xinerama.h>
21a75ab24703 Xinerama patch number two by attila.
atmos4
parents: 3990
diff changeset
34 #endif
21a75ab24703 Xinerama patch number two by attila.
atmos4
parents: 3990
diff changeset
35
31
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
36 #include "x11_common.h"
616
41d6eec69b60 clean up
pontscho
parents: 614
diff changeset
37 #include "sub.h"
2057
378aed6b232d Use aspect()
atmos4
parents: 2039
diff changeset
38 #include "aspect.h"
31
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
39
182
80a7b40f201a *** empty log message ***
pontscho
parents: 120
diff changeset
40 #ifdef SHOW_TIME
9380
edfe34c5405d linux->osdep
arpi
parents: 8148
diff changeset
41 #include "../osdep/timer.h"
100
201c2f931497 added #define SHOW_TIME option... (debug)
arpi_esp
parents: 56
diff changeset
42 static unsigned int timer=0;
201c2f931497 added #define SHOW_TIME option... (debug)
arpi_esp
parents: 56
diff changeset
43 static unsigned int timerd=0;
201c2f931497 added #define SHOW_TIME option... (debug)
arpi_esp
parents: 56
diff changeset
44 #endif
201c2f931497 added #define SHOW_TIME option... (debug)
arpi_esp
parents: 56
diff changeset
45
5955
caac20b1ca79 fix xmga fs, resize to movie size and mouse auto hide + dga
pontscho
parents: 5945
diff changeset
46 #ifdef HAVE_NEW_GUI
caac20b1ca79 fix xmga fs, resize to movie size and mouse auto hide + dga
pontscho
parents: 5945
diff changeset
47 #include "../Gui/interface.h"
caac20b1ca79 fix xmga fs, resize to movie size and mouse auto hide + dga
pontscho
parents: 5945
diff changeset
48 #endif
caac20b1ca79 fix xmga fs, resize to movie size and mouse auto hide + dga
pontscho
parents: 5945
diff changeset
49
8148
5b39e79af5fe removed get_info, using the same sheme as in libmpcodecs instead
alex
parents: 8017
diff changeset
50 static vo_info_t info =
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
51 {
7680
d60cfb1f8b37 more cleanup, some -vo mga fullscreen fixes
arpi
parents: 7679
diff changeset
52 "Matrox G200/G4x0/G550 overlay in X11 window (using /dev/mga_vid)",
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
53 "xmga",
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
54 "Zoltan Ponekker <pontscho@makacs.poliod.hu>",
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
55 ""
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
56 };
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
57
8148
5b39e79af5fe removed get_info, using the same sheme as in libmpcodecs instead
alex
parents: 8017
diff changeset
58 LIBVO_EXTERN( xmga )
5b39e79af5fe removed get_info, using the same sheme as in libmpcodecs instead
alex
parents: 8017
diff changeset
59
5b39e79af5fe removed get_info, using the same sheme as in libmpcodecs instead
alex
parents: 8017
diff changeset
60
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
61 static XGCValues wGCV;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
62
7472
c4434bdf6e51 tons of warning fixes, also some 10l bugfixes, including Dominik's PVA bug
arpi
parents: 7124
diff changeset
63 static uint32_t mDepth;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
64 static XWindowAttributes attribs;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
65 static uint32_t fgColor;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
66
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
67 static uint32_t mvHeight;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
68 static uint32_t mvWidth;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
69
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
70 static Window mRoot;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
71
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
72 static XSetWindowAttributes xWAttribs;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
73
6311
da2dda48b7ec add mute support ( step 1 ) and fixed panscan bugs (1000l for me)
pontscho
parents: 6307
diff changeset
74 static int inited=0;
da2dda48b7ec add mute support ( step 1 ) and fixed panscan bugs (1000l for me)
pontscho
parents: 6307
diff changeset
75
4981
bfc652fc7f43 rewrite fullscreen support in some libvo driver
pontscho
parents: 4970
diff changeset
76 #define VO_XMGA
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
77 #include "mga_common.c"
4981
bfc652fc7f43 rewrite fullscreen support in some libvo driver
pontscho
parents: 4970
diff changeset
78 #undef VO_XMGA
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
79
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
80 static void mDrawColorKey( void )
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
81 {
4795
b18e61cb457a small changes
pontscho
parents: 4784
diff changeset
82 XSetBackground( mDisplay,vo_gc,0 );
b18e61cb457a small changes
pontscho
parents: 4784
diff changeset
83 XClearWindow( mDisplay,vo_window );
b18e61cb457a small changes
pontscho
parents: 4784
diff changeset
84 XSetForeground( mDisplay,vo_gc,fgColor );
4981
bfc652fc7f43 rewrite fullscreen support in some libvo driver
pontscho
parents: 4970
diff changeset
85 XFillRectangle( mDisplay,vo_window,vo_gc,drwX,drwY,drwWidth,(vo_fs?drwHeight - 1:drwHeight) );
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
86 XFlush( mDisplay );
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
87 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
88
31
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
89 static void check_events(void)
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
90 {
4303
a53d7ca1ed84 move bug fixed
pontscho
parents: 4017
diff changeset
91 int e=vo_x11_check_events(mDisplay);
a53d7ca1ed84 move bug fixed
pontscho
parents: 4017
diff changeset
92 if ( !(e&VO_EVENT_RESIZE) && !(e&VO_EVENT_EXPOSE) ) return;
6382
86d5fc5b54e2 fix panscan support and add Jesper Svennevid's <mplayer@svennevid.net> patch
pontscho
parents: 6311
diff changeset
93 set_window();
6043
421781c5b128 fix some small bug and -rootwin
pontscho
parents: 6016
diff changeset
94 mDrawColorKey();
6296
74115095d9fe msg/i18n fixes and some printf->mp_msg
arpi
parents: 6095
diff changeset
95 if ( ioctl( f,MGA_VID_CONFIG,&mga_vid_config ) ) mp_msg(MSGT_VO,MSGL_WARN,"Error in mga_vid_config ioctl (wrong mga_vid.o version?)" );
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
96 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
97
31
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
98 static void flip_page(void){
182
80a7b40f201a *** empty log message ***
pontscho
parents: 120
diff changeset
99 #ifdef SHOW_TIME
100
201c2f931497 added #define SHOW_TIME option... (debug)
arpi_esp
parents: 56
diff changeset
100 unsigned int t;
201c2f931497 added #define SHOW_TIME option... (debug)
arpi_esp
parents: 56
diff changeset
101 t=GetTimer();
6296
74115095d9fe msg/i18n fixes and some printf->mp_msg
arpi
parents: 6095
diff changeset
102 mp_msg(MSGT_VO,MSGL_STATUS," [timer: %08X diff: %6d dd: %6d ] \n",t,t-timer,(t-timer)-timerd);
100
201c2f931497 added #define SHOW_TIME option... (debug)
arpi_esp
parents: 56
diff changeset
103 timerd=t-timer;
201c2f931497 added #define SHOW_TIME option... (debug)
arpi_esp
parents: 56
diff changeset
104 timer=t;
182
80a7b40f201a *** empty log message ***
pontscho
parents: 120
diff changeset
105 #endif
100
201c2f931497 added #define SHOW_TIME option... (debug)
arpi_esp
parents: 56
diff changeset
106
1501
d40f2b686846 changes according to -utf8 option, draw_osd() function added
atlka
parents: 1210
diff changeset
107 vo_mga_flip_page();
31
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
108 }
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
109
7124
eca7dbad0166 finally removed query_vaa, bes_da and vo_tune_info - the obsoleted libvo api
alex
parents: 6953
diff changeset
110 static uint32_t config( uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t flags, char *title, uint32_t format)
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
111 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
112 char * mTitle=(title == NULL) ? "XMGA render" : title;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
113 XVisualInfo vinfo;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
114 unsigned long xswamask;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
115
7679
e4e70b0e1786 some cleanup
arpi
parents: 7472
diff changeset
116 if(mga_init(width,height,format)) return -1; // ioctl errors?
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
117
2249
48f0ac1e9d13 Update to new (cleaner, more bugfree, better) aspect api. vo_gl vo_gl2 and vo_xmga are untested!
atmos4
parents: 2057
diff changeset
118 aspect_save_orig(width,height);
48f0ac1e9d13 Update to new (cleaner, more bugfree, better) aspect api. vo_gl vo_gl2 and vo_xmga are untested!
atmos4
parents: 2057
diff changeset
119 aspect_save_prescale(d_width,d_height);
48f0ac1e9d13 Update to new (cleaner, more bugfree, better) aspect api. vo_gl vo_gl2 and vo_xmga are untested!
atmos4
parents: 2057
diff changeset
120 aspect_save_screenres(vo_screenwidth,vo_screenheight);
48f0ac1e9d13 Update to new (cleaner, more bugfree, better) aspect api. vo_gl vo_gl2 and vo_xmga are untested!
atmos4
parents: 2057
diff changeset
121
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
122 mvWidth=width; mvHeight=height;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
123
6307
72c87b2ec779 added panscan support for xmga/xvidix
pontscho
parents: 6296
diff changeset
124 vo_panscan_x=vo_panscan_y=vo_panscan_amount=0;
72c87b2ec779 added panscan support for xmga/xvidix
pontscho
parents: 6296
diff changeset
125
7679
e4e70b0e1786 some cleanup
arpi
parents: 7472
diff changeset
126 vo_dx=( vo_screenwidth - d_width ) / 2;
e4e70b0e1786 some cleanup
arpi
parents: 7472
diff changeset
127 vo_dy=( vo_screenheight - d_height ) / 2;
4981
bfc652fc7f43 rewrite fullscreen support in some libvo driver
pontscho
parents: 4970
diff changeset
128 vo_dwidth=d_width; vo_dheight=d_height;
5955
caac20b1ca79 fix xmga fs, resize to movie size and mouse auto hide + dga
pontscho
parents: 5945
diff changeset
129 vo_mouse_autohide=1;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
130
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
131 switch ( vo_depthonscreen )
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
132 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
133 case 32:
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
134 case 24: fgColor=0x00ff00ffL; break;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
135 case 16: fgColor=0xf81fL; break;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
136 case 15: fgColor=0x7c1fL; break;
6296
74115095d9fe msg/i18n fixes and some printf->mp_msg
arpi
parents: 6095
diff changeset
137 default: mp_msg(MSGT_VO,MSGL_ERR,"Sorry, this (%d) color depth not supported.\n",vo_depthonscreen ); return -1;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
138 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
139
5158
3dbceaff9f77 uninit bugs fixed
arpi
parents: 5007
diff changeset
140 inited=1;
3dbceaff9f77 uninit bugs fixed
arpi
parents: 5007
diff changeset
141
6016
be9cd7d845c2 -zoom, -fs with x[11|mga|v] fix -- round two
pontscho
parents: 6009
diff changeset
142 aspect(&vo_dwidth,&vo_dheight,A_NOZOOM);
5985
cb393303865d the Right Fix for gui window setup
arpi
parents: 5975
diff changeset
143
1723
5e4214a7540e GUI stuff. now seeking works, and xmga renders to video window
arpi
parents: 1637
diff changeset
144 #ifdef HAVE_NEW_GUI
5985
cb393303865d the Right Fix for gui window setup
arpi
parents: 5975
diff changeset
145 if(use_gui)
cb393303865d the Right Fix for gui window setup
arpi
parents: 5975
diff changeset
146 guiGetEvent( guiSetShVideo,0 ); // the GUI will set up / resize the window
cb393303865d the Right Fix for gui window setup
arpi
parents: 5975
diff changeset
147 else
cb393303865d the Right Fix for gui window setup
arpi
parents: 5975
diff changeset
148 #endif
723
c3e0bdb64027 add gui support
pontscho
parents: 616
diff changeset
149 {
6043
421781c5b128 fix some small bug and -rootwin
pontscho
parents: 6016
diff changeset
150 if ( flags&1 ) aspect(&dwidth,&dheight,A_ZOOM);
723
c3e0bdb64027 add gui support
pontscho
parents: 616
diff changeset
151
6043
421781c5b128 fix some small bug and -rootwin
pontscho
parents: 6016
diff changeset
152 XGetWindowAttributes( mDisplay,mRootWin,&attribs );
723
c3e0bdb64027 add gui support
pontscho
parents: 616
diff changeset
153 mDepth=attribs.depth;
c3e0bdb64027 add gui support
pontscho
parents: 616
diff changeset
154 if ( mDepth != 15 && mDepth != 16 && mDepth != 24 && mDepth != 32 ) mDepth=24;
c3e0bdb64027 add gui support
pontscho
parents: 616
diff changeset
155 XMatchVisualInfo( mDisplay,mScreen,mDepth,TrueColor,&vinfo );
6043
421781c5b128 fix some small bug and -rootwin
pontscho
parents: 6016
diff changeset
156 xWAttribs.colormap=XCreateColormap( mDisplay,mRootWin,vinfo.visual,AllocNone );
723
c3e0bdb64027 add gui support
pontscho
parents: 616
diff changeset
157 xWAttribs.background_pixel=0;
c3e0bdb64027 add gui support
pontscho
parents: 616
diff changeset
158 xWAttribs.border_pixel=0;
6043
421781c5b128 fix some small bug and -rootwin
pontscho
parents: 6016
diff changeset
159 xWAttribs.event_mask=StructureNotifyMask | ExposureMask | KeyPressMask |
421781c5b128 fix some small bug and -rootwin
pontscho
parents: 6016
diff changeset
160 ((WinID==0)?0:(ButtonPressMask | ButtonReleaseMask | PointerMotionMask | PropertyChangeMask));
723
c3e0bdb64027 add gui support
pontscho
parents: 616
diff changeset
161 xswamask=CWBackPixel | CWBorderPixel | CWColormap | CWEventMask;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
162
3847
c8c7ba08ef44 -wid/-rootwin support
arpi
parents: 3558
diff changeset
163 if ( WinID>=0 ){
6043
421781c5b128 fix some small bug and -rootwin
pontscho
parents: 6016
diff changeset
164
421781c5b128 fix some small bug and -rootwin
pontscho
parents: 6016
diff changeset
165 vo_window = WinID ? ((Window)WinID) : mRootWin;
421781c5b128 fix some small bug and -rootwin
pontscho
parents: 6016
diff changeset
166 if ( WinID )
421781c5b128 fix some small bug and -rootwin
pontscho
parents: 6016
diff changeset
167 {
421781c5b128 fix some small bug and -rootwin
pontscho
parents: 6016
diff changeset
168 XUnmapWindow( mDisplay,vo_window );
421781c5b128 fix some small bug and -rootwin
pontscho
parents: 6016
diff changeset
169 XChangeWindowAttributes( mDisplay,vo_window,xswamask,&xWAttribs);
6953
ce67cc1f0beb ignore BadAccess error at XSelectInput() (grabbing mouse etc) with warning
arpi
parents: 6755
diff changeset
170 vo_x11_selectinput_witherr( mDisplay,vo_window,StructureNotifyMask | KeyPressMask | PropertyChangeMask | PointerMotionMask | ButtonPressMask | ButtonReleaseMask | ExposureMask );
6043
421781c5b128 fix some small bug and -rootwin
pontscho
parents: 6016
diff changeset
171 } else XSelectInput( mDisplay,vo_window,ExposureMask );
421781c5b128 fix some small bug and -rootwin
pontscho
parents: 6016
diff changeset
172
7679
e4e70b0e1786 some cleanup
arpi
parents: 7472
diff changeset
173 } else {
e4e70b0e1786 some cleanup
arpi
parents: 7472
diff changeset
174
7777
ed7b05575aab -fixed-vo support
pontscho
parents: 7680
diff changeset
175 if ( vo_window == None )
ed7b05575aab -fixed-vo support
pontscho
parents: 7680
diff changeset
176 {
ed7b05575aab -fixed-vo support
pontscho
parents: 7680
diff changeset
177 vo_window=XCreateWindow( mDisplay,mRootWin,
6043
421781c5b128 fix some small bug and -rootwin
pontscho
parents: 6016
diff changeset
178 vo_dx,vo_dy,
421781c5b128 fix some small bug and -rootwin
pontscho
parents: 6016
diff changeset
179 vo_dwidth,vo_dheight,
421781c5b128 fix some small bug and -rootwin
pontscho
parents: 6016
diff changeset
180 xWAttribs.border_pixel,
421781c5b128 fix some small bug and -rootwin
pontscho
parents: 6016
diff changeset
181 mDepth,
421781c5b128 fix some small bug and -rootwin
pontscho
parents: 6016
diff changeset
182 InputOutput,
421781c5b128 fix some small bug and -rootwin
pontscho
parents: 6016
diff changeset
183 vinfo.visual,xswamask,&xWAttribs );
421781c5b128 fix some small bug and -rootwin
pontscho
parents: 6016
diff changeset
184
7777
ed7b05575aab -fixed-vo support
pontscho
parents: 7680
diff changeset
185 vo_x11_classhint( mDisplay,vo_window,"xmga" );
ed7b05575aab -fixed-vo support
pontscho
parents: 7680
diff changeset
186 vo_hidecursor(mDisplay,vo_window);
ed7b05575aab -fixed-vo support
pontscho
parents: 7680
diff changeset
187 vo_x11_sizehint( vo_dx,vo_dy,vo_dwidth,vo_dheight,0 );
723
c3e0bdb64027 add gui support
pontscho
parents: 616
diff changeset
188
7777
ed7b05575aab -fixed-vo support
pontscho
parents: 7680
diff changeset
189 XStoreName( mDisplay,vo_window,mTitle );
ed7b05575aab -fixed-vo support
pontscho
parents: 7680
diff changeset
190 XMapWindow( mDisplay,vo_window );
6043
421781c5b128 fix some small bug and -rootwin
pontscho
parents: 6016
diff changeset
191
7777
ed7b05575aab -fixed-vo support
pontscho
parents: 7680
diff changeset
192 if ( flags&1 ) vo_x11_fullscreen();
5999
792d58595767 fix -fs and 'f'
pontscho
parents: 5985
diff changeset
193
3990
87538547c8f4 xinerama fix by attila
atmos4
parents: 3847
diff changeset
194 #ifdef HAVE_XINERAMA
7777
ed7b05575aab -fixed-vo support
pontscho
parents: 7680
diff changeset
195 vo_x11_xinerama_move(mDisplay,vo_window);
3990
87538547c8f4 xinerama fix by attila
atmos4
parents: 3847
diff changeset
196 #endif
7777
ed7b05575aab -fixed-vo support
pontscho
parents: 7680
diff changeset
197 } else if ( !(flags&1) ) XMoveResizeWindow( mDisplay,vo_window,vo_dx,vo_dy,vo_dwidth,vo_dheight );
6043
421781c5b128 fix some small bug and -rootwin
pontscho
parents: 6016
diff changeset
198 }
7679
e4e70b0e1786 some cleanup
arpi
parents: 7472
diff changeset
199
7777
ed7b05575aab -fixed-vo support
pontscho
parents: 7680
diff changeset
200 if ( vo_gc != None ) XFreeGC( mDisplay,vo_gc );
6043
421781c5b128 fix some small bug and -rootwin
pontscho
parents: 6016
diff changeset
201 vo_gc=XCreateGC( mDisplay,vo_window,GCForeground,&wGCV );
7679
e4e70b0e1786 some cleanup
arpi
parents: 7472
diff changeset
202
e4e70b0e1786 some cleanup
arpi
parents: 7472
diff changeset
203 } // !GUI
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
204
6043
421781c5b128 fix some small bug and -rootwin
pontscho
parents: 6016
diff changeset
205 if ( ( flags&1 )&&( !WinID ) ) { vo_dx=0; vo_dy=0; vo_dwidth=vo_screenwidth; vo_dheight=vo_screenheight; vo_fs=1; }
6382
86d5fc5b54e2 fix panscan support and add Jesper Svennevid's <mplayer@svennevid.net> patch
pontscho
parents: 6311
diff changeset
206
86d5fc5b54e2 fix panscan support and add Jesper Svennevid's <mplayer@svennevid.net> patch
pontscho
parents: 6311
diff changeset
207 panscan_calc();
7679
e4e70b0e1786 some cleanup
arpi
parents: 7472
diff changeset
208
e4e70b0e1786 some cleanup
arpi
parents: 7472
diff changeset
209 mga_vid_config.colkey_on=1;
e4e70b0e1786 some cleanup
arpi
parents: 7472
diff changeset
210 mga_vid_config.colkey_red=255;
e4e70b0e1786 some cleanup
arpi
parents: 7472
diff changeset
211 mga_vid_config.colkey_green=0;
e4e70b0e1786 some cleanup
arpi
parents: 7472
diff changeset
212 mga_vid_config.colkey_blue=255;
e4e70b0e1786 some cleanup
arpi
parents: 7472
diff changeset
213
e4e70b0e1786 some cleanup
arpi
parents: 7472
diff changeset
214 set_window(); // set up mga_vid_config.dest_width etc
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
215
6755
a31b9f15cbff - fix audio equalizer
pontscho
parents: 6382
diff changeset
216 saver_off(mDisplay);
a31b9f15cbff - fix audio equalizer
pontscho
parents: 6382
diff changeset
217
a31b9f15cbff - fix audio equalizer
pontscho
parents: 6382
diff changeset
218 XFlush( mDisplay );
a31b9f15cbff - fix audio equalizer
pontscho
parents: 6382
diff changeset
219 XSync( mDisplay,False );
7777
ed7b05575aab -fixed-vo support
pontscho
parents: 7680
diff changeset
220
ed7b05575aab -fixed-vo support
pontscho
parents: 7680
diff changeset
221 ioctl(f,MGA_VID_ON,0);
6755
a31b9f15cbff - fix audio equalizer
pontscho
parents: 6382
diff changeset
222
7679
e4e70b0e1786 some cleanup
arpi
parents: 7472
diff changeset
223 return 0;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
224 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
225
7679
e4e70b0e1786 some cleanup
arpi
parents: 7472
diff changeset
226 static void uninit(void){
e4e70b0e1786 some cleanup
arpi
parents: 7472
diff changeset
227 mp_msg(MSGT_VO,MSGL_V,"vo: uninit!\n");
e4e70b0e1786 some cleanup
arpi
parents: 7472
diff changeset
228 mga_uninit();
e4e70b0e1786 some cleanup
arpi
parents: 7472
diff changeset
229 if(!inited) return; // no window?
5158
3dbceaff9f77 uninit bugs fixed
arpi
parents: 5007
diff changeset
230 inited=0;
4316
9f8a618e87c3 fix screen saver bug under gui
pontscho
parents: 4303
diff changeset
231 saver_on(mDisplay);
7679
e4e70b0e1786 some cleanup
arpi
parents: 7472
diff changeset
232 vo_x11_uninit(); // destroy the window
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
233 }
4352
ed5b85b713a3 Extensions for video accelerated architecture
nick
parents: 4316
diff changeset
234