annotate vidix/vidix.h @ 28132:c28c36d595d5

Fix imaadpcm extradata with lavc encoder. The formula to calculate frame size was wrong, duplicated code from the encoder and did not take endianness into account when writing the value into extradata. Patch by Edouard Gomez [ed gomez (at) free fr].
author reimar
date Sat, 20 Dec 2008 10:18:15 +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 */