Commit c57fd0219292884aabe368cf811cd1911acf798e
Committed by
Mauro Carvalho Chehab
1 parent
214e2ca2b8
Exists in
smarc-l5.0.0_1.0.0-ga
and in
5 other branches
UAPI: (Scripted) Disintegrate include/linux/dvb
Signed-off-by: David Howells <dhowells@redhat.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Michael Kerrisk <mtk.manpages@gmail.com> Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Acked-by: Dave Jones <davej@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Showing 18 changed files with 1405 additions and 1351 deletions Side-by-side Diff
- include/linux/dvb/Kbuild
- include/linux/dvb/audio.h
- include/linux/dvb/ca.h
- include/linux/dvb/dmx.h
- include/linux/dvb/frontend.h
- include/linux/dvb/net.h
- include/linux/dvb/osd.h
- include/linux/dvb/version.h
- include/linux/dvb/video.h
- include/uapi/linux/dvb/Kbuild
- include/uapi/linux/dvb/audio.h
- include/uapi/linux/dvb/ca.h
- include/uapi/linux/dvb/dmx.h
- include/uapi/linux/dvb/frontend.h
- include/uapi/linux/dvb/net.h
- include/uapi/linux/dvb/osd.h
- include/uapi/linux/dvb/version.h
- include/uapi/linux/dvb/video.h
include/linux/dvb/Kbuild
include/linux/dvb/audio.h
1 | -/* | |
2 | - * audio.h | |
3 | - * | |
4 | - * Copyright (C) 2000 Ralph Metzler <ralph@convergence.de> | |
5 | - * & Marcus Metzler <marcus@convergence.de> | |
6 | - * for convergence integrated media GmbH | |
7 | - * | |
8 | - * This program is free software; you can redistribute it and/or | |
9 | - * modify it under the terms of the GNU General Lesser Public License | |
10 | - * as published by the Free Software Foundation; either version 2.1 | |
11 | - * of the License, or (at your option) any later version. | |
12 | - * | |
13 | - * This program is distributed in the hope that it will be useful, | |
14 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | - * GNU General Public License for more details. | |
17 | - * | |
18 | - * You should have received a copy of the GNU Lesser General Public License | |
19 | - * along with this program; if not, write to the Free Software | |
20 | - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
21 | - * | |
22 | - */ | |
23 | - | |
24 | -#ifndef _DVBAUDIO_H_ | |
25 | -#define _DVBAUDIO_H_ | |
26 | - | |
27 | -#include <linux/types.h> | |
28 | - | |
29 | -typedef enum { | |
30 | - AUDIO_SOURCE_DEMUX, /* Select the demux as the main source */ | |
31 | - AUDIO_SOURCE_MEMORY /* Select internal memory as the main source */ | |
32 | -} audio_stream_source_t; | |
33 | - | |
34 | - | |
35 | -typedef enum { | |
36 | - AUDIO_STOPPED, /* Device is stopped */ | |
37 | - AUDIO_PLAYING, /* Device is currently playing */ | |
38 | - AUDIO_PAUSED /* Device is paused */ | |
39 | -} audio_play_state_t; | |
40 | - | |
41 | - | |
42 | -typedef enum { | |
43 | - AUDIO_STEREO, | |
44 | - AUDIO_MONO_LEFT, | |
45 | - AUDIO_MONO_RIGHT, | |
46 | - AUDIO_MONO, | |
47 | - AUDIO_STEREO_SWAPPED | |
48 | -} audio_channel_select_t; | |
49 | - | |
50 | - | |
51 | -typedef struct audio_mixer { | |
52 | - unsigned int volume_left; | |
53 | - unsigned int volume_right; | |
54 | - // what else do we need? bass, pass-through, ... | |
55 | -} audio_mixer_t; | |
56 | - | |
57 | - | |
58 | -typedef struct audio_status { | |
59 | - int AV_sync_state; /* sync audio and video? */ | |
60 | - int mute_state; /* audio is muted */ | |
61 | - audio_play_state_t play_state; /* current playback state */ | |
62 | - audio_stream_source_t stream_source; /* current stream source */ | |
63 | - audio_channel_select_t channel_select; /* currently selected channel */ | |
64 | - int bypass_mode; /* pass on audio data to */ | |
65 | - audio_mixer_t mixer_state; /* current mixer state */ | |
66 | -} audio_status_t; /* separate decoder hardware */ | |
67 | - | |
68 | - | |
69 | -typedef | |
70 | -struct audio_karaoke { /* if Vocal1 or Vocal2 are non-zero, they get mixed */ | |
71 | - int vocal1; /* into left and right t at 70% each */ | |
72 | - int vocal2; /* if both, Vocal1 and Vocal2 are non-zero, Vocal1 gets*/ | |
73 | - int melody; /* mixed into the left channel and */ | |
74 | - /* Vocal2 into the right channel at 100% each. */ | |
75 | - /* if Melody is non-zero, the melody channel gets mixed*/ | |
76 | -} audio_karaoke_t; /* into left and right */ | |
77 | - | |
78 | - | |
79 | -typedef __u16 audio_attributes_t; | |
80 | -/* bits: descr. */ | |
81 | -/* 15-13 audio coding mode (0=ac3, 2=mpeg1, 3=mpeg2ext, 4=LPCM, 6=DTS, */ | |
82 | -/* 12 multichannel extension */ | |
83 | -/* 11-10 audio type (0=not spec, 1=language included) */ | |
84 | -/* 9- 8 audio application mode (0=not spec, 1=karaoke, 2=surround) */ | |
85 | -/* 7- 6 Quantization / DRC (mpeg audio: 1=DRC exists)(lpcm: 0=16bit, */ | |
86 | -/* 5- 4 Sample frequency fs (0=48kHz, 1=96kHz) */ | |
87 | -/* 2- 0 number of audio channels (n+1 channels) */ | |
88 | - | |
89 | - | |
90 | -/* for GET_CAPABILITIES and SET_FORMAT, the latter should only set one bit */ | |
91 | -#define AUDIO_CAP_DTS 1 | |
92 | -#define AUDIO_CAP_LPCM 2 | |
93 | -#define AUDIO_CAP_MP1 4 | |
94 | -#define AUDIO_CAP_MP2 8 | |
95 | -#define AUDIO_CAP_MP3 16 | |
96 | -#define AUDIO_CAP_AAC 32 | |
97 | -#define AUDIO_CAP_OGG 64 | |
98 | -#define AUDIO_CAP_SDDS 128 | |
99 | -#define AUDIO_CAP_AC3 256 | |
100 | - | |
101 | -#define AUDIO_STOP _IO('o', 1) | |
102 | -#define AUDIO_PLAY _IO('o', 2) | |
103 | -#define AUDIO_PAUSE _IO('o', 3) | |
104 | -#define AUDIO_CONTINUE _IO('o', 4) | |
105 | -#define AUDIO_SELECT_SOURCE _IO('o', 5) | |
106 | -#define AUDIO_SET_MUTE _IO('o', 6) | |
107 | -#define AUDIO_SET_AV_SYNC _IO('o', 7) | |
108 | -#define AUDIO_SET_BYPASS_MODE _IO('o', 8) | |
109 | -#define AUDIO_CHANNEL_SELECT _IO('o', 9) | |
110 | -#define AUDIO_GET_STATUS _IOR('o', 10, audio_status_t) | |
111 | - | |
112 | -#define AUDIO_GET_CAPABILITIES _IOR('o', 11, unsigned int) | |
113 | -#define AUDIO_CLEAR_BUFFER _IO('o', 12) | |
114 | -#define AUDIO_SET_ID _IO('o', 13) | |
115 | -#define AUDIO_SET_MIXER _IOW('o', 14, audio_mixer_t) | |
116 | -#define AUDIO_SET_STREAMTYPE _IO('o', 15) | |
117 | -#define AUDIO_SET_EXT_ID _IO('o', 16) | |
118 | -#define AUDIO_SET_ATTRIBUTES _IOW('o', 17, audio_attributes_t) | |
119 | -#define AUDIO_SET_KARAOKE _IOW('o', 18, audio_karaoke_t) | |
120 | - | |
121 | -/** | |
122 | - * AUDIO_GET_PTS | |
123 | - * | |
124 | - * Read the 33 bit presentation time stamp as defined | |
125 | - * in ITU T-REC-H.222.0 / ISO/IEC 13818-1. | |
126 | - * | |
127 | - * The PTS should belong to the currently played | |
128 | - * frame if possible, but may also be a value close to it | |
129 | - * like the PTS of the last decoded frame or the last PTS | |
130 | - * extracted by the PES parser. | |
131 | - */ | |
132 | -#define AUDIO_GET_PTS _IOR('o', 19, __u64) | |
133 | -#define AUDIO_BILINGUAL_CHANNEL_SELECT _IO('o', 20) | |
134 | - | |
135 | -#endif /* _DVBAUDIO_H_ */ |
include/linux/dvb/ca.h
1 | -/* | |
2 | - * ca.h | |
3 | - * | |
4 | - * Copyright (C) 2000 Ralph Metzler <ralph@convergence.de> | |
5 | - * & Marcus Metzler <marcus@convergence.de> | |
6 | - * for convergence integrated media GmbH | |
7 | - * | |
8 | - * This program is free software; you can redistribute it and/or | |
9 | - * modify it under the terms of the GNU General Lesser Public License | |
10 | - * as published by the Free Software Foundation; either version 2.1 | |
11 | - * of the License, or (at your option) any later version. | |
12 | - * | |
13 | - * This program is distributed in the hope that it will be useful, | |
14 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | - * GNU General Public License for more details. | |
17 | - * | |
18 | - * You should have received a copy of the GNU Lesser General Public License | |
19 | - * along with this program; if not, write to the Free Software | |
20 | - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
21 | - * | |
22 | - */ | |
23 | - | |
24 | -#ifndef _DVBCA_H_ | |
25 | -#define _DVBCA_H_ | |
26 | - | |
27 | -/* slot interface types and info */ | |
28 | - | |
29 | -typedef struct ca_slot_info { | |
30 | - int num; /* slot number */ | |
31 | - | |
32 | - int type; /* CA interface this slot supports */ | |
33 | -#define CA_CI 1 /* CI high level interface */ | |
34 | -#define CA_CI_LINK 2 /* CI link layer level interface */ | |
35 | -#define CA_CI_PHYS 4 /* CI physical layer level interface */ | |
36 | -#define CA_DESCR 8 /* built-in descrambler */ | |
37 | -#define CA_SC 128 /* simple smart card interface */ | |
38 | - | |
39 | - unsigned int flags; | |
40 | -#define CA_CI_MODULE_PRESENT 1 /* module (or card) inserted */ | |
41 | -#define CA_CI_MODULE_READY 2 | |
42 | -} ca_slot_info_t; | |
43 | - | |
44 | - | |
45 | -/* descrambler types and info */ | |
46 | - | |
47 | -typedef struct ca_descr_info { | |
48 | - unsigned int num; /* number of available descramblers (keys) */ | |
49 | - unsigned int type; /* type of supported scrambling system */ | |
50 | -#define CA_ECD 1 | |
51 | -#define CA_NDS 2 | |
52 | -#define CA_DSS 4 | |
53 | -} ca_descr_info_t; | |
54 | - | |
55 | -typedef struct ca_caps { | |
56 | - unsigned int slot_num; /* total number of CA card and module slots */ | |
57 | - unsigned int slot_type; /* OR of all supported types */ | |
58 | - unsigned int descr_num; /* total number of descrambler slots (keys) */ | |
59 | - unsigned int descr_type; /* OR of all supported types */ | |
60 | -} ca_caps_t; | |
61 | - | |
62 | -/* a message to/from a CI-CAM */ | |
63 | -typedef struct ca_msg { | |
64 | - unsigned int index; | |
65 | - unsigned int type; | |
66 | - unsigned int length; | |
67 | - unsigned char msg[256]; | |
68 | -} ca_msg_t; | |
69 | - | |
70 | -typedef struct ca_descr { | |
71 | - unsigned int index; | |
72 | - unsigned int parity; /* 0 == even, 1 == odd */ | |
73 | - unsigned char cw[8]; | |
74 | -} ca_descr_t; | |
75 | - | |
76 | -typedef struct ca_pid { | |
77 | - unsigned int pid; | |
78 | - int index; /* -1 == disable*/ | |
79 | -} ca_pid_t; | |
80 | - | |
81 | -#define CA_RESET _IO('o', 128) | |
82 | -#define CA_GET_CAP _IOR('o', 129, ca_caps_t) | |
83 | -#define CA_GET_SLOT_INFO _IOR('o', 130, ca_slot_info_t) | |
84 | -#define CA_GET_DESCR_INFO _IOR('o', 131, ca_descr_info_t) | |
85 | -#define CA_GET_MSG _IOR('o', 132, ca_msg_t) | |
86 | -#define CA_SEND_MSG _IOW('o', 133, ca_msg_t) | |
87 | -#define CA_SET_DESCR _IOW('o', 134, ca_descr_t) | |
88 | -#define CA_SET_PID _IOW('o', 135, ca_pid_t) | |
89 | - | |
90 | -#endif |
include/linux/dvb/dmx.h
... | ... | @@ -20,139 +20,11 @@ |
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_*/ |
include/linux/dvb/frontend.h
1 | -/* | |
2 | - * frontend.h | |
3 | - * | |
4 | - * Copyright (C) 2000 Marcus Metzler <marcus@convergence.de> | |
5 | - * Ralph Metzler <ralph@convergence.de> | |
6 | - * Holger Waechtler <holger@convergence.de> | |
7 | - * Andre Draszik <ad@convergence.de> | |
8 | - * for convergence integrated media GmbH | |
9 | - * | |
10 | - * This program is free software; you can redistribute it and/or | |
11 | - * modify it under the terms of the GNU Lesser General Public License | |
12 | - * as published by the Free Software Foundation; either version 2.1 | |
13 | - * of the License, or (at your option) any later version. | |
14 | - * | |
15 | - * This program is distributed in the hope that it will be useful, | |
16 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 | - * GNU General Public License for more details. | |
19 | - * | |
20 | - * You should have received a copy of the GNU Lesser General Public License | |
21 | - * along with this program; if not, write to the Free Software | |
22 | - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
23 | - * | |
24 | - */ | |
25 | - | |
26 | -#ifndef _DVBFRONTEND_H_ | |
27 | -#define _DVBFRONTEND_H_ | |
28 | - | |
29 | -#include <linux/types.h> | |
30 | - | |
31 | -typedef enum fe_type { | |
32 | - FE_QPSK, | |
33 | - FE_QAM, | |
34 | - FE_OFDM, | |
35 | - FE_ATSC | |
36 | -} fe_type_t; | |
37 | - | |
38 | - | |
39 | -typedef enum fe_caps { | |
40 | - FE_IS_STUPID = 0, | |
41 | - FE_CAN_INVERSION_AUTO = 0x1, | |
42 | - FE_CAN_FEC_1_2 = 0x2, | |
43 | - FE_CAN_FEC_2_3 = 0x4, | |
44 | - FE_CAN_FEC_3_4 = 0x8, | |
45 | - FE_CAN_FEC_4_5 = 0x10, | |
46 | - FE_CAN_FEC_5_6 = 0x20, | |
47 | - FE_CAN_FEC_6_7 = 0x40, | |
48 | - FE_CAN_FEC_7_8 = 0x80, | |
49 | - FE_CAN_FEC_8_9 = 0x100, | |
50 | - FE_CAN_FEC_AUTO = 0x200, | |
51 | - FE_CAN_QPSK = 0x400, | |
52 | - FE_CAN_QAM_16 = 0x800, | |
53 | - FE_CAN_QAM_32 = 0x1000, | |
54 | - FE_CAN_QAM_64 = 0x2000, | |
55 | - FE_CAN_QAM_128 = 0x4000, | |
56 | - FE_CAN_QAM_256 = 0x8000, | |
57 | - FE_CAN_QAM_AUTO = 0x10000, | |
58 | - FE_CAN_TRANSMISSION_MODE_AUTO = 0x20000, | |
59 | - FE_CAN_BANDWIDTH_AUTO = 0x40000, | |
60 | - FE_CAN_GUARD_INTERVAL_AUTO = 0x80000, | |
61 | - FE_CAN_HIERARCHY_AUTO = 0x100000, | |
62 | - FE_CAN_8VSB = 0x200000, | |
63 | - FE_CAN_16VSB = 0x400000, | |
64 | - FE_HAS_EXTENDED_CAPS = 0x800000, /* We need more bitspace for newer APIs, indicate this. */ | |
65 | - FE_CAN_MULTISTREAM = 0x4000000, /* frontend supports multistream filtering */ | |
66 | - FE_CAN_TURBO_FEC = 0x8000000, /* frontend supports "turbo fec modulation" */ | |
67 | - FE_CAN_2G_MODULATION = 0x10000000, /* frontend supports "2nd generation modulation" (DVB-S2) */ | |
68 | - FE_NEEDS_BENDING = 0x20000000, /* not supported anymore, don't use (frontend requires frequency bending) */ | |
69 | - FE_CAN_RECOVER = 0x40000000, /* frontend can recover from a cable unplug automatically */ | |
70 | - FE_CAN_MUTE_TS = 0x80000000 /* frontend can stop spurious TS data output */ | |
71 | -} fe_caps_t; | |
72 | - | |
73 | - | |
74 | -struct dvb_frontend_info { | |
75 | - char name[128]; | |
76 | - fe_type_t type; /* DEPRECATED. Use DTV_ENUM_DELSYS instead */ | |
77 | - __u32 frequency_min; | |
78 | - __u32 frequency_max; | |
79 | - __u32 frequency_stepsize; | |
80 | - __u32 frequency_tolerance; | |
81 | - __u32 symbol_rate_min; | |
82 | - __u32 symbol_rate_max; | |
83 | - __u32 symbol_rate_tolerance; /* ppm */ | |
84 | - __u32 notifier_delay; /* DEPRECATED */ | |
85 | - fe_caps_t caps; | |
86 | -}; | |
87 | - | |
88 | - | |
89 | -/** | |
90 | - * Check out the DiSEqC bus spec available on http://www.eutelsat.org/ for | |
91 | - * the meaning of this struct... | |
92 | - */ | |
93 | -struct dvb_diseqc_master_cmd { | |
94 | - __u8 msg [6]; /* { framing, address, command, data [3] } */ | |
95 | - __u8 msg_len; /* valid values are 3...6 */ | |
96 | -}; | |
97 | - | |
98 | - | |
99 | -struct dvb_diseqc_slave_reply { | |
100 | - __u8 msg [4]; /* { framing, data [3] } */ | |
101 | - __u8 msg_len; /* valid values are 0...4, 0 means no msg */ | |
102 | - int timeout; /* return from ioctl after timeout ms with */ | |
103 | -}; /* errorcode when no message was received */ | |
104 | - | |
105 | - | |
106 | -typedef enum fe_sec_voltage { | |
107 | - SEC_VOLTAGE_13, | |
108 | - SEC_VOLTAGE_18, | |
109 | - SEC_VOLTAGE_OFF | |
110 | -} fe_sec_voltage_t; | |
111 | - | |
112 | - | |
113 | -typedef enum fe_sec_tone_mode { | |
114 | - SEC_TONE_ON, | |
115 | - SEC_TONE_OFF | |
116 | -} fe_sec_tone_mode_t; | |
117 | - | |
118 | - | |
119 | -typedef enum fe_sec_mini_cmd { | |
120 | - SEC_MINI_A, | |
121 | - SEC_MINI_B | |
122 | -} fe_sec_mini_cmd_t; | |
123 | - | |
124 | - | |
125 | -/** | |
126 | - * enum fe_status - enumerates the possible frontend status | |
127 | - * @FE_HAS_SIGNAL: found something above the noise level | |
128 | - * @FE_HAS_CARRIER: found a DVB signal | |
129 | - * @FE_HAS_VITERBI: FEC is stable | |
130 | - * @FE_HAS_SYNC: found sync bytes | |
131 | - * @FE_HAS_LOCK: everything's working | |
132 | - * @FE_TIMEDOUT: no lock within the last ~2 seconds | |
133 | - * @FE_REINIT: frontend was reinitialized, application is recommended | |
134 | - * to reset DiSEqC, tone and parameters | |
135 | - */ | |
136 | - | |
137 | -typedef enum fe_status { | |
138 | - FE_HAS_SIGNAL = 0x01, | |
139 | - FE_HAS_CARRIER = 0x02, | |
140 | - FE_HAS_VITERBI = 0x04, | |
141 | - FE_HAS_SYNC = 0x08, | |
142 | - FE_HAS_LOCK = 0x10, | |
143 | - FE_TIMEDOUT = 0x20, | |
144 | - FE_REINIT = 0x40, | |
145 | -} fe_status_t; | |
146 | - | |
147 | -typedef enum fe_spectral_inversion { | |
148 | - INVERSION_OFF, | |
149 | - INVERSION_ON, | |
150 | - INVERSION_AUTO | |
151 | -} fe_spectral_inversion_t; | |
152 | - | |
153 | - | |
154 | -typedef enum fe_code_rate { | |
155 | - FEC_NONE = 0, | |
156 | - FEC_1_2, | |
157 | - FEC_2_3, | |
158 | - FEC_3_4, | |
159 | - FEC_4_5, | |
160 | - FEC_5_6, | |
161 | - FEC_6_7, | |
162 | - FEC_7_8, | |
163 | - FEC_8_9, | |
164 | - FEC_AUTO, | |
165 | - FEC_3_5, | |
166 | - FEC_9_10, | |
167 | - FEC_2_5, | |
168 | -} fe_code_rate_t; | |
169 | - | |
170 | - | |
171 | -typedef enum fe_modulation { | |
172 | - QPSK, | |
173 | - QAM_16, | |
174 | - QAM_32, | |
175 | - QAM_64, | |
176 | - QAM_128, | |
177 | - QAM_256, | |
178 | - QAM_AUTO, | |
179 | - VSB_8, | |
180 | - VSB_16, | |
181 | - PSK_8, | |
182 | - APSK_16, | |
183 | - APSK_32, | |
184 | - DQPSK, | |
185 | - QAM_4_NR, | |
186 | -} fe_modulation_t; | |
187 | - | |
188 | -typedef enum fe_transmit_mode { | |
189 | - TRANSMISSION_MODE_2K, | |
190 | - TRANSMISSION_MODE_8K, | |
191 | - TRANSMISSION_MODE_AUTO, | |
192 | - TRANSMISSION_MODE_4K, | |
193 | - TRANSMISSION_MODE_1K, | |
194 | - TRANSMISSION_MODE_16K, | |
195 | - TRANSMISSION_MODE_32K, | |
196 | - TRANSMISSION_MODE_C1, | |
197 | - TRANSMISSION_MODE_C3780, | |
198 | -} fe_transmit_mode_t; | |
199 | - | |
200 | -#if defined(__DVB_CORE__) || !defined (__KERNEL__) | |
201 | -typedef enum fe_bandwidth { | |
202 | - BANDWIDTH_8_MHZ, | |
203 | - BANDWIDTH_7_MHZ, | |
204 | - BANDWIDTH_6_MHZ, | |
205 | - BANDWIDTH_AUTO, | |
206 | - BANDWIDTH_5_MHZ, | |
207 | - BANDWIDTH_10_MHZ, | |
208 | - BANDWIDTH_1_712_MHZ, | |
209 | -} fe_bandwidth_t; | |
210 | -#endif | |
211 | - | |
212 | -typedef enum fe_guard_interval { | |
213 | - GUARD_INTERVAL_1_32, | |
214 | - GUARD_INTERVAL_1_16, | |
215 | - GUARD_INTERVAL_1_8, | |
216 | - GUARD_INTERVAL_1_4, | |
217 | - GUARD_INTERVAL_AUTO, | |
218 | - GUARD_INTERVAL_1_128, | |
219 | - GUARD_INTERVAL_19_128, | |
220 | - GUARD_INTERVAL_19_256, | |
221 | - GUARD_INTERVAL_PN420, | |
222 | - GUARD_INTERVAL_PN595, | |
223 | - GUARD_INTERVAL_PN945, | |
224 | -} fe_guard_interval_t; | |
225 | - | |
226 | - | |
227 | -typedef enum fe_hierarchy { | |
228 | - HIERARCHY_NONE, | |
229 | - HIERARCHY_1, | |
230 | - HIERARCHY_2, | |
231 | - HIERARCHY_4, | |
232 | - HIERARCHY_AUTO | |
233 | -} fe_hierarchy_t; | |
234 | - | |
235 | -enum fe_interleaving { | |
236 | - INTERLEAVING_NONE, | |
237 | - INTERLEAVING_AUTO, | |
238 | - INTERLEAVING_240, | |
239 | - INTERLEAVING_720, | |
240 | -}; | |
241 | - | |
242 | -#if defined(__DVB_CORE__) || !defined (__KERNEL__) | |
243 | -struct dvb_qpsk_parameters { | |
244 | - __u32 symbol_rate; /* symbol rate in Symbols per second */ | |
245 | - fe_code_rate_t fec_inner; /* forward error correction (see above) */ | |
246 | -}; | |
247 | - | |
248 | -struct dvb_qam_parameters { | |
249 | - __u32 symbol_rate; /* symbol rate in Symbols per second */ | |
250 | - fe_code_rate_t fec_inner; /* forward error correction (see above) */ | |
251 | - fe_modulation_t modulation; /* modulation type (see above) */ | |
252 | -}; | |
253 | - | |
254 | -struct dvb_vsb_parameters { | |
255 | - fe_modulation_t modulation; /* modulation type (see above) */ | |
256 | -}; | |
257 | - | |
258 | -struct dvb_ofdm_parameters { | |
259 | - fe_bandwidth_t bandwidth; | |
260 | - fe_code_rate_t code_rate_HP; /* high priority stream code rate */ | |
261 | - fe_code_rate_t code_rate_LP; /* low priority stream code rate */ | |
262 | - fe_modulation_t constellation; /* modulation type (see above) */ | |
263 | - fe_transmit_mode_t transmission_mode; | |
264 | - fe_guard_interval_t guard_interval; | |
265 | - fe_hierarchy_t hierarchy_information; | |
266 | -}; | |
267 | - | |
268 | - | |
269 | -struct dvb_frontend_parameters { | |
270 | - __u32 frequency; /* (absolute) frequency in Hz for QAM/OFDM/ATSC */ | |
271 | - /* intermediate frequency in kHz for QPSK */ | |
272 | - fe_spectral_inversion_t inversion; | |
273 | - union { | |
274 | - struct dvb_qpsk_parameters qpsk; | |
275 | - struct dvb_qam_parameters qam; | |
276 | - struct dvb_ofdm_parameters ofdm; | |
277 | - struct dvb_vsb_parameters vsb; | |
278 | - } u; | |
279 | -}; | |
280 | - | |
281 | -struct dvb_frontend_event { | |
282 | - fe_status_t status; | |
283 | - struct dvb_frontend_parameters parameters; | |
284 | -}; | |
285 | -#endif | |
286 | - | |
287 | -/* S2API Commands */ | |
288 | -#define DTV_UNDEFINED 0 | |
289 | -#define DTV_TUNE 1 | |
290 | -#define DTV_CLEAR 2 | |
291 | -#define DTV_FREQUENCY 3 | |
292 | -#define DTV_MODULATION 4 | |
293 | -#define DTV_BANDWIDTH_HZ 5 | |
294 | -#define DTV_INVERSION 6 | |
295 | -#define DTV_DISEQC_MASTER 7 | |
296 | -#define DTV_SYMBOL_RATE 8 | |
297 | -#define DTV_INNER_FEC 9 | |
298 | -#define DTV_VOLTAGE 10 | |
299 | -#define DTV_TONE 11 | |
300 | -#define DTV_PILOT 12 | |
301 | -#define DTV_ROLLOFF 13 | |
302 | -#define DTV_DISEQC_SLAVE_REPLY 14 | |
303 | - | |
304 | -/* Basic enumeration set for querying unlimited capabilities */ | |
305 | -#define DTV_FE_CAPABILITY_COUNT 15 | |
306 | -#define DTV_FE_CAPABILITY 16 | |
307 | -#define DTV_DELIVERY_SYSTEM 17 | |
308 | - | |
309 | -/* ISDB-T and ISDB-Tsb */ | |
310 | -#define DTV_ISDBT_PARTIAL_RECEPTION 18 | |
311 | -#define DTV_ISDBT_SOUND_BROADCASTING 19 | |
312 | - | |
313 | -#define DTV_ISDBT_SB_SUBCHANNEL_ID 20 | |
314 | -#define DTV_ISDBT_SB_SEGMENT_IDX 21 | |
315 | -#define DTV_ISDBT_SB_SEGMENT_COUNT 22 | |
316 | - | |
317 | -#define DTV_ISDBT_LAYERA_FEC 23 | |
318 | -#define DTV_ISDBT_LAYERA_MODULATION 24 | |
319 | -#define DTV_ISDBT_LAYERA_SEGMENT_COUNT 25 | |
320 | -#define DTV_ISDBT_LAYERA_TIME_INTERLEAVING 26 | |
321 | - | |
322 | -#define DTV_ISDBT_LAYERB_FEC 27 | |
323 | -#define DTV_ISDBT_LAYERB_MODULATION 28 | |
324 | -#define DTV_ISDBT_LAYERB_SEGMENT_COUNT 29 | |
325 | -#define DTV_ISDBT_LAYERB_TIME_INTERLEAVING 30 | |
326 | - | |
327 | -#define DTV_ISDBT_LAYERC_FEC 31 | |
328 | -#define DTV_ISDBT_LAYERC_MODULATION 32 | |
329 | -#define DTV_ISDBT_LAYERC_SEGMENT_COUNT 33 | |
330 | -#define DTV_ISDBT_LAYERC_TIME_INTERLEAVING 34 | |
331 | - | |
332 | -#define DTV_API_VERSION 35 | |
333 | - | |
334 | -#define DTV_CODE_RATE_HP 36 | |
335 | -#define DTV_CODE_RATE_LP 37 | |
336 | -#define DTV_GUARD_INTERVAL 38 | |
337 | -#define DTV_TRANSMISSION_MODE 39 | |
338 | -#define DTV_HIERARCHY 40 | |
339 | - | |
340 | -#define DTV_ISDBT_LAYER_ENABLED 41 | |
341 | - | |
342 | -#define DTV_STREAM_ID 42 | |
343 | -#define DTV_ISDBS_TS_ID_LEGACY DTV_STREAM_ID | |
344 | -#define DTV_DVBT2_PLP_ID_LEGACY 43 | |
345 | - | |
346 | -#define DTV_ENUM_DELSYS 44 | |
347 | - | |
348 | -/* ATSC-MH */ | |
349 | -#define DTV_ATSCMH_FIC_VER 45 | |
350 | -#define DTV_ATSCMH_PARADE_ID 46 | |
351 | -#define DTV_ATSCMH_NOG 47 | |
352 | -#define DTV_ATSCMH_TNOG 48 | |
353 | -#define DTV_ATSCMH_SGN 49 | |
354 | -#define DTV_ATSCMH_PRC 50 | |
355 | -#define DTV_ATSCMH_RS_FRAME_MODE 51 | |
356 | -#define DTV_ATSCMH_RS_FRAME_ENSEMBLE 52 | |
357 | -#define DTV_ATSCMH_RS_CODE_MODE_PRI 53 | |
358 | -#define DTV_ATSCMH_RS_CODE_MODE_SEC 54 | |
359 | -#define DTV_ATSCMH_SCCC_BLOCK_MODE 55 | |
360 | -#define DTV_ATSCMH_SCCC_CODE_MODE_A 56 | |
361 | -#define DTV_ATSCMH_SCCC_CODE_MODE_B 57 | |
362 | -#define DTV_ATSCMH_SCCC_CODE_MODE_C 58 | |
363 | -#define DTV_ATSCMH_SCCC_CODE_MODE_D 59 | |
364 | - | |
365 | -#define DTV_INTERLEAVING 60 | |
366 | -#define DTV_LNA 61 | |
367 | - | |
368 | -#define DTV_MAX_COMMAND DTV_LNA | |
369 | - | |
370 | -typedef enum fe_pilot { | |
371 | - PILOT_ON, | |
372 | - PILOT_OFF, | |
373 | - PILOT_AUTO, | |
374 | -} fe_pilot_t; | |
375 | - | |
376 | -typedef enum fe_rolloff { | |
377 | - ROLLOFF_35, /* Implied value in DVB-S, default for DVB-S2 */ | |
378 | - ROLLOFF_20, | |
379 | - ROLLOFF_25, | |
380 | - ROLLOFF_AUTO, | |
381 | -} fe_rolloff_t; | |
382 | - | |
383 | -typedef enum fe_delivery_system { | |
384 | - SYS_UNDEFINED, | |
385 | - SYS_DVBC_ANNEX_A, | |
386 | - SYS_DVBC_ANNEX_B, | |
387 | - SYS_DVBT, | |
388 | - SYS_DSS, | |
389 | - SYS_DVBS, | |
390 | - SYS_DVBS2, | |
391 | - SYS_DVBH, | |
392 | - SYS_ISDBT, | |
393 | - SYS_ISDBS, | |
394 | - SYS_ISDBC, | |
395 | - SYS_ATSC, | |
396 | - SYS_ATSCMH, | |
397 | - SYS_DTMB, | |
398 | - SYS_CMMB, | |
399 | - SYS_DAB, | |
400 | - SYS_DVBT2, | |
401 | - SYS_TURBO, | |
402 | - SYS_DVBC_ANNEX_C, | |
403 | -} fe_delivery_system_t; | |
404 | - | |
405 | -/* backward compatibility */ | |
406 | -#define SYS_DVBC_ANNEX_AC SYS_DVBC_ANNEX_A | |
407 | -#define SYS_DMBTH SYS_DTMB /* DMB-TH is legacy name, use DTMB instead */ | |
408 | - | |
409 | -/* ATSC-MH */ | |
410 | - | |
411 | -enum atscmh_sccc_block_mode { | |
412 | - ATSCMH_SCCC_BLK_SEP = 0, | |
413 | - ATSCMH_SCCC_BLK_COMB = 1, | |
414 | - ATSCMH_SCCC_BLK_RES = 2, | |
415 | -}; | |
416 | - | |
417 | -enum atscmh_sccc_code_mode { | |
418 | - ATSCMH_SCCC_CODE_HLF = 0, | |
419 | - ATSCMH_SCCC_CODE_QTR = 1, | |
420 | - ATSCMH_SCCC_CODE_RES = 2, | |
421 | -}; | |
422 | - | |
423 | -enum atscmh_rs_frame_ensemble { | |
424 | - ATSCMH_RSFRAME_ENS_PRI = 0, | |
425 | - ATSCMH_RSFRAME_ENS_SEC = 1, | |
426 | -}; | |
427 | - | |
428 | -enum atscmh_rs_frame_mode { | |
429 | - ATSCMH_RSFRAME_PRI_ONLY = 0, | |
430 | - ATSCMH_RSFRAME_PRI_SEC = 1, | |
431 | - ATSCMH_RSFRAME_RES = 2, | |
432 | -}; | |
433 | - | |
434 | -enum atscmh_rs_code_mode { | |
435 | - ATSCMH_RSCODE_211_187 = 0, | |
436 | - ATSCMH_RSCODE_223_187 = 1, | |
437 | - ATSCMH_RSCODE_235_187 = 2, | |
438 | - ATSCMH_RSCODE_RES = 3, | |
439 | -}; | |
440 | - | |
441 | -#define NO_STREAM_ID_FILTER (~0U) | |
442 | -#define LNA_AUTO (~0U) | |
443 | - | |
444 | -struct dtv_cmds_h { | |
445 | - char *name; /* A display name for debugging purposes */ | |
446 | - | |
447 | - __u32 cmd; /* A unique ID */ | |
448 | - | |
449 | - /* Flags */ | |
450 | - __u32 set:1; /* Either a set or get property */ | |
451 | - __u32 buffer:1; /* Does this property use the buffer? */ | |
452 | - __u32 reserved:30; /* Align */ | |
453 | -}; | |
454 | - | |
455 | -struct dtv_property { | |
456 | - __u32 cmd; | |
457 | - __u32 reserved[3]; | |
458 | - union { | |
459 | - __u32 data; | |
460 | - struct { | |
461 | - __u8 data[32]; | |
462 | - __u32 len; | |
463 | - __u32 reserved1[3]; | |
464 | - void *reserved2; | |
465 | - } buffer; | |
466 | - } u; | |
467 | - int result; | |
468 | -} __attribute__ ((packed)); | |
469 | - | |
470 | -/* num of properties cannot exceed DTV_IOCTL_MAX_MSGS per ioctl */ | |
471 | -#define DTV_IOCTL_MAX_MSGS 64 | |
472 | - | |
473 | -struct dtv_properties { | |
474 | - __u32 num; | |
475 | - struct dtv_property *props; | |
476 | -}; | |
477 | - | |
478 | -#define FE_SET_PROPERTY _IOW('o', 82, struct dtv_properties) | |
479 | -#define FE_GET_PROPERTY _IOR('o', 83, struct dtv_properties) | |
480 | - | |
481 | - | |
482 | -/** | |
483 | - * When set, this flag will disable any zigzagging or other "normal" tuning | |
484 | - * behaviour. Additionally, there will be no automatic monitoring of the lock | |
485 | - * status, and hence no frontend events will be generated. If a frontend device | |
486 | - * is closed, this flag will be automatically turned off when the device is | |
487 | - * reopened read-write. | |
488 | - */ | |
489 | -#define FE_TUNE_MODE_ONESHOT 0x01 | |
490 | - | |
491 | - | |
492 | -#define FE_GET_INFO _IOR('o', 61, struct dvb_frontend_info) | |
493 | - | |
494 | -#define FE_DISEQC_RESET_OVERLOAD _IO('o', 62) | |
495 | -#define FE_DISEQC_SEND_MASTER_CMD _IOW('o', 63, struct dvb_diseqc_master_cmd) | |
496 | -#define FE_DISEQC_RECV_SLAVE_REPLY _IOR('o', 64, struct dvb_diseqc_slave_reply) | |
497 | -#define FE_DISEQC_SEND_BURST _IO('o', 65) /* fe_sec_mini_cmd_t */ | |
498 | - | |
499 | -#define FE_SET_TONE _IO('o', 66) /* fe_sec_tone_mode_t */ | |
500 | -#define FE_SET_VOLTAGE _IO('o', 67) /* fe_sec_voltage_t */ | |
501 | -#define FE_ENABLE_HIGH_LNB_VOLTAGE _IO('o', 68) /* int */ | |
502 | - | |
503 | -#define FE_READ_STATUS _IOR('o', 69, fe_status_t) | |
504 | -#define FE_READ_BER _IOR('o', 70, __u32) | |
505 | -#define FE_READ_SIGNAL_STRENGTH _IOR('o', 71, __u16) | |
506 | -#define FE_READ_SNR _IOR('o', 72, __u16) | |
507 | -#define FE_READ_UNCORRECTED_BLOCKS _IOR('o', 73, __u32) | |
508 | - | |
509 | -#define FE_SET_FRONTEND _IOW('o', 76, struct dvb_frontend_parameters) | |
510 | -#define FE_GET_FRONTEND _IOR('o', 77, struct dvb_frontend_parameters) | |
511 | -#define FE_SET_FRONTEND_TUNE_MODE _IO('o', 81) /* unsigned int */ | |
512 | -#define FE_GET_EVENT _IOR('o', 78, struct dvb_frontend_event) | |
513 | - | |
514 | -#define FE_DISHNETWORK_SEND_LEGACY_CMD _IO('o', 80) /* unsigned int */ | |
515 | - | |
516 | -#endif /*_DVBFRONTEND_H_*/ |
include/linux/dvb/net.h
1 | -/* | |
2 | - * net.h | |
3 | - * | |
4 | - * Copyright (C) 2000 Marcus Metzler <marcus@convergence.de> | |
5 | - * & Ralph Metzler <ralph@convergence.de> | |
6 | - * for convergence integrated media GmbH | |
7 | - * | |
8 | - * This program is free software; you can redistribute it and/or | |
9 | - * modify it under the terms of the GNU Lesser General Public License | |
10 | - * as published by the Free Software Foundation; either version 2.1 | |
11 | - * of the License, or (at your option) any later version. | |
12 | - * | |
13 | - * This program is distributed in the hope that it will be useful, | |
14 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | - * GNU General Public License for more details. | |
17 | - * | |
18 | - * You should have received a copy of the GNU Lesser General Public License | |
19 | - * along with this program; if not, write to the Free Software | |
20 | - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
21 | - * | |
22 | - */ | |
23 | - | |
24 | -#ifndef _DVBNET_H_ | |
25 | -#define _DVBNET_H_ | |
26 | - | |
27 | -#include <linux/types.h> | |
28 | - | |
29 | -struct dvb_net_if { | |
30 | - __u16 pid; | |
31 | - __u16 if_num; | |
32 | - __u8 feedtype; | |
33 | -#define DVB_NET_FEEDTYPE_MPE 0 /* multi protocol encapsulation */ | |
34 | -#define DVB_NET_FEEDTYPE_ULE 1 /* ultra lightweight encapsulation */ | |
35 | -}; | |
36 | - | |
37 | - | |
38 | -#define NET_ADD_IF _IOWR('o', 52, struct dvb_net_if) | |
39 | -#define NET_REMOVE_IF _IO('o', 53) | |
40 | -#define NET_GET_IF _IOWR('o', 54, struct dvb_net_if) | |
41 | - | |
42 | - | |
43 | -/* binary compatibility cruft: */ | |
44 | -struct __dvb_net_if_old { | |
45 | - __u16 pid; | |
46 | - __u16 if_num; | |
47 | -}; | |
48 | -#define __NET_ADD_IF_OLD _IOWR('o', 52, struct __dvb_net_if_old) | |
49 | -#define __NET_GET_IF_OLD _IOWR('o', 54, struct __dvb_net_if_old) | |
50 | - | |
51 | - | |
52 | -#endif /*_DVBNET_H_*/ |
include/linux/dvb/osd.h
1 | -/* | |
2 | - * osd.h | |
3 | - * | |
4 | - * Copyright (C) 2001 Ralph Metzler <ralph@convergence.de> | |
5 | - * & Marcus Metzler <marcus@convergence.de> | |
6 | - * for convergence integrated media GmbH | |
7 | - * | |
8 | - * This program is free software; you can redistribute it and/or | |
9 | - * modify it under the terms of the GNU General Lesser Public License | |
10 | - * as published by the Free Software Foundation; either version 2.1 | |
11 | - * of the License, or (at your option) any later version. | |
12 | - * | |
13 | - * This program is distributed in the hope that it will be useful, | |
14 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | - * GNU General Public License for more details. | |
17 | - * | |
18 | - * You should have received a copy of the GNU Lesser General Public License | |
19 | - * along with this program; if not, write to the Free Software | |
20 | - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
21 | - * | |
22 | - */ | |
23 | - | |
24 | -#ifndef _DVBOSD_H_ | |
25 | -#define _DVBOSD_H_ | |
26 | - | |
27 | -#include <linux/compiler.h> | |
28 | - | |
29 | -typedef enum { | |
30 | - // All functions return -2 on "not open" | |
31 | - OSD_Close=1, // () | |
32 | - // Disables OSD and releases the buffers | |
33 | - // returns 0 on success | |
34 | - OSD_Open, // (x0,y0,x1,y1,BitPerPixel[2/4/8](color&0x0F),mix[0..15](color&0xF0)) | |
35 | - // Opens OSD with this size and bit depth | |
36 | - // returns 0 on success, -1 on DRAM allocation error, -2 on "already open" | |
37 | - OSD_Show, // () | |
38 | - // enables OSD mode | |
39 | - // returns 0 on success | |
40 | - OSD_Hide, // () | |
41 | - // disables OSD mode | |
42 | - // returns 0 on success | |
43 | - OSD_Clear, // () | |
44 | - // Sets all pixel to color 0 | |
45 | - // returns 0 on success | |
46 | - OSD_Fill, // (color) | |
47 | - // Sets all pixel to color <col> | |
48 | - // returns 0 on success | |
49 | - OSD_SetColor, // (color,R{x0},G{y0},B{x1},opacity{y1}) | |
50 | - // set palette entry <num> to <r,g,b>, <mix> and <trans> apply | |
51 | - // R,G,B: 0..255 | |
52 | - // R=Red, G=Green, B=Blue | |
53 | - // opacity=0: pixel opacity 0% (only video pixel shows) | |
54 | - // opacity=1..254: pixel opacity as specified in header | |
55 | - // opacity=255: pixel opacity 100% (only OSD pixel shows) | |
56 | - // returns 0 on success, -1 on error | |
57 | - OSD_SetPalette, // (firstcolor{color},lastcolor{x0},data) | |
58 | - // Set a number of entries in the palette | |
59 | - // sets the entries "firstcolor" through "lastcolor" from the array "data" | |
60 | - // data has 4 byte for each color: | |
61 | - // R,G,B, and a opacity value: 0->transparent, 1..254->mix, 255->pixel | |
62 | - OSD_SetTrans, // (transparency{color}) | |
63 | - // Sets transparency of mixed pixel (0..15) | |
64 | - // returns 0 on success | |
65 | - OSD_SetPixel, // (x0,y0,color) | |
66 | - // sets pixel <x>,<y> to color number <col> | |
67 | - // returns 0 on success, -1 on error | |
68 | - OSD_GetPixel, // (x0,y0) | |
69 | - // returns color number of pixel <x>,<y>, or -1 | |
70 | - OSD_SetRow, // (x0,y0,x1,data) | |
71 | - // fills pixels x0,y through x1,y with the content of data[] | |
72 | - // returns 0 on success, -1 on clipping all pixel (no pixel drawn) | |
73 | - OSD_SetBlock, // (x0,y0,x1,y1,increment{color},data) | |
74 | - // fills pixels x0,y0 through x1,y1 with the content of data[] | |
75 | - // inc contains the width of one line in the data block, | |
76 | - // inc<=0 uses blockwidth as linewidth | |
77 | - // returns 0 on success, -1 on clipping all pixel | |
78 | - OSD_FillRow, // (x0,y0,x1,color) | |
79 | - // fills pixels x0,y through x1,y with the color <col> | |
80 | - // returns 0 on success, -1 on clipping all pixel | |
81 | - OSD_FillBlock, // (x0,y0,x1,y1,color) | |
82 | - // fills pixels x0,y0 through x1,y1 with the color <col> | |
83 | - // returns 0 on success, -1 on clipping all pixel | |
84 | - OSD_Line, // (x0,y0,x1,y1,color) | |
85 | - // draw a line from x0,y0 to x1,y1 with the color <col> | |
86 | - // returns 0 on success | |
87 | - OSD_Query, // (x0,y0,x1,y1,xasp{color}}), yasp=11 | |
88 | - // fills parameters with the picture dimensions and the pixel aspect ratio | |
89 | - // returns 0 on success | |
90 | - OSD_Test, // () | |
91 | - // draws a test picture. for debugging purposes only | |
92 | - // returns 0 on success | |
93 | -// TODO: remove "test" in final version | |
94 | - OSD_Text, // (x0,y0,size,color,text) | |
95 | - OSD_SetWindow, // (x0) set window with number 0<x0<8 as current | |
96 | - OSD_MoveWindow, // move current window to (x0, y0) | |
97 | - OSD_OpenRaw, // Open other types of OSD windows | |
98 | -} OSD_Command; | |
99 | - | |
100 | -typedef struct osd_cmd_s { | |
101 | - OSD_Command cmd; | |
102 | - int x0; | |
103 | - int y0; | |
104 | - int x1; | |
105 | - int y1; | |
106 | - int color; | |
107 | - void __user *data; | |
108 | -} osd_cmd_t; | |
109 | - | |
110 | -/* OSD_OpenRaw: set 'color' to desired window type */ | |
111 | -typedef enum { | |
112 | - OSD_BITMAP1, /* 1 bit bitmap */ | |
113 | - OSD_BITMAP2, /* 2 bit bitmap */ | |
114 | - OSD_BITMAP4, /* 4 bit bitmap */ | |
115 | - OSD_BITMAP8, /* 8 bit bitmap */ | |
116 | - OSD_BITMAP1HR, /* 1 Bit bitmap half resolution */ | |
117 | - OSD_BITMAP2HR, /* 2 bit bitmap half resolution */ | |
118 | - OSD_BITMAP4HR, /* 4 bit bitmap half resolution */ | |
119 | - OSD_BITMAP8HR, /* 8 bit bitmap half resolution */ | |
120 | - OSD_YCRCB422, /* 4:2:2 YCRCB Graphic Display */ | |
121 | - OSD_YCRCB444, /* 4:4:4 YCRCB Graphic Display */ | |
122 | - OSD_YCRCB444HR, /* 4:4:4 YCRCB graphic half resolution */ | |
123 | - OSD_VIDEOTSIZE, /* True Size Normal MPEG Video Display */ | |
124 | - OSD_VIDEOHSIZE, /* MPEG Video Display Half Resolution */ | |
125 | - OSD_VIDEOQSIZE, /* MPEG Video Display Quarter Resolution */ | |
126 | - OSD_VIDEODSIZE, /* MPEG Video Display Double Resolution */ | |
127 | - OSD_VIDEOTHSIZE, /* True Size MPEG Video Display Half Resolution */ | |
128 | - OSD_VIDEOTQSIZE, /* True Size MPEG Video Display Quarter Resolution*/ | |
129 | - OSD_VIDEOTDSIZE, /* True Size MPEG Video Display Double Resolution */ | |
130 | - OSD_VIDEONSIZE, /* Full Size MPEG Video Display */ | |
131 | - OSD_CURSOR /* Cursor */ | |
132 | -} osd_raw_window_t; | |
133 | - | |
134 | -typedef struct osd_cap_s { | |
135 | - int cmd; | |
136 | -#define OSD_CAP_MEMSIZE 1 /* memory size */ | |
137 | - long val; | |
138 | -} osd_cap_t; | |
139 | - | |
140 | - | |
141 | -#define OSD_SEND_CMD _IOW('o', 160, osd_cmd_t) | |
142 | -#define OSD_GET_CAPABILITY _IOR('o', 161, osd_cap_t) | |
143 | - | |
144 | -#endif |
include/linux/dvb/version.h
1 | -/* | |
2 | - * version.h | |
3 | - * | |
4 | - * Copyright (C) 2000 Holger Waechtler <holger@convergence.de> | |
5 | - * for convergence integrated media GmbH | |
6 | - * | |
7 | - * This program is free software; you can redistribute it and/or | |
8 | - * modify it under the terms of the GNU Lesser General Public License | |
9 | - * as published by the Free Software Foundation; either version 2.1 | |
10 | - * of the License, or (at your option) any later version. | |
11 | - * | |
12 | - * This program is distributed in the hope that it will be useful, | |
13 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 | - * GNU General Public License for more details. | |
16 | - * | |
17 | - * You should have received a copy of the GNU Lesser General Public License | |
18 | - * along with this program; if not, write to the Free Software | |
19 | - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
20 | - * | |
21 | - */ | |
22 | - | |
23 | -#ifndef _DVBVERSION_H_ | |
24 | -#define _DVBVERSION_H_ | |
25 | - | |
26 | -#define DVB_API_VERSION 5 | |
27 | -#define DVB_API_VERSION_MINOR 9 | |
28 | - | |
29 | -#endif /*_DVBVERSION_H_*/ |
include/linux/dvb/video.h
... | ... | @@ -20,258 +20,11 @@ |
20 | 20 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
21 | 21 | * |
22 | 22 | */ |
23 | - | |
24 | 23 | #ifndef _DVBVIDEO_H_ |
25 | 24 | #define _DVBVIDEO_H_ |
26 | 25 | |
27 | -#include <linux/types.h> | |
28 | -#ifdef __KERNEL__ | |
29 | 26 | #include <linux/compiler.h> |
30 | -#else | |
31 | -#include <stdint.h> | |
32 | -#include <time.h> | |
33 | -#endif | |
34 | - | |
35 | -typedef enum { | |
36 | - VIDEO_FORMAT_4_3, /* Select 4:3 format */ | |
37 | - VIDEO_FORMAT_16_9, /* Select 16:9 format. */ | |
38 | - VIDEO_FORMAT_221_1 /* 2.21:1 */ | |
39 | -} video_format_t; | |
40 | - | |
41 | - | |
42 | -typedef enum { | |
43 | - VIDEO_SYSTEM_PAL, | |
44 | - VIDEO_SYSTEM_NTSC, | |
45 | - VIDEO_SYSTEM_PALN, | |
46 | - VIDEO_SYSTEM_PALNc, | |
47 | - VIDEO_SYSTEM_PALM, | |
48 | - VIDEO_SYSTEM_NTSC60, | |
49 | - VIDEO_SYSTEM_PAL60, | |
50 | - VIDEO_SYSTEM_PALM60 | |
51 | -} video_system_t; | |
52 | - | |
53 | - | |
54 | -typedef enum { | |
55 | - VIDEO_PAN_SCAN, /* use pan and scan format */ | |
56 | - VIDEO_LETTER_BOX, /* use letterbox format */ | |
57 | - VIDEO_CENTER_CUT_OUT /* use center cut out format */ | |
58 | -} video_displayformat_t; | |
59 | - | |
60 | -typedef struct { | |
61 | - int w; | |
62 | - int h; | |
63 | - video_format_t aspect_ratio; | |
64 | -} video_size_t; | |
65 | - | |
66 | -typedef enum { | |
67 | - VIDEO_SOURCE_DEMUX, /* Select the demux as the main source */ | |
68 | - VIDEO_SOURCE_MEMORY /* If this source is selected, the stream | |
69 | - comes from the user through the write | |
70 | - system call */ | |
71 | -} video_stream_source_t; | |
72 | - | |
73 | - | |
74 | -typedef enum { | |
75 | - VIDEO_STOPPED, /* Video is stopped */ | |
76 | - VIDEO_PLAYING, /* Video is currently playing */ | |
77 | - VIDEO_FREEZED /* Video is freezed */ | |
78 | -} video_play_state_t; | |
79 | - | |
80 | - | |
81 | -/* Decoder commands */ | |
82 | -#define VIDEO_CMD_PLAY (0) | |
83 | -#define VIDEO_CMD_STOP (1) | |
84 | -#define VIDEO_CMD_FREEZE (2) | |
85 | -#define VIDEO_CMD_CONTINUE (3) | |
86 | - | |
87 | -/* Flags for VIDEO_CMD_FREEZE */ | |
88 | -#define VIDEO_CMD_FREEZE_TO_BLACK (1 << 0) | |
89 | - | |
90 | -/* Flags for VIDEO_CMD_STOP */ | |
91 | -#define VIDEO_CMD_STOP_TO_BLACK (1 << 0) | |
92 | -#define VIDEO_CMD_STOP_IMMEDIATELY (1 << 1) | |
93 | - | |
94 | -/* Play input formats: */ | |
95 | -/* The decoder has no special format requirements */ | |
96 | -#define VIDEO_PLAY_FMT_NONE (0) | |
97 | -/* The decoder requires full GOPs */ | |
98 | -#define VIDEO_PLAY_FMT_GOP (1) | |
99 | - | |
100 | -/* The structure must be zeroed before use by the application | |
101 | - This ensures it can be extended safely in the future. */ | |
102 | -struct video_command { | |
103 | - __u32 cmd; | |
104 | - __u32 flags; | |
105 | - union { | |
106 | - struct { | |
107 | - __u64 pts; | |
108 | - } stop; | |
109 | - | |
110 | - struct { | |
111 | - /* 0 or 1000 specifies normal speed, | |
112 | - 1 specifies forward single stepping, | |
113 | - -1 specifies backward single stepping, | |
114 | - >1: playback at speed/1000 of the normal speed, | |
115 | - <-1: reverse playback at (-speed/1000) of the normal speed. */ | |
116 | - __s32 speed; | |
117 | - __u32 format; | |
118 | - } play; | |
119 | - | |
120 | - struct { | |
121 | - __u32 data[16]; | |
122 | - } raw; | |
123 | - }; | |
124 | -}; | |
125 | - | |
126 | -/* FIELD_UNKNOWN can be used if the hardware does not know whether | |
127 | - the Vsync is for an odd, even or progressive (i.e. non-interlaced) | |
128 | - field. */ | |
129 | -#define VIDEO_VSYNC_FIELD_UNKNOWN (0) | |
130 | -#define VIDEO_VSYNC_FIELD_ODD (1) | |
131 | -#define VIDEO_VSYNC_FIELD_EVEN (2) | |
132 | -#define VIDEO_VSYNC_FIELD_PROGRESSIVE (3) | |
133 | - | |
134 | -struct video_event { | |
135 | - __s32 type; | |
136 | -#define VIDEO_EVENT_SIZE_CHANGED 1 | |
137 | -#define VIDEO_EVENT_FRAME_RATE_CHANGED 2 | |
138 | -#define VIDEO_EVENT_DECODER_STOPPED 3 | |
139 | -#define VIDEO_EVENT_VSYNC 4 | |
140 | - __kernel_time_t timestamp; | |
141 | - union { | |
142 | - video_size_t size; | |
143 | - unsigned int frame_rate; /* in frames per 1000sec */ | |
144 | - unsigned char vsync_field; /* unknown/odd/even/progressive */ | |
145 | - } u; | |
146 | -}; | |
147 | - | |
148 | - | |
149 | -struct video_status { | |
150 | - int video_blank; /* blank video on freeze? */ | |
151 | - video_play_state_t play_state; /* current state of playback */ | |
152 | - video_stream_source_t stream_source; /* current source (demux/memory) */ | |
153 | - video_format_t video_format; /* current aspect ratio of stream*/ | |
154 | - video_displayformat_t display_format;/* selected cropping mode */ | |
155 | -}; | |
156 | - | |
157 | - | |
158 | -struct video_still_picture { | |
159 | - char __user *iFrame; /* pointer to a single iframe in memory */ | |
160 | - __s32 size; | |
161 | -}; | |
162 | - | |
163 | - | |
164 | -typedef | |
165 | -struct video_highlight { | |
166 | - int active; /* 1=show highlight, 0=hide highlight */ | |
167 | - __u8 contrast1; /* 7- 4 Pattern pixel contrast */ | |
168 | - /* 3- 0 Background pixel contrast */ | |
169 | - __u8 contrast2; /* 7- 4 Emphasis pixel-2 contrast */ | |
170 | - /* 3- 0 Emphasis pixel-1 contrast */ | |
171 | - __u8 color1; /* 7- 4 Pattern pixel color */ | |
172 | - /* 3- 0 Background pixel color */ | |
173 | - __u8 color2; /* 7- 4 Emphasis pixel-2 color */ | |
174 | - /* 3- 0 Emphasis pixel-1 color */ | |
175 | - __u32 ypos; /* 23-22 auto action mode */ | |
176 | - /* 21-12 start y */ | |
177 | - /* 9- 0 end y */ | |
178 | - __u32 xpos; /* 23-22 button color number */ | |
179 | - /* 21-12 start x */ | |
180 | - /* 9- 0 end x */ | |
181 | -} video_highlight_t; | |
182 | - | |
183 | - | |
184 | -typedef struct video_spu { | |
185 | - int active; | |
186 | - int stream_id; | |
187 | -} video_spu_t; | |
188 | - | |
189 | - | |
190 | -typedef struct video_spu_palette { /* SPU Palette information */ | |
191 | - int length; | |
192 | - __u8 __user *palette; | |
193 | -} video_spu_palette_t; | |
194 | - | |
195 | - | |
196 | -typedef struct video_navi_pack { | |
197 | - int length; /* 0 ... 1024 */ | |
198 | - __u8 data[1024]; | |
199 | -} video_navi_pack_t; | |
200 | - | |
201 | - | |
202 | -typedef __u16 video_attributes_t; | |
203 | -/* bits: descr. */ | |
204 | -/* 15-14 Video compression mode (0=MPEG-1, 1=MPEG-2) */ | |
205 | -/* 13-12 TV system (0=525/60, 1=625/50) */ | |
206 | -/* 11-10 Aspect ratio (0=4:3, 3=16:9) */ | |
207 | -/* 9- 8 permitted display mode on 4:3 monitor (0=both, 1=only pan-sca */ | |
208 | -/* 7 line 21-1 data present in GOP (1=yes, 0=no) */ | |
209 | -/* 6 line 21-2 data present in GOP (1=yes, 0=no) */ | |
210 | -/* 5- 3 source resolution (0=720x480/576, 1=704x480/576, 2=352x480/57 */ | |
211 | -/* 2 source letterboxed (1=yes, 0=no) */ | |
212 | -/* 0 film/camera mode (0=camera, 1=film (625/50 only)) */ | |
213 | - | |
214 | - | |
215 | -/* bit definitions for capabilities: */ | |
216 | -/* can the hardware decode MPEG1 and/or MPEG2? */ | |
217 | -#define VIDEO_CAP_MPEG1 1 | |
218 | -#define VIDEO_CAP_MPEG2 2 | |
219 | -/* can you send a system and/or program stream to video device? | |
220 | - (you still have to open the video and the audio device but only | |
221 | - send the stream to the video device) */ | |
222 | -#define VIDEO_CAP_SYS 4 | |
223 | -#define VIDEO_CAP_PROG 8 | |
224 | -/* can the driver also handle SPU, NAVI and CSS encoded data? | |
225 | - (CSS API is not present yet) */ | |
226 | -#define VIDEO_CAP_SPU 16 | |
227 | -#define VIDEO_CAP_NAVI 32 | |
228 | -#define VIDEO_CAP_CSS 64 | |
229 | - | |
230 | - | |
231 | -#define VIDEO_STOP _IO('o', 21) | |
232 | -#define VIDEO_PLAY _IO('o', 22) | |
233 | -#define VIDEO_FREEZE _IO('o', 23) | |
234 | -#define VIDEO_CONTINUE _IO('o', 24) | |
235 | -#define VIDEO_SELECT_SOURCE _IO('o', 25) | |
236 | -#define VIDEO_SET_BLANK _IO('o', 26) | |
237 | -#define VIDEO_GET_STATUS _IOR('o', 27, struct video_status) | |
238 | -#define VIDEO_GET_EVENT _IOR('o', 28, struct video_event) | |
239 | -#define VIDEO_SET_DISPLAY_FORMAT _IO('o', 29) | |
240 | -#define VIDEO_STILLPICTURE _IOW('o', 30, struct video_still_picture) | |
241 | -#define VIDEO_FAST_FORWARD _IO('o', 31) | |
242 | -#define VIDEO_SLOWMOTION _IO('o', 32) | |
243 | -#define VIDEO_GET_CAPABILITIES _IOR('o', 33, unsigned int) | |
244 | -#define VIDEO_CLEAR_BUFFER _IO('o', 34) | |
245 | -#define VIDEO_SET_ID _IO('o', 35) | |
246 | -#define VIDEO_SET_STREAMTYPE _IO('o', 36) | |
247 | -#define VIDEO_SET_FORMAT _IO('o', 37) | |
248 | -#define VIDEO_SET_SYSTEM _IO('o', 38) | |
249 | -#define VIDEO_SET_HIGHLIGHT _IOW('o', 39, video_highlight_t) | |
250 | -#define VIDEO_SET_SPU _IOW('o', 50, video_spu_t) | |
251 | -#define VIDEO_SET_SPU_PALETTE _IOW('o', 51, video_spu_palette_t) | |
252 | -#define VIDEO_GET_NAVI _IOR('o', 52, video_navi_pack_t) | |
253 | -#define VIDEO_SET_ATTRIBUTES _IO('o', 53) | |
254 | -#define VIDEO_GET_SIZE _IOR('o', 55, video_size_t) | |
255 | -#define VIDEO_GET_FRAME_RATE _IOR('o', 56, unsigned int) | |
256 | - | |
257 | -/** | |
258 | - * VIDEO_GET_PTS | |
259 | - * | |
260 | - * Read the 33 bit presentation time stamp as defined | |
261 | - * in ITU T-REC-H.222.0 / ISO/IEC 13818-1. | |
262 | - * | |
263 | - * The PTS should belong to the currently played | |
264 | - * frame if possible, but may also be a value close to it | |
265 | - * like the PTS of the last decoded frame or the last PTS | |
266 | - * extracted by the PES parser. | |
267 | - */ | |
268 | -#define VIDEO_GET_PTS _IOR('o', 57, __u64) | |
269 | - | |
270 | -/* Read the number of displayed frames since the decoder was started */ | |
271 | -#define VIDEO_GET_FRAME_COUNT _IOR('o', 58, __u64) | |
272 | - | |
273 | -#define VIDEO_COMMAND _IOWR('o', 59, struct video_command) | |
274 | -#define VIDEO_TRY_COMMAND _IOWR('o', 60, struct video_command) | |
27 | +#include <uapi/linux/dvb/video.h> | |
275 | 28 | |
276 | 29 | #endif /*_DVBVIDEO_H_*/ |
include/uapi/linux/dvb/Kbuild
include/uapi/linux/dvb/audio.h
1 | +/* | |
2 | + * audio.h | |
3 | + * | |
4 | + * Copyright (C) 2000 Ralph Metzler <ralph@convergence.de> | |
5 | + * & Marcus Metzler <marcus@convergence.de> | |
6 | + * for convergence integrated media GmbH | |
7 | + * | |
8 | + * This program is free software; you can redistribute it and/or | |
9 | + * modify it under the terms of the GNU General Lesser Public License | |
10 | + * as published by the Free Software Foundation; either version 2.1 | |
11 | + * of the License, or (at your option) any later version. | |
12 | + * | |
13 | + * This program is distributed in the hope that it will be useful, | |
14 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | + * GNU General Public License for more details. | |
17 | + * | |
18 | + * You should have received a copy of the GNU Lesser General Public License | |
19 | + * along with this program; if not, write to the Free Software | |
20 | + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
21 | + * | |
22 | + */ | |
23 | + | |
24 | +#ifndef _DVBAUDIO_H_ | |
25 | +#define _DVBAUDIO_H_ | |
26 | + | |
27 | +#include <linux/types.h> | |
28 | + | |
29 | +typedef enum { | |
30 | + AUDIO_SOURCE_DEMUX, /* Select the demux as the main source */ | |
31 | + AUDIO_SOURCE_MEMORY /* Select internal memory as the main source */ | |
32 | +} audio_stream_source_t; | |
33 | + | |
34 | + | |
35 | +typedef enum { | |
36 | + AUDIO_STOPPED, /* Device is stopped */ | |
37 | + AUDIO_PLAYING, /* Device is currently playing */ | |
38 | + AUDIO_PAUSED /* Device is paused */ | |
39 | +} audio_play_state_t; | |
40 | + | |
41 | + | |
42 | +typedef enum { | |
43 | + AUDIO_STEREO, | |
44 | + AUDIO_MONO_LEFT, | |
45 | + AUDIO_MONO_RIGHT, | |
46 | + AUDIO_MONO, | |
47 | + AUDIO_STEREO_SWAPPED | |
48 | +} audio_channel_select_t; | |
49 | + | |
50 | + | |
51 | +typedef struct audio_mixer { | |
52 | + unsigned int volume_left; | |
53 | + unsigned int volume_right; | |
54 | + // what else do we need? bass, pass-through, ... | |
55 | +} audio_mixer_t; | |
56 | + | |
57 | + | |
58 | +typedef struct audio_status { | |
59 | + int AV_sync_state; /* sync audio and video? */ | |
60 | + int mute_state; /* audio is muted */ | |
61 | + audio_play_state_t play_state; /* current playback state */ | |
62 | + audio_stream_source_t stream_source; /* current stream source */ | |
63 | + audio_channel_select_t channel_select; /* currently selected channel */ | |
64 | + int bypass_mode; /* pass on audio data to */ | |
65 | + audio_mixer_t mixer_state; /* current mixer state */ | |
66 | +} audio_status_t; /* separate decoder hardware */ | |
67 | + | |
68 | + | |
69 | +typedef | |
70 | +struct audio_karaoke { /* if Vocal1 or Vocal2 are non-zero, they get mixed */ | |
71 | + int vocal1; /* into left and right t at 70% each */ | |
72 | + int vocal2; /* if both, Vocal1 and Vocal2 are non-zero, Vocal1 gets*/ | |
73 | + int melody; /* mixed into the left channel and */ | |
74 | + /* Vocal2 into the right channel at 100% each. */ | |
75 | + /* if Melody is non-zero, the melody channel gets mixed*/ | |
76 | +} audio_karaoke_t; /* into left and right */ | |
77 | + | |
78 | + | |
79 | +typedef __u16 audio_attributes_t; | |
80 | +/* bits: descr. */ | |
81 | +/* 15-13 audio coding mode (0=ac3, 2=mpeg1, 3=mpeg2ext, 4=LPCM, 6=DTS, */ | |
82 | +/* 12 multichannel extension */ | |
83 | +/* 11-10 audio type (0=not spec, 1=language included) */ | |
84 | +/* 9- 8 audio application mode (0=not spec, 1=karaoke, 2=surround) */ | |
85 | +/* 7- 6 Quantization / DRC (mpeg audio: 1=DRC exists)(lpcm: 0=16bit, */ | |
86 | +/* 5- 4 Sample frequency fs (0=48kHz, 1=96kHz) */ | |
87 | +/* 2- 0 number of audio channels (n+1 channels) */ | |
88 | + | |
89 | + | |
90 | +/* for GET_CAPABILITIES and SET_FORMAT, the latter should only set one bit */ | |
91 | +#define AUDIO_CAP_DTS 1 | |
92 | +#define AUDIO_CAP_LPCM 2 | |
93 | +#define AUDIO_CAP_MP1 4 | |
94 | +#define AUDIO_CAP_MP2 8 | |
95 | +#define AUDIO_CAP_MP3 16 | |
96 | +#define AUDIO_CAP_AAC 32 | |
97 | +#define AUDIO_CAP_OGG 64 | |
98 | +#define AUDIO_CAP_SDDS 128 | |
99 | +#define AUDIO_CAP_AC3 256 | |
100 | + | |
101 | +#define AUDIO_STOP _IO('o', 1) | |
102 | +#define AUDIO_PLAY _IO('o', 2) | |
103 | +#define AUDIO_PAUSE _IO('o', 3) | |
104 | +#define AUDIO_CONTINUE _IO('o', 4) | |
105 | +#define AUDIO_SELECT_SOURCE _IO('o', 5) | |
106 | +#define AUDIO_SET_MUTE _IO('o', 6) | |
107 | +#define AUDIO_SET_AV_SYNC _IO('o', 7) | |
108 | +#define AUDIO_SET_BYPASS_MODE _IO('o', 8) | |
109 | +#define AUDIO_CHANNEL_SELECT _IO('o', 9) | |
110 | +#define AUDIO_GET_STATUS _IOR('o', 10, audio_status_t) | |
111 | + | |
112 | +#define AUDIO_GET_CAPABILITIES _IOR('o', 11, unsigned int) | |
113 | +#define AUDIO_CLEAR_BUFFER _IO('o', 12) | |
114 | +#define AUDIO_SET_ID _IO('o', 13) | |
115 | +#define AUDIO_SET_MIXER _IOW('o', 14, audio_mixer_t) | |
116 | +#define AUDIO_SET_STREAMTYPE _IO('o', 15) | |
117 | +#define AUDIO_SET_EXT_ID _IO('o', 16) | |
118 | +#define AUDIO_SET_ATTRIBUTES _IOW('o', 17, audio_attributes_t) | |
119 | +#define AUDIO_SET_KARAOKE _IOW('o', 18, audio_karaoke_t) | |
120 | + | |
121 | +/** | |
122 | + * AUDIO_GET_PTS | |
123 | + * | |
124 | + * Read the 33 bit presentation time stamp as defined | |
125 | + * in ITU T-REC-H.222.0 / ISO/IEC 13818-1. | |
126 | + * | |
127 | + * The PTS should belong to the currently played | |
128 | + * frame if possible, but may also be a value close to it | |
129 | + * like the PTS of the last decoded frame or the last PTS | |
130 | + * extracted by the PES parser. | |
131 | + */ | |
132 | +#define AUDIO_GET_PTS _IOR('o', 19, __u64) | |
133 | +#define AUDIO_BILINGUAL_CHANNEL_SELECT _IO('o', 20) | |
134 | + | |
135 | +#endif /* _DVBAUDIO_H_ */ |
include/uapi/linux/dvb/ca.h
1 | +/* | |
2 | + * ca.h | |
3 | + * | |
4 | + * Copyright (C) 2000 Ralph Metzler <ralph@convergence.de> | |
5 | + * & Marcus Metzler <marcus@convergence.de> | |
6 | + * for convergence integrated media GmbH | |
7 | + * | |
8 | + * This program is free software; you can redistribute it and/or | |
9 | + * modify it under the terms of the GNU General Lesser Public License | |
10 | + * as published by the Free Software Foundation; either version 2.1 | |
11 | + * of the License, or (at your option) any later version. | |
12 | + * | |
13 | + * This program is distributed in the hope that it will be useful, | |
14 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | + * GNU General Public License for more details. | |
17 | + * | |
18 | + * You should have received a copy of the GNU Lesser General Public License | |
19 | + * along with this program; if not, write to the Free Software | |
20 | + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
21 | + * | |
22 | + */ | |
23 | + | |
24 | +#ifndef _DVBCA_H_ | |
25 | +#define _DVBCA_H_ | |
26 | + | |
27 | +/* slot interface types and info */ | |
28 | + | |
29 | +typedef struct ca_slot_info { | |
30 | + int num; /* slot number */ | |
31 | + | |
32 | + int type; /* CA interface this slot supports */ | |
33 | +#define CA_CI 1 /* CI high level interface */ | |
34 | +#define CA_CI_LINK 2 /* CI link layer level interface */ | |
35 | +#define CA_CI_PHYS 4 /* CI physical layer level interface */ | |
36 | +#define CA_DESCR 8 /* built-in descrambler */ | |
37 | +#define CA_SC 128 /* simple smart card interface */ | |
38 | + | |
39 | + unsigned int flags; | |
40 | +#define CA_CI_MODULE_PRESENT 1 /* module (or card) inserted */ | |
41 | +#define CA_CI_MODULE_READY 2 | |
42 | +} ca_slot_info_t; | |
43 | + | |
44 | + | |
45 | +/* descrambler types and info */ | |
46 | + | |
47 | +typedef struct ca_descr_info { | |
48 | + unsigned int num; /* number of available descramblers (keys) */ | |
49 | + unsigned int type; /* type of supported scrambling system */ | |
50 | +#define CA_ECD 1 | |
51 | +#define CA_NDS 2 | |
52 | +#define CA_DSS 4 | |
53 | +} ca_descr_info_t; | |
54 | + | |
55 | +typedef struct ca_caps { | |
56 | + unsigned int slot_num; /* total number of CA card and module slots */ | |
57 | + unsigned int slot_type; /* OR of all supported types */ | |
58 | + unsigned int descr_num; /* total number of descrambler slots (keys) */ | |
59 | + unsigned int descr_type; /* OR of all supported types */ | |
60 | +} ca_caps_t; | |
61 | + | |
62 | +/* a message to/from a CI-CAM */ | |
63 | +typedef struct ca_msg { | |
64 | + unsigned int index; | |
65 | + unsigned int type; | |
66 | + unsigned int length; | |
67 | + unsigned char msg[256]; | |
68 | +} ca_msg_t; | |
69 | + | |
70 | +typedef struct ca_descr { | |
71 | + unsigned int index; | |
72 | + unsigned int parity; /* 0 == even, 1 == odd */ | |
73 | + unsigned char cw[8]; | |
74 | +} ca_descr_t; | |
75 | + | |
76 | +typedef struct ca_pid { | |
77 | + unsigned int pid; | |
78 | + int index; /* -1 == disable*/ | |
79 | +} ca_pid_t; | |
80 | + | |
81 | +#define CA_RESET _IO('o', 128) | |
82 | +#define CA_GET_CAP _IOR('o', 129, ca_caps_t) | |
83 | +#define CA_GET_SLOT_INFO _IOR('o', 130, ca_slot_info_t) | |
84 | +#define CA_GET_DESCR_INFO _IOR('o', 131, ca_descr_info_t) | |
85 | +#define CA_GET_MSG _IOR('o', 132, ca_msg_t) | |
86 | +#define CA_SEND_MSG _IOW('o', 133, ca_msg_t) | |
87 | +#define CA_SET_DESCR _IOW('o', 134, ca_descr_t) | |
88 | +#define CA_SET_PID _IOW('o', 135, ca_pid_t) | |
89 | + | |
90 | +#endif |
include/uapi/linux/dvb/dmx.h
1 | +/* | |
2 | + * dmx.h | |
3 | + * | |
4 | + * Copyright (C) 2000 Marcus Metzler <marcus@convergence.de> | |
5 | + * & Ralph Metzler <ralph@convergence.de> | |
6 | + * for convergence integrated media GmbH | |
7 | + * | |
8 | + * This program is free software; you can redistribute it and/or | |
9 | + * modify it under the terms of the GNU Lesser General Public License | |
10 | + * as published by the Free Software Foundation; either version 2.1 | |
11 | + * of the License, or (at your option) any later version. | |
12 | + * | |
13 | + * This program is distributed in the hope that it will be useful, | |
14 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | + * GNU General Public License for more details. | |
17 | + * | |
18 | + * You should have received a copy of the GNU Lesser General Public License | |
19 | + * along with this program; if not, write to the Free Software | |
20 | + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
21 | + * | |
22 | + */ | |
23 | + | |
24 | +#ifndef _UAPI_DVBDMX_H_ | |
25 | +#define _UAPI_DVBDMX_H_ | |
26 | + | |
27 | +#include <linux/types.h> | |
28 | +#ifndef __KERNEL__ | |
29 | +#include <time.h> | |
30 | +#endif | |
31 | + | |
32 | + | |
33 | +#define DMX_FILTER_SIZE 16 | |
34 | + | |
35 | +typedef enum | |
36 | +{ | |
37 | + DMX_OUT_DECODER, /* Streaming directly to decoder. */ | |
38 | + DMX_OUT_TAP, /* Output going to a memory buffer */ | |
39 | + /* (to be retrieved via the read command).*/ | |
40 | + DMX_OUT_TS_TAP, /* Output multiplexed into a new TS */ | |
41 | + /* (to be retrieved by reading from the */ | |
42 | + /* logical DVR device). */ | |
43 | + DMX_OUT_TSDEMUX_TAP /* Like TS_TAP but retrieved from the DMX device */ | |
44 | +} dmx_output_t; | |
45 | + | |
46 | + | |
47 | +typedef enum | |
48 | +{ | |
49 | + DMX_IN_FRONTEND, /* Input from a front-end device. */ | |
50 | + DMX_IN_DVR /* Input from the logical DVR device. */ | |
51 | +} dmx_input_t; | |
52 | + | |
53 | + | |
54 | +typedef enum | |
55 | +{ | |
56 | + DMX_PES_AUDIO0, | |
57 | + DMX_PES_VIDEO0, | |
58 | + DMX_PES_TELETEXT0, | |
59 | + DMX_PES_SUBTITLE0, | |
60 | + DMX_PES_PCR0, | |
61 | + | |
62 | + DMX_PES_AUDIO1, | |
63 | + DMX_PES_VIDEO1, | |
64 | + DMX_PES_TELETEXT1, | |
65 | + DMX_PES_SUBTITLE1, | |
66 | + DMX_PES_PCR1, | |
67 | + | |
68 | + DMX_PES_AUDIO2, | |
69 | + DMX_PES_VIDEO2, | |
70 | + DMX_PES_TELETEXT2, | |
71 | + DMX_PES_SUBTITLE2, | |
72 | + DMX_PES_PCR2, | |
73 | + | |
74 | + DMX_PES_AUDIO3, | |
75 | + DMX_PES_VIDEO3, | |
76 | + DMX_PES_TELETEXT3, | |
77 | + DMX_PES_SUBTITLE3, | |
78 | + DMX_PES_PCR3, | |
79 | + | |
80 | + DMX_PES_OTHER | |
81 | +} dmx_pes_type_t; | |
82 | + | |
83 | +#define DMX_PES_AUDIO DMX_PES_AUDIO0 | |
84 | +#define DMX_PES_VIDEO DMX_PES_VIDEO0 | |
85 | +#define DMX_PES_TELETEXT DMX_PES_TELETEXT0 | |
86 | +#define DMX_PES_SUBTITLE DMX_PES_SUBTITLE0 | |
87 | +#define DMX_PES_PCR DMX_PES_PCR0 | |
88 | + | |
89 | + | |
90 | +typedef struct dmx_filter | |
91 | +{ | |
92 | + __u8 filter[DMX_FILTER_SIZE]; | |
93 | + __u8 mask[DMX_FILTER_SIZE]; | |
94 | + __u8 mode[DMX_FILTER_SIZE]; | |
95 | +} dmx_filter_t; | |
96 | + | |
97 | + | |
98 | +struct dmx_sct_filter_params | |
99 | +{ | |
100 | + __u16 pid; | |
101 | + dmx_filter_t filter; | |
102 | + __u32 timeout; | |
103 | + __u32 flags; | |
104 | +#define DMX_CHECK_CRC 1 | |
105 | +#define DMX_ONESHOT 2 | |
106 | +#define DMX_IMMEDIATE_START 4 | |
107 | +#define DMX_KERNEL_CLIENT 0x8000 | |
108 | +}; | |
109 | + | |
110 | + | |
111 | +struct dmx_pes_filter_params | |
112 | +{ | |
113 | + __u16 pid; | |
114 | + dmx_input_t input; | |
115 | + dmx_output_t output; | |
116 | + dmx_pes_type_t pes_type; | |
117 | + __u32 flags; | |
118 | +}; | |
119 | + | |
120 | +typedef struct dmx_caps { | |
121 | + __u32 caps; | |
122 | + int num_decoders; | |
123 | +} dmx_caps_t; | |
124 | + | |
125 | +typedef enum { | |
126 | + DMX_SOURCE_FRONT0 = 0, | |
127 | + DMX_SOURCE_FRONT1, | |
128 | + DMX_SOURCE_FRONT2, | |
129 | + DMX_SOURCE_FRONT3, | |
130 | + DMX_SOURCE_DVR0 = 16, | |
131 | + DMX_SOURCE_DVR1, | |
132 | + DMX_SOURCE_DVR2, | |
133 | + DMX_SOURCE_DVR3 | |
134 | +} dmx_source_t; | |
135 | + | |
136 | +struct dmx_stc { | |
137 | + unsigned int num; /* input : which STC? 0..N */ | |
138 | + unsigned int base; /* output: divisor for stc to get 90 kHz clock */ | |
139 | + __u64 stc; /* output: stc in 'base'*90 kHz units */ | |
140 | +}; | |
141 | + | |
142 | + | |
143 | +#define DMX_START _IO('o', 41) | |
144 | +#define DMX_STOP _IO('o', 42) | |
145 | +#define DMX_SET_FILTER _IOW('o', 43, struct dmx_sct_filter_params) | |
146 | +#define DMX_SET_PES_FILTER _IOW('o', 44, struct dmx_pes_filter_params) | |
147 | +#define DMX_SET_BUFFER_SIZE _IO('o', 45) | |
148 | +#define DMX_GET_PES_PIDS _IOR('o', 47, __u16[5]) | |
149 | +#define DMX_GET_CAPS _IOR('o', 48, dmx_caps_t) | |
150 | +#define DMX_SET_SOURCE _IOW('o', 49, dmx_source_t) | |
151 | +#define DMX_GET_STC _IOWR('o', 50, struct dmx_stc) | |
152 | +#define DMX_ADD_PID _IOW('o', 51, __u16) | |
153 | +#define DMX_REMOVE_PID _IOW('o', 52, __u16) | |
154 | + | |
155 | +#endif /* _UAPI_DVBDMX_H_ */ |
include/uapi/linux/dvb/frontend.h
1 | +/* | |
2 | + * frontend.h | |
3 | + * | |
4 | + * Copyright (C) 2000 Marcus Metzler <marcus@convergence.de> | |
5 | + * Ralph Metzler <ralph@convergence.de> | |
6 | + * Holger Waechtler <holger@convergence.de> | |
7 | + * Andre Draszik <ad@convergence.de> | |
8 | + * for convergence integrated media GmbH | |
9 | + * | |
10 | + * This program is free software; you can redistribute it and/or | |
11 | + * modify it under the terms of the GNU Lesser General Public License | |
12 | + * as published by the Free Software Foundation; either version 2.1 | |
13 | + * of the License, or (at your option) any later version. | |
14 | + * | |
15 | + * This program is distributed in the hope that it will be useful, | |
16 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 | + * GNU General Public License for more details. | |
19 | + * | |
20 | + * You should have received a copy of the GNU Lesser General Public License | |
21 | + * along with this program; if not, write to the Free Software | |
22 | + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
23 | + * | |
24 | + */ | |
25 | + | |
26 | +#ifndef _DVBFRONTEND_H_ | |
27 | +#define _DVBFRONTEND_H_ | |
28 | + | |
29 | +#include <linux/types.h> | |
30 | + | |
31 | +typedef enum fe_type { | |
32 | + FE_QPSK, | |
33 | + FE_QAM, | |
34 | + FE_OFDM, | |
35 | + FE_ATSC | |
36 | +} fe_type_t; | |
37 | + | |
38 | + | |
39 | +typedef enum fe_caps { | |
40 | + FE_IS_STUPID = 0, | |
41 | + FE_CAN_INVERSION_AUTO = 0x1, | |
42 | + FE_CAN_FEC_1_2 = 0x2, | |
43 | + FE_CAN_FEC_2_3 = 0x4, | |
44 | + FE_CAN_FEC_3_4 = 0x8, | |
45 | + FE_CAN_FEC_4_5 = 0x10, | |
46 | + FE_CAN_FEC_5_6 = 0x20, | |
47 | + FE_CAN_FEC_6_7 = 0x40, | |
48 | + FE_CAN_FEC_7_8 = 0x80, | |
49 | + FE_CAN_FEC_8_9 = 0x100, | |
50 | + FE_CAN_FEC_AUTO = 0x200, | |
51 | + FE_CAN_QPSK = 0x400, | |
52 | + FE_CAN_QAM_16 = 0x800, | |
53 | + FE_CAN_QAM_32 = 0x1000, | |
54 | + FE_CAN_QAM_64 = 0x2000, | |
55 | + FE_CAN_QAM_128 = 0x4000, | |
56 | + FE_CAN_QAM_256 = 0x8000, | |
57 | + FE_CAN_QAM_AUTO = 0x10000, | |
58 | + FE_CAN_TRANSMISSION_MODE_AUTO = 0x20000, | |
59 | + FE_CAN_BANDWIDTH_AUTO = 0x40000, | |
60 | + FE_CAN_GUARD_INTERVAL_AUTO = 0x80000, | |
61 | + FE_CAN_HIERARCHY_AUTO = 0x100000, | |
62 | + FE_CAN_8VSB = 0x200000, | |
63 | + FE_CAN_16VSB = 0x400000, | |
64 | + FE_HAS_EXTENDED_CAPS = 0x800000, /* We need more bitspace for newer APIs, indicate this. */ | |
65 | + FE_CAN_MULTISTREAM = 0x4000000, /* frontend supports multistream filtering */ | |
66 | + FE_CAN_TURBO_FEC = 0x8000000, /* frontend supports "turbo fec modulation" */ | |
67 | + FE_CAN_2G_MODULATION = 0x10000000, /* frontend supports "2nd generation modulation" (DVB-S2) */ | |
68 | + FE_NEEDS_BENDING = 0x20000000, /* not supported anymore, don't use (frontend requires frequency bending) */ | |
69 | + FE_CAN_RECOVER = 0x40000000, /* frontend can recover from a cable unplug automatically */ | |
70 | + FE_CAN_MUTE_TS = 0x80000000 /* frontend can stop spurious TS data output */ | |
71 | +} fe_caps_t; | |
72 | + | |
73 | + | |
74 | +struct dvb_frontend_info { | |
75 | + char name[128]; | |
76 | + fe_type_t type; /* DEPRECATED. Use DTV_ENUM_DELSYS instead */ | |
77 | + __u32 frequency_min; | |
78 | + __u32 frequency_max; | |
79 | + __u32 frequency_stepsize; | |
80 | + __u32 frequency_tolerance; | |
81 | + __u32 symbol_rate_min; | |
82 | + __u32 symbol_rate_max; | |
83 | + __u32 symbol_rate_tolerance; /* ppm */ | |
84 | + __u32 notifier_delay; /* DEPRECATED */ | |
85 | + fe_caps_t caps; | |
86 | +}; | |
87 | + | |
88 | + | |
89 | +/** | |
90 | + * Check out the DiSEqC bus spec available on http://www.eutelsat.org/ for | |
91 | + * the meaning of this struct... | |
92 | + */ | |
93 | +struct dvb_diseqc_master_cmd { | |
94 | + __u8 msg [6]; /* { framing, address, command, data [3] } */ | |
95 | + __u8 msg_len; /* valid values are 3...6 */ | |
96 | +}; | |
97 | + | |
98 | + | |
99 | +struct dvb_diseqc_slave_reply { | |
100 | + __u8 msg [4]; /* { framing, data [3] } */ | |
101 | + __u8 msg_len; /* valid values are 0...4, 0 means no msg */ | |
102 | + int timeout; /* return from ioctl after timeout ms with */ | |
103 | +}; /* errorcode when no message was received */ | |
104 | + | |
105 | + | |
106 | +typedef enum fe_sec_voltage { | |
107 | + SEC_VOLTAGE_13, | |
108 | + SEC_VOLTAGE_18, | |
109 | + SEC_VOLTAGE_OFF | |
110 | +} fe_sec_voltage_t; | |
111 | + | |
112 | + | |
113 | +typedef enum fe_sec_tone_mode { | |
114 | + SEC_TONE_ON, | |
115 | + SEC_TONE_OFF | |
116 | +} fe_sec_tone_mode_t; | |
117 | + | |
118 | + | |
119 | +typedef enum fe_sec_mini_cmd { | |
120 | + SEC_MINI_A, | |
121 | + SEC_MINI_B | |
122 | +} fe_sec_mini_cmd_t; | |
123 | + | |
124 | + | |
125 | +/** | |
126 | + * enum fe_status - enumerates the possible frontend status | |
127 | + * @FE_HAS_SIGNAL: found something above the noise level | |
128 | + * @FE_HAS_CARRIER: found a DVB signal | |
129 | + * @FE_HAS_VITERBI: FEC is stable | |
130 | + * @FE_HAS_SYNC: found sync bytes | |
131 | + * @FE_HAS_LOCK: everything's working | |
132 | + * @FE_TIMEDOUT: no lock within the last ~2 seconds | |
133 | + * @FE_REINIT: frontend was reinitialized, application is recommended | |
134 | + * to reset DiSEqC, tone and parameters | |
135 | + */ | |
136 | + | |
137 | +typedef enum fe_status { | |
138 | + FE_HAS_SIGNAL = 0x01, | |
139 | + FE_HAS_CARRIER = 0x02, | |
140 | + FE_HAS_VITERBI = 0x04, | |
141 | + FE_HAS_SYNC = 0x08, | |
142 | + FE_HAS_LOCK = 0x10, | |
143 | + FE_TIMEDOUT = 0x20, | |
144 | + FE_REINIT = 0x40, | |
145 | +} fe_status_t; | |
146 | + | |
147 | +typedef enum fe_spectral_inversion { | |
148 | + INVERSION_OFF, | |
149 | + INVERSION_ON, | |
150 | + INVERSION_AUTO | |
151 | +} fe_spectral_inversion_t; | |
152 | + | |
153 | + | |
154 | +typedef enum fe_code_rate { | |
155 | + FEC_NONE = 0, | |
156 | + FEC_1_2, | |
157 | + FEC_2_3, | |
158 | + FEC_3_4, | |
159 | + FEC_4_5, | |
160 | + FEC_5_6, | |
161 | + FEC_6_7, | |
162 | + FEC_7_8, | |
163 | + FEC_8_9, | |
164 | + FEC_AUTO, | |
165 | + FEC_3_5, | |
166 | + FEC_9_10, | |
167 | + FEC_2_5, | |
168 | +} fe_code_rate_t; | |
169 | + | |
170 | + | |
171 | +typedef enum fe_modulation { | |
172 | + QPSK, | |
173 | + QAM_16, | |
174 | + QAM_32, | |
175 | + QAM_64, | |
176 | + QAM_128, | |
177 | + QAM_256, | |
178 | + QAM_AUTO, | |
179 | + VSB_8, | |
180 | + VSB_16, | |
181 | + PSK_8, | |
182 | + APSK_16, | |
183 | + APSK_32, | |
184 | + DQPSK, | |
185 | + QAM_4_NR, | |
186 | +} fe_modulation_t; | |
187 | + | |
188 | +typedef enum fe_transmit_mode { | |
189 | + TRANSMISSION_MODE_2K, | |
190 | + TRANSMISSION_MODE_8K, | |
191 | + TRANSMISSION_MODE_AUTO, | |
192 | + TRANSMISSION_MODE_4K, | |
193 | + TRANSMISSION_MODE_1K, | |
194 | + TRANSMISSION_MODE_16K, | |
195 | + TRANSMISSION_MODE_32K, | |
196 | + TRANSMISSION_MODE_C1, | |
197 | + TRANSMISSION_MODE_C3780, | |
198 | +} fe_transmit_mode_t; | |
199 | + | |
200 | +#if defined(__DVB_CORE__) || !defined (__KERNEL__) | |
201 | +typedef enum fe_bandwidth { | |
202 | + BANDWIDTH_8_MHZ, | |
203 | + BANDWIDTH_7_MHZ, | |
204 | + BANDWIDTH_6_MHZ, | |
205 | + BANDWIDTH_AUTO, | |
206 | + BANDWIDTH_5_MHZ, | |
207 | + BANDWIDTH_10_MHZ, | |
208 | + BANDWIDTH_1_712_MHZ, | |
209 | +} fe_bandwidth_t; | |
210 | +#endif | |
211 | + | |
212 | +typedef enum fe_guard_interval { | |
213 | + GUARD_INTERVAL_1_32, | |
214 | + GUARD_INTERVAL_1_16, | |
215 | + GUARD_INTERVAL_1_8, | |
216 | + GUARD_INTERVAL_1_4, | |
217 | + GUARD_INTERVAL_AUTO, | |
218 | + GUARD_INTERVAL_1_128, | |
219 | + GUARD_INTERVAL_19_128, | |
220 | + GUARD_INTERVAL_19_256, | |
221 | + GUARD_INTERVAL_PN420, | |
222 | + GUARD_INTERVAL_PN595, | |
223 | + GUARD_INTERVAL_PN945, | |
224 | +} fe_guard_interval_t; | |
225 | + | |
226 | + | |
227 | +typedef enum fe_hierarchy { | |
228 | + HIERARCHY_NONE, | |
229 | + HIERARCHY_1, | |
230 | + HIERARCHY_2, | |
231 | + HIERARCHY_4, | |
232 | + HIERARCHY_AUTO | |
233 | +} fe_hierarchy_t; | |
234 | + | |
235 | +enum fe_interleaving { | |
236 | + INTERLEAVING_NONE, | |
237 | + INTERLEAVING_AUTO, | |
238 | + INTERLEAVING_240, | |
239 | + INTERLEAVING_720, | |
240 | +}; | |
241 | + | |
242 | +#if defined(__DVB_CORE__) || !defined (__KERNEL__) | |
243 | +struct dvb_qpsk_parameters { | |
244 | + __u32 symbol_rate; /* symbol rate in Symbols per second */ | |
245 | + fe_code_rate_t fec_inner; /* forward error correction (see above) */ | |
246 | +}; | |
247 | + | |
248 | +struct dvb_qam_parameters { | |
249 | + __u32 symbol_rate; /* symbol rate in Symbols per second */ | |
250 | + fe_code_rate_t fec_inner; /* forward error correction (see above) */ | |
251 | + fe_modulation_t modulation; /* modulation type (see above) */ | |
252 | +}; | |
253 | + | |
254 | +struct dvb_vsb_parameters { | |
255 | + fe_modulation_t modulation; /* modulation type (see above) */ | |
256 | +}; | |
257 | + | |
258 | +struct dvb_ofdm_parameters { | |
259 | + fe_bandwidth_t bandwidth; | |
260 | + fe_code_rate_t code_rate_HP; /* high priority stream code rate */ | |
261 | + fe_code_rate_t code_rate_LP; /* low priority stream code rate */ | |
262 | + fe_modulation_t constellation; /* modulation type (see above) */ | |
263 | + fe_transmit_mode_t transmission_mode; | |
264 | + fe_guard_interval_t guard_interval; | |
265 | + fe_hierarchy_t hierarchy_information; | |
266 | +}; | |
267 | + | |
268 | + | |
269 | +struct dvb_frontend_parameters { | |
270 | + __u32 frequency; /* (absolute) frequency in Hz for QAM/OFDM/ATSC */ | |
271 | + /* intermediate frequency in kHz for QPSK */ | |
272 | + fe_spectral_inversion_t inversion; | |
273 | + union { | |
274 | + struct dvb_qpsk_parameters qpsk; | |
275 | + struct dvb_qam_parameters qam; | |
276 | + struct dvb_ofdm_parameters ofdm; | |
277 | + struct dvb_vsb_parameters vsb; | |
278 | + } u; | |
279 | +}; | |
280 | + | |
281 | +struct dvb_frontend_event { | |
282 | + fe_status_t status; | |
283 | + struct dvb_frontend_parameters parameters; | |
284 | +}; | |
285 | +#endif | |
286 | + | |
287 | +/* S2API Commands */ | |
288 | +#define DTV_UNDEFINED 0 | |
289 | +#define DTV_TUNE 1 | |
290 | +#define DTV_CLEAR 2 | |
291 | +#define DTV_FREQUENCY 3 | |
292 | +#define DTV_MODULATION 4 | |
293 | +#define DTV_BANDWIDTH_HZ 5 | |
294 | +#define DTV_INVERSION 6 | |
295 | +#define DTV_DISEQC_MASTER 7 | |
296 | +#define DTV_SYMBOL_RATE 8 | |
297 | +#define DTV_INNER_FEC 9 | |
298 | +#define DTV_VOLTAGE 10 | |
299 | +#define DTV_TONE 11 | |
300 | +#define DTV_PILOT 12 | |
301 | +#define DTV_ROLLOFF 13 | |
302 | +#define DTV_DISEQC_SLAVE_REPLY 14 | |
303 | + | |
304 | +/* Basic enumeration set for querying unlimited capabilities */ | |
305 | +#define DTV_FE_CAPABILITY_COUNT 15 | |
306 | +#define DTV_FE_CAPABILITY 16 | |
307 | +#define DTV_DELIVERY_SYSTEM 17 | |
308 | + | |
309 | +/* ISDB-T and ISDB-Tsb */ | |
310 | +#define DTV_ISDBT_PARTIAL_RECEPTION 18 | |
311 | +#define DTV_ISDBT_SOUND_BROADCASTING 19 | |
312 | + | |
313 | +#define DTV_ISDBT_SB_SUBCHANNEL_ID 20 | |
314 | +#define DTV_ISDBT_SB_SEGMENT_IDX 21 | |
315 | +#define DTV_ISDBT_SB_SEGMENT_COUNT 22 | |
316 | + | |
317 | +#define DTV_ISDBT_LAYERA_FEC 23 | |
318 | +#define DTV_ISDBT_LAYERA_MODULATION 24 | |
319 | +#define DTV_ISDBT_LAYERA_SEGMENT_COUNT 25 | |
320 | +#define DTV_ISDBT_LAYERA_TIME_INTERLEAVING 26 | |
321 | + | |
322 | +#define DTV_ISDBT_LAYERB_FEC 27 | |
323 | +#define DTV_ISDBT_LAYERB_MODULATION 28 | |
324 | +#define DTV_ISDBT_LAYERB_SEGMENT_COUNT 29 | |
325 | +#define DTV_ISDBT_LAYERB_TIME_INTERLEAVING 30 | |
326 | + | |
327 | +#define DTV_ISDBT_LAYERC_FEC 31 | |
328 | +#define DTV_ISDBT_LAYERC_MODULATION 32 | |
329 | +#define DTV_ISDBT_LAYERC_SEGMENT_COUNT 33 | |
330 | +#define DTV_ISDBT_LAYERC_TIME_INTERLEAVING 34 | |
331 | + | |
332 | +#define DTV_API_VERSION 35 | |
333 | + | |
334 | +#define DTV_CODE_RATE_HP 36 | |
335 | +#define DTV_CODE_RATE_LP 37 | |
336 | +#define DTV_GUARD_INTERVAL 38 | |
337 | +#define DTV_TRANSMISSION_MODE 39 | |
338 | +#define DTV_HIERARCHY 40 | |
339 | + | |
340 | +#define DTV_ISDBT_LAYER_ENABLED 41 | |
341 | + | |
342 | +#define DTV_STREAM_ID 42 | |
343 | +#define DTV_ISDBS_TS_ID_LEGACY DTV_STREAM_ID | |
344 | +#define DTV_DVBT2_PLP_ID_LEGACY 43 | |
345 | + | |
346 | +#define DTV_ENUM_DELSYS 44 | |
347 | + | |
348 | +/* ATSC-MH */ | |
349 | +#define DTV_ATSCMH_FIC_VER 45 | |
350 | +#define DTV_ATSCMH_PARADE_ID 46 | |
351 | +#define DTV_ATSCMH_NOG 47 | |
352 | +#define DTV_ATSCMH_TNOG 48 | |
353 | +#define DTV_ATSCMH_SGN 49 | |
354 | +#define DTV_ATSCMH_PRC 50 | |
355 | +#define DTV_ATSCMH_RS_FRAME_MODE 51 | |
356 | +#define DTV_ATSCMH_RS_FRAME_ENSEMBLE 52 | |
357 | +#define DTV_ATSCMH_RS_CODE_MODE_PRI 53 | |
358 | +#define DTV_ATSCMH_RS_CODE_MODE_SEC 54 | |
359 | +#define DTV_ATSCMH_SCCC_BLOCK_MODE 55 | |
360 | +#define DTV_ATSCMH_SCCC_CODE_MODE_A 56 | |
361 | +#define DTV_ATSCMH_SCCC_CODE_MODE_B 57 | |
362 | +#define DTV_ATSCMH_SCCC_CODE_MODE_C 58 | |
363 | +#define DTV_ATSCMH_SCCC_CODE_MODE_D 59 | |
364 | + | |
365 | +#define DTV_INTERLEAVING 60 | |
366 | +#define DTV_LNA 61 | |
367 | + | |
368 | +#define DTV_MAX_COMMAND DTV_LNA | |
369 | + | |
370 | +typedef enum fe_pilot { | |
371 | + PILOT_ON, | |
372 | + PILOT_OFF, | |
373 | + PILOT_AUTO, | |
374 | +} fe_pilot_t; | |
375 | + | |
376 | +typedef enum fe_rolloff { | |
377 | + ROLLOFF_35, /* Implied value in DVB-S, default for DVB-S2 */ | |
378 | + ROLLOFF_20, | |
379 | + ROLLOFF_25, | |
380 | + ROLLOFF_AUTO, | |
381 | +} fe_rolloff_t; | |
382 | + | |
383 | +typedef enum fe_delivery_system { | |
384 | + SYS_UNDEFINED, | |
385 | + SYS_DVBC_ANNEX_A, | |
386 | + SYS_DVBC_ANNEX_B, | |
387 | + SYS_DVBT, | |
388 | + SYS_DSS, | |
389 | + SYS_DVBS, | |
390 | + SYS_DVBS2, | |
391 | + SYS_DVBH, | |
392 | + SYS_ISDBT, | |
393 | + SYS_ISDBS, | |
394 | + SYS_ISDBC, | |
395 | + SYS_ATSC, | |
396 | + SYS_ATSCMH, | |
397 | + SYS_DTMB, | |
398 | + SYS_CMMB, | |
399 | + SYS_DAB, | |
400 | + SYS_DVBT2, | |
401 | + SYS_TURBO, | |
402 | + SYS_DVBC_ANNEX_C, | |
403 | +} fe_delivery_system_t; | |
404 | + | |
405 | +/* backward compatibility */ | |
406 | +#define SYS_DVBC_ANNEX_AC SYS_DVBC_ANNEX_A | |
407 | +#define SYS_DMBTH SYS_DTMB /* DMB-TH is legacy name, use DTMB instead */ | |
408 | + | |
409 | +/* ATSC-MH */ | |
410 | + | |
411 | +enum atscmh_sccc_block_mode { | |
412 | + ATSCMH_SCCC_BLK_SEP = 0, | |
413 | + ATSCMH_SCCC_BLK_COMB = 1, | |
414 | + ATSCMH_SCCC_BLK_RES = 2, | |
415 | +}; | |
416 | + | |
417 | +enum atscmh_sccc_code_mode { | |
418 | + ATSCMH_SCCC_CODE_HLF = 0, | |
419 | + ATSCMH_SCCC_CODE_QTR = 1, | |
420 | + ATSCMH_SCCC_CODE_RES = 2, | |
421 | +}; | |
422 | + | |
423 | +enum atscmh_rs_frame_ensemble { | |
424 | + ATSCMH_RSFRAME_ENS_PRI = 0, | |
425 | + ATSCMH_RSFRAME_ENS_SEC = 1, | |
426 | +}; | |
427 | + | |
428 | +enum atscmh_rs_frame_mode { | |
429 | + ATSCMH_RSFRAME_PRI_ONLY = 0, | |
430 | + ATSCMH_RSFRAME_PRI_SEC = 1, | |
431 | + ATSCMH_RSFRAME_RES = 2, | |
432 | +}; | |
433 | + | |
434 | +enum atscmh_rs_code_mode { | |
435 | + ATSCMH_RSCODE_211_187 = 0, | |
436 | + ATSCMH_RSCODE_223_187 = 1, | |
437 | + ATSCMH_RSCODE_235_187 = 2, | |
438 | + ATSCMH_RSCODE_RES = 3, | |
439 | +}; | |
440 | + | |
441 | +#define NO_STREAM_ID_FILTER (~0U) | |
442 | +#define LNA_AUTO (~0U) | |
443 | + | |
444 | +struct dtv_cmds_h { | |
445 | + char *name; /* A display name for debugging purposes */ | |
446 | + | |
447 | + __u32 cmd; /* A unique ID */ | |
448 | + | |
449 | + /* Flags */ | |
450 | + __u32 set:1; /* Either a set or get property */ | |
451 | + __u32 buffer:1; /* Does this property use the buffer? */ | |
452 | + __u32 reserved:30; /* Align */ | |
453 | +}; | |
454 | + | |
455 | +struct dtv_property { | |
456 | + __u32 cmd; | |
457 | + __u32 reserved[3]; | |
458 | + union { | |
459 | + __u32 data; | |
460 | + struct { | |
461 | + __u8 data[32]; | |
462 | + __u32 len; | |
463 | + __u32 reserved1[3]; | |
464 | + void *reserved2; | |
465 | + } buffer; | |
466 | + } u; | |
467 | + int result; | |
468 | +} __attribute__ ((packed)); | |
469 | + | |
470 | +/* num of properties cannot exceed DTV_IOCTL_MAX_MSGS per ioctl */ | |
471 | +#define DTV_IOCTL_MAX_MSGS 64 | |
472 | + | |
473 | +struct dtv_properties { | |
474 | + __u32 num; | |
475 | + struct dtv_property *props; | |
476 | +}; | |
477 | + | |
478 | +#define FE_SET_PROPERTY _IOW('o', 82, struct dtv_properties) | |
479 | +#define FE_GET_PROPERTY _IOR('o', 83, struct dtv_properties) | |
480 | + | |
481 | + | |
482 | +/** | |
483 | + * When set, this flag will disable any zigzagging or other "normal" tuning | |
484 | + * behaviour. Additionally, there will be no automatic monitoring of the lock | |
485 | + * status, and hence no frontend events will be generated. If a frontend device | |
486 | + * is closed, this flag will be automatically turned off when the device is | |
487 | + * reopened read-write. | |
488 | + */ | |
489 | +#define FE_TUNE_MODE_ONESHOT 0x01 | |
490 | + | |
491 | + | |
492 | +#define FE_GET_INFO _IOR('o', 61, struct dvb_frontend_info) | |
493 | + | |
494 | +#define FE_DISEQC_RESET_OVERLOAD _IO('o', 62) | |
495 | +#define FE_DISEQC_SEND_MASTER_CMD _IOW('o', 63, struct dvb_diseqc_master_cmd) | |
496 | +#define FE_DISEQC_RECV_SLAVE_REPLY _IOR('o', 64, struct dvb_diseqc_slave_reply) | |
497 | +#define FE_DISEQC_SEND_BURST _IO('o', 65) /* fe_sec_mini_cmd_t */ | |
498 | + | |
499 | +#define FE_SET_TONE _IO('o', 66) /* fe_sec_tone_mode_t */ | |
500 | +#define FE_SET_VOLTAGE _IO('o', 67) /* fe_sec_voltage_t */ | |
501 | +#define FE_ENABLE_HIGH_LNB_VOLTAGE _IO('o', 68) /* int */ | |
502 | + | |
503 | +#define FE_READ_STATUS _IOR('o', 69, fe_status_t) | |
504 | +#define FE_READ_BER _IOR('o', 70, __u32) | |
505 | +#define FE_READ_SIGNAL_STRENGTH _IOR('o', 71, __u16) | |
506 | +#define FE_READ_SNR _IOR('o', 72, __u16) | |
507 | +#define FE_READ_UNCORRECTED_BLOCKS _IOR('o', 73, __u32) | |
508 | + | |
509 | +#define FE_SET_FRONTEND _IOW('o', 76, struct dvb_frontend_parameters) | |
510 | +#define FE_GET_FRONTEND _IOR('o', 77, struct dvb_frontend_parameters) | |
511 | +#define FE_SET_FRONTEND_TUNE_MODE _IO('o', 81) /* unsigned int */ | |
512 | +#define FE_GET_EVENT _IOR('o', 78, struct dvb_frontend_event) | |
513 | + | |
514 | +#define FE_DISHNETWORK_SEND_LEGACY_CMD _IO('o', 80) /* unsigned int */ | |
515 | + | |
516 | +#endif /*_DVBFRONTEND_H_*/ |
include/uapi/linux/dvb/net.h
1 | +/* | |
2 | + * net.h | |
3 | + * | |
4 | + * Copyright (C) 2000 Marcus Metzler <marcus@convergence.de> | |
5 | + * & Ralph Metzler <ralph@convergence.de> | |
6 | + * for convergence integrated media GmbH | |
7 | + * | |
8 | + * This program is free software; you can redistribute it and/or | |
9 | + * modify it under the terms of the GNU Lesser General Public License | |
10 | + * as published by the Free Software Foundation; either version 2.1 | |
11 | + * of the License, or (at your option) any later version. | |
12 | + * | |
13 | + * This program is distributed in the hope that it will be useful, | |
14 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | + * GNU General Public License for more details. | |
17 | + * | |
18 | + * You should have received a copy of the GNU Lesser General Public License | |
19 | + * along with this program; if not, write to the Free Software | |
20 | + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
21 | + * | |
22 | + */ | |
23 | + | |
24 | +#ifndef _DVBNET_H_ | |
25 | +#define _DVBNET_H_ | |
26 | + | |
27 | +#include <linux/types.h> | |
28 | + | |
29 | +struct dvb_net_if { | |
30 | + __u16 pid; | |
31 | + __u16 if_num; | |
32 | + __u8 feedtype; | |
33 | +#define DVB_NET_FEEDTYPE_MPE 0 /* multi protocol encapsulation */ | |
34 | +#define DVB_NET_FEEDTYPE_ULE 1 /* ultra lightweight encapsulation */ | |
35 | +}; | |
36 | + | |
37 | + | |
38 | +#define NET_ADD_IF _IOWR('o', 52, struct dvb_net_if) | |
39 | +#define NET_REMOVE_IF _IO('o', 53) | |
40 | +#define NET_GET_IF _IOWR('o', 54, struct dvb_net_if) | |
41 | + | |
42 | + | |
43 | +/* binary compatibility cruft: */ | |
44 | +struct __dvb_net_if_old { | |
45 | + __u16 pid; | |
46 | + __u16 if_num; | |
47 | +}; | |
48 | +#define __NET_ADD_IF_OLD _IOWR('o', 52, struct __dvb_net_if_old) | |
49 | +#define __NET_GET_IF_OLD _IOWR('o', 54, struct __dvb_net_if_old) | |
50 | + | |
51 | + | |
52 | +#endif /*_DVBNET_H_*/ |
include/uapi/linux/dvb/osd.h
1 | +/* | |
2 | + * osd.h | |
3 | + * | |
4 | + * Copyright (C) 2001 Ralph Metzler <ralph@convergence.de> | |
5 | + * & Marcus Metzler <marcus@convergence.de> | |
6 | + * for convergence integrated media GmbH | |
7 | + * | |
8 | + * This program is free software; you can redistribute it and/or | |
9 | + * modify it under the terms of the GNU General Lesser Public License | |
10 | + * as published by the Free Software Foundation; either version 2.1 | |
11 | + * of the License, or (at your option) any later version. | |
12 | + * | |
13 | + * This program is distributed in the hope that it will be useful, | |
14 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | + * GNU General Public License for more details. | |
17 | + * | |
18 | + * You should have received a copy of the GNU Lesser General Public License | |
19 | + * along with this program; if not, write to the Free Software | |
20 | + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
21 | + * | |
22 | + */ | |
23 | + | |
24 | +#ifndef _DVBOSD_H_ | |
25 | +#define _DVBOSD_H_ | |
26 | + | |
27 | +#include <linux/compiler.h> | |
28 | + | |
29 | +typedef enum { | |
30 | + // All functions return -2 on "not open" | |
31 | + OSD_Close=1, // () | |
32 | + // Disables OSD and releases the buffers | |
33 | + // returns 0 on success | |
34 | + OSD_Open, // (x0,y0,x1,y1,BitPerPixel[2/4/8](color&0x0F),mix[0..15](color&0xF0)) | |
35 | + // Opens OSD with this size and bit depth | |
36 | + // returns 0 on success, -1 on DRAM allocation error, -2 on "already open" | |
37 | + OSD_Show, // () | |
38 | + // enables OSD mode | |
39 | + // returns 0 on success | |
40 | + OSD_Hide, // () | |
41 | + // disables OSD mode | |
42 | + // returns 0 on success | |
43 | + OSD_Clear, // () | |
44 | + // Sets all pixel to color 0 | |
45 | + // returns 0 on success | |
46 | + OSD_Fill, // (color) | |
47 | + // Sets all pixel to color <col> | |
48 | + // returns 0 on success | |
49 | + OSD_SetColor, // (color,R{x0},G{y0},B{x1},opacity{y1}) | |
50 | + // set palette entry <num> to <r,g,b>, <mix> and <trans> apply | |
51 | + // R,G,B: 0..255 | |
52 | + // R=Red, G=Green, B=Blue | |
53 | + // opacity=0: pixel opacity 0% (only video pixel shows) | |
54 | + // opacity=1..254: pixel opacity as specified in header | |
55 | + // opacity=255: pixel opacity 100% (only OSD pixel shows) | |
56 | + // returns 0 on success, -1 on error | |
57 | + OSD_SetPalette, // (firstcolor{color},lastcolor{x0},data) | |
58 | + // Set a number of entries in the palette | |
59 | + // sets the entries "firstcolor" through "lastcolor" from the array "data" | |
60 | + // data has 4 byte for each color: | |
61 | + // R,G,B, and a opacity value: 0->transparent, 1..254->mix, 255->pixel | |
62 | + OSD_SetTrans, // (transparency{color}) | |
63 | + // Sets transparency of mixed pixel (0..15) | |
64 | + // returns 0 on success | |
65 | + OSD_SetPixel, // (x0,y0,color) | |
66 | + // sets pixel <x>,<y> to color number <col> | |
67 | + // returns 0 on success, -1 on error | |
68 | + OSD_GetPixel, // (x0,y0) | |
69 | + // returns color number of pixel <x>,<y>, or -1 | |
70 | + OSD_SetRow, // (x0,y0,x1,data) | |
71 | + // fills pixels x0,y through x1,y with the content of data[] | |
72 | + // returns 0 on success, -1 on clipping all pixel (no pixel drawn) | |
73 | + OSD_SetBlock, // (x0,y0,x1,y1,increment{color},data) | |
74 | + // fills pixels x0,y0 through x1,y1 with the content of data[] | |
75 | + // inc contains the width of one line in the data block, | |
76 | + // inc<=0 uses blockwidth as linewidth | |
77 | + // returns 0 on success, -1 on clipping all pixel | |
78 | + OSD_FillRow, // (x0,y0,x1,color) | |
79 | + // fills pixels x0,y through x1,y with the color <col> | |
80 | + // returns 0 on success, -1 on clipping all pixel | |
81 | + OSD_FillBlock, // (x0,y0,x1,y1,color) | |
82 | + // fills pixels x0,y0 through x1,y1 with the color <col> | |
83 | + // returns 0 on success, -1 on clipping all pixel | |
84 | + OSD_Line, // (x0,y0,x1,y1,color) | |
85 | + // draw a line from x0,y0 to x1,y1 with the color <col> | |
86 | + // returns 0 on success | |
87 | + OSD_Query, // (x0,y0,x1,y1,xasp{color}}), yasp=11 | |
88 | + // fills parameters with the picture dimensions and the pixel aspect ratio | |
89 | + // returns 0 on success | |
90 | + OSD_Test, // () | |
91 | + // draws a test picture. for debugging purposes only | |
92 | + // returns 0 on success | |
93 | +// TODO: remove "test" in final version | |
94 | + OSD_Text, // (x0,y0,size,color,text) | |
95 | + OSD_SetWindow, // (x0) set window with number 0<x0<8 as current | |
96 | + OSD_MoveWindow, // move current window to (x0, y0) | |
97 | + OSD_OpenRaw, // Open other types of OSD windows | |
98 | +} OSD_Command; | |
99 | + | |
100 | +typedef struct osd_cmd_s { | |
101 | + OSD_Command cmd; | |
102 | + int x0; | |
103 | + int y0; | |
104 | + int x1; | |
105 | + int y1; | |
106 | + int color; | |
107 | + void __user *data; | |
108 | +} osd_cmd_t; | |
109 | + | |
110 | +/* OSD_OpenRaw: set 'color' to desired window type */ | |
111 | +typedef enum { | |
112 | + OSD_BITMAP1, /* 1 bit bitmap */ | |
113 | + OSD_BITMAP2, /* 2 bit bitmap */ | |
114 | + OSD_BITMAP4, /* 4 bit bitmap */ | |
115 | + OSD_BITMAP8, /* 8 bit bitmap */ | |
116 | + OSD_BITMAP1HR, /* 1 Bit bitmap half resolution */ | |
117 | + OSD_BITMAP2HR, /* 2 bit bitmap half resolution */ | |
118 | + OSD_BITMAP4HR, /* 4 bit bitmap half resolution */ | |
119 | + OSD_BITMAP8HR, /* 8 bit bitmap half resolution */ | |
120 | + OSD_YCRCB422, /* 4:2:2 YCRCB Graphic Display */ | |
121 | + OSD_YCRCB444, /* 4:4:4 YCRCB Graphic Display */ | |
122 | + OSD_YCRCB444HR, /* 4:4:4 YCRCB graphic half resolution */ | |
123 | + OSD_VIDEOTSIZE, /* True Size Normal MPEG Video Display */ | |
124 | + OSD_VIDEOHSIZE, /* MPEG Video Display Half Resolution */ | |
125 | + OSD_VIDEOQSIZE, /* MPEG Video Display Quarter Resolution */ | |
126 | + OSD_VIDEODSIZE, /* MPEG Video Display Double Resolution */ | |
127 | + OSD_VIDEOTHSIZE, /* True Size MPEG Video Display Half Resolution */ | |
128 | + OSD_VIDEOTQSIZE, /* True Size MPEG Video Display Quarter Resolution*/ | |
129 | + OSD_VIDEOTDSIZE, /* True Size MPEG Video Display Double Resolution */ | |
130 | + OSD_VIDEONSIZE, /* Full Size MPEG Video Display */ | |
131 | + OSD_CURSOR /* Cursor */ | |
132 | +} osd_raw_window_t; | |
133 | + | |
134 | +typedef struct osd_cap_s { | |
135 | + int cmd; | |
136 | +#define OSD_CAP_MEMSIZE 1 /* memory size */ | |
137 | + long val; | |
138 | +} osd_cap_t; | |
139 | + | |
140 | + | |
141 | +#define OSD_SEND_CMD _IOW('o', 160, osd_cmd_t) | |
142 | +#define OSD_GET_CAPABILITY _IOR('o', 161, osd_cap_t) | |
143 | + | |
144 | +#endif |
include/uapi/linux/dvb/version.h
1 | +/* | |
2 | + * version.h | |
3 | + * | |
4 | + * Copyright (C) 2000 Holger Waechtler <holger@convergence.de> | |
5 | + * for convergence integrated media GmbH | |
6 | + * | |
7 | + * This program is free software; you can redistribute it and/or | |
8 | + * modify it under the terms of the GNU Lesser General Public License | |
9 | + * as published by the Free Software Foundation; either version 2.1 | |
10 | + * of the License, or (at your option) any later version. | |
11 | + * | |
12 | + * This program is distributed in the hope that it will be useful, | |
13 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 | + * GNU General Public License for more details. | |
16 | + * | |
17 | + * You should have received a copy of the GNU Lesser General Public License | |
18 | + * along with this program; if not, write to the Free Software | |
19 | + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
20 | + * | |
21 | + */ | |
22 | + | |
23 | +#ifndef _DVBVERSION_H_ | |
24 | +#define _DVBVERSION_H_ | |
25 | + | |
26 | +#define DVB_API_VERSION 5 | |
27 | +#define DVB_API_VERSION_MINOR 9 | |
28 | + | |
29 | +#endif /*_DVBVERSION_H_*/ |
include/uapi/linux/dvb/video.h
1 | +/* | |
2 | + * video.h | |
3 | + * | |
4 | + * Copyright (C) 2000 Marcus Metzler <marcus@convergence.de> | |
5 | + * & Ralph Metzler <ralph@convergence.de> | |
6 | + * for convergence integrated media GmbH | |
7 | + * | |
8 | + * This program is free software; you can redistribute it and/or | |
9 | + * modify it under the terms of the GNU Lesser General Public License | |
10 | + * as published by the Free Software Foundation; either version 2.1 | |
11 | + * of the License, or (at your option) any later version. | |
12 | + * | |
13 | + * This program is distributed in the hope that it will be useful, | |
14 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | + * GNU General Public License for more details. | |
17 | + * | |
18 | + * You should have received a copy of the GNU Lesser General Public License | |
19 | + * along with this program; if not, write to the Free Software | |
20 | + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
21 | + * | |
22 | + */ | |
23 | + | |
24 | +#ifndef _UAPI_DVBVIDEO_H_ | |
25 | +#define _UAPI_DVBVIDEO_H_ | |
26 | + | |
27 | +#include <linux/types.h> | |
28 | +#ifndef __KERNEL__ | |
29 | +#include <stdint.h> | |
30 | +#include <time.h> | |
31 | +#endif | |
32 | + | |
33 | +typedef enum { | |
34 | + VIDEO_FORMAT_4_3, /* Select 4:3 format */ | |
35 | + VIDEO_FORMAT_16_9, /* Select 16:9 format. */ | |
36 | + VIDEO_FORMAT_221_1 /* 2.21:1 */ | |
37 | +} video_format_t; | |
38 | + | |
39 | + | |
40 | +typedef enum { | |
41 | + VIDEO_SYSTEM_PAL, | |
42 | + VIDEO_SYSTEM_NTSC, | |
43 | + VIDEO_SYSTEM_PALN, | |
44 | + VIDEO_SYSTEM_PALNc, | |
45 | + VIDEO_SYSTEM_PALM, | |
46 | + VIDEO_SYSTEM_NTSC60, | |
47 | + VIDEO_SYSTEM_PAL60, | |
48 | + VIDEO_SYSTEM_PALM60 | |
49 | +} video_system_t; | |
50 | + | |
51 | + | |
52 | +typedef enum { | |
53 | + VIDEO_PAN_SCAN, /* use pan and scan format */ | |
54 | + VIDEO_LETTER_BOX, /* use letterbox format */ | |
55 | + VIDEO_CENTER_CUT_OUT /* use center cut out format */ | |
56 | +} video_displayformat_t; | |
57 | + | |
58 | +typedef struct { | |
59 | + int w; | |
60 | + int h; | |
61 | + video_format_t aspect_ratio; | |
62 | +} video_size_t; | |
63 | + | |
64 | +typedef enum { | |
65 | + VIDEO_SOURCE_DEMUX, /* Select the demux as the main source */ | |
66 | + VIDEO_SOURCE_MEMORY /* If this source is selected, the stream | |
67 | + comes from the user through the write | |
68 | + system call */ | |
69 | +} video_stream_source_t; | |
70 | + | |
71 | + | |
72 | +typedef enum { | |
73 | + VIDEO_STOPPED, /* Video is stopped */ | |
74 | + VIDEO_PLAYING, /* Video is currently playing */ | |
75 | + VIDEO_FREEZED /* Video is freezed */ | |
76 | +} video_play_state_t; | |
77 | + | |
78 | + | |
79 | +/* Decoder commands */ | |
80 | +#define VIDEO_CMD_PLAY (0) | |
81 | +#define VIDEO_CMD_STOP (1) | |
82 | +#define VIDEO_CMD_FREEZE (2) | |
83 | +#define VIDEO_CMD_CONTINUE (3) | |
84 | + | |
85 | +/* Flags for VIDEO_CMD_FREEZE */ | |
86 | +#define VIDEO_CMD_FREEZE_TO_BLACK (1 << 0) | |
87 | + | |
88 | +/* Flags for VIDEO_CMD_STOP */ | |
89 | +#define VIDEO_CMD_STOP_TO_BLACK (1 << 0) | |
90 | +#define VIDEO_CMD_STOP_IMMEDIATELY (1 << 1) | |
91 | + | |
92 | +/* Play input formats: */ | |
93 | +/* The decoder has no special format requirements */ | |
94 | +#define VIDEO_PLAY_FMT_NONE (0) | |
95 | +/* The decoder requires full GOPs */ | |
96 | +#define VIDEO_PLAY_FMT_GOP (1) | |
97 | + | |
98 | +/* The structure must be zeroed before use by the application | |
99 | + This ensures it can be extended safely in the future. */ | |
100 | +struct video_command { | |
101 | + __u32 cmd; | |
102 | + __u32 flags; | |
103 | + union { | |
104 | + struct { | |
105 | + __u64 pts; | |
106 | + } stop; | |
107 | + | |
108 | + struct { | |
109 | + /* 0 or 1000 specifies normal speed, | |
110 | + 1 specifies forward single stepping, | |
111 | + -1 specifies backward single stepping, | |
112 | + >1: playback at speed/1000 of the normal speed, | |
113 | + <-1: reverse playback at (-speed/1000) of the normal speed. */ | |
114 | + __s32 speed; | |
115 | + __u32 format; | |
116 | + } play; | |
117 | + | |
118 | + struct { | |
119 | + __u32 data[16]; | |
120 | + } raw; | |
121 | + }; | |
122 | +}; | |
123 | + | |
124 | +/* FIELD_UNKNOWN can be used if the hardware does not know whether | |
125 | + the Vsync is for an odd, even or progressive (i.e. non-interlaced) | |
126 | + field. */ | |
127 | +#define VIDEO_VSYNC_FIELD_UNKNOWN (0) | |
128 | +#define VIDEO_VSYNC_FIELD_ODD (1) | |
129 | +#define VIDEO_VSYNC_FIELD_EVEN (2) | |
130 | +#define VIDEO_VSYNC_FIELD_PROGRESSIVE (3) | |
131 | + | |
132 | +struct video_event { | |
133 | + __s32 type; | |
134 | +#define VIDEO_EVENT_SIZE_CHANGED 1 | |
135 | +#define VIDEO_EVENT_FRAME_RATE_CHANGED 2 | |
136 | +#define VIDEO_EVENT_DECODER_STOPPED 3 | |
137 | +#define VIDEO_EVENT_VSYNC 4 | |
138 | + __kernel_time_t timestamp; | |
139 | + union { | |
140 | + video_size_t size; | |
141 | + unsigned int frame_rate; /* in frames per 1000sec */ | |
142 | + unsigned char vsync_field; /* unknown/odd/even/progressive */ | |
143 | + } u; | |
144 | +}; | |
145 | + | |
146 | + | |
147 | +struct video_status { | |
148 | + int video_blank; /* blank video on freeze? */ | |
149 | + video_play_state_t play_state; /* current state of playback */ | |
150 | + video_stream_source_t stream_source; /* current source (demux/memory) */ | |
151 | + video_format_t video_format; /* current aspect ratio of stream*/ | |
152 | + video_displayformat_t display_format;/* selected cropping mode */ | |
153 | +}; | |
154 | + | |
155 | + | |
156 | +struct video_still_picture { | |
157 | + char __user *iFrame; /* pointer to a single iframe in memory */ | |
158 | + __s32 size; | |
159 | +}; | |
160 | + | |
161 | + | |
162 | +typedef | |
163 | +struct video_highlight { | |
164 | + int active; /* 1=show highlight, 0=hide highlight */ | |
165 | + __u8 contrast1; /* 7- 4 Pattern pixel contrast */ | |
166 | + /* 3- 0 Background pixel contrast */ | |
167 | + __u8 contrast2; /* 7- 4 Emphasis pixel-2 contrast */ | |
168 | + /* 3- 0 Emphasis pixel-1 contrast */ | |
169 | + __u8 color1; /* 7- 4 Pattern pixel color */ | |
170 | + /* 3- 0 Background pixel color */ | |
171 | + __u8 color2; /* 7- 4 Emphasis pixel-2 color */ | |
172 | + /* 3- 0 Emphasis pixel-1 color */ | |
173 | + __u32 ypos; /* 23-22 auto action mode */ | |
174 | + /* 21-12 start y */ | |
175 | + /* 9- 0 end y */ | |
176 | + __u32 xpos; /* 23-22 button color number */ | |
177 | + /* 21-12 start x */ | |
178 | + /* 9- 0 end x */ | |
179 | +} video_highlight_t; | |
180 | + | |
181 | + | |
182 | +typedef struct video_spu { | |
183 | + int active; | |
184 | + int stream_id; | |
185 | +} video_spu_t; | |
186 | + | |
187 | + | |
188 | +typedef struct video_spu_palette { /* SPU Palette information */ | |
189 | + int length; | |
190 | + __u8 __user *palette; | |
191 | +} video_spu_palette_t; | |
192 | + | |
193 | + | |
194 | +typedef struct video_navi_pack { | |
195 | + int length; /* 0 ... 1024 */ | |
196 | + __u8 data[1024]; | |
197 | +} video_navi_pack_t; | |
198 | + | |
199 | + | |
200 | +typedef __u16 video_attributes_t; | |
201 | +/* bits: descr. */ | |
202 | +/* 15-14 Video compression mode (0=MPEG-1, 1=MPEG-2) */ | |
203 | +/* 13-12 TV system (0=525/60, 1=625/50) */ | |
204 | +/* 11-10 Aspect ratio (0=4:3, 3=16:9) */ | |
205 | +/* 9- 8 permitted display mode on 4:3 monitor (0=both, 1=only pan-sca */ | |
206 | +/* 7 line 21-1 data present in GOP (1=yes, 0=no) */ | |
207 | +/* 6 line 21-2 data present in GOP (1=yes, 0=no) */ | |
208 | +/* 5- 3 source resolution (0=720x480/576, 1=704x480/576, 2=352x480/57 */ | |
209 | +/* 2 source letterboxed (1=yes, 0=no) */ | |
210 | +/* 0 film/camera mode (0=camera, 1=film (625/50 only)) */ | |
211 | + | |
212 | + | |
213 | +/* bit definitions for capabilities: */ | |
214 | +/* can the hardware decode MPEG1 and/or MPEG2? */ | |
215 | +#define VIDEO_CAP_MPEG1 1 | |
216 | +#define VIDEO_CAP_MPEG2 2 | |
217 | +/* can you send a system and/or program stream to video device? | |
218 | + (you still have to open the video and the audio device but only | |
219 | + send the stream to the video device) */ | |
220 | +#define VIDEO_CAP_SYS 4 | |
221 | +#define VIDEO_CAP_PROG 8 | |
222 | +/* can the driver also handle SPU, NAVI and CSS encoded data? | |
223 | + (CSS API is not present yet) */ | |
224 | +#define VIDEO_CAP_SPU 16 | |
225 | +#define VIDEO_CAP_NAVI 32 | |
226 | +#define VIDEO_CAP_CSS 64 | |
227 | + | |
228 | + | |
229 | +#define VIDEO_STOP _IO('o', 21) | |
230 | +#define VIDEO_PLAY _IO('o', 22) | |
231 | +#define VIDEO_FREEZE _IO('o', 23) | |
232 | +#define VIDEO_CONTINUE _IO('o', 24) | |
233 | +#define VIDEO_SELECT_SOURCE _IO('o', 25) | |
234 | +#define VIDEO_SET_BLANK _IO('o', 26) | |
235 | +#define VIDEO_GET_STATUS _IOR('o', 27, struct video_status) | |
236 | +#define VIDEO_GET_EVENT _IOR('o', 28, struct video_event) | |
237 | +#define VIDEO_SET_DISPLAY_FORMAT _IO('o', 29) | |
238 | +#define VIDEO_STILLPICTURE _IOW('o', 30, struct video_still_picture) | |
239 | +#define VIDEO_FAST_FORWARD _IO('o', 31) | |
240 | +#define VIDEO_SLOWMOTION _IO('o', 32) | |
241 | +#define VIDEO_GET_CAPABILITIES _IOR('o', 33, unsigned int) | |
242 | +#define VIDEO_CLEAR_BUFFER _IO('o', 34) | |
243 | +#define VIDEO_SET_ID _IO('o', 35) | |
244 | +#define VIDEO_SET_STREAMTYPE _IO('o', 36) | |
245 | +#define VIDEO_SET_FORMAT _IO('o', 37) | |
246 | +#define VIDEO_SET_SYSTEM _IO('o', 38) | |
247 | +#define VIDEO_SET_HIGHLIGHT _IOW('o', 39, video_highlight_t) | |
248 | +#define VIDEO_SET_SPU _IOW('o', 50, video_spu_t) | |
249 | +#define VIDEO_SET_SPU_PALETTE _IOW('o', 51, video_spu_palette_t) | |
250 | +#define VIDEO_GET_NAVI _IOR('o', 52, video_navi_pack_t) | |
251 | +#define VIDEO_SET_ATTRIBUTES _IO('o', 53) | |
252 | +#define VIDEO_GET_SIZE _IOR('o', 55, video_size_t) | |
253 | +#define VIDEO_GET_FRAME_RATE _IOR('o', 56, unsigned int) | |
254 | + | |
255 | +/** | |
256 | + * VIDEO_GET_PTS | |
257 | + * | |
258 | + * Read the 33 bit presentation time stamp as defined | |
259 | + * in ITU T-REC-H.222.0 / ISO/IEC 13818-1. | |
260 | + * | |
261 | + * The PTS should belong to the currently played | |
262 | + * frame if possible, but may also be a value close to it | |
263 | + * like the PTS of the last decoded frame or the last PTS | |
264 | + * extracted by the PES parser. | |
265 | + */ | |
266 | +#define VIDEO_GET_PTS _IOR('o', 57, __u64) | |
267 | + | |
268 | +/* Read the number of displayed frames since the decoder was started */ | |
269 | +#define VIDEO_GET_FRAME_COUNT _IOR('o', 58, __u64) | |
270 | + | |
271 | +#define VIDEO_COMMAND _IOWR('o', 59, struct video_command) | |
272 | +#define VIDEO_TRY_COMMAND _IOWR('o', 60, struct video_command) | |
273 | + | |
274 | +#endif /* _UAPI_DVBVIDEO_H_ */ |