annotate vidix/vidix.h @ 28203:e6e0560eb50d

Synced with r28122
author jheryan
date Sat, 03 Jan 2009 02:15:07 +0000
parents e4497d289c3c
children 4076fbd38f20
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
1 /*
23046
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 23039
diff changeset
2 * VIDIX - VIDeo Interface for *niX.
26718
051b2632f121 consistency cosmetics: Move some parts of file headers around; typo fixes.
diego
parents: 26030
diff changeset
3 *
051b2632f121 consistency cosmetics: Move some parts of file headers around; typo fixes.
diego
parents: 26030
diff changeset
4 * This interface is introduced as universal one to MPEG decoder,
051b2632f121 consistency cosmetics: Move some parts of file headers around; typo fixes.
diego
parents: 26030
diff changeset
5 * Back End Scaler (BES) and YUV2RGB hw accelerators.
051b2632f121 consistency cosmetics: Move some parts of file headers around; typo fixes.
diego
parents: 26030
diff changeset
6 *
051b2632f121 consistency cosmetics: Move some parts of file headers around; typo fixes.
diego
parents: 26030
diff changeset
7 * In the future it may be expanded up to capturing and audio things.
051b2632f121 consistency cosmetics: Move some parts of file headers around; typo fixes.
diego
parents: 26030
diff changeset
8 * Main goal of this this interface imlpementation is providing DGA
051b2632f121 consistency cosmetics: Move some parts of file headers around; typo fixes.
diego
parents: 26030
diff changeset
9 * everywhere where it's possible (unlike X11 and other).
051b2632f121 consistency cosmetics: Move some parts of file headers around; typo fixes.
diego
parents: 26030
diff changeset
10 *
051b2632f121 consistency cosmetics: Move some parts of file headers around; typo fixes.
diego
parents: 26030
diff changeset
11 * This interface is based on v4l2, fbvid.h, mga_vid.h projects
051b2632f121 consistency cosmetics: Move some parts of file headers around; typo fixes.
diego
parents: 26030
diff changeset
12 * and my personal ideas.
051b2632f121 consistency cosmetics: Move some parts of file headers around; typo fixes.
diego
parents: 26030
diff changeset
13 *
051b2632f121 consistency cosmetics: Move some parts of file headers around; typo fixes.
diego
parents: 26030
diff changeset
14 * NOTE: This interface is introduced as driver interface.
051b2632f121 consistency cosmetics: Move some parts of file headers around; typo fixes.
diego
parents: 26030
diff changeset
15 *
23046
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 23039
diff changeset
16 * Copyright (C) 2002 Nick Kurshev
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 23039
diff changeset
17 * Copyright (C) 2007 Benjamin Zores <ben@geexbox.org>
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 23039
diff changeset
18 *
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 23039
diff changeset
19 * This file is part of MPlayer.
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 23039
diff changeset
20 *
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 23039
diff changeset
21 * MPlayer is free software; you can redistribute it and/or modify
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 23039
diff changeset
22 * it under the terms of the GNU General Public License as published by
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 23039
diff changeset
23 * the Free Software Foundation; either version 2 of the License, or
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 23039
diff changeset
24 * (at your option) any later version.
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 23039
diff changeset
25 *
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 23039
diff changeset
26 * MPlayer is distributed in the hope that it will be useful,
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 23039
diff changeset
27 * but WITHOUT ANY WARRANTY; without even the implied warranty of
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 23039
diff changeset
28 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 23039
diff changeset
29 * GNU General Public License for more details.
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 23039
diff changeset
30 *
26719
3abd1629658b Use standard license headers.
diego
parents: 26718
diff changeset
31 * You should have received a copy of the GNU General Public License along
3abd1629658b Use standard license headers.
diego
parents: 26718
diff changeset
32 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
3abd1629658b Use standard license headers.
diego
parents: 26718
diff changeset
33 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
23046
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 23039
diff changeset
34 */
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 23039
diff changeset
35
26030
a93e46adb54c Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25535
diff changeset
36 #ifndef MPLAYER_VIDIX_H
a93e46adb54c Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25535
diff changeset
37 #define MPLAYER_VIDIX_H
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
38
22860
efe51e2b81c3 removed references to no longer used internal drivers functions
ben
parents: 22859
diff changeset
39 #define PROBE_NORMAL 0 /* normal probing */
efe51e2b81c3 removed references to no longer used internal drivers functions
ben
parents: 22859
diff changeset
40 #define PROBE_FORCE 1 /* ignore device_id but recognize device if it's known */
efe51e2b81c3 removed references to no longer used internal drivers functions
ben
parents: 22859
diff changeset
41
22859
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
42 typedef enum vidix_dev_type {
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
43 TYPE_OUTPUT = 0x00000000, /* Is a video playback device */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
44 TYPE_CAPTURE = 0x00000001, /* Is a capture device */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
45 TYPE_CODEC = 0x00000002, /* Device supports hw (de)coding */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
46 TYPE_FX = 0x00000004, /* Is a video effects device */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
47 } vidix_dev_type_t;
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
48
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
49 typedef enum vidix_dev_flag {
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
50 FLAG_NONE = 0x00000000, /* No flags defined */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
51 FLAG_DMA = 0x00000001, /* Card can use DMA */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
52 /* Card can use DMA only if src pitch == dest pitch */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
53 FLAG_EQ_DMA = 0x00000002,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
54 /* Possible to wait for DMA to finish. See BM_DMA_SYNC and BM_DMA_BLOCK */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
55 FLAG_SYNC_DMA = 0x00000004,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
56 FLAG_UPSCALER = 0x00000010, /* Card supports hw upscaling */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
57 FLAG_DOWNSCALER = 0x00000020, /* Card supports hw downscaling */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
58 FLAG_SUBPIC = 0x00001000, /* Card supports DVD subpictures */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
59 FLAG_EQUALIZER = 0x00002000, /* Card supports equalizer */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
60 } vidix_dev_flag_t;
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
61
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
62 typedef struct vidix_capability_s
dcc632dd2097 preliminary version
nick
parents:
diff changeset
63 {
22859
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
64 char name[64]; /* Driver name */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
65 char author[64]; /* Author name */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
66 vidix_dev_type_t type;
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
67 unsigned reserved0[4];
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
68 int maxwidth;
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
69 int maxheight;
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
70 int minwidth;
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
71 int minheight;
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
72 int maxframerate; /* -1 if unlimited */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
73 vidix_dev_flag_t flags;
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
74 unsigned short vendor_id;
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
75 unsigned short device_id;
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
76 unsigned reserved1[4];
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
77 } vidix_capability_t;
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
78
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
79 typedef enum vidix_depth {
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
80 VID_DEPTH_NONE = 0x0000,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
81 VID_DEPTH_1BPP = 0x0001,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
82 VID_DEPTH_2BPP = 0x0002,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
83 VID_DEPTH_4BPP = 0x0004,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
84 VID_DEPTH_8BPP = 0x0008,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
85 VID_DEPTH_12BPP = 0x0010,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
86 VID_DEPTH_15BPP = 0x0020,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
87 VID_DEPTH_16BPP = 0x0040,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
88 VID_DEPTH_24BPP = 0x0080,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
89 VID_DEPTH_32BPP = 0x0100,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
90 VID_DEPTH_ALL = VID_DEPTH_1BPP | VID_DEPTH_2BPP | \
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
91 VID_DEPTH_4BPP | VID_DEPTH_8BPP | \
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
92 VID_DEPTH_12BPP | VID_DEPTH_15BPP | \
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
93 VID_DEPTH_16BPP | VID_DEPTH_24BPP | \
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
94 VID_DEPTH_32BPP,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
95 } vidix_depth_t;
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
96
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
97 typedef enum vidix_cap {
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
98 VID_CAP_NONE = 0x0000,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
99 /* if overlay can be bigger than source */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
100 VID_CAP_EXPAND = 0x0001,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
101 /* if overlay can be smaller than source */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
102 VID_CAP_SHRINK = 0x0002,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
103 /* if overlay can be blended with framebuffer */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
104 VID_CAP_BLEND = 0x0004,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
105 /* if overlay can be restricted to a colorkey */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
106 VID_CAP_COLORKEY = 0x0008,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
107 /* if overlay can be restricted to an alpha channel */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
108 VID_CAP_ALPHAKEY = 0x0010,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
109 /* if the colorkey can be a range */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
110 VID_CAP_COLORKEY_ISRANGE = 0x0020,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
111 /* if the alphakey can be a range */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
112 VID_CAP_ALPHAKEY_ISRANGE = 0x0040,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
113 /* colorkey is checked against framebuffer */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
114 VID_CAP_COLORKEY_ISMAIN = 0x0080,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
115 /* colorkey is checked against overlay */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
116 VID_CAP_COLORKEY_ISOVERLAY = 0x0100,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
117 /* alphakey is checked against framebuffer */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
118 VID_CAP_ALPHAKEY_ISMAIN = 0x0200,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
119 /* alphakey is checked against overlay */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
120 VID_CAP_ALPHAKEY_ISOVERLAY = 0x0400,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
121 } vidix_cap_t;
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
122
dcc632dd2097 preliminary version
nick
parents:
diff changeset
123 typedef struct vidix_fourcc_s
dcc632dd2097 preliminary version
nick
parents:
diff changeset
124 {
22859
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
125 unsigned fourcc; /* input: requested fourcc */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
126 vidix_depth_t depth; /* output: screen depth for given fourcc */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
127 vidix_cap_t flags; /* output: capability */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
128 } vidix_fourcc_t;
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
129
dcc632dd2097 preliminary version
nick
parents:
diff changeset
130 typedef struct vidix_yuv_s
dcc632dd2097 preliminary version
nick
parents:
diff changeset
131 {
22859
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
132 unsigned y,u,v;
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
133 } vidix_yuv_t;
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
134
dcc632dd2097 preliminary version
nick
parents:
diff changeset
135 typedef struct vidix_rect_s
dcc632dd2097 preliminary version
nick
parents:
diff changeset
136 {
22859
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
137 unsigned x,y,w,h; /* in pixels */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
138 vidix_yuv_t pitch; /* line-align in bytes */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
139 } vidix_rect_t;
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
140
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
141 typedef enum vidix_color_key_op {
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
142 CKEY_FALSE = 0,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
143 CKEY_TRUE = 1,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
144 CKEY_EQ = 2,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
145 CKEY_NEQ = 3,
23039
d5e23946d776 added a new value for alpha colorkey (will be needed by further ati vidix driver upgrade)
ben
parents: 22902
diff changeset
146 CKEY_ALPHA = 4,
22859
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
147 } vidix_color_key_op_t;
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
148
dcc632dd2097 preliminary version
nick
parents:
diff changeset
149 typedef struct vidix_color_key_s
dcc632dd2097 preliminary version
nick
parents:
diff changeset
150 {
22859
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
151 vidix_color_key_op_t op; /* defines logical operation */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
152 unsigned char red;
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
153 unsigned char green;
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
154 unsigned char blue;
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
155 unsigned char reserved;
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
156 }vidix_ckey_t;
dcc632dd2097 preliminary version
nick
parents:
diff changeset
157
22859
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
158 typedef enum vidix_video_key_op {
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
159 VKEY_FALSE = 0,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
160 VKEY_TRUE = 1,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
161 VKEY_EQ = 2,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
162 VKEY_NEQ = 3,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
163 } vidix_video_key_op_t;
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
164
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
165 typedef struct vidix_video_key_s {
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
166 vidix_video_key_op_t op; /* defines logical operation */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
167 unsigned char key[8];
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
168 } vidix_vkey_t;
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
169
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
170 typedef enum vidix_interleave {
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
171 VID_PLAY_INTERLEAVED_UV = 0x00000001,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
172 /* UVUVUVUVUV used by Matrox G200 */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
173 INTERLEAVING_UV = 0x00001000,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
174 /* VUVUVUVUVU */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
175 INTERLEAVING_VU = 0x00001001,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
176 } vidix_interleave_t;
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
177
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
178 #define VID_PLAY_MAXFRAMES 64 /* unreal limitation */
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
179
dcc632dd2097 preliminary version
nick
parents:
diff changeset
180 typedef struct vidix_playback_s
dcc632dd2097 preliminary version
nick
parents:
diff changeset
181 {
22859
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
182 unsigned fourcc; /* app -> driver: movies's fourcc */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
183 unsigned capability; /* app -> driver: what capability to use */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
184 unsigned blend_factor; /* app -> driver: blending factor */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
185 vidix_rect_t src; /* app -> driver: original movie size */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
186 vidix_rect_t dest; /* app -> driver: destinition movie size.
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
187 driver->app dest_pitch */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
188 vidix_interleave_t flags; /* driver -> app: interleaved UV planes */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
189 /* memory model */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
190 unsigned frame_size; /* driver -> app: destinition frame size */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
191 unsigned num_frames; /* app -> driver: after call: driver -> app */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
192 unsigned offsets[VID_PLAY_MAXFRAMES]; /* driver -> app */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
193 vidix_yuv_t offset; /* driver -> app: relative offsets
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
194 within frame for yuv planes */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
195 void *dga_addr; /* driver -> app: linear address */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
196 } vidix_playback_t;
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
197
22859
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
198 typedef enum vidix_key_op {
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
199 KEYS_PUT = 0,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
200 KEYS_AND = 1,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
201 KEYS_OR = 2,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
202 KEYS_XOR = 3,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
203 } vidix_key_op_t;
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
204
4070
b61ba6c256dd Minor interface changes: color and video keys are moved out from playback configuring
nick
parents: 4008
diff changeset
205 typedef struct vidix_grkey_s
b61ba6c256dd Minor interface changes: color and video keys are moved out from playback configuring
nick
parents: 4008
diff changeset
206 {
22859
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
207 vidix_ckey_t ckey; /* app -> driver: color key */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
208 vidix_vkey_t vkey; /* app -> driver: video key */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
209 vidix_key_op_t key_op; /* app -> driver: keys operations */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
210 } vidix_grkey_t;
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
211
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
212 typedef enum vidix_veq_cap {
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
213 VEQ_CAP_NONE = 0x00000000UL,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
214 VEQ_CAP_BRIGHTNESS = 0x00000001UL,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
215 VEQ_CAP_CONTRAST = 0x00000002UL,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
216 VEQ_CAP_SATURATION = 0x00000004UL,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
217 VEQ_CAP_HUE = 0x00000008UL,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
218 VEQ_CAP_RGB_INTENSITY = 0x00000010UL,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
219 } vidix_veq_cap_t;
4070
b61ba6c256dd Minor interface changes: color and video keys are moved out from playback configuring
nick
parents: 4008
diff changeset
220
22859
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
221 typedef enum vidix_veq_flag {
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
222 VEQ_FLG_ITU_R_BT_601 = 0x00000000, /* ITU-R BT.601 colour space (default) */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
223 VEQ_FLG_ITU_R_BT_709 = 0x00000001, /* ITU-R BT.709 colour space */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
224 VEQ_FLG_ITU_MASK = 0x0000000f,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
225 } vidix_veq_flag_t;
4070
b61ba6c256dd Minor interface changes: color and video keys are moved out from playback configuring
nick
parents: 4008
diff changeset
226
22859
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
227 typedef struct vidix_video_eq_s {
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
228 vidix_veq_cap_t cap; /* on get_eq should contain capability of
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
229 equalizer on set_eq should contain using fields */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
230 /* end-user app can have presets like: cold-normal-hot picture and so on */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
231 int brightness; /* -1000 : +1000 */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
232 int contrast; /* -1000 : +1000 */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
233 int saturation; /* -1000 : +1000 */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
234 int hue; /* -1000 : +1000 */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
235 int red_intensity; /* -1000 : +1000 */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
236 int green_intensity; /* -1000 : +1000 */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
237 int blue_intensity; /* -1000 : +1000 */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
238 vidix_veq_flag_t flags; /* currently specifies ITU YCrCb color
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
239 space to use */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
240 } vidix_video_eq_t;
4070
b61ba6c256dd Minor interface changes: color and video keys are moved out from playback configuring
nick
parents: 4008
diff changeset
241
22859
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
242 typedef enum vidix_interlace_flag {
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
243 /* stream is not interlaced */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
244 CFG_NON_INTERLACED = 0x00000000,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
245 /* stream is interlaced */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
246 CFG_INTERLACED = 0x00000001,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
247 /* first frame contains even fields but second - odd */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
248 CFG_EVEN_ODD_INTERLACING = 0x00000002,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
249 /* first frame contains odd fields but second - even */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
250 CFG_ODD_EVEN_INTERLACING = 0x00000004,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
251 /* field deinterlace_pattern is valid */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
252 CFG_UNIQUE_INTERLACING = 0x00000008,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
253 /* unknown deinterlacing - use adaptive if it's possible */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
254 CFG_UNKNOWN_INTERLACING = 0x0000000f,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
255 } vidix_interlace_flag_t;
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
256
22859
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
257 typedef struct vidix_deinterlace_s {
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
258 vidix_interlace_flag_t flags;
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
259 unsigned deinterlace_pattern; /* app -> driver: deinterlace pattern if
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
260 flag CFG_UNIQUE_INTERLACING is set */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
261 } vidix_deinterlace_t;
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
262
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
263 typedef struct vidix_slice_s {
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
264 void *address; /* app -> driver */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
265 unsigned size; /* app -> driver */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
266 vidix_rect_t slice; /* app -> driver */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
267 } vidix_slice_t;
4191
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
268
22859
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
269 typedef enum vidix_bm_flag {
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
270 LVO_DMA_NOSYNC = 0,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
271 /* waits for vsync or hsync */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
272 LVO_DMA_SYNC = 1,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
273 } vidix_dma_flag_t;
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
274
dcc632dd2097 preliminary version
nick
parents:
diff changeset
275 typedef struct vidix_dma_s
dcc632dd2097 preliminary version
nick
parents:
diff changeset
276 {
22859
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
277 vidix_slice_t src; /* app -> driver */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
278 vidix_slice_t dest; /* app -> driver */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
279 vidix_dma_flag_t flags; /* app -> driver */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
280 } vidix_dma_t;
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
281
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
282 typedef enum vidix_fx_type {
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
283 FX_TYPE_BOOLEAN = 0x00000000,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
284 FX_TYPE_INTEGER = 0x00000001,
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
285 } vidix_fx_type_t;
3991
dcc632dd2097 preliminary version
nick
parents:
diff changeset
286
4191
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
287 /*
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
288 This structure is introdused to support OEM effects like:
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
289 - sharpness
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
290 - exposure
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
291 - (auto)gain
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
292 - H(V)flip
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
293 - black level
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
294 - white balance
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
295 and many other
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
296 */
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
297 typedef struct vidix_oem_fx_s
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
298 {
22859
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
299 vidix_fx_type_t type; /* type of effects */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
300 int num; /* app -> driver: effect number.
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
301 From 0 to max number of effects */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
302 int minvalue; /* min value of effect. 0 - for boolean */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
303 int maxvalue; /* max value of effect. 1 - for boolean */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
304 int value; /* current value of effect on get; required on set */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
305 char *name[80]; /* effect name to display */
c5a45e3d6d16 updated vidix.h from upstream vidix project
ben
parents: 4929
diff changeset
306 } vidix_oem_fx_t;
4191
62a6135d090e + new features and possibility
nick
parents: 4070
diff changeset
307
27077
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
308 typedef struct VDXDriver {
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
309 const char *name;
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
310 struct VDXDriver *next;
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
311 int (* probe) (int verbose, int force);
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
312 int (* get_caps) (vidix_capability_t *cap);
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
313 int (*query_fourcc)(vidix_fourcc_t *);
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
314 int (*init)(void);
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
315 void (*destroy)(void);
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
316 int (*config_playback)(vidix_playback_t *);
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
317 int (*playback_on)( void );
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
318 int (*playback_off)( void );
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
319 /* Functions below can be missed in driver ;) */
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
320 int (*frame_sel)( unsigned frame_idx );
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
321 int (*get_eq)( vidix_video_eq_t * );
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
322 int (*set_eq)( const vidix_video_eq_t * );
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
323 int (*get_deint)( vidix_deinterlace_t * );
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
324 int (*set_deint)( const vidix_deinterlace_t * );
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
325 int (*copy_frame)( const vidix_dma_t * );
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
326 int (*get_gkey)( vidix_grkey_t * );
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
327 int (*set_gkey)( const vidix_grkey_t * );
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
328 } VDXDriver;
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
329
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
330 typedef struct VDXContext {
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
331 VDXDriver *drv;
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
332 /* might be filled in by much more info later on */
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
333 } VDXContext;
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
334
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
335 /***************************************************************************/
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
336 /* PUBLIC API */
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
337 /***************************************************************************/
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
338
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
339 /* Opens corresponded video driver and returns handle of associated stream.
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
340 * path - specifies path where drivers are located.
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
341 * name - specifies prefered driver name (can be NULL).
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
342 * cap - specifies driver capability (TYPE_* constants).
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
343 * verbose - specifies verbose level
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
344 * returns handle if ok else NULL.
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
345 */
27084
e4497d289c3c Remove useless typedef for VDXContext.
ben
parents: 27082
diff changeset
346 VDXContext *vdlOpen (const char *name,unsigned cap,int verbose);
27077
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
347
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
348 /* Closes stream and corresponded driver. */
27084
e4497d289c3c Remove useless typedef for VDXContext.
ben
parents: 27082
diff changeset
349 void vdlClose (VDXContext *ctx);
27077
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
350
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
351 /* Queries driver capabilities. Return 0 if ok else errno */
27084
e4497d289c3c Remove useless typedef for VDXContext.
ben
parents: 27082
diff changeset
352 int vdlGetCapability (VDXContext *, vidix_capability_t *);
27077
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
353
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
354 /* Queries support for given fourcc. Returns 0 if ok else errno */
27084
e4497d289c3c Remove useless typedef for VDXContext.
ben
parents: 27082
diff changeset
355 int vdlQueryFourcc (VDXContext *, vidix_fourcc_t *);
27077
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
356
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
357 /* Returns 0 if ok else errno */
27084
e4497d289c3c Remove useless typedef for VDXContext.
ben
parents: 27082
diff changeset
358 int vdlConfigPlayback (VDXContext *, vidix_playback_t *);
27077
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
359
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
360 /* Returns 0 if ok else errno */
27084
e4497d289c3c Remove useless typedef for VDXContext.
ben
parents: 27082
diff changeset
361 int vdlPlaybackOn (VDXContext *);
27077
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
362
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
363 /* Returns 0 if ok else errno */
27084
e4497d289c3c Remove useless typedef for VDXContext.
ben
parents: 27082
diff changeset
364 int vdlPlaybackOff (VDXContext *);
27077
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
365
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
366 /* Returns 0 if ok else errno */
27084
e4497d289c3c Remove useless typedef for VDXContext.
ben
parents: 27082
diff changeset
367 int vdlPlaybackFrameSelect (VDXContext *, unsigned frame_idx);
27077
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
368
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
369 /* Returns 0 if ok else errno */
27084
e4497d289c3c Remove useless typedef for VDXContext.
ben
parents: 27082
diff changeset
370 int vdlGetGrKeys (VDXContext *, vidix_grkey_t *);
27077
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
371
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
372 /* Returns 0 if ok else errno */
27084
e4497d289c3c Remove useless typedef for VDXContext.
ben
parents: 27082
diff changeset
373 int vdlSetGrKeys (VDXContext *, const vidix_grkey_t *);
27077
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
374
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
375 /* Returns 0 if ok else errno */
27084
e4497d289c3c Remove useless typedef for VDXContext.
ben
parents: 27082
diff changeset
376 int vdlPlaybackGetEq (VDXContext *, vidix_video_eq_t *);
27077
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
377
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
378 /* Returns 0 if ok else errno */
27084
e4497d289c3c Remove useless typedef for VDXContext.
ben
parents: 27082
diff changeset
379 int vdlPlaybackSetEq (VDXContext *, const vidix_video_eq_t *);
27077
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
380
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
381 /* Returns 0 if ok else errno */
27084
e4497d289c3c Remove useless typedef for VDXContext.
ben
parents: 27082
diff changeset
382 int vdlPlaybackGetDeint (VDXContext *, vidix_deinterlace_t *);
27077
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
383
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
384 /* Returns 0 if ok else errno */
27084
e4497d289c3c Remove useless typedef for VDXContext.
ben
parents: 27082
diff changeset
385 int vdlPlaybackSetDeint (VDXContext *, const vidix_deinterlace_t *);
27077
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
386
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
387 /* Returns 0 if ok else errno */
27084
e4497d289c3c Remove useless typedef for VDXContext.
ben
parents: 27082
diff changeset
388 int vdlQueryNumOemEffects (VDXContext *, unsigned *number);
27077
7898eaa0f6ac move content of vidixlib.h into vidix.h
ben
parents: 26979
diff changeset
389
26030
a93e46adb54c Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25535
diff changeset
390 #endif /* MPLAYER_VIDIX_H */