annotate drivers/radeon_vid.h @ 28615:15e7abed4291

Use the same code to convert fps in float to fraction as used in mencoder, it ensures all the common frame rates work right. If this causes issues, it should be changed in the same way in mencoder.c
author reimar
date Wed, 18 Feb 2009 16:49:12 +0000
parents 4129c8cfa742
children 29dc134ae9b3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
22691
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
1 /*
26003
a506a6ab14e1 Add standard license header and make copyright notices consistent.
diego
parents: 25551
diff changeset
2 * BES YUV Framebuffer driver for Radeon cards
22691
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
3 *
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
4 * Copyright (C) 2001 Nick Kurshev
26003
a506a6ab14e1 Add standard license header and make copyright notices consistent.
diego
parents: 25551
diff changeset
5 *
a506a6ab14e1 Add standard license header and make copyright notices consistent.
diego
parents: 25551
diff changeset
6 * This file is partly based on mga_vid and sis_vid from MPlayer.
a506a6ab14e1 Add standard license header and make copyright notices consistent.
diego
parents: 25551
diff changeset
7 *
a506a6ab14e1 Add standard license header and make copyright notices consistent.
diego
parents: 25551
diff changeset
8 * This file is part of MPlayer.
22691
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
9 *
26003
a506a6ab14e1 Add standard license header and make copyright notices consistent.
diego
parents: 25551
diff changeset
10 * MPlayer is free software; you can redistribute it and/or modify
a506a6ab14e1 Add standard license header and make copyright notices consistent.
diego
parents: 25551
diff changeset
11 * it under the terms of the GNU General Public License as published by
a506a6ab14e1 Add standard license header and make copyright notices consistent.
diego
parents: 25551
diff changeset
12 * the Free Software Foundation; either version 2 of the License, or
a506a6ab14e1 Add standard license header and make copyright notices consistent.
diego
parents: 25551
diff changeset
13 * (at your option) any later version.
a506a6ab14e1 Add standard license header and make copyright notices consistent.
diego
parents: 25551
diff changeset
14 *
a506a6ab14e1 Add standard license header and make copyright notices consistent.
diego
parents: 25551
diff changeset
15 * MPlayer is distributed in the hope that it will be useful,
a506a6ab14e1 Add standard license header and make copyright notices consistent.
diego
parents: 25551
diff changeset
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
a506a6ab14e1 Add standard license header and make copyright notices consistent.
diego
parents: 25551
diff changeset
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
a506a6ab14e1 Add standard license header and make copyright notices consistent.
diego
parents: 25551
diff changeset
18 * GNU General Public License for more details.
a506a6ab14e1 Add standard license header and make copyright notices consistent.
diego
parents: 25551
diff changeset
19 *
a506a6ab14e1 Add standard license header and make copyright notices consistent.
diego
parents: 25551
diff changeset
20 * You should have received a copy of the GNU General Public License along
a506a6ab14e1 Add standard license header and make copyright notices consistent.
diego
parents: 25551
diff changeset
21 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
a506a6ab14e1 Add standard license header and make copyright notices consistent.
diego
parents: 25551
diff changeset
22 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
22691
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
23 */
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
24
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 26003
diff changeset
25 #ifndef MPLAYER_RADEON_VID_H
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 26003
diff changeset
26 #define MPLAYER_RADEON_VID_H
22691
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
27
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
28 typedef struct mga_vid_config_s
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
29 {
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
30 uint16_t version;
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
31 uint16_t card_type;
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
32 uint32_t ram_size;
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
33 uint32_t src_width;
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
34 uint32_t src_height;
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
35 uint32_t dest_width;
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
36 uint32_t dest_height;
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
37 uint32_t x_org; /* dest x */
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
38 uint32_t y_org; /* dest y */
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
39 uint8_t colkey_on;
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
40 uint8_t colkey_red;
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
41 uint8_t colkey_green;
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
42 uint8_t colkey_blue;
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
43 uint32_t format;
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
44 uint32_t frame_size;
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
45 uint32_t num_frames;
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
46 } mga_vid_config_t;
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
47
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
48 #define IMGFMT_RGB_MASK 0xFFFFFF00
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
49 #define IMGFMT_RGB (('R'<<24)|('G'<<16)|('B'<<8))
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
50 #define IMGFMT_RGB8 (IMGFMT_RGB|8)
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
51 #define IMGFMT_RGB15 (IMGFMT_RGB|15)
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
52 #define IMGFMT_RGB16 (IMGFMT_RGB|16)
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
53 #define IMGFMT_RGB24 (IMGFMT_RGB|24)
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
54 #define IMGFMT_RGB32 (IMGFMT_RGB|32)
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
55
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
56 #define IMGFMT_BGR_MASK 0xFFFFFF00
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
57 #define IMGFMT_BGR (('B'<<24)|('G'<<16)|('R'<<8))
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
58 #define IMGFMT_BGR8 (IMGFMT_BGR|8)
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
59 #define IMGFMT_BGR15 (IMGFMT_BGR|15)
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
60 #define IMGFMT_BGR16 (IMGFMT_BGR|16)
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
61 #define IMGFMT_BGR24 (IMGFMT_BGR|24)
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
62 #define IMGFMT_BGR32 (IMGFMT_BGR|32)
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
63
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
64 #define IMGFMT_IS_RGB(fmt) (((fmt)&IMGFMT_RGB_MASK)==IMGFMT_RGB)
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
65 #define IMGFMT_IS_BGR(fmt) (((fmt)&IMGFMT_BGR_MASK)==IMGFMT_BGR)
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
66
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
67 #define IMGFMT_RGB_DEPTH(fmt) ((fmt)&~IMGFMT_RGB)
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
68 #define IMGFMT_BGR_DEPTH(fmt) ((fmt)&~IMGFMT_BGR)
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
69
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
70
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
71 /* Planar YUV Formats */
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
72
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
73 #define IMGFMT_YVU9 0x39555659
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
74 #define IMGFMT_IF09 0x39304649
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
75 #define IMGFMT_YV12 0x32315659
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
76 #if 0
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
77 #define IMGFMT_I420 0x30323449
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
78 #define IMGFMT_IYUV 0x56555949
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
79 #else
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
80 #define IMGFMT_I420 (('I'<<24)|('4'<<16)|('2'<<8)|'0')
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
81 #define IMGFMT_IYUV (('I'<<24)|('Y'<<16)|('U'<<8)|'V')
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
82 #endif
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
83 #define IMGFMT_CLPL 0x4C504C43
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
84 #define IMGFMT_Y800 0x30303859
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
85 #define IMGFMT_Y8 0x20203859
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
86
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
87 /* Packed YUV Formats */
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
88
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
89 #define IMGFMT_IUYV 0x56595549
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
90 #define IMGFMT_IY41 0x31435949
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
91 #define IMGFMT_IYU1 0x31555949
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
92 #define IMGFMT_IYU2 0x32555949
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
93 #define IMGFMT_UYNV 0x564E5955
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
94 #define IMGFMT_cyuv 0x76757963
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
95 #define IMGFMT_Y422 0x32323459
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
96 #if 0
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
97 #define IMGFMT_YUY2 0x32595559
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
98 #define IMGFMT_UYVY 0x59565955
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
99 #else
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
100 #define IMGFMT_YUY2 (('Y'<<24)|('U'<<16)|('Y'<<8)|'2')
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
101 #define IMGFMT_UYVY (('U'<<24)|('Y'<<16)|('V'<<8)|'Y')
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
102 #endif
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
103 #define IMGFMT_YUNV 0x564E5559
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
104 #define IMGFMT_YVYU 0x55595659
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
105 #define IMGFMT_Y41P 0x50313459
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
106 #define IMGFMT_Y211 0x31313259
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
107 #define IMGFMT_Y41T 0x54313459
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
108 #define IMGFMT_Y42T 0x54323459
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
109 #define IMGFMT_V422 0x32323456
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
110 #define IMGFMT_V655 0x35353656
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
111 #define IMGFMT_CLJR 0x524A4C43
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
112 #define IMGFMT_YUVP 0x50565559
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
113 #define IMGFMT_UYVP 0x50565955
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
114
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
115 /* Compressed Formats. MPlayer's extensions!!! */
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
116 #define IMGFMT_MPEGPES (('M'<<24)|('P'<<16)|('E'<<8)|('S'))
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
117
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
118
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
119 #define MGA_VID_CONFIG _IOR('J', 1, mga_vid_config_t)
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
120 #define MGA_VID_ON _IO ('J', 2)
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
121 #define MGA_VID_OFF _IO ('J', 3)
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
122 #define MGA_VID_FSEL _IOR('J', 4, int)
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
123
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
124 #define MGA_VID_VERSION 0x0201
544914dadb52 Move files from radeon/ subdirectory here.
diego
parents:
diff changeset
125
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 26003
diff changeset
126 #endif /* MPLAYER_RADEON_VID_H */