Mercurial > mplayer.hg
annotate libvo/vo_mga.c @ 1445:577061920134
ehh. duplicated GL check removed... drinkin' 10l...
author | arpi |
---|---|
date | Mon, 06 Aug 2001 00:11:41 +0000 |
parents | 5cbbca64a5c9 |
children | d40f2b686846 |
rev | line source |
---|---|
1 | 1 |
2 //#define memcpy(a,b,c) | |
3 | |
4 /* | |
5 * video_out_mga.c | |
6 * | |
7 * Copyright (C) Aaron Holtzman - Aug 1999 | |
8 * | |
9 * This file is part of mpeg2dec, a free MPEG-2 video stream decoder. | |
10 * | |
11 * mpeg2dec is free software; you can redistribute it and/or modify | |
12 * it under the terms of the GNU General Public License as published by | |
13 * the Free Software Foundation; either version 2, or (at your option) | |
14 * any later version. | |
15 * | |
16 * mpeg2dec is distributed in the hope that it will be useful, | |
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
19 * GNU General Public License for more details. | |
20 * | |
21 * You should have received a copy of the GNU General Public License | |
22 * along with GNU Make; see the file COPYING. If not, write to | |
23 * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. | |
24 * | |
25 */ | |
26 | |
27 #include <stdio.h> | |
28 #include <stdlib.h> | |
29 #include <string.h> | |
30 | |
31 #include "config.h" | |
32 #include "video_out.h" | |
33 #include "video_out_internal.h" | |
34 | |
35 LIBVO_EXTERN(mga) | |
36 | |
37 #include <sys/ioctl.h> | |
38 #include <unistd.h> | |
39 #include <fcntl.h> | |
40 #include <sys/mman.h> | |
41 | |
42 #include "drivers/mga_vid.h" | |
616 | 43 #include "sub.h" |
1 | 44 |
45 static vo_info_t vo_info = | |
46 { | |
47 "Matrox G200/G400 overlay (/dev/mga_vid)", | |
48 "mga", | |
49 "Aaron Holtzman <aholtzma@ess.engr.uvic.ca>", | |
50 "" | |
51 }; | |
52 | |
53 | |
54 #include "mga_common.c" | |
55 | |
56 static uint32_t | |
57 init(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t fullscreen, char *title, uint32_t format) | |
58 { | |
1210 | 59 char *devname=vo_subdevice?vo_subdevice:"/dev/mga_vid"; |
1 | 60 |
1210 | 61 f = open(devname,O_RDWR); |
1 | 62 if(f == -1) |
63 { | |
1210 | 64 printf("Couldn't open %s\n",devname); |
1 | 65 return(-1); |
66 } | |
67 | |
68 switch(format){ | |
69 case IMGFMT_YV12: | |
56 | 70 mga_vid_config.frame_size = ((width + 31) & ~31) * height + (((width + 31) & ~31) * height) / 2; |
1 | 71 mga_vid_config.format=MGA_VID_FORMAT_YV12; break; |
470 | 72 case IMGFMT_I420: |
73 mga_vid_config.frame_size = ((width + 31) & ~31) * height + (((width + 31) & ~31) * height) / 2; | |
74 mga_vid_config.format=MGA_VID_FORMAT_I420; break; | |
75 case IMGFMT_IYUV: | |
76 mga_vid_config.frame_size = ((width + 31) & ~31) * height + (((width + 31) & ~31) * height) / 2; | |
77 mga_vid_config.format=MGA_VID_FORMAT_IYUV; break; | |
1 | 78 case IMGFMT_YUY2: |
56 | 79 mga_vid_config.frame_size = ((width + 31) & ~31) * height * 2; |
1 | 80 mga_vid_config.format=MGA_VID_FORMAT_YUY2; break; |
448
198b46b739d8
qrva eletbe nem kene cvs-t elbaszni inkabb ne nyuljatok hozza baz+
arpi_esp
parents:
213
diff
changeset
|
81 case IMGFMT_UYVY: |
198b46b739d8
qrva eletbe nem kene cvs-t elbaszni inkabb ne nyuljatok hozza baz+
arpi_esp
parents:
213
diff
changeset
|
82 mga_vid_config.frame_size = ((width + 31) & ~31) * height * 2; |
198b46b739d8
qrva eletbe nem kene cvs-t elbaszni inkabb ne nyuljatok hozza baz+
arpi_esp
parents:
213
diff
changeset
|
83 mga_vid_config.format=MGA_VID_FORMAT_UYVY; break; |
1 | 84 default: |
614 | 85 printf("mga: invalid output format %0X\n",format); |
1 | 86 return (-1); |
87 } | |
88 | |
197 | 89 mga_vid_config.colkey_on=0; |
90 | |
1 | 91 mga_vid_config.src_width = width; |
92 mga_vid_config.src_height= height; | |
93 mga_vid_config.dest_width = d_width; | |
94 mga_vid_config.dest_height= d_height; | |
95 mga_vid_config.x_org= 0; // (720-mga_vid_config.dest_width)/2; | |
96 mga_vid_config.y_org= 0; // (576-mga_vid_config.dest_height)/2; | |
56 | 97 |
98 mga_vid_config.version=MGA_VID_VERSION; | |
1 | 99 |
56 | 100 return mga_init(); |
1 | 101 } |
102 | |
103 static const vo_info_t* | |
104 get_info(void) | |
105 { | |
106 return &vo_info; | |
107 } | |
108 | |
109 static void | |
110 uninit(void) | |
111 { | |
112 ioctl( f,MGA_VID_OFF,0 ); | |
113 printf("vo: uninit!\n"); | |
114 } | |
115 | |
31 | 116 static void flip_page(void) |
117 { | |
213 | 118 vo_draw_text(mga_vid_config.src_width,mga_vid_config.src_height,draw_alpha); |
31 | 119 vo_mga_flip_page(); |
120 } | |
1 | 121 |
31 | 122 |
123 static void check_events(void) | |
124 { | |
125 } | |
126 | |
127 | |
128 |