1
|
1 /*
|
|
2 * video_out.c,
|
|
3 *
|
|
4 * Copyright (C) Aaron Holtzman - June 2000
|
|
5 *
|
|
6 * mpeg2dec is free software; you can redistribute it and/or modify
|
|
7 * it under the terms of the GNU General Public License as published by
|
|
8 * the Free Software Foundation; either version 2, or (at your option)
|
|
9 * any later version.
|
|
10 *
|
|
11 * mpeg2dec is distributed in the hope that it will be useful,
|
|
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14 * GNU General Public License for more details.
|
|
15 *
|
|
16 * You should have received a copy of the GNU General Public License
|
|
17 * along with GNU Make; see the file COPYING. If not, write to
|
|
18 * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
19 *
|
|
20 */
|
|
21
|
|
22 #include <stdio.h>
|
|
23 #include <stdlib.h>
|
|
24 #include <string.h>
|
|
25
|
|
26 #include <unistd.h>
|
|
27 #include <sys/mman.h>
|
|
28
|
|
29 #include "config.h"
|
|
30 #include "video_out.h"
|
|
31
|
|
32 #include "../linux/shmem.h"
|
|
33
|
388
|
34 // currect resolution/bpp on screen: (should be autodetected by vo_init())
|
|
35 int vo_depthonscreen=0;
|
|
36 int vo_screenwidth=0;
|
|
37 int vo_screenheight=0;
|
|
38
|
|
39 // requested resolution/bpp: (-x -y -bpp options)
|
|
40 int vo_dwidth=0;
|
|
41 int vo_dheight=0;
|
|
42 int vo_dbpp=0;
|
|
43
|
|
44
|
1
|
45 //
|
|
46 // Externally visible list of all vo drivers
|
|
47 //
|
|
48 extern vo_functions_t video_out_mga;
|
|
49 extern vo_functions_t video_out_xmga;
|
|
50 extern vo_functions_t video_out_x11;
|
|
51 extern vo_functions_t video_out_xv;
|
|
52 extern vo_functions_t video_out_gl;
|
12
|
53 extern vo_functions_t video_out_dga;
|
38
|
54 extern vo_functions_t video_out_fsdga;
|
1
|
55 extern vo_functions_t video_out_sdl;
|
|
56 extern vo_functions_t video_out_3dfx;
|
|
57 extern vo_functions_t video_out_null;
|
|
58 extern vo_functions_t video_out_odivx;
|
|
59 extern vo_functions_t video_out_pgm;
|
|
60 extern vo_functions_t video_out_md5;
|
|
61 extern vo_functions_t video_out_syncfb;
|
225
|
62 extern vo_functions_t video_out_fbdev;
|
286
|
63 extern vo_functions_t video_out_svga;
|
528
|
64 extern vo_functions_t video_out_png;
|
1130
|
65 extern vo_functions_t video_out_ggi;
|
1
|
66
|
|
67 vo_functions_t* video_out_drivers[] =
|
|
68 {
|
|
69 #ifdef HAVE_MGA
|
|
70 #ifdef HAVE_X11
|
|
71 &video_out_xmga,
|
|
72 #endif
|
|
73 &video_out_mga,
|
|
74 #endif
|
|
75 #ifdef HAVE_SYNCFB
|
|
76 &video_out_syncfb,
|
|
77 #endif
|
|
78 #ifdef HAVE_3DFX
|
|
79 &video_out_3dfx,
|
|
80 #endif
|
|
81 #ifdef HAVE_XV
|
|
82 &video_out_xv,
|
|
83 #endif
|
|
84 #ifdef HAVE_X11
|
|
85 &video_out_x11,
|
|
86 #endif
|
|
87 #ifdef HAVE_GL
|
|
88 &video_out_gl,
|
|
89 #endif
|
12
|
90 #ifdef HAVE_DGA
|
|
91 &video_out_dga,
|
38
|
92 &video_out_fsdga,
|
12
|
93 #endif
|
1
|
94 #ifdef HAVE_SDL
|
|
95 &video_out_sdl,
|
|
96 #endif
|
234
|
97 #ifdef HAVE_FBDEV
|
|
98 &video_out_fbdev,
|
|
99 #endif
|
286
|
100 #ifdef HAVE_SVGALIB
|
|
101 &video_out_svga,
|
|
102 #endif
|
529
|
103 #ifdef HAVE_PNG
|
|
104 &video_out_png,
|
|
105 #endif
|
1
|
106 &video_out_null,
|
|
107 &video_out_odivx,
|
|
108 &video_out_pgm,
|
|
109 &video_out_md5,
|
1130
|
110 #ifdef HAVE_GGI
|
|
111 &video_out_ggi,
|
|
112 #endif
|
1
|
113 NULL
|
|
114 };
|
|
115
|
202
|
116 #include "sub.c"
|
1130
|
117
|
|
118 char *vo_format_name(int format)
|
|
119 {
|
|
120 switch(format)
|
|
121 {
|
|
122 case IMGFMT_RGB8: return("RGB 8-bit");
|
|
123 case IMGFMT_RGB15: return("RGB 15-bit");
|
|
124 case IMGFMT_RGB16: return("RGB 16-bit");
|
|
125 case IMGFMT_RGB24: return("RGB 24-bit");
|
|
126 case IMGFMT_RGB32: return("RGB 32-bit");
|
|
127 case IMGFMT_BGR8: return("BGR 8-bit");
|
|
128 case IMGFMT_BGR15: return("BGR 15-bit");
|
|
129 case IMGFMT_BGR16: return("BGR 16-bit");
|
|
130 case IMGFMT_BGR24: return("BGR 24-bit");
|
|
131 case IMGFMT_BGR32: return("BGR 32-bit");
|
|
132 case IMGFMT_YVU9: return("Planar YVU9");
|
|
133 case IMGFMT_IF09: return("Planar IF09");
|
|
134 case IMGFMT_YV12: return("Planar YV12");
|
|
135 case IMGFMT_I420: return("Planar I420");
|
|
136 case IMGFMT_IYUV: return("Planar IYUV");
|
|
137 case IMGFMT_CLPL: return("Planar CLPL");
|
|
138 case IMGFMT_IYU1: return("Packed IYU1");
|
|
139 case IMGFMT_IYU2: return("Packed IYU2");
|
|
140 case IMGFMT_UYVY: return("Packed UYVY");
|
|
141 case IMGFMT_UYNV: return("Packed UYNV");
|
|
142 case IMGFMT_cyuv: return("Packed CYUV");
|
|
143 case IMGFMT_YUY2: return("Packed YUY2");
|
|
144 case IMGFMT_YUNV: return("Packed YUNV");
|
|
145 case IMGFMT_YVYU: return("Packed YVYU");
|
|
146 case IMGFMT_Y41P: return("Packed Y41P");
|
|
147 case IMGFMT_Y211: return("Packed Y211");
|
|
148 case IMGFMT_Y41T: return("Packed Y41T");
|
|
149 case IMGFMT_Y42T: return("Packed Y42T");
|
|
150 case IMGFMT_V422: return("Packed V422");
|
|
151 case IMGFMT_V655: return("Packed V655");
|
|
152 case IMGFMT_CLJR: return("Packed CLJR");
|
|
153 case IMGFMT_YUVP: return("Packed YUVP");
|
|
154 case IMGFMT_UYVP: return("Packed UYVP");
|
|
155 }
|
|
156 return("Unknown");
|
|
157 }
|