1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24#ifndef _DVBVIDEO_H_
25#define _DVBVIDEO_H_
26
27#include <linux/compiler.h>
28
29#ifdef __KERNEL__
30#include <linux/types.h>
31#else
32#include <stdint.h>
33#include <time.h>
34#endif
35
36
37typedef enum {
38 VIDEO_FORMAT_4_3,
39 VIDEO_FORMAT_16_9,
40 VIDEO_FORMAT_221_1
41} video_format_t;
42
43
44typedef enum {
45 VIDEO_SYSTEM_PAL,
46 VIDEO_SYSTEM_NTSC,
47 VIDEO_SYSTEM_PALN,
48 VIDEO_SYSTEM_PALNc,
49 VIDEO_SYSTEM_PALM,
50 VIDEO_SYSTEM_NTSC60,
51 VIDEO_SYSTEM_PAL60,
52 VIDEO_SYSTEM_PALM60
53} video_system_t;
54
55
56typedef enum {
57 VIDEO_PAN_SCAN,
58 VIDEO_LETTER_BOX,
59 VIDEO_CENTER_CUT_OUT
60} video_displayformat_t;
61
62typedef struct {
63 int w;
64 int h;
65 video_format_t aspect_ratio;
66} video_size_t;
67
68typedef enum {
69 VIDEO_SOURCE_DEMUX,
70 VIDEO_SOURCE_MEMORY
71
72
73} video_stream_source_t;
74
75
76typedef enum {
77 VIDEO_STOPPED,
78 VIDEO_PLAYING,
79 VIDEO_FREEZED
80} video_play_state_t;
81
82
83struct video_event {
84 int32_t type;
85#define VIDEO_EVENT_SIZE_CHANGED 1
86#define VIDEO_EVENT_FRAME_RATE_CHANGED 2
87 time_t timestamp;
88 union {
89 video_size_t size;
90 unsigned int frame_rate;
91 } u;
92};
93
94
95struct video_status {
96 int video_blank;
97 video_play_state_t play_state;
98 video_stream_source_t stream_source;
99 video_format_t video_format;
100 video_displayformat_t display_format;
101};
102
103
104struct video_still_picture {
105 char __user *iFrame;
106 int32_t size;
107};
108
109
110typedef
111struct video_highlight {
112 int active;
113 uint8_t contrast1;
114
115 uint8_t contrast2;
116
117 uint8_t color1;
118
119 uint8_t color2;
120
121 uint32_t ypos;
122
123
124 uint32_t xpos;
125
126
127} video_highlight_t;
128
129
130typedef struct video_spu {
131 int active;
132 int stream_id;
133} video_spu_t;
134
135
136typedef struct video_spu_palette {
137 int length;
138 uint8_t *palette;
139} video_spu_palette_t;
140
141
142typedef struct video_navi_pack {
143 int length;
144 uint8_t data[1024];
145} video_navi_pack_t;
146
147
148typedef uint16_t video_attributes_t;
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163#define VIDEO_CAP_MPEG1 1
164#define VIDEO_CAP_MPEG2 2
165
166
167
168#define VIDEO_CAP_SYS 4
169#define VIDEO_CAP_PROG 8
170
171
172#define VIDEO_CAP_SPU 16
173#define VIDEO_CAP_NAVI 32
174#define VIDEO_CAP_CSS 64
175
176
177#define VIDEO_STOP _IO('o', 21)
178#define VIDEO_PLAY _IO('o', 22)
179#define VIDEO_FREEZE _IO('o', 23)
180#define VIDEO_CONTINUE _IO('o', 24)
181#define VIDEO_SELECT_SOURCE _IO('o', 25)
182#define VIDEO_SET_BLANK _IO('o', 26)
183#define VIDEO_GET_STATUS _IOR('o', 27, struct video_status)
184#define VIDEO_GET_EVENT _IOR('o', 28, struct video_event)
185#define VIDEO_SET_DISPLAY_FORMAT _IO('o', 29)
186#define VIDEO_STILLPICTURE _IOW('o', 30, struct video_still_picture)
187#define VIDEO_FAST_FORWARD _IO('o', 31)
188#define VIDEO_SLOWMOTION _IO('o', 32)
189#define VIDEO_GET_CAPABILITIES _IOR('o', 33, unsigned int)
190#define VIDEO_CLEAR_BUFFER _IO('o', 34)
191#define VIDEO_SET_ID _IO('o', 35)
192#define VIDEO_SET_STREAMTYPE _IO('o', 36)
193#define VIDEO_SET_FORMAT _IO('o', 37)
194#define VIDEO_SET_SYSTEM _IO('o', 38)
195#define VIDEO_SET_HIGHLIGHT _IOW('o', 39, video_highlight_t)
196#define VIDEO_SET_SPU _IOW('o', 50, video_spu_t)
197#define VIDEO_SET_SPU_PALETTE _IOW('o', 51, video_spu_palette_t)
198#define VIDEO_GET_NAVI _IOR('o', 52, video_navi_pack_t)
199#define VIDEO_SET_ATTRIBUTES _IO('o', 53)
200#define VIDEO_GET_SIZE _IOR('o', 55, video_size_t)
201#define VIDEO_GET_FRAME_RATE _IOR('o', 56, unsigned int)
202
203#endif
204
205