|
20 | 20 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
21 | 21 | * |
22 | 22 | */ |
23 | | - |
24 | 23 | #ifndef _DVBDMX_H_ |
25 | 24 | #define _DVBDMX_H_ |
26 | 25 |
|
27 | | -#include <linux/types.h> |
28 | | -#ifdef __KERNEL__ |
29 | 26 | #include <linux/time.h> |
30 | | -#else |
31 | | -#include <time.h> |
32 | | -#endif |
33 | | - |
34 | | - |
35 | | -#define DMX_FILTER_SIZE 16 |
36 | | - |
37 | | -typedef enum |
38 | | -{ |
39 | | - DMX_OUT_DECODER, /* Streaming directly to decoder. */ |
40 | | - DMX_OUT_TAP, /* Output going to a memory buffer */ |
41 | | - /* (to be retrieved via the read command).*/ |
42 | | - DMX_OUT_TS_TAP, /* Output multiplexed into a new TS */ |
43 | | - /* (to be retrieved by reading from the */ |
44 | | - /* logical DVR device). */ |
45 | | - DMX_OUT_TSDEMUX_TAP /* Like TS_TAP but retrieved from the DMX device */ |
46 | | -} dmx_output_t; |
47 | | - |
48 | | - |
49 | | -typedef enum |
50 | | -{ |
51 | | - DMX_IN_FRONTEND, /* Input from a front-end device. */ |
52 | | - DMX_IN_DVR /* Input from the logical DVR device. */ |
53 | | -} dmx_input_t; |
54 | | - |
55 | | - |
56 | | -typedef enum |
57 | | -{ |
58 | | - DMX_PES_AUDIO0, |
59 | | - DMX_PES_VIDEO0, |
60 | | - DMX_PES_TELETEXT0, |
61 | | - DMX_PES_SUBTITLE0, |
62 | | - DMX_PES_PCR0, |
63 | | - |
64 | | - DMX_PES_AUDIO1, |
65 | | - DMX_PES_VIDEO1, |
66 | | - DMX_PES_TELETEXT1, |
67 | | - DMX_PES_SUBTITLE1, |
68 | | - DMX_PES_PCR1, |
69 | | - |
70 | | - DMX_PES_AUDIO2, |
71 | | - DMX_PES_VIDEO2, |
72 | | - DMX_PES_TELETEXT2, |
73 | | - DMX_PES_SUBTITLE2, |
74 | | - DMX_PES_PCR2, |
75 | | - |
76 | | - DMX_PES_AUDIO3, |
77 | | - DMX_PES_VIDEO3, |
78 | | - DMX_PES_TELETEXT3, |
79 | | - DMX_PES_SUBTITLE3, |
80 | | - DMX_PES_PCR3, |
81 | | - |
82 | | - DMX_PES_OTHER |
83 | | -} dmx_pes_type_t; |
84 | | - |
85 | | -#define DMX_PES_AUDIO DMX_PES_AUDIO0 |
86 | | -#define DMX_PES_VIDEO DMX_PES_VIDEO0 |
87 | | -#define DMX_PES_TELETEXT DMX_PES_TELETEXT0 |
88 | | -#define DMX_PES_SUBTITLE DMX_PES_SUBTITLE0 |
89 | | -#define DMX_PES_PCR DMX_PES_PCR0 |
90 | | - |
91 | | - |
92 | | -typedef struct dmx_filter |
93 | | -{ |
94 | | - __u8 filter[DMX_FILTER_SIZE]; |
95 | | - __u8 mask[DMX_FILTER_SIZE]; |
96 | | - __u8 mode[DMX_FILTER_SIZE]; |
97 | | -} dmx_filter_t; |
98 | | - |
99 | | - |
100 | | -struct dmx_sct_filter_params |
101 | | -{ |
102 | | - __u16 pid; |
103 | | - dmx_filter_t filter; |
104 | | - __u32 timeout; |
105 | | - __u32 flags; |
106 | | -#define DMX_CHECK_CRC 1 |
107 | | -#define DMX_ONESHOT 2 |
108 | | -#define DMX_IMMEDIATE_START 4 |
109 | | -#define DMX_KERNEL_CLIENT 0x8000 |
110 | | -}; |
111 | | - |
112 | | - |
113 | | -struct dmx_pes_filter_params |
114 | | -{ |
115 | | - __u16 pid; |
116 | | - dmx_input_t input; |
117 | | - dmx_output_t output; |
118 | | - dmx_pes_type_t pes_type; |
119 | | - __u32 flags; |
120 | | -}; |
121 | | - |
122 | | -typedef struct dmx_caps { |
123 | | - __u32 caps; |
124 | | - int num_decoders; |
125 | | -} dmx_caps_t; |
126 | | - |
127 | | -typedef enum { |
128 | | - DMX_SOURCE_FRONT0 = 0, |
129 | | - DMX_SOURCE_FRONT1, |
130 | | - DMX_SOURCE_FRONT2, |
131 | | - DMX_SOURCE_FRONT3, |
132 | | - DMX_SOURCE_DVR0 = 16, |
133 | | - DMX_SOURCE_DVR1, |
134 | | - DMX_SOURCE_DVR2, |
135 | | - DMX_SOURCE_DVR3 |
136 | | -} dmx_source_t; |
137 | | - |
138 | | -struct dmx_stc { |
139 | | - unsigned int num; /* input : which STC? 0..N */ |
140 | | - unsigned int base; /* output: divisor for stc to get 90 kHz clock */ |
141 | | - __u64 stc; /* output: stc in 'base'*90 kHz units */ |
142 | | -}; |
143 | | - |
144 | | - |
145 | | -#define DMX_START _IO('o', 41) |
146 | | -#define DMX_STOP _IO('o', 42) |
147 | | -#define DMX_SET_FILTER _IOW('o', 43, struct dmx_sct_filter_params) |
148 | | -#define DMX_SET_PES_FILTER _IOW('o', 44, struct dmx_pes_filter_params) |
149 | | -#define DMX_SET_BUFFER_SIZE _IO('o', 45) |
150 | | -#define DMX_GET_PES_PIDS _IOR('o', 47, __u16[5]) |
151 | | -#define DMX_GET_CAPS _IOR('o', 48, dmx_caps_t) |
152 | | -#define DMX_SET_SOURCE _IOW('o', 49, dmx_source_t) |
153 | | -#define DMX_GET_STC _IOWR('o', 50, struct dmx_stc) |
154 | | -#define DMX_ADD_PID _IOW('o', 51, __u16) |
155 | | -#define DMX_REMOVE_PID _IOW('o', 52, __u16) |
| 27 | +#include <uapi/linux/dvb/dmx.h> |
156 | 28 |
|
157 | 29 | #endif /*_DVBDMX_H_*/ |
0 commit comments