annotate drivers/radeon/radeon_vid.h @ 10252:d275152390ee

I've found some time to implement the encoding support for the new DivX API. Now it's possible to play and encode movies with the latest DivX release. One thing that doesn't work is the new Video Buffer Verifier (VBV) multipass encoding. The encoder segfaults. Maybe it just isn't supported with the standard profile of the released binary encoder. Andreas Hess <jaska@gmx.net>
author arpi
date Fri, 06 Jun 2003 19:57:37 +0000
parents 36a5cdca733b
children db49cdedb88d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2870
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
1 /*
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
2 *
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
3 * radeon_vid.h
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
4 *
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
5 * Copyright (C) 2001 Nick Kurshev
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
6 *
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
7 * BES YUV Framebuffer driver for Radeon cards
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
8 *
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
9 * This software has been released under the terms of the GNU Public
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
10 * license. See http://www.gnu.org/copyleft/gpl.html for details.
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
11 *
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
12 * This file is partly based on mga_vid and sis_vid stuff from
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
13 * mplayer's package.
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
14 */
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
15
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
16 #ifndef __RADEON_VID_INCLUDED
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
17 #define __RADEON_VID_INCLUDED
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
18
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
19 typedef struct mga_vid_config_s
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
20 {
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
21 uint16_t version;
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
22 uint16_t card_type;
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
23 uint32_t ram_size;
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
24 uint32_t src_width;
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
25 uint32_t src_height;
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
26 uint32_t dest_width;
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
27 uint32_t dest_height;
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
28 uint32_t x_org; /* dest x */
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
29 uint32_t y_org; /* dest y */
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
30 uint8_t colkey_on;
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
31 uint8_t colkey_red;
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
32 uint8_t colkey_green;
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
33 uint8_t colkey_blue;
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
34 uint32_t format;
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
35 uint32_t frame_size;
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
36 uint32_t num_frames;
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
37 } mga_vid_config_t;
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
38
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
39 #define IMGFMT_RGB_MASK 0xFFFFFF00
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
40 #define IMGFMT_RGB (('R'<<24)|('G'<<16)|('B'<<8))
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
41 #define IMGFMT_RGB8 (IMGFMT_RGB|8)
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
42 #define IMGFMT_RGB15 (IMGFMT_RGB|15)
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
43 #define IMGFMT_RGB16 (IMGFMT_RGB|16)
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
44 #define IMGFMT_RGB24 (IMGFMT_RGB|24)
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
45 #define IMGFMT_RGB32 (IMGFMT_RGB|32)
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
46
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
47 #define IMGFMT_BGR_MASK 0xFFFFFF00
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
48 #define IMGFMT_BGR (('B'<<24)|('G'<<16)|('R'<<8))
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
49 #define IMGFMT_BGR8 (IMGFMT_BGR|8)
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
50 #define IMGFMT_BGR15 (IMGFMT_BGR|15)
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
51 #define IMGFMT_BGR16 (IMGFMT_BGR|16)
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
52 #define IMGFMT_BGR24 (IMGFMT_BGR|24)
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
53 #define IMGFMT_BGR32 (IMGFMT_BGR|32)
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
54
8957
36a5cdca733b bunkus: Encapsulated arguments to #define in ( ... ) so that the #defines can be safely used like functions: mydef(flag ? val1 : val2)
mosu
parents: 6471
diff changeset
55 #define IMGFMT_IS_RGB(fmt) (((fmt)&IMGFMT_RGB_MASK)==IMGFMT_RGB)
36a5cdca733b bunkus: Encapsulated arguments to #define in ( ... ) so that the #defines can be safely used like functions: mydef(flag ? val1 : val2)
mosu
parents: 6471
diff changeset
56 #define IMGFMT_IS_BGR(fmt) (((fmt)&IMGFMT_BGR_MASK)==IMGFMT_BGR)
2951
31730e84515d First public release
nick
parents: 2870
diff changeset
57
8957
36a5cdca733b bunkus: Encapsulated arguments to #define in ( ... ) so that the #defines can be safely used like functions: mydef(flag ? val1 : val2)
mosu
parents: 6471
diff changeset
58 #define IMGFMT_RGB_DEPTH(fmt) ((fmt)&~IMGFMT_RGB)
36a5cdca733b bunkus: Encapsulated arguments to #define in ( ... ) so that the #defines can be safely used like functions: mydef(flag ? val1 : val2)
mosu
parents: 6471
diff changeset
59 #define IMGFMT_BGR_DEPTH(fmt) ((fmt)&~IMGFMT_BGR)
2951
31730e84515d First public release
nick
parents: 2870
diff changeset
60
31730e84515d First public release
nick
parents: 2870
diff changeset
61
31730e84515d First public release
nick
parents: 2870
diff changeset
62 /* Planar YUV Formats */
31730e84515d First public release
nick
parents: 2870
diff changeset
63
31730e84515d First public release
nick
parents: 2870
diff changeset
64 #define IMGFMT_YVU9 0x39555659
31730e84515d First public release
nick
parents: 2870
diff changeset
65 #define IMGFMT_IF09 0x39304649
2870
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
66 #define IMGFMT_YV12 0x32315659
6471
cc66affa965a fix fourcc's problem
pontscho
parents: 3198
diff changeset
67 #if 0
2951
31730e84515d First public release
nick
parents: 2870
diff changeset
68 #define IMGFMT_I420 0x30323449
31730e84515d First public release
nick
parents: 2870
diff changeset
69 #define IMGFMT_IYUV 0x56555949
6471
cc66affa965a fix fourcc's problem
pontscho
parents: 3198
diff changeset
70 #else
cc66affa965a fix fourcc's problem
pontscho
parents: 3198
diff changeset
71 #define IMGFMT_I420 (('I'<<24)|('4'<<16)|('2'<<8)|'0')
cc66affa965a fix fourcc's problem
pontscho
parents: 3198
diff changeset
72 #define IMGFMT_IYUV (('I'<<24)|('Y'<<16)|('U'<<8)|'V')
cc66affa965a fix fourcc's problem
pontscho
parents: 3198
diff changeset
73 #endif
2951
31730e84515d First public release
nick
parents: 2870
diff changeset
74 #define IMGFMT_CLPL 0x4C504C43
3198
5eae81895171 Probably ugly attempt to fix Rage128 problems
nick
parents: 2951
diff changeset
75 #define IMGFMT_Y800 0x30303859
5eae81895171 Probably ugly attempt to fix Rage128 problems
nick
parents: 2951
diff changeset
76 #define IMGFMT_Y8 0x20203859
2951
31730e84515d First public release
nick
parents: 2870
diff changeset
77
31730e84515d First public release
nick
parents: 2870
diff changeset
78 /* Packed YUV Formats */
31730e84515d First public release
nick
parents: 2870
diff changeset
79
3198
5eae81895171 Probably ugly attempt to fix Rage128 problems
nick
parents: 2951
diff changeset
80 #define IMGFMT_IUYV 0x56595549
5eae81895171 Probably ugly attempt to fix Rage128 problems
nick
parents: 2951
diff changeset
81 #define IMGFMT_IY41 0x31435949
2951
31730e84515d First public release
nick
parents: 2870
diff changeset
82 #define IMGFMT_IYU1 0x31555949
31730e84515d First public release
nick
parents: 2870
diff changeset
83 #define IMGFMT_IYU2 0x32555949
31730e84515d First public release
nick
parents: 2870
diff changeset
84 #define IMGFMT_UYNV 0x564E5955
31730e84515d First public release
nick
parents: 2870
diff changeset
85 #define IMGFMT_cyuv 0x76757963
3198
5eae81895171 Probably ugly attempt to fix Rage128 problems
nick
parents: 2951
diff changeset
86 #define IMGFMT_Y422 0x32323459
6471
cc66affa965a fix fourcc's problem
pontscho
parents: 3198
diff changeset
87 #if 0
2951
31730e84515d First public release
nick
parents: 2870
diff changeset
88 #define IMGFMT_YUY2 0x32595559
6471
cc66affa965a fix fourcc's problem
pontscho
parents: 3198
diff changeset
89 #define IMGFMT_UYVY 0x59565955
cc66affa965a fix fourcc's problem
pontscho
parents: 3198
diff changeset
90 #else
cc66affa965a fix fourcc's problem
pontscho
parents: 3198
diff changeset
91 #define IMGFMT_YUY2 (('Y'<<24)|('U'<<16)|('Y'<<8)|'2')
cc66affa965a fix fourcc's problem
pontscho
parents: 3198
diff changeset
92 #define IMGFMT_UYVY (('U'<<24)|('Y'<<16)|('V'<<8)|'Y')
cc66affa965a fix fourcc's problem
pontscho
parents: 3198
diff changeset
93 #endif
2951
31730e84515d First public release
nick
parents: 2870
diff changeset
94 #define IMGFMT_YUNV 0x564E5559
31730e84515d First public release
nick
parents: 2870
diff changeset
95 #define IMGFMT_YVYU 0x55595659
31730e84515d First public release
nick
parents: 2870
diff changeset
96 #define IMGFMT_Y41P 0x50313459
31730e84515d First public release
nick
parents: 2870
diff changeset
97 #define IMGFMT_Y211 0x31313259
31730e84515d First public release
nick
parents: 2870
diff changeset
98 #define IMGFMT_Y41T 0x54313459
31730e84515d First public release
nick
parents: 2870
diff changeset
99 #define IMGFMT_Y42T 0x54323459
31730e84515d First public release
nick
parents: 2870
diff changeset
100 #define IMGFMT_V422 0x32323456
31730e84515d First public release
nick
parents: 2870
diff changeset
101 #define IMGFMT_V655 0x35353656
31730e84515d First public release
nick
parents: 2870
diff changeset
102 #define IMGFMT_CLJR 0x524A4C43
31730e84515d First public release
nick
parents: 2870
diff changeset
103 #define IMGFMT_YUVP 0x50565559
31730e84515d First public release
nick
parents: 2870
diff changeset
104 #define IMGFMT_UYVP 0x50565955
2870
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
105
3198
5eae81895171 Probably ugly attempt to fix Rage128 problems
nick
parents: 2951
diff changeset
106 /* Compressed Formats. Mplayer's extensions!!! */
5eae81895171 Probably ugly attempt to fix Rage128 problems
nick
parents: 2951
diff changeset
107 #define IMGFMT_MPEGPES (('M'<<24)|('P'<<16)|('E'<<8)|('S'))
5eae81895171 Probably ugly attempt to fix Rage128 problems
nick
parents: 2951
diff changeset
108
5eae81895171 Probably ugly attempt to fix Rage128 problems
nick
parents: 2951
diff changeset
109
2870
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
110 #define MGA_VID_CONFIG _IOR('J', 1, mga_vid_config_t)
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
111 #define MGA_VID_ON _IO ('J', 2)
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
112 #define MGA_VID_OFF _IO ('J', 3)
3198
5eae81895171 Probably ugly attempt to fix Rage128 problems
nick
parents: 2951
diff changeset
113 #define MGA_VID_FSEL _IOR('J', 4, int)
2870
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
114
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
115 #define MGA_VID_VERSION 0x0201
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
116
f46c5556f1e6 radeon_vid: it's in first pre-alpha stage
nick
parents:
diff changeset
117 #endif