• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * This header was generated from the Linux kernel headers by update_headers.py,
3  * to provide necessary information from kernel to userspace, such as constants,
4  * structures, and macros, and thus, contains no copyrightable information.
5  */
6 #ifndef _UAPI_DVBDMX_H_
7 #define _UAPI_DVBDMX_H_
8 #include <linux/types.h>
9 #ifndef __KERNEL__
10 #include <time.h>
11 #endif
12 #define DMX_FILTER_SIZE 16
13 enum dmx_output {
14 	DMX_OUT_DECODER,
15 	DMX_OUT_TAP,
16 	DMX_OUT_TS_TAP,
17 	DMX_OUT_TSDEMUX_TAP
18 };
19 enum dmx_input {
20 	DMX_IN_FRONTEND,
21 	DMX_IN_DVR
22 };
23 enum dmx_ts_pes {
24 	DMX_PES_AUDIO0,
25 	DMX_PES_VIDEO0,
26 	DMX_PES_TELETEXT0,
27 	DMX_PES_SUBTITLE0,
28 	DMX_PES_PCR0,
29 	DMX_PES_AUDIO1,
30 	DMX_PES_VIDEO1,
31 	DMX_PES_TELETEXT1,
32 	DMX_PES_SUBTITLE1,
33 	DMX_PES_PCR1,
34 	DMX_PES_AUDIO2,
35 	DMX_PES_VIDEO2,
36 	DMX_PES_TELETEXT2,
37 	DMX_PES_SUBTITLE2,
38 	DMX_PES_PCR2,
39 	DMX_PES_AUDIO3,
40 	DMX_PES_VIDEO3,
41 	DMX_PES_TELETEXT3,
42 	DMX_PES_SUBTITLE3,
43 	DMX_PES_PCR3,
44 	DMX_PES_OTHER
45 };
46 #define DMX_PES_AUDIO    DMX_PES_AUDIO0
47 #define DMX_PES_VIDEO    DMX_PES_VIDEO0
48 #define DMX_PES_TELETEXT DMX_PES_TELETEXT0
49 #define DMX_PES_SUBTITLE DMX_PES_SUBTITLE0
50 #define DMX_PES_PCR      DMX_PES_PCR0
51 struct dmx_filter {
52 	__u8  filter[DMX_FILTER_SIZE];
53 	__u8  mask[DMX_FILTER_SIZE];
54 	__u8  mode[DMX_FILTER_SIZE];
55 };
56 struct dmx_sct_filter_params {
57 	__u16             pid;
58 	struct dmx_filter filter;
59 	__u32             timeout;
60 	__u32             flags;
61 #define DMX_CHECK_CRC       1
62 #define DMX_ONESHOT         2
63 #define DMX_IMMEDIATE_START 4
64 };
65 struct dmx_pes_filter_params {
66 	__u16           pid;
67 	enum dmx_input  input;
68 	enum dmx_output output;
69 	enum dmx_ts_pes pes_type;
70 	__u32           flags;
71 };
72 struct dmx_stc {
73 	unsigned int num;
74 	unsigned int base;
75 	__u64 stc;
76 };
77 enum dmx_buffer_flags {
78 	DMX_BUFFER_FLAG_HAD_CRC32_DISCARD		= 1 << 0,
79 	DMX_BUFFER_FLAG_TEI				= 1 << 1,
80 	DMX_BUFFER_PKT_COUNTER_MISMATCH			= 1 << 2,
81 	DMX_BUFFER_FLAG_DISCONTINUITY_DETECTED		= 1 << 3,
82 	DMX_BUFFER_FLAG_DISCONTINUITY_INDICATOR		= 1 << 4,
83 };
84 struct dmx_buffer {
85 	__u32			index;
86 	__u32			bytesused;
87 	__u32			offset;
88 	__u32			length;
89 	__u32			flags;
90 	__u32			count;
91 };
92 struct dmx_requestbuffers {
93 	__u32			count;
94 	__u32			size;
95 };
96 struct dmx_exportbuffer {
97 	__u32		index;
98 	__u32		flags;
99 	__s32		fd;
100 };
101 #define DMX_START                _IO('o', 41)
102 #define DMX_STOP                 _IO('o', 42)
103 #define DMX_SET_FILTER           _IOW('o', 43, struct dmx_sct_filter_params)
104 #define DMX_SET_PES_FILTER       _IOW('o', 44, struct dmx_pes_filter_params)
105 #define DMX_SET_BUFFER_SIZE      _IO('o', 45)
106 #define DMX_GET_PES_PIDS         _IOR('o', 47, __u16[5])
107 #define DMX_GET_STC              _IOWR('o', 50, struct dmx_stc)
108 #define DMX_ADD_PID              _IOW('o', 51, __u16)
109 #define DMX_REMOVE_PID           _IOW('o', 52, __u16)
110 #if !defined(__KERNEL__)
111 typedef enum dmx_output dmx_output_t;
112 typedef enum dmx_input dmx_input_t;
113 typedef enum dmx_ts_pes dmx_pes_type_t;
114 typedef struct dmx_filter dmx_filter_t;
115 #endif
116 #define DMX_REQBUFS              _IOWR('o', 60, struct dmx_requestbuffers)
117 #define DMX_QUERYBUF             _IOWR('o', 61, struct dmx_buffer)
118 #define DMX_EXPBUF               _IOWR('o', 62, struct dmx_exportbuffer)
119 #define DMX_QBUF                 _IOWR('o', 63, struct dmx_buffer)
120 #define DMX_DQBUF                _IOWR('o', 64, struct dmx_buffer)
121 #endif
122