提交 0579e6e3 编写于 作者: M Mauro Carvalho Chehab

doc-rst: linux_tv: remove whitespaces

Let's remove bad whitespaces on the entire book.

That helps to avoid mixing whitespace removal with other
patches.
Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
上级 a163ad5c
...@@ -34,52 +34,52 @@ file: audio.h ...@@ -34,52 +34,52 @@ file: audio.h
#include <linux/types.h> #include <linux/types.h>
typedef enum { typedef enum {
AUDIO_SOURCE_DEMUX, /* Select the demux as the main source */ AUDIO_SOURCE_DEMUX, /* Select the demux as the main source */
AUDIO_SOURCE_MEMORY /* Select internal memory as the main source */ AUDIO_SOURCE_MEMORY /* Select internal memory as the main source */
} audio_stream_source_t; } audio_stream_source_t;
typedef enum { typedef enum {
AUDIO_STOPPED, /* Device is stopped */ AUDIO_STOPPED, /* Device is stopped */
AUDIO_PLAYING, /* Device is currently playing */ AUDIO_PLAYING, /* Device is currently playing */
AUDIO_PAUSED /* Device is paused */ AUDIO_PAUSED /* Device is paused */
} audio_play_state_t; } audio_play_state_t;
typedef enum { typedef enum {
AUDIO_STEREO, AUDIO_STEREO,
AUDIO_MONO_LEFT, AUDIO_MONO_LEFT,
AUDIO_MONO_RIGHT, AUDIO_MONO_RIGHT,
AUDIO_MONO, AUDIO_MONO,
AUDIO_STEREO_SWAPPED AUDIO_STEREO_SWAPPED
} audio_channel_select_t; } audio_channel_select_t;
typedef struct audio_mixer { typedef struct audio_mixer {
unsigned int volume_left; unsigned int volume_left;
unsigned int volume_right; unsigned int volume_right;
// what else do we need? bass, pass-through, ... // what else do we need? bass, pass-through, ...
} audio_mixer_t; } audio_mixer_t;
typedef struct audio_status { typedef struct audio_status {
int AV_sync_state; /* sync audio and video? */ int AV_sync_state; /* sync audio and video? */
int mute_state; /* audio is muted */ int mute_state; /* audio is muted */
audio_play_state_t play_state; /* current playback state */ audio_play_state_t play_state; /* current playback state */
audio_stream_source_t stream_source; /* current stream source */ audio_stream_source_t stream_source; /* current stream source */
audio_channel_select_t channel_select; /* currently selected channel */ audio_channel_select_t channel_select; /* currently selected channel */
int bypass_mode; /* pass on audio data to */ int bypass_mode; /* pass on audio data to */
audio_mixer_t mixer_state; /* current mixer state */ audio_mixer_t mixer_state; /* current mixer state */
} audio_status_t; /* separate decoder hardware */ } audio_status_t; /* separate decoder hardware */
typedef typedef
struct audio_karaoke { /* if Vocal1 or Vocal2 are non-zero, they get mixed */ struct audio_karaoke { /* if Vocal1 or Vocal2 are non-zero, they get mixed */
int vocal1; /* into left and right t at 70% each */ int vocal1; /* into left and right t at 70% each */
int vocal2; /* if both, Vocal1 and Vocal2 are non-zero, Vocal1 gets*/ int vocal2; /* if both, Vocal1 and Vocal2 are non-zero, Vocal1 gets*/
int melody; /* mixed into the left channel and */ int melody; /* mixed into the left channel and */
/* Vocal2 into the right channel at 100% each. */ /* Vocal2 into the right channel at 100% each. */
/* if Melody is non-zero, the melody channel gets mixed*/ /* if Melody is non-zero, the melody channel gets mixed*/
} audio_karaoke_t; /* into left and right */ } audio_karaoke_t; /* into left and right */
......
...@@ -34,16 +34,16 @@ file: ca.h ...@@ -34,16 +34,16 @@ file: ca.h
/* slot interface types and info */ /* slot interface types and info */
typedef struct ca_slot_info { typedef struct ca_slot_info {
int num; /* slot number */ int num; /* slot number */
int type; /* CA interface this slot supports */ int type; /* CA interface this slot supports */
#define CA_CI 1 /* CI high level interface */ #define CA_CI 1 /* CI high level interface */
#define CA_CI_LINK 2 /* CI link layer level interface */ #define CA_CI_LINK 2 /* CI link layer level interface */
#define CA_CI_PHYS 4 /* CI physical layer level interface */ #define CA_CI_PHYS 4 /* CI physical layer level interface */
#define CA_DESCR 8 /* built-in descrambler */ #define CA_DESCR 8 /* built-in descrambler */
#define CA_SC 128 /* simple smart card interface */ #define CA_SC 128 /* simple smart card interface */
unsigned int flags; unsigned int flags;
#define CA_CI_MODULE_PRESENT 1 /* module (or card) inserted */ #define CA_CI_MODULE_PRESENT 1 /* module (or card) inserted */
#define CA_CI_MODULE_READY 2 #define CA_CI_MODULE_READY 2
} ca_slot_info_t; } ca_slot_info_t;
...@@ -52,37 +52,37 @@ file: ca.h ...@@ -52,37 +52,37 @@ file: ca.h
/* descrambler types and info */ /* descrambler types and info */
typedef struct ca_descr_info { typedef struct ca_descr_info {
unsigned int num; /* number of available descramblers (keys) */ unsigned int num; /* number of available descramblers (keys) */
unsigned int type; /* type of supported scrambling system */ unsigned int type; /* type of supported scrambling system */
#define CA_ECD 1 #define CA_ECD 1
#define CA_NDS 2 #define CA_NDS 2
#define CA_DSS 4 #define CA_DSS 4
} ca_descr_info_t; } ca_descr_info_t;
typedef struct ca_caps { typedef struct ca_caps {
unsigned int slot_num; /* total number of CA card and module slots */ unsigned int slot_num; /* total number of CA card and module slots */
unsigned int slot_type; /* OR of all supported types */ unsigned int slot_type; /* OR of all supported types */
unsigned int descr_num; /* total number of descrambler slots (keys) */ unsigned int descr_num; /* total number of descrambler slots (keys) */
unsigned int descr_type; /* OR of all supported types */ unsigned int descr_type; /* OR of all supported types */
} ca_caps_t; } ca_caps_t;
/* a message to/from a CI-CAM */ /* a message to/from a CI-CAM */
typedef struct ca_msg { typedef struct ca_msg {
unsigned int index; unsigned int index;
unsigned int type; unsigned int type;
unsigned int length; unsigned int length;
unsigned char msg[256]; unsigned char msg[256];
} ca_msg_t; } ca_msg_t;
typedef struct ca_descr { typedef struct ca_descr {
unsigned int index; unsigned int index;
unsigned int parity; /* 0 == even, 1 == odd */ unsigned int parity; /* 0 == even, 1 == odd */
unsigned char cw[8]; unsigned char cw[8];
} ca_descr_t; } ca_descr_t;
typedef struct ca_pid { typedef struct ca_pid {
unsigned int pid; unsigned int pid;
int index; /* -1 == disable*/ int index; /* -1 == disable*/
} ca_pid_t; } ca_pid_t;
#define CA_RESET _IO('o', 128) #define CA_RESET _IO('o', 128)
......
...@@ -41,51 +41,51 @@ file: dmx.h ...@@ -41,51 +41,51 @@ file: dmx.h
enum dmx_output enum dmx_output
{ {
DMX_OUT_DECODER, /* Streaming directly to decoder. */ DMX_OUT_DECODER, /* Streaming directly to decoder. */
DMX_OUT_TAP, /* Output going to a memory buffer */ DMX_OUT_TAP, /* Output going to a memory buffer */
/* (to be retrieved via the read command).*/ /* (to be retrieved via the read command).*/
DMX_OUT_TS_TAP, /* Output multiplexed into a new TS */ DMX_OUT_TS_TAP, /* Output multiplexed into a new TS */
/* (to be retrieved by reading from the */ /* (to be retrieved by reading from the */
/* logical DVR device). */ /* logical DVR device). */
DMX_OUT_TSDEMUX_TAP /* Like TS_TAP but retrieved from the DMX device */ DMX_OUT_TSDEMUX_TAP /* Like TS_TAP but retrieved from the DMX device */
}; };
typedef enum dmx_output dmx_output_t; typedef enum dmx_output dmx_output_t;
typedef enum dmx_input typedef enum dmx_input
{ {
DMX_IN_FRONTEND, /* Input from a front-end device. */ DMX_IN_FRONTEND, /* Input from a front-end device. */
DMX_IN_DVR /* Input from the logical DVR device. */ DMX_IN_DVR /* Input from the logical DVR device. */
} dmx_input_t; } dmx_input_t;
typedef enum dmx_ts_pes typedef enum dmx_ts_pes
{ {
DMX_PES_AUDIO0, DMX_PES_AUDIO0,
DMX_PES_VIDEO0, DMX_PES_VIDEO0,
DMX_PES_TELETEXT0, DMX_PES_TELETEXT0,
DMX_PES_SUBTITLE0, DMX_PES_SUBTITLE0,
DMX_PES_PCR0, DMX_PES_PCR0,
DMX_PES_AUDIO1, DMX_PES_AUDIO1,
DMX_PES_VIDEO1, DMX_PES_VIDEO1,
DMX_PES_TELETEXT1, DMX_PES_TELETEXT1,
DMX_PES_SUBTITLE1, DMX_PES_SUBTITLE1,
DMX_PES_PCR1, DMX_PES_PCR1,
DMX_PES_AUDIO2, DMX_PES_AUDIO2,
DMX_PES_VIDEO2, DMX_PES_VIDEO2,
DMX_PES_TELETEXT2, DMX_PES_TELETEXT2,
DMX_PES_SUBTITLE2, DMX_PES_SUBTITLE2,
DMX_PES_PCR2, DMX_PES_PCR2,
DMX_PES_AUDIO3, DMX_PES_AUDIO3,
DMX_PES_VIDEO3, DMX_PES_VIDEO3,
DMX_PES_TELETEXT3, DMX_PES_TELETEXT3,
DMX_PES_SUBTITLE3, DMX_PES_SUBTITLE3,
DMX_PES_PCR3, DMX_PES_PCR3,
DMX_PES_OTHER DMX_PES_OTHER
} dmx_pes_type_t; } dmx_pes_type_t;
#define DMX_PES_AUDIO DMX_PES_AUDIO0 #define DMX_PES_AUDIO DMX_PES_AUDIO0
...@@ -97,18 +97,18 @@ file: dmx.h ...@@ -97,18 +97,18 @@ file: dmx.h
typedef struct dmx_filter typedef struct dmx_filter
{ {
__u8 filter[DMX_FILTER_SIZE]; __u8 filter[DMX_FILTER_SIZE];
__u8 mask[DMX_FILTER_SIZE]; __u8 mask[DMX_FILTER_SIZE];
__u8 mode[DMX_FILTER_SIZE]; __u8 mode[DMX_FILTER_SIZE];
} dmx_filter_t; } dmx_filter_t;
struct dmx_sct_filter_params struct dmx_sct_filter_params
{ {
__u16 pid; __u16 pid;
dmx_filter_t filter; dmx_filter_t filter;
__u32 timeout; __u32 timeout;
__u32 flags; __u32 flags;
#define DMX_CHECK_CRC 1 #define DMX_CHECK_CRC 1
#define DMX_ONESHOT 2 #define DMX_ONESHOT 2
#define DMX_IMMEDIATE_START 4 #define DMX_IMMEDIATE_START 4
...@@ -118,33 +118,33 @@ file: dmx.h ...@@ -118,33 +118,33 @@ file: dmx.h
struct dmx_pes_filter_params struct dmx_pes_filter_params
{ {
__u16 pid; __u16 pid;
dmx_input_t input; dmx_input_t input;
dmx_output_t output; dmx_output_t output;
dmx_pes_type_t pes_type; dmx_pes_type_t pes_type;
__u32 flags; __u32 flags;
}; };
typedef struct dmx_caps { typedef struct dmx_caps {
__u32 caps; __u32 caps;
int num_decoders; int num_decoders;
} dmx_caps_t; } dmx_caps_t;
typedef enum dmx_source { typedef enum dmx_source {
DMX_SOURCE_FRONT0 = 0, DMX_SOURCE_FRONT0 = 0,
DMX_SOURCE_FRONT1, DMX_SOURCE_FRONT1,
DMX_SOURCE_FRONT2, DMX_SOURCE_FRONT2,
DMX_SOURCE_FRONT3, DMX_SOURCE_FRONT3,
DMX_SOURCE_DVR0 = 16, DMX_SOURCE_DVR0 = 16,
DMX_SOURCE_DVR1, DMX_SOURCE_DVR1,
DMX_SOURCE_DVR2, DMX_SOURCE_DVR2,
DMX_SOURCE_DVR3 DMX_SOURCE_DVR3
} dmx_source_t; } dmx_source_t;
struct dmx_stc { struct dmx_stc {
unsigned int num; /* input : which STC? 0..N */ unsigned int num; /* input : which STC? 0..N */
unsigned int base; /* output: divisor for stc to get 90 kHz clock */ unsigned int base; /* output: divisor for stc to get 90 kHz clock */
__u64 stc; /* output: stc in 'base'*90 kHz units */ __u64 stc; /* output: stc in 'base'*90 kHz units */
}; };
#define DMX_START _IO('o', 41) #define DMX_START _IO('o', 41)
......
...@@ -36,58 +36,58 @@ file: frontend.h ...@@ -36,58 +36,58 @@ file: frontend.h
#include <linux/types.h> #include <linux/types.h>
enum fe_type { enum fe_type {
FE_QPSK, FE_QPSK,
FE_QAM, FE_QAM,
FE_OFDM, FE_OFDM,
FE_ATSC FE_ATSC
}; };
enum fe_caps { enum fe_caps {
FE_IS_STUPID = 0, FE_IS_STUPID = 0,
FE_CAN_INVERSION_AUTO = 0x1, FE_CAN_INVERSION_AUTO = 0x1,
FE_CAN_FEC_1_2 = 0x2, FE_CAN_FEC_1_2 = 0x2,
FE_CAN_FEC_2_3 = 0x4, FE_CAN_FEC_2_3 = 0x4,
FE_CAN_FEC_3_4 = 0x8, FE_CAN_FEC_3_4 = 0x8,
FE_CAN_FEC_4_5 = 0x10, FE_CAN_FEC_4_5 = 0x10,
FE_CAN_FEC_5_6 = 0x20, FE_CAN_FEC_5_6 = 0x20,
FE_CAN_FEC_6_7 = 0x40, FE_CAN_FEC_6_7 = 0x40,
FE_CAN_FEC_7_8 = 0x80, FE_CAN_FEC_7_8 = 0x80,
FE_CAN_FEC_8_9 = 0x100, FE_CAN_FEC_8_9 = 0x100,
FE_CAN_FEC_AUTO = 0x200, FE_CAN_FEC_AUTO = 0x200,
FE_CAN_QPSK = 0x400, FE_CAN_QPSK = 0x400,
FE_CAN_QAM_16 = 0x800, FE_CAN_QAM_16 = 0x800,
FE_CAN_QAM_32 = 0x1000, FE_CAN_QAM_32 = 0x1000,
FE_CAN_QAM_64 = 0x2000, FE_CAN_QAM_64 = 0x2000,
FE_CAN_QAM_128 = 0x4000, FE_CAN_QAM_128 = 0x4000,
FE_CAN_QAM_256 = 0x8000, FE_CAN_QAM_256 = 0x8000,
FE_CAN_QAM_AUTO = 0x10000, FE_CAN_QAM_AUTO = 0x10000,
FE_CAN_TRANSMISSION_MODE_AUTO = 0x20000, FE_CAN_TRANSMISSION_MODE_AUTO = 0x20000,
FE_CAN_BANDWIDTH_AUTO = 0x40000, FE_CAN_BANDWIDTH_AUTO = 0x40000,
FE_CAN_GUARD_INTERVAL_AUTO = 0x80000, FE_CAN_GUARD_INTERVAL_AUTO = 0x80000,
FE_CAN_HIERARCHY_AUTO = 0x100000, FE_CAN_HIERARCHY_AUTO = 0x100000,
FE_CAN_8VSB = 0x200000, FE_CAN_8VSB = 0x200000,
FE_CAN_16VSB = 0x400000, FE_CAN_16VSB = 0x400000,
FE_HAS_EXTENDED_CAPS = 0x800000, /* We need more bitspace for newer APIs, indicate this. */ FE_HAS_EXTENDED_CAPS = 0x800000, /* We need more bitspace for newer APIs, indicate this. */
FE_CAN_MULTISTREAM = 0x4000000, /* frontend supports multistream filtering */ FE_CAN_MULTISTREAM = 0x4000000, /* frontend supports multistream filtering */
FE_CAN_TURBO_FEC = 0x8000000, /* frontend supports "turbo fec modulation" */ FE_CAN_TURBO_FEC = 0x8000000, /* frontend supports "turbo fec modulation" */
FE_CAN_2G_MODULATION = 0x10000000, /* frontend supports "2nd generation modulation" (DVB-S2) */ FE_CAN_2G_MODULATION = 0x10000000, /* frontend supports "2nd generation modulation" (DVB-S2) */
FE_NEEDS_BENDING = 0x20000000, /* not supported anymore, don't use (frontend requires frequency bending) */ FE_NEEDS_BENDING = 0x20000000, /* not supported anymore, don't use (frontend requires frequency bending) */
FE_CAN_RECOVER = 0x40000000, /* frontend can recover from a cable unplug automatically */ FE_CAN_RECOVER = 0x40000000, /* frontend can recover from a cable unplug automatically */
FE_CAN_MUTE_TS = 0x80000000 /* frontend can stop spurious TS data output */ FE_CAN_MUTE_TS = 0x80000000 /* frontend can stop spurious TS data output */
}; };
struct dvb_frontend_info { struct dvb_frontend_info {
char name[128]; char name[128];
enum fe_type type; /* DEPRECATED. Use DTV_ENUM_DELSYS instead */ enum fe_type type; /* DEPRECATED. Use DTV_ENUM_DELSYS instead */
__u32 frequency_min; __u32 frequency_min;
__u32 frequency_max; __u32 frequency_max;
__u32 frequency_stepsize; __u32 frequency_stepsize;
__u32 frequency_tolerance; __u32 frequency_tolerance;
__u32 symbol_rate_min; __u32 symbol_rate_min;
__u32 symbol_rate_max; __u32 symbol_rate_max;
__u32 symbol_rate_tolerance; /* ppm */ __u32 symbol_rate_tolerance; /* ppm */
__u32 notifier_delay; /* DEPRECATED */ __u32 notifier_delay; /* DEPRECATED */
enum fe_caps caps; enum fe_caps caps;
}; };
...@@ -96,30 +96,30 @@ file: frontend.h ...@@ -96,30 +96,30 @@ file: frontend.h
* the meaning of this struct... * the meaning of this struct...
*/ */
struct dvb_diseqc_master_cmd { struct dvb_diseqc_master_cmd {
__u8 msg [6]; /* { framing, address, command, data [3] } */ __u8 msg [6]; /* { framing, address, command, data [3] } */
__u8 msg_len; /* valid values are 3...6 */ __u8 msg_len; /* valid values are 3...6 */
}; };
struct dvb_diseqc_slave_reply { struct dvb_diseqc_slave_reply {
__u8 msg [4]; /* { framing, data [3] } */ __u8 msg [4]; /* { framing, data [3] } */
__u8 msg_len; /* valid values are 0...4, 0 means no msg */ __u8 msg_len; /* valid values are 0...4, 0 means no msg */
int timeout; /* return from ioctl after timeout ms with */ int timeout; /* return from ioctl after timeout ms with */
}; /* errorcode when no message was received */ }; /* errorcode when no message was received */
enum fe_sec_voltage { enum fe_sec_voltage {
SEC_VOLTAGE_13, SEC_VOLTAGE_13,
SEC_VOLTAGE_18, SEC_VOLTAGE_18,
SEC_VOLTAGE_OFF SEC_VOLTAGE_OFF
}; };
enum fe_sec_tone_mode { enum fe_sec_tone_mode {
SEC_TONE_ON, SEC_TONE_ON,
SEC_TONE_OFF SEC_TONE_OFF
}; };
enum fe_sec_mini_cmd { enum fe_sec_mini_cmd {
SEC_MINI_A, SEC_MINI_A,
SEC_MINI_B SEC_MINI_B
}; };
/** /**
...@@ -134,93 +134,93 @@ file: frontend.h ...@@ -134,93 +134,93 @@ file: frontend.h
* to reset DiSEqC, tone and parameters * to reset DiSEqC, tone and parameters
*/ */
enum fe_status { enum fe_status {
FE_HAS_SIGNAL = 0x01, FE_HAS_SIGNAL = 0x01,
FE_HAS_CARRIER = 0x02, FE_HAS_CARRIER = 0x02,
FE_HAS_VITERBI = 0x04, FE_HAS_VITERBI = 0x04,
FE_HAS_SYNC = 0x08, FE_HAS_SYNC = 0x08,
FE_HAS_LOCK = 0x10, FE_HAS_LOCK = 0x10,
FE_TIMEDOUT = 0x20, FE_TIMEDOUT = 0x20,
FE_REINIT = 0x40, FE_REINIT = 0x40,
}; };
enum fe_spectral_inversion { enum fe_spectral_inversion {
INVERSION_OFF, INVERSION_OFF,
INVERSION_ON, INVERSION_ON,
INVERSION_AUTO INVERSION_AUTO
}; };
enum fe_code_rate { enum fe_code_rate {
FEC_NONE = 0, FEC_NONE = 0,
FEC_1_2, FEC_1_2,
FEC_2_3, FEC_2_3,
FEC_3_4, FEC_3_4,
FEC_4_5, FEC_4_5,
FEC_5_6, FEC_5_6,
FEC_6_7, FEC_6_7,
FEC_7_8, FEC_7_8,
FEC_8_9, FEC_8_9,
FEC_AUTO, FEC_AUTO,
FEC_3_5, FEC_3_5,
FEC_9_10, FEC_9_10,
FEC_2_5, FEC_2_5,
}; };
enum fe_modulation { enum fe_modulation {
QPSK, QPSK,
QAM_16, QAM_16,
QAM_32, QAM_32,
QAM_64, QAM_64,
QAM_128, QAM_128,
QAM_256, QAM_256,
QAM_AUTO, QAM_AUTO,
VSB_8, VSB_8,
VSB_16, VSB_16,
PSK_8, PSK_8,
APSK_16, APSK_16,
APSK_32, APSK_32,
DQPSK, DQPSK,
QAM_4_NR, QAM_4_NR,
}; };
enum fe_transmit_mode { enum fe_transmit_mode {
TRANSMISSION_MODE_2K, TRANSMISSION_MODE_2K,
TRANSMISSION_MODE_8K, TRANSMISSION_MODE_8K,
TRANSMISSION_MODE_AUTO, TRANSMISSION_MODE_AUTO,
TRANSMISSION_MODE_4K, TRANSMISSION_MODE_4K,
TRANSMISSION_MODE_1K, TRANSMISSION_MODE_1K,
TRANSMISSION_MODE_16K, TRANSMISSION_MODE_16K,
TRANSMISSION_MODE_32K, TRANSMISSION_MODE_32K,
TRANSMISSION_MODE_C1, TRANSMISSION_MODE_C1,
TRANSMISSION_MODE_C3780, TRANSMISSION_MODE_C3780,
}; };
enum fe_guard_interval { enum fe_guard_interval {
GUARD_INTERVAL_1_32, GUARD_INTERVAL_1_32,
GUARD_INTERVAL_1_16, GUARD_INTERVAL_1_16,
GUARD_INTERVAL_1_8, GUARD_INTERVAL_1_8,
GUARD_INTERVAL_1_4, GUARD_INTERVAL_1_4,
GUARD_INTERVAL_AUTO, GUARD_INTERVAL_AUTO,
GUARD_INTERVAL_1_128, GUARD_INTERVAL_1_128,
GUARD_INTERVAL_19_128, GUARD_INTERVAL_19_128,
GUARD_INTERVAL_19_256, GUARD_INTERVAL_19_256,
GUARD_INTERVAL_PN420, GUARD_INTERVAL_PN420,
GUARD_INTERVAL_PN595, GUARD_INTERVAL_PN595,
GUARD_INTERVAL_PN945, GUARD_INTERVAL_PN945,
}; };
enum fe_hierarchy { enum fe_hierarchy {
HIERARCHY_NONE, HIERARCHY_NONE,
HIERARCHY_1, HIERARCHY_1,
HIERARCHY_2, HIERARCHY_2,
HIERARCHY_4, HIERARCHY_4,
HIERARCHY_AUTO HIERARCHY_AUTO
}; };
enum fe_interleaving { enum fe_interleaving {
INTERLEAVING_NONE, INTERLEAVING_NONE,
INTERLEAVING_AUTO, INTERLEAVING_AUTO,
INTERLEAVING_240, INTERLEAVING_240,
INTERLEAVING_720, INTERLEAVING_720,
}; };
/* S2API Commands */ /* S2API Commands */
...@@ -317,38 +317,38 @@ file: frontend.h ...@@ -317,38 +317,38 @@ file: frontend.h
#define DTV_MAX_COMMAND DTV_STAT_TOTAL_BLOCK_COUNT #define DTV_MAX_COMMAND DTV_STAT_TOTAL_BLOCK_COUNT
enum fe_pilot { enum fe_pilot {
PILOT_ON, PILOT_ON,
PILOT_OFF, PILOT_OFF,
PILOT_AUTO, PILOT_AUTO,
}; };
enum fe_rolloff { enum fe_rolloff {
ROLLOFF_35, /* Implied value in DVB-S, default for DVB-S2 */ ROLLOFF_35, /* Implied value in DVB-S, default for DVB-S2 */
ROLLOFF_20, ROLLOFF_20,
ROLLOFF_25, ROLLOFF_25,
ROLLOFF_AUTO, ROLLOFF_AUTO,
}; };
enum fe_delivery_system { enum fe_delivery_system {
SYS_UNDEFINED, SYS_UNDEFINED,
SYS_DVBC_ANNEX_A, SYS_DVBC_ANNEX_A,
SYS_DVBC_ANNEX_B, SYS_DVBC_ANNEX_B,
SYS_DVBT, SYS_DVBT,
SYS_DSS, SYS_DSS,
SYS_DVBS, SYS_DVBS,
SYS_DVBS2, SYS_DVBS2,
SYS_DVBH, SYS_DVBH,
SYS_ISDBT, SYS_ISDBT,
SYS_ISDBS, SYS_ISDBS,
SYS_ISDBC, SYS_ISDBC,
SYS_ATSC, SYS_ATSC,
SYS_ATSCMH, SYS_ATSCMH,
SYS_DTMB, SYS_DTMB,
SYS_CMMB, SYS_CMMB,
SYS_DAB, SYS_DAB,
SYS_DVBT2, SYS_DVBT2,
SYS_TURBO, SYS_TURBO,
SYS_DVBC_ANNEX_C, SYS_DVBC_ANNEX_C,
}; };
/* backward compatibility */ /* backward compatibility */
...@@ -358,47 +358,47 @@ file: frontend.h ...@@ -358,47 +358,47 @@ file: frontend.h
/* ATSC-MH */ /* ATSC-MH */
enum atscmh_sccc_block_mode { enum atscmh_sccc_block_mode {
ATSCMH_SCCC_BLK_SEP = 0, ATSCMH_SCCC_BLK_SEP = 0,
ATSCMH_SCCC_BLK_COMB = 1, ATSCMH_SCCC_BLK_COMB = 1,
ATSCMH_SCCC_BLK_RES = 2, ATSCMH_SCCC_BLK_RES = 2,
}; };
enum atscmh_sccc_code_mode { enum atscmh_sccc_code_mode {
ATSCMH_SCCC_CODE_HLF = 0, ATSCMH_SCCC_CODE_HLF = 0,
ATSCMH_SCCC_CODE_QTR = 1, ATSCMH_SCCC_CODE_QTR = 1,
ATSCMH_SCCC_CODE_RES = 2, ATSCMH_SCCC_CODE_RES = 2,
}; };
enum atscmh_rs_frame_ensemble { enum atscmh_rs_frame_ensemble {
ATSCMH_RSFRAME_ENS_PRI = 0, ATSCMH_RSFRAME_ENS_PRI = 0,
ATSCMH_RSFRAME_ENS_SEC = 1, ATSCMH_RSFRAME_ENS_SEC = 1,
}; };
enum atscmh_rs_frame_mode { enum atscmh_rs_frame_mode {
ATSCMH_RSFRAME_PRI_ONLY = 0, ATSCMH_RSFRAME_PRI_ONLY = 0,
ATSCMH_RSFRAME_PRI_SEC = 1, ATSCMH_RSFRAME_PRI_SEC = 1,
ATSCMH_RSFRAME_RES = 2, ATSCMH_RSFRAME_RES = 2,
}; };
enum atscmh_rs_code_mode { enum atscmh_rs_code_mode {
ATSCMH_RSCODE_211_187 = 0, ATSCMH_RSCODE_211_187 = 0,
ATSCMH_RSCODE_223_187 = 1, ATSCMH_RSCODE_223_187 = 1,
ATSCMH_RSCODE_235_187 = 2, ATSCMH_RSCODE_235_187 = 2,
ATSCMH_RSCODE_RES = 3, ATSCMH_RSCODE_RES = 3,
}; };
#define NO_STREAM_ID_FILTER (~0U) #define NO_STREAM_ID_FILTER (~0U)
#define LNA_AUTO (~0U) #define LNA_AUTO (~0U)
struct dtv_cmds_h { struct dtv_cmds_h {
char *name; /* A display name for debugging purposes */ char *name; /* A display name for debugging purposes */
__u32 cmd; /* A unique ID */ __u32 cmd; /* A unique ID */
/* Flags */ /* Flags */
__u32 set:1; /* Either a set or get property */ __u32 set:1; /* Either a set or get property */
__u32 buffer:1; /* Does this property use the buffer? */ __u32 buffer:1; /* Does this property use the buffer? */
__u32 reserved:30; /* Align */ __u32 reserved:30; /* Align */
}; };
/** /**
...@@ -414,10 +414,10 @@ file: frontend.h ...@@ -414,10 +414,10 @@ file: frontend.h
* bit error, block error, lapsed time. * bit error, block error, lapsed time.
*/ */
enum fecap_scale_params { enum fecap_scale_params {
FE_SCALE_NOT_AVAILABLE = 0, FE_SCALE_NOT_AVAILABLE = 0,
FE_SCALE_DECIBEL, FE_SCALE_DECIBEL,
FE_SCALE_RELATIVE, FE_SCALE_RELATIVE,
FE_SCALE_COUNTER FE_SCALE_COUNTER
}; };
/** /**
...@@ -452,43 +452,43 @@ file: frontend.h ...@@ -452,43 +452,43 @@ file: frontend.h
* u.st.len = 4; * u.st.len = 4;
*/ */
struct dtv_stats { struct dtv_stats {
__u8 scale; /* enum fecap_scale_params type */ __u8 scale; /* enum fecap_scale_params type */
union { union {
__u64 uvalue; /* for counters and relative scales */ __u64 uvalue; /* for counters and relative scales */
__s64 svalue; /* for 0.001 dB measures */ __s64 svalue; /* for 0.001 dB measures */
}; };
} __attribute__ ((packed)); } __attribute__ ((packed));
#define MAX_DTV_STATS 4 #define MAX_DTV_STATS 4
struct dtv_fe_stats { struct dtv_fe_stats {
__u8 len; __u8 len;
struct dtv_stats stat[MAX_DTV_STATS]; struct dtv_stats stat[MAX_DTV_STATS];
} __attribute__ ((packed)); } __attribute__ ((packed));
struct dtv_property { struct dtv_property {
__u32 cmd; __u32 cmd;
__u32 reserved[3]; __u32 reserved[3];
union { union {
__u32 data; __u32 data;
struct dtv_fe_stats st; struct dtv_fe_stats st;
struct { struct {
__u8 data[32]; __u8 data[32];
__u32 len; __u32 len;
__u32 reserved1[3]; __u32 reserved1[3];
void *reserved2; void *reserved2;
} buffer; } buffer;
} u; } u;
int result; int result;
} __attribute__ ((packed)); } __attribute__ ((packed));
/* num of properties cannot exceed DTV_IOCTL_MAX_MSGS per ioctl */ /* num of properties cannot exceed DTV_IOCTL_MAX_MSGS per ioctl */
#define DTV_IOCTL_MAX_MSGS 64 #define DTV_IOCTL_MAX_MSGS 64
struct dtv_properties { struct dtv_properties {
__u32 num; __u32 num;
struct dtv_property *props; struct dtv_property *props;
}; };
#if defined(__DVB_CORE__) || !defined (__KERNEL__) #if defined(__DVB_CORE__) || !defined (__KERNEL__)
...@@ -500,13 +500,13 @@ file: frontend.h ...@@ -500,13 +500,13 @@ file: frontend.h
*/ */
enum fe_bandwidth { enum fe_bandwidth {
BANDWIDTH_8_MHZ, BANDWIDTH_8_MHZ,
BANDWIDTH_7_MHZ, BANDWIDTH_7_MHZ,
BANDWIDTH_6_MHZ, BANDWIDTH_6_MHZ,
BANDWIDTH_AUTO, BANDWIDTH_AUTO,
BANDWIDTH_5_MHZ, BANDWIDTH_5_MHZ,
BANDWIDTH_10_MHZ, BANDWIDTH_10_MHZ,
BANDWIDTH_1_712_MHZ, BANDWIDTH_1_712_MHZ,
}; };
/* This is needed for legacy userspace support */ /* This is needed for legacy userspace support */
...@@ -528,45 +528,45 @@ file: frontend.h ...@@ -528,45 +528,45 @@ file: frontend.h
typedef enum fe_delivery_system fe_delivery_system_t; typedef enum fe_delivery_system fe_delivery_system_t;
struct dvb_qpsk_parameters { struct dvb_qpsk_parameters {
__u32 symbol_rate; /* symbol rate in Symbols per second */ __u32 symbol_rate; /* symbol rate in Symbols per second */
fe_code_rate_t fec_inner; /* forward error correction (see above) */ fe_code_rate_t fec_inner; /* forward error correction (see above) */
}; };
struct dvb_qam_parameters { struct dvb_qam_parameters {
__u32 symbol_rate; /* symbol rate in Symbols per second */ __u32 symbol_rate; /* symbol rate in Symbols per second */
fe_code_rate_t fec_inner; /* forward error correction (see above) */ fe_code_rate_t fec_inner; /* forward error correction (see above) */
fe_modulation_t modulation; /* modulation type (see above) */ fe_modulation_t modulation; /* modulation type (see above) */
}; };
struct dvb_vsb_parameters { struct dvb_vsb_parameters {
fe_modulation_t modulation; /* modulation type (see above) */ fe_modulation_t modulation; /* modulation type (see above) */
}; };
struct dvb_ofdm_parameters { struct dvb_ofdm_parameters {
fe_bandwidth_t bandwidth; fe_bandwidth_t bandwidth;
fe_code_rate_t code_rate_HP; /* high priority stream code rate */ fe_code_rate_t code_rate_HP; /* high priority stream code rate */
fe_code_rate_t code_rate_LP; /* low priority stream code rate */ fe_code_rate_t code_rate_LP; /* low priority stream code rate */
fe_modulation_t constellation; /* modulation type (see above) */ fe_modulation_t constellation; /* modulation type (see above) */
fe_transmit_mode_t transmission_mode; fe_transmit_mode_t transmission_mode;
fe_guard_interval_t guard_interval; fe_guard_interval_t guard_interval;
fe_hierarchy_t hierarchy_information; fe_hierarchy_t hierarchy_information;
}; };
struct dvb_frontend_parameters { struct dvb_frontend_parameters {
__u32 frequency; /* (absolute) frequency in Hz for DVB-C/DVB-T/ATSC */ __u32 frequency; /* (absolute) frequency in Hz for DVB-C/DVB-T/ATSC */
/* intermediate frequency in kHz for DVB-S */ /* intermediate frequency in kHz for DVB-S */
fe_spectral_inversion_t inversion; fe_spectral_inversion_t inversion;
union { union {
struct dvb_qpsk_parameters qpsk; /* DVB-S */ struct dvb_qpsk_parameters qpsk; /* DVB-S */
struct dvb_qam_parameters qam; /* DVB-C */ struct dvb_qam_parameters qam; /* DVB-C */
struct dvb_ofdm_parameters ofdm; /* DVB-T */ struct dvb_ofdm_parameters ofdm; /* DVB-T */
struct dvb_vsb_parameters vsb; /* ATSC */ struct dvb_vsb_parameters vsb; /* ATSC */
} u; } u;
}; };
struct dvb_frontend_event { struct dvb_frontend_event {
fe_status_t status; fe_status_t status;
struct dvb_frontend_parameters parameters; struct dvb_frontend_parameters parameters;
}; };
#endif #endif
......
...@@ -50,7 +50,7 @@ Arguments ...@@ -50,7 +50,7 @@ Arguments
- .. row 4 - .. row 4
- -
- if any, is to be stored. - if any, is to be stored.
......
...@@ -38,7 +38,7 @@ Arguments ...@@ -38,7 +38,7 @@ Arguments
- int request - int request
- Equals :ref:`FE_SET_FRONTEND` for this - Equals :ref:`FE_SET_FRONTEND` for this
command. command.
- .. row 3 - .. row 3
......
...@@ -39,8 +39,8 @@ Arguments ...@@ -39,8 +39,8 @@ Arguments
- int request - int request
- Equals - Equals
:ref:`FE_READ_SIGNAL_STRENGTH` :ref:`FE_READ_SIGNAL_STRENGTH`
for this command. for this command.
- .. row 3 - .. row 3
......
...@@ -41,8 +41,8 @@ Arguments ...@@ -41,8 +41,8 @@ Arguments
- int request - int request
- Equals - Equals
:ref:`FE_READ_UNCORRECTED_BLOCKS` :ref:`FE_READ_UNCORRECTED_BLOCKS`
for this command. for this command.
- .. row 3 - .. row 3
......
...@@ -45,7 +45,7 @@ Arguments ...@@ -45,7 +45,7 @@ Arguments
- int request - int request
- Equals :ref:`FE_SET_FRONTEND` for this - Equals :ref:`FE_SET_FRONTEND` for this
command. command.
- .. row 3 - .. row 3
......
...@@ -23,8 +23,8 @@ from an internal (demux) or external (user write) source. ...@@ -23,8 +23,8 @@ from an internal (demux) or external (user write) source.
.. code-block:: c .. code-block:: c
typedef enum { typedef enum {
AUDIO_SOURCE_DEMUX, AUDIO_SOURCE_DEMUX,
AUDIO_SOURCE_MEMORY AUDIO_SOURCE_MEMORY
} audio_stream_source_t; } audio_stream_source_t;
AUDIO_SOURCE_DEMUX selects the demultiplexer (fed either by the AUDIO_SOURCE_DEMUX selects the demultiplexer (fed either by the
...@@ -45,9 +45,9 @@ representing the state of audio playback. ...@@ -45,9 +45,9 @@ representing the state of audio playback.
.. code-block:: c .. code-block:: c
typedef enum { typedef enum {
AUDIO_STOPPED, AUDIO_STOPPED,
AUDIO_PLAYING, AUDIO_PLAYING,
AUDIO_PAUSED AUDIO_PAUSED
} audio_play_state_t; } audio_play_state_t;
...@@ -63,11 +63,11 @@ the following values. ...@@ -63,11 +63,11 @@ the following values.
.. code-block:: c .. code-block:: c
typedef enum { typedef enum {
AUDIO_STEREO, AUDIO_STEREO,
AUDIO_MONO_LEFT, AUDIO_MONO_LEFT,
AUDIO_MONO_RIGHT, AUDIO_MONO_RIGHT,
AUDIO_MONO, AUDIO_MONO,
AUDIO_STEREO_SWAPPED AUDIO_STEREO_SWAPPED
} audio_channel_select_t; } audio_channel_select_t;
...@@ -83,13 +83,13 @@ about various states of the playback operation. ...@@ -83,13 +83,13 @@ about various states of the playback operation.
.. code-block:: c .. code-block:: c
typedef struct audio_status { typedef struct audio_status {
boolean AV_sync_state; boolean AV_sync_state;
boolean mute_state; boolean mute_state;
audio_play_state_t play_state; audio_play_state_t play_state;
audio_stream_source_t stream_source; audio_stream_source_t stream_source;
audio_channel_select_t channel_select; audio_channel_select_t channel_select;
boolean bypass_mode; boolean bypass_mode;
audio_mixer_t mixer_state; audio_mixer_t mixer_state;
} audio_status_t; } audio_status_t;
...@@ -105,8 +105,8 @@ audio volume. ...@@ -105,8 +105,8 @@ audio volume.
.. code-block:: c .. code-block:: c
typedef struct audio_mixer { typedef struct audio_mixer {
unsigned int volume_left; unsigned int volume_left;
unsigned int volume_right; unsigned int volume_right;
} audio_mixer_t; } audio_mixer_t;
...@@ -144,9 +144,9 @@ The ioctl AUDIO_SET_KARAOKE uses the following format: ...@@ -144,9 +144,9 @@ The ioctl AUDIO_SET_KARAOKE uses the following format:
typedef typedef
struct audio_karaoke { struct audio_karaoke {
int vocal1; int vocal1;
int vocal2; int vocal2;
int melody; int melody;
} audio_karaoke_t; } audio_karaoke_t;
If Vocal1 or Vocal2 are non-zero, they get mixed into left and right t If Vocal1 or Vocal2 are non-zero, they get mixed into left and right t
......
...@@ -58,22 +58,22 @@ Arguments ...@@ -58,22 +58,22 @@ Arguments
- .. row 3 - .. row 3
- -
- O_RDONLY read-only access - O_RDONLY read-only access
- .. row 4 - .. row 4
- -
- O_RDWR read/write access - O_RDWR read/write access
- .. row 5 - .. row 5
- -
- O_NONBLOCK open in non-blocking mode - O_NONBLOCK open in non-blocking mode
- .. row 6 - .. row 6
- -
- (blocking mode is the default) - (blocking mode is the default)
...@@ -529,12 +529,12 @@ Arguments ...@@ -529,12 +529,12 @@ Arguments
- .. row 4 - .. row 4
- -
- TRUE Audio Mute - TRUE Audio Mute
- .. row 5 - .. row 5
- -
- FALSE Audio Un-mute - FALSE Audio Un-mute
...@@ -592,12 +592,12 @@ Arguments ...@@ -592,12 +592,12 @@ Arguments
- .. row 4 - .. row 4
- -
- TRUE AV-sync ON - TRUE AV-sync ON
- .. row 5 - .. row 5
- -
- FALSE AV-sync OFF - FALSE AV-sync OFF
...@@ -655,16 +655,16 @@ Arguments ...@@ -655,16 +655,16 @@ Arguments
- boolean mode - boolean mode
- Enables or disables the decoding of the current Audio stream in - Enables or disables the decoding of the current Audio stream in
the DVB subsystem. the DVB subsystem.
- .. row 4 - .. row 4
- -
- TRUE Bypass is disabled - TRUE Bypass is disabled
- .. row 5 - .. row 5
- -
- FALSE Bypass is enabled - FALSE Bypass is enabled
...@@ -836,11 +836,11 @@ Arguments ...@@ -836,11 +836,11 @@ Arguments
- __u64 \*pts - __u64 \*pts
- Returns the 33-bit timestamp as defined in ITU T-REC-H.222.0 / - Returns the 33-bit timestamp as defined in ITU T-REC-H.222.0 /
ISO/IEC 13818-1. ISO/IEC 13818-1.
The PTS should belong to the currently played frame if possible, The PTS should belong to the currently played frame if possible,
but may also be a value close to it like the PTS of the last but may also be a value close to it like the PTS of the last
decoded frame or the last PTS extracted by the PES parser. decoded frame or the last PTS extracted by the PES parser.
Return Value Return Value
......
...@@ -16,16 +16,16 @@ ca_slot_info_t ...@@ -16,16 +16,16 @@ ca_slot_info_t
.. code-block:: c .. code-block:: c
typedef struct ca_slot_info { typedef struct ca_slot_info {
int num; /* slot number */ int num; /* slot number */
int type; /* CA interface this slot supports */ int type; /* CA interface this slot supports */
#define CA_CI 1 /* CI high level interface */ #define CA_CI 1 /* CI high level interface */
#define CA_CI_LINK 2 /* CI link layer level interface */ #define CA_CI_LINK 2 /* CI link layer level interface */
#define CA_CI_PHYS 4 /* CI physical layer level interface */ #define CA_CI_PHYS 4 /* CI physical layer level interface */
#define CA_DESCR 8 /* built-in descrambler */ #define CA_DESCR 8 /* built-in descrambler */
#define CA_SC 128 /* simple smart card interface */ #define CA_SC 128 /* simple smart card interface */
unsigned int flags; unsigned int flags;
#define CA_CI_MODULE_PRESENT 1 /* module (or card) inserted */ #define CA_CI_MODULE_PRESENT 1 /* module (or card) inserted */
#define CA_CI_MODULE_READY 2 #define CA_CI_MODULE_READY 2
} ca_slot_info_t; } ca_slot_info_t;
...@@ -40,8 +40,8 @@ ca_descr_info_t ...@@ -40,8 +40,8 @@ ca_descr_info_t
.. code-block:: c .. code-block:: c
typedef struct ca_descr_info { typedef struct ca_descr_info {
unsigned int num; /* number of available descramblers (keys) */ unsigned int num; /* number of available descramblers (keys) */
unsigned int type; /* type of supported scrambling system */ unsigned int type; /* type of supported scrambling system */
#define CA_ECD 1 #define CA_ECD 1
#define CA_NDS 2 #define CA_NDS 2
#define CA_DSS 4 #define CA_DSS 4
...@@ -57,10 +57,10 @@ ca_caps_t ...@@ -57,10 +57,10 @@ ca_caps_t
.. code-block:: c .. code-block:: c
typedef struct ca_caps { typedef struct ca_caps {
unsigned int slot_num; /* total number of CA card and module slots */ unsigned int slot_num; /* total number of CA card and module slots */
unsigned int slot_type; /* OR of all supported types */ unsigned int slot_type; /* OR of all supported types */
unsigned int descr_num; /* total number of descrambler slots (keys) */ unsigned int descr_num; /* total number of descrambler slots (keys) */
unsigned int descr_type;/* OR of all supported types */ unsigned int descr_type;/* OR of all supported types */
} ca_cap_t; } ca_cap_t;
...@@ -74,10 +74,10 @@ ca_msg_t ...@@ -74,10 +74,10 @@ ca_msg_t
/* a message to/from a CI-CAM */ /* a message to/from a CI-CAM */
typedef struct ca_msg { typedef struct ca_msg {
unsigned int index; unsigned int index;
unsigned int type; unsigned int type;
unsigned int length; unsigned int length;
unsigned char msg[256]; unsigned char msg[256];
} ca_msg_t; } ca_msg_t;
...@@ -90,9 +90,9 @@ ca_descr_t ...@@ -90,9 +90,9 @@ ca_descr_t
.. code-block:: c .. code-block:: c
typedef struct ca_descr { typedef struct ca_descr {
unsigned int index; unsigned int index;
unsigned int parity; unsigned int parity;
unsigned char cw[8]; unsigned char cw[8];
} ca_descr_t; } ca_descr_t;
...@@ -105,6 +105,6 @@ ca-pid ...@@ -105,6 +105,6 @@ ca-pid
.. code-block:: c .. code-block:: c
typedef struct ca_pid { typedef struct ca_pid {
unsigned int pid; unsigned int pid;
int index; /* -1 == disable*/ int index; /* -1 == disable*/
} ca_pid_t; } ca_pid_t;
...@@ -57,22 +57,22 @@ Arguments ...@@ -57,22 +57,22 @@ Arguments
- .. row 3 - .. row 3
- -
- O_RDONLY read-only access - O_RDONLY read-only access
- .. row 4 - .. row 4
- -
- O_RDWR read/write access - O_RDWR read/write access
- .. row 5 - .. row 5
- -
- O_NONBLOCK open in non-blocking mode - O_NONBLOCK open in non-blocking mode
- .. row 6 - .. row 6
- -
- (blocking mode is the default) - (blocking mode is the default)
......
...@@ -61,17 +61,17 @@ Arguments ...@@ -61,17 +61,17 @@ Arguments
- .. row 3 - .. row 3
- -
- O_RDWR read/write access - O_RDWR read/write access
- .. row 4 - .. row 4
- -
- O_NONBLOCK open in non-blocking mode - O_NONBLOCK open in non-blocking mode
- .. row 5 - .. row 5
- -
- (blocking mode is the default) - (blocking mode is the default)
...@@ -236,33 +236,33 @@ Return Value ...@@ -236,33 +236,33 @@ Return Value
- ``ECRC`` - ``ECRC``
- Last section had a CRC error - no data returned. The buffer is - Last section had a CRC error - no data returned. The buffer is
flushed. flushed.
- .. row 4 - .. row 4
- ``EOVERFLOW`` - ``EOVERFLOW``
- -
- .. row 5 - .. row 5
- -
- The filtered data was not read from the buffer in due time, - The filtered data was not read from the buffer in due time,
resulting in non-read data being lost. The buffer is flushed. resulting in non-read data being lost. The buffer is flushed.
- .. row 6 - .. row 6
- ``ETIMEDOUT`` - ``ETIMEDOUT``
- The section was not loaded within the stated timeout period. See - The section was not loaded within the stated timeout period. See
ioctl DMX_SET_FILTER for how to set a timeout. ioctl DMX_SET_FILTER for how to set a timeout.
- .. row 7 - .. row 7
- ``EFAULT`` - ``EFAULT``
- The driver failed to write to the callers buffer due to an invalid - The driver failed to write to the callers buffer due to an invalid
\*buf pointer. \*buf pointer.
...@@ -330,18 +330,18 @@ Return Value ...@@ -330,18 +330,18 @@ Return Value
- ``EWOULDBLOCK`` - ``EWOULDBLOCK``
- No data was written. This might happen if O_NONBLOCK was - No data was written. This might happen if O_NONBLOCK was
specified and there is no more buffer space available (if specified and there is no more buffer space available (if
O_NONBLOCK is not specified the function will block until buffer O_NONBLOCK is not specified the function will block until buffer
space is available). space is available).
- .. row 2 - .. row 2
- ``EBUSY`` - ``EBUSY``
- This error code indicates that there are conflicting requests. The - This error code indicates that there are conflicting requests. The
corresponding demux device is setup to receive data from the corresponding demux device is setup to receive data from the
front- end. Make sure that these filters are stopped and that the front- end. Make sure that these filters are stopped and that the
filters with input set to DMX_IN_DVR are started. filters with input set to DMX_IN_DVR are started.
- .. row 3 - .. row 3
...@@ -409,16 +409,16 @@ appropriately. The generic error codes are described at the ...@@ -409,16 +409,16 @@ appropriately. The generic error codes are described at the
- ``EINVAL`` - ``EINVAL``
- Invalid argument, i.e. no filtering parameters provided via the - Invalid argument, i.e. no filtering parameters provided via the
DMX_SET_FILTER or DMX_SET_PES_FILTER functions. DMX_SET_FILTER or DMX_SET_PES_FILTER functions.
- .. row 2 - .. row 2
- ``EBUSY`` - ``EBUSY``
- This error code indicates that there are conflicting requests. - This error code indicates that there are conflicting requests.
There are active filters filtering data from another input source. There are active filters filtering data from another input source.
Make sure that these filters are stopped before starting this Make sure that these filters are stopped before starting this
filter. filter.
...@@ -597,9 +597,9 @@ appropriately. The generic error codes are described at the ...@@ -597,9 +597,9 @@ appropriately. The generic error codes are described at the
- ``EBUSY`` - ``EBUSY``
- This error code indicates that there are conflicting requests. - This error code indicates that there are conflicting requests.
There are active filters filtering data from another input source. There are active filters filtering data from another input source.
Make sure that these filters are stopped before starting this Make sure that these filters are stopped before starting this
filter. filter.
......
...@@ -30,7 +30,7 @@ Output for the demux ...@@ -30,7 +30,7 @@ Output for the demux
- .. _`DMX-OUT-DECODER`: - .. _`DMX-OUT-DECODER`:
DMX_OUT_DECODER DMX_OUT_DECODER
- Streaming directly to decoder. - Streaming directly to decoder.
...@@ -38,31 +38,31 @@ Output for the demux ...@@ -38,31 +38,31 @@ Output for the demux
- .. _`DMX-OUT-TAP`: - .. _`DMX-OUT-TAP`:
DMX_OUT_TAP DMX_OUT_TAP
- Output going to a memory buffer (to be retrieved via the read - Output going to a memory buffer (to be retrieved via the read
command). Delivers the stream output to the demux device on which command). Delivers the stream output to the demux device on which
the ioctl is called. the ioctl is called.
- .. row 4 - .. row 4
- .. _`DMX-OUT-TS-TAP`: - .. _`DMX-OUT-TS-TAP`:
DMX_OUT_TS_TAP DMX_OUT_TS_TAP
- Output multiplexed into a new TS (to be retrieved by reading from - Output multiplexed into a new TS (to be retrieved by reading from
the logical DVR device). Routes output to the logical DVR device the logical DVR device). Routes output to the logical DVR device
``/dev/dvb/adapter?/dvr?``, which delivers a TS multiplexed from ``/dev/dvb/adapter?/dvr?``, which delivers a TS multiplexed from
all filters for which ``DMX_OUT_TS_TAP`` was specified. all filters for which ``DMX_OUT_TS_TAP`` was specified.
- .. row 5 - .. row 5
- .. _`DMX-OUT-TSDEMUX-TAP`: - .. _`DMX-OUT-TSDEMUX-TAP`:
DMX_OUT_TSDEMUX_TAP DMX_OUT_TSDEMUX_TAP
- Like :ref:`DMX_OUT_TS_TAP <DMX-OUT-TS-TAP>` but retrieved - Like :ref:`DMX_OUT_TS_TAP <DMX-OUT-TS-TAP>` but retrieved
from the DMX device. from the DMX device.
...@@ -76,8 +76,8 @@ dmx_input_t ...@@ -76,8 +76,8 @@ dmx_input_t
typedef enum typedef enum
{ {
DMX_IN_FRONTEND, /* Input from a front-end device. */ DMX_IN_FRONTEND, /* Input from a front-end device. */
DMX_IN_DVR /* Input from the logical DVR device. */ DMX_IN_DVR /* Input from the logical DVR device. */
} dmx_input_t; } dmx_input_t;
...@@ -91,31 +91,31 @@ dmx_pes_type_t ...@@ -91,31 +91,31 @@ dmx_pes_type_t
typedef enum typedef enum
{ {
DMX_PES_AUDIO0, DMX_PES_AUDIO0,
DMX_PES_VIDEO0, DMX_PES_VIDEO0,
DMX_PES_TELETEXT0, DMX_PES_TELETEXT0,
DMX_PES_SUBTITLE0, DMX_PES_SUBTITLE0,
DMX_PES_PCR0, DMX_PES_PCR0,
DMX_PES_AUDIO1, DMX_PES_AUDIO1,
DMX_PES_VIDEO1, DMX_PES_VIDEO1,
DMX_PES_TELETEXT1, DMX_PES_TELETEXT1,
DMX_PES_SUBTITLE1, DMX_PES_SUBTITLE1,
DMX_PES_PCR1, DMX_PES_PCR1,
DMX_PES_AUDIO2, DMX_PES_AUDIO2,
DMX_PES_VIDEO2, DMX_PES_VIDEO2,
DMX_PES_TELETEXT2, DMX_PES_TELETEXT2,
DMX_PES_SUBTITLE2, DMX_PES_SUBTITLE2,
DMX_PES_PCR2, DMX_PES_PCR2,
DMX_PES_AUDIO3, DMX_PES_AUDIO3,
DMX_PES_VIDEO3, DMX_PES_VIDEO3,
DMX_PES_TELETEXT3, DMX_PES_TELETEXT3,
DMX_PES_SUBTITLE3, DMX_PES_SUBTITLE3,
DMX_PES_PCR3, DMX_PES_PCR3,
DMX_PES_OTHER DMX_PES_OTHER
} dmx_pes_type_t; } dmx_pes_type_t;
...@@ -129,9 +129,9 @@ struct dmx_filter ...@@ -129,9 +129,9 @@ struct dmx_filter
typedef struct dmx_filter typedef struct dmx_filter
{ {
__u8 filter[DMX_FILTER_SIZE]; __u8 filter[DMX_FILTER_SIZE];
__u8 mask[DMX_FILTER_SIZE]; __u8 mask[DMX_FILTER_SIZE];
__u8 mode[DMX_FILTER_SIZE]; __u8 mode[DMX_FILTER_SIZE];
} dmx_filter_t; } dmx_filter_t;
...@@ -145,10 +145,10 @@ struct dmx_sct_filter_params ...@@ -145,10 +145,10 @@ struct dmx_sct_filter_params
struct dmx_sct_filter_params struct dmx_sct_filter_params
{ {
__u16 pid; __u16 pid;
dmx_filter_t filter; dmx_filter_t filter;
__u32 timeout; __u32 timeout;
__u32 flags; __u32 flags;
#define DMX_CHECK_CRC 1 #define DMX_CHECK_CRC 1
#define DMX_ONESHOT 2 #define DMX_ONESHOT 2
#define DMX_IMMEDIATE_START 4 #define DMX_IMMEDIATE_START 4
...@@ -166,11 +166,11 @@ struct dmx_pes_filter_params ...@@ -166,11 +166,11 @@ struct dmx_pes_filter_params
struct dmx_pes_filter_params struct dmx_pes_filter_params
{ {
__u16 pid; __u16 pid;
dmx_input_t input; dmx_input_t input;
dmx_output_t output; dmx_output_t output;
dmx_pes_type_t pes_type; dmx_pes_type_t pes_type;
__u32 flags; __u32 flags;
}; };
...@@ -184,12 +184,12 @@ struct dmx_event ...@@ -184,12 +184,12 @@ struct dmx_event
struct dmx_event struct dmx_event
{ {
dmx_event_t event; dmx_event_t event;
time_t timeStamp; time_t timeStamp;
union union
{ {
dmx_scrambling_status_t scrambling; dmx_scrambling_status_t scrambling;
} u; } u;
}; };
...@@ -202,9 +202,9 @@ struct dmx_stc ...@@ -202,9 +202,9 @@ struct dmx_stc
.. code-block:: c .. code-block:: c
struct dmx_stc { struct dmx_stc {
unsigned int num; /* input : which STC? 0..N */ unsigned int num; /* input : which STC? 0..N */
unsigned int base; /* output: divisor for stc to get 90 kHz clock */ unsigned int base; /* output: divisor for stc to get 90 kHz clock */
__u64 stc; /* output: stc in 'base'*90 kHz units */ __u64 stc; /* output: stc in 'base'*90 kHz units */
}; };
...@@ -217,8 +217,8 @@ struct dmx_caps ...@@ -217,8 +217,8 @@ struct dmx_caps
.. code-block:: c .. code-block:: c
typedef struct dmx_caps { typedef struct dmx_caps {
__u32 caps; __u32 caps;
int num_decoders; int num_decoders;
} dmx_caps_t; } dmx_caps_t;
...@@ -231,12 +231,12 @@ enum dmx_source_t ...@@ -231,12 +231,12 @@ enum dmx_source_t
.. code-block:: c .. code-block:: c
typedef enum { typedef enum {
DMX_SOURCE_FRONT0 = 0, DMX_SOURCE_FRONT0 = 0,
DMX_SOURCE_FRONT1, DMX_SOURCE_FRONT1,
DMX_SOURCE_FRONT2, DMX_SOURCE_FRONT2,
DMX_SOURCE_FRONT3, DMX_SOURCE_FRONT3,
DMX_SOURCE_DVR0 = 16, DMX_SOURCE_DVR0 = 16,
DMX_SOURCE_DVR1, DMX_SOURCE_DVR1,
DMX_SOURCE_DVR2, DMX_SOURCE_DVR2,
DMX_SOURCE_DVR3 DMX_SOURCE_DVR3
} dmx_source_t; } dmx_source_t;
...@@ -12,6 +12,6 @@ struct dtv_fe_stats ...@@ -12,6 +12,6 @@ struct dtv_fe_stats
#define MAX_DTV_STATS 4 #define MAX_DTV_STATS 4
struct dtv_fe_stats { struct dtv_fe_stats {
__u8 len; __u8 len;
struct dtv_stats stat[MAX_DTV_STATS]; struct dtv_stats stat[MAX_DTV_STATS];
} __packed; } __packed;
...@@ -10,6 +10,6 @@ struct dtv_properties ...@@ -10,6 +10,6 @@ struct dtv_properties
.. code-block:: c .. code-block:: c
struct dtv_properties { struct dtv_properties {
__u32 num; __u32 num;
struct dtv_property *props; struct dtv_property *props;
}; };
...@@ -12,19 +12,19 @@ struct dtv_property ...@@ -12,19 +12,19 @@ struct dtv_property
/* Reserved fields should be set to 0 */ /* Reserved fields should be set to 0 */
struct dtv_property { struct dtv_property {
__u32 cmd; __u32 cmd;
__u32 reserved[3]; __u32 reserved[3];
union { union {
__u32 data; __u32 data;
struct dtv_fe_stats st; struct dtv_fe_stats st;
struct { struct {
__u8 data[32]; __u8 data[32];
__u32 len; __u32 len;
__u32 reserved1[3]; __u32 reserved1[3];
void *reserved2; void *reserved2;
} buffer; } buffer;
} u; } u;
int result; int result;
} __attribute__ ((packed)); } __attribute__ ((packed));
/* num of properties cannot exceed DTV_IOCTL_MAX_MSGS per ioctl */ /* num of properties cannot exceed DTV_IOCTL_MAX_MSGS per ioctl */
......
...@@ -10,9 +10,9 @@ struct dtv_stats ...@@ -10,9 +10,9 @@ struct dtv_stats
.. code-block:: c .. code-block:: c
struct dtv_stats { struct dtv_stats {
__u8 scale; /* enum fecap_scale_params type */ __u8 scale; /* enum fecap_scale_params type */
union { union {
__u64 uvalue; /* for counters and relative scales */ __u64 uvalue; /* for counters and relative scales */
__s64 svalue; /* for 1/1000 dB measures */ __s64 svalue; /* for 1/1000 dB measures */
}; };
} __packed; } __packed;
...@@ -10,6 +10,6 @@ frontend events ...@@ -10,6 +10,6 @@ frontend events
.. code-block:: c .. code-block:: c
struct dvb_frontend_event { struct dvb_frontend_event {
fe_status_t status; fe_status_t status;
struct dvb_frontend_parameters parameters; struct dvb_frontend_parameters parameters;
}; };
...@@ -30,15 +30,15 @@ FrontendParameters structure: ...@@ -30,15 +30,15 @@ FrontendParameters structure:
.. code-block:: c .. code-block:: c
struct dvb_frontend_parameters { struct dvb_frontend_parameters {
uint32_t frequency; /* (absolute) frequency in Hz for QAM/OFDM */ uint32_t frequency; /* (absolute) frequency in Hz for QAM/OFDM */
/* intermediate frequency in kHz for QPSK */ /* intermediate frequency in kHz for QPSK */
fe_spectral_inversion_t inversion; fe_spectral_inversion_t inversion;
union { union {
struct dvb_qpsk_parameters qpsk; struct dvb_qpsk_parameters qpsk;
struct dvb_qam_parameters qam; struct dvb_qam_parameters qam;
struct dvb_ofdm_parameters ofdm; struct dvb_ofdm_parameters ofdm;
struct dvb_vsb_parameters vsb; struct dvb_vsb_parameters vsb;
} u; } u;
}; };
In the case of QPSK frontends the ``frequency`` field specifies the In the case of QPSK frontends the ``frequency`` field specifies the
...@@ -61,8 +61,8 @@ structure: ...@@ -61,8 +61,8 @@ structure:
.. code-block:: c .. code-block:: c
struct dvb_qpsk_parameters { struct dvb_qpsk_parameters {
uint32_t symbol_rate; /* symbol rate in Symbols per second */ uint32_t symbol_rate; /* symbol rate in Symbols per second */
fe_code_rate_t fec_inner; /* forward error correction (see above) */ fe_code_rate_t fec_inner; /* forward error correction (see above) */
}; };
...@@ -77,9 +77,9 @@ for cable QAM frontend you use the ``dvb_qam_parameters`` structure: ...@@ -77,9 +77,9 @@ for cable QAM frontend you use the ``dvb_qam_parameters`` structure:
.. code-block:: c .. code-block:: c
struct dvb_qam_parameters { struct dvb_qam_parameters {
uint32_t symbol_rate; /* symbol rate in Symbols per second */ uint32_t symbol_rate; /* symbol rate in Symbols per second */
fe_code_rate_t fec_inner; /* forward error correction (see above) */ fe_code_rate_t fec_inner; /* forward error correction (see above) */
fe_modulation_t modulation; /* modulation type (see above) */ fe_modulation_t modulation; /* modulation type (see above) */
}; };
...@@ -94,7 +94,7 @@ ATSC frontends are supported by the ``dvb_vsb_parameters`` structure: ...@@ -94,7 +94,7 @@ ATSC frontends are supported by the ``dvb_vsb_parameters`` structure:
.. code-block:: c .. code-block:: c
struct dvb_vsb_parameters { struct dvb_vsb_parameters {
fe_modulation_t modulation; /* modulation type (see above) */ fe_modulation_t modulation; /* modulation type (see above) */
}; };
...@@ -109,11 +109,11 @@ DVB-T frontends are supported by the ``dvb_ofdm_parameters`` structure: ...@@ -109,11 +109,11 @@ DVB-T frontends are supported by the ``dvb_ofdm_parameters`` structure:
.. code-block:: c .. code-block:: c
struct dvb_ofdm_parameters { struct dvb_ofdm_parameters {
fe_bandwidth_t bandwidth; fe_bandwidth_t bandwidth;
fe_code_rate_t code_rate_HP; /* high priority stream code rate */ fe_code_rate_t code_rate_HP; /* high priority stream code rate */
fe_code_rate_t code_rate_LP; /* low priority stream code rate */ fe_code_rate_t code_rate_LP; /* low priority stream code rate */
fe_modulation_t constellation; /* modulation type (see above) */ fe_modulation_t constellation; /* modulation type (see above) */
fe_transmit_mode_t transmission_mode; fe_transmit_mode_t transmission_mode;
fe_guard_interval_t guard_interval; fe_guard_interval_t guard_interval;
fe_hierarchy_t hierarchy_information; fe_hierarchy_t hierarchy_information;
}; };
...@@ -59,33 +59,33 @@ The code that would do the above is: ...@@ -59,33 +59,33 @@ The code that would do the above is:
#include <linux/dvb/frontend.h> #include <linux/dvb/frontend.h>
static struct dtv_property props[] = { static struct dtv_property props[] = {
{ .cmd = DTV_DELIVERY_SYSTEM, .u.data = SYS_DVBC_ANNEX_A }, { .cmd = DTV_DELIVERY_SYSTEM, .u.data = SYS_DVBC_ANNEX_A },
{ .cmd = DTV_FREQUENCY, .u.data = 651000000 }, { .cmd = DTV_FREQUENCY, .u.data = 651000000 },
{ .cmd = DTV_MODULATION, .u.data = QAM_256 }, { .cmd = DTV_MODULATION, .u.data = QAM_256 },
{ .cmd = DTV_INVERSION, .u.data = INVERSION_AUTO }, { .cmd = DTV_INVERSION, .u.data = INVERSION_AUTO },
{ .cmd = DTV_SYMBOL_RATE, .u.data = 5217000 }, { .cmd = DTV_SYMBOL_RATE, .u.data = 5217000 },
{ .cmd = DTV_INNER_FEC, .u.data = FEC_3_4 }, { .cmd = DTV_INNER_FEC, .u.data = FEC_3_4 },
{ .cmd = DTV_TUNE } { .cmd = DTV_TUNE }
}; };
static struct dtv_properties dtv_prop = { static struct dtv_properties dtv_prop = {
.num = 6, .props = props .num = 6, .props = props
}; };
int main(void) int main(void)
{ {
int fd = open("/dev/dvb/adapter0/frontend0", O_RDWR); int fd = open("/dev/dvb/adapter0/frontend0", O_RDWR);
if (!fd) { if (!fd) {
perror ("open"); perror ("open");
return -1; return -1;
} }
if (ioctl(fd, FE_SET_PROPERTY, &dtv_prop) == -1) { if (ioctl(fd, FE_SET_PROPERTY, &dtv_prop) == -1) {
perror("ioctl"); perror("ioctl");
return -1; return -1;
} }
printf("Frontend set\\n"); printf("Frontend set\\n");
return 0; return 0;
} }
NOTE: While it is possible to directly call the Kernel code like the NOTE: While it is possible to directly call the Kernel code like the
......
...@@ -48,23 +48,23 @@ tuners, but can easily be adjusted for QAM. ...@@ -48,23 +48,23 @@ tuners, but can easily be adjusted for QAM.
/* routine for checking if we have a signal and other status information*/ /* routine for checking if we have a signal and other status information*/
int FEReadStatus(int fd, fe_status_t *stat) int FEReadStatus(int fd, fe_status_t *stat)
{ {
int ans; int ans;
if ( (ans = ioctl(fd,FE_READ_STATUS,stat) < 0)){ if ( (ans = ioctl(fd,FE_READ_STATUS,stat) < 0)){
perror("FE READ STATUS: "); perror("FE READ STATUS: ");
return -1; return -1;
} }
if (*stat & FE_HAS_POWER) if (*stat & FE_HAS_POWER)
printf("FE HAS POWER\\n"); printf("FE HAS POWER\\n");
if (*stat & FE_HAS_SIGNAL) if (*stat & FE_HAS_SIGNAL)
printf("FE HAS SIGNAL\\n"); printf("FE HAS SIGNAL\\n");
if (*stat & FE_SPECTRUM_INV) if (*stat & FE_SPECTRUM_INV)
printf("SPEKTRUM INV\\n"); printf("SPEKTRUM INV\\n");
return 0; return 0;
} }
...@@ -80,153 +80,153 @@ tuners, but can easily be adjusted for QAM. ...@@ -80,153 +80,153 @@ tuners, but can easily be adjusted for QAM.
/* lnb_slof: switch frequency of LNB */ /* lnb_slof: switch frequency of LNB */
int set_qpsk_channel(int freq, int vpid, int apid, int tpid, int set_qpsk_channel(int freq, int vpid, int apid, int tpid,
int diseqc, int pol, int srate, int fec, int lnb_lof1, int diseqc, int pol, int srate, int fec, int lnb_lof1,
int lnb_lof2, int lnb_slof) int lnb_lof2, int lnb_slof)
{ {
struct secCommand scmd; struct secCommand scmd;
struct secCmdSequence scmds; struct secCmdSequence scmds;
struct dmx_pes_filter_params pesFilterParams; struct dmx_pes_filter_params pesFilterParams;
FrontendParameters frp; FrontendParameters frp;
struct pollfd pfd[1]; struct pollfd pfd[1];
FrontendEvent event; FrontendEvent event;
int demux1, demux2, demux3, front; int demux1, demux2, demux3, front;
frequency = (uint32_t) freq; frequency = (uint32_t) freq;
symbolrate = (uint32_t) srate; symbolrate = (uint32_t) srate;
if((front = open(FRONT,O_RDWR)) < 0){ if((front = open(FRONT,O_RDWR)) < 0){
perror("FRONTEND DEVICE: "); perror("FRONTEND DEVICE: ");
return -1; return -1;
} }
if((sec = open(SEC,O_RDWR)) < 0){ if((sec = open(SEC,O_RDWR)) < 0){
perror("SEC DEVICE: "); perror("SEC DEVICE: ");
return -1; return -1;
} }
if (demux1 < 0){ if (demux1 < 0){
if ((demux1=open(DMX, O_RDWR|O_NONBLOCK)) if ((demux1=open(DMX, O_RDWR|O_NONBLOCK))
< 0){ < 0){
perror("DEMUX DEVICE: "); perror("DEMUX DEVICE: ");
return -1; return -1;
} }
} }
if (demux2 < 0){ if (demux2 < 0){
if ((demux2=open(DMX, O_RDWR|O_NONBLOCK)) if ((demux2=open(DMX, O_RDWR|O_NONBLOCK))
< 0){ < 0){
perror("DEMUX DEVICE: "); perror("DEMUX DEVICE: ");
return -1; return -1;
} }
} }
if (demux3 < 0){ if (demux3 < 0){
if ((demux3=open(DMX, O_RDWR|O_NONBLOCK)) if ((demux3=open(DMX, O_RDWR|O_NONBLOCK))
< 0){ < 0){
perror("DEMUX DEVICE: "); perror("DEMUX DEVICE: ");
return -1; return -1;
} }
} }
if (freq < lnb_slof) { if (freq < lnb_slof) {
frp.Frequency = (freq - lnb_lof1); frp.Frequency = (freq - lnb_lof1);
scmds.continuousTone = SEC_TONE_OFF; scmds.continuousTone = SEC_TONE_OFF;
} else { } else {
frp.Frequency = (freq - lnb_lof2); frp.Frequency = (freq - lnb_lof2);
scmds.continuousTone = SEC_TONE_ON; scmds.continuousTone = SEC_TONE_ON;
} }
frp.Inversion = INVERSION_AUTO; frp.Inversion = INVERSION_AUTO;
if (pol) scmds.voltage = SEC_VOLTAGE_18; if (pol) scmds.voltage = SEC_VOLTAGE_18;
else scmds.voltage = SEC_VOLTAGE_13; else scmds.voltage = SEC_VOLTAGE_13;
scmd.type=0; scmd.type=0;
scmd.u.diseqc.addr=0x10; scmd.u.diseqc.addr=0x10;
scmd.u.diseqc.cmd=0x38; scmd.u.diseqc.cmd=0x38;
scmd.u.diseqc.numParams=1; scmd.u.diseqc.numParams=1;
scmd.u.diseqc.params[0] = 0xF0 | ((diseqc * 4) & 0x0F) | scmd.u.diseqc.params[0] = 0xF0 | ((diseqc * 4) & 0x0F) |
(scmds.continuousTone == SEC_TONE_ON ? 1 : 0) | (scmds.continuousTone == SEC_TONE_ON ? 1 : 0) |
(scmds.voltage==SEC_VOLTAGE_18 ? 2 : 0); (scmds.voltage==SEC_VOLTAGE_18 ? 2 : 0);
scmds.miniCommand=SEC_MINI_NONE; scmds.miniCommand=SEC_MINI_NONE;
scmds.numCommands=1; scmds.numCommands=1;
scmds.commands=&scmd; scmds.commands=&scmd;
if (ioctl(sec, SEC_SEND_SEQUENCE, &scmds) < 0){ if (ioctl(sec, SEC_SEND_SEQUENCE, &scmds) < 0){
perror("SEC SEND: "); perror("SEC SEND: ");
return -1; return -1;
} }
if (ioctl(sec, SEC_SEND_SEQUENCE, &scmds) < 0){ if (ioctl(sec, SEC_SEND_SEQUENCE, &scmds) < 0){
perror("SEC SEND: "); perror("SEC SEND: ");
return -1; return -1;
} }
frp.u.qpsk.SymbolRate = srate; frp.u.qpsk.SymbolRate = srate;
frp.u.qpsk.FEC_inner = fec; frp.u.qpsk.FEC_inner = fec;
if (ioctl(front, FE_SET_FRONTEND, &frp) < 0){ if (ioctl(front, FE_SET_FRONTEND, &frp) < 0){
perror("QPSK TUNE: "); perror("QPSK TUNE: ");
return -1; return -1;
} }
pfd[0].fd = front; pfd[0].fd = front;
pfd[0].events = POLLIN; pfd[0].events = POLLIN;
if (poll(pfd,1,3000)){ if (poll(pfd,1,3000)){
if (pfd[0].revents & POLLIN){ if (pfd[0].revents & POLLIN){
printf("Getting QPSK event\\n"); printf("Getting QPSK event\\n");
if ( ioctl(front, FE_GET_EVENT, &event) if ( ioctl(front, FE_GET_EVENT, &event)
== -EOVERFLOW){ == -EOVERFLOW){
perror("qpsk get event"); perror("qpsk get event");
return -1; return -1;
} }
printf("Received "); printf("Received ");
switch(event.type){ switch(event.type){
case FE_UNEXPECTED_EV: case FE_UNEXPECTED_EV:
printf("unexpected event\\n"); printf("unexpected event\\n");
return -1; return -1;
case FE_FAILURE_EV: case FE_FAILURE_EV:
printf("failure event\\n"); printf("failure event\\n");
return -1; return -1;
case FE_COMPLETION_EV: case FE_COMPLETION_EV:
printf("completion event\\n"); printf("completion event\\n");
} }
} }
} }
pesFilterParams.pid = vpid; pesFilterParams.pid = vpid;
pesFilterParams.input = DMX_IN_FRONTEND; pesFilterParams.input = DMX_IN_FRONTEND;
pesFilterParams.output = DMX_OUT_DECODER; pesFilterParams.output = DMX_OUT_DECODER;
pesFilterParams.pes_type = DMX_PES_VIDEO; pesFilterParams.pes_type = DMX_PES_VIDEO;
pesFilterParams.flags = DMX_IMMEDIATE_START; pesFilterParams.flags = DMX_IMMEDIATE_START;
if (ioctl(demux1, DMX_SET_PES_FILTER, &pesFilterParams) < 0){ if (ioctl(demux1, DMX_SET_PES_FILTER, &pesFilterParams) < 0){
perror("set_vpid"); perror("set_vpid");
return -1; return -1;
} }
pesFilterParams.pid = apid; pesFilterParams.pid = apid;
pesFilterParams.input = DMX_IN_FRONTEND; pesFilterParams.input = DMX_IN_FRONTEND;
pesFilterParams.output = DMX_OUT_DECODER; pesFilterParams.output = DMX_OUT_DECODER;
pesFilterParams.pes_type = DMX_PES_AUDIO; pesFilterParams.pes_type = DMX_PES_AUDIO;
pesFilterParams.flags = DMX_IMMEDIATE_START; pesFilterParams.flags = DMX_IMMEDIATE_START;
if (ioctl(demux2, DMX_SET_PES_FILTER, &pesFilterParams) < 0){ if (ioctl(demux2, DMX_SET_PES_FILTER, &pesFilterParams) < 0){
perror("set_apid"); perror("set_apid");
return -1; return -1;
} }
pesFilterParams.pid = tpid; pesFilterParams.pid = tpid;
pesFilterParams.input = DMX_IN_FRONTEND; pesFilterParams.input = DMX_IN_FRONTEND;
pesFilterParams.output = DMX_OUT_DECODER; pesFilterParams.output = DMX_OUT_DECODER;
pesFilterParams.pes_type = DMX_PES_TELETEXT; pesFilterParams.pes_type = DMX_PES_TELETEXT;
pesFilterParams.flags = DMX_IMMEDIATE_START; pesFilterParams.flags = DMX_IMMEDIATE_START;
if (ioctl(demux3, DMX_SET_PES_FILTER, &pesFilterParams) < 0){ if (ioctl(demux3, DMX_SET_PES_FILTER, &pesFilterParams) < 0){
perror("set_tpid"); perror("set_tpid");
return -1; return -1;
} }
return has_signal(fds); return has_signal(fds);
} }
The program assumes that you are using a universal LNB and a standard The program assumes that you are using a universal LNB and a standard
...@@ -274,43 +274,43 @@ recording. ...@@ -274,43 +274,43 @@ recording.
int switch_to_record(int demux1, int demux2, uint16_t vpid, uint16_t apid) int switch_to_record(int demux1, int demux2, uint16_t vpid, uint16_t apid)
{ {
struct dmx_pes_filter_params pesFilterParams; struct dmx_pes_filter_params pesFilterParams;
if (demux1 < 0){ if (demux1 < 0){
if ((demux1=open(DMX, O_RDWR|O_NONBLOCK)) if ((demux1=open(DMX, O_RDWR|O_NONBLOCK))
< 0){ < 0){
perror("DEMUX DEVICE: "); perror("DEMUX DEVICE: ");
return -1; return -1;
} }
} }
if (demux2 < 0){ if (demux2 < 0){
if ((demux2=open(DMX, O_RDWR|O_NONBLOCK)) if ((demux2=open(DMX, O_RDWR|O_NONBLOCK))
< 0){ < 0){
perror("DEMUX DEVICE: "); perror("DEMUX DEVICE: ");
return -1; return -1;
} }
} }
pesFilterParams.pid = vpid; pesFilterParams.pid = vpid;
pesFilterParams.input = DMX_IN_FRONTEND; pesFilterParams.input = DMX_IN_FRONTEND;
pesFilterParams.output = DMX_OUT_TS_TAP; pesFilterParams.output = DMX_OUT_TS_TAP;
pesFilterParams.pes_type = DMX_PES_VIDEO; pesFilterParams.pes_type = DMX_PES_VIDEO;
pesFilterParams.flags = DMX_IMMEDIATE_START; pesFilterParams.flags = DMX_IMMEDIATE_START;
if (ioctl(demux1, DMX_SET_PES_FILTER, &pesFilterParams) < 0){ if (ioctl(demux1, DMX_SET_PES_FILTER, &pesFilterParams) < 0){
perror("DEMUX DEVICE"); perror("DEMUX DEVICE");
return -1; return -1;
} }
pesFilterParams.pid = apid; pesFilterParams.pid = apid;
pesFilterParams.input = DMX_IN_FRONTEND; pesFilterParams.input = DMX_IN_FRONTEND;
pesFilterParams.output = DMX_OUT_TS_TAP; pesFilterParams.output = DMX_OUT_TS_TAP;
pesFilterParams.pes_type = DMX_PES_AUDIO; pesFilterParams.pes_type = DMX_PES_AUDIO;
pesFilterParams.flags = DMX_IMMEDIATE_START; pesFilterParams.flags = DMX_IMMEDIATE_START;
if (ioctl(demux2, DMX_SET_PES_FILTER, &pesFilterParams) < 0){ if (ioctl(demux2, DMX_SET_PES_FILTER, &pesFilterParams) < 0){
perror("DEMUX DEVICE"); perror("DEMUX DEVICE");
return -1; return -1;
} }
return 0; return 0;
} }
/* start recording MAX_LENGTH , assuming the transponder is tuned */ /* start recording MAX_LENGTH , assuming the transponder is tuned */
...@@ -319,62 +319,62 @@ recording. ...@@ -319,62 +319,62 @@ recording.
/* vpid, apid: PIDs of video and audio channels */ /* vpid, apid: PIDs of video and audio channels */
int record_dvr(int demux1, int demux2, uint16_t vpid, uint16_t apid) int record_dvr(int demux1, int demux2, uint16_t vpid, uint16_t apid)
{ {
int i; int i;
int len; int len;
int written; int written;
uint8_t buf[BUFFY]; uint8_t buf[BUFFY];
uint64_t length; uint64_t length;
struct pollfd pfd[1]; struct pollfd pfd[1];
int dvr, dvr_out; int dvr, dvr_out;
/* open dvr device */ /* open dvr device */
if ((dvr = open(DVR, O_RDONLY|O_NONBLOCK)) < 0){ if ((dvr = open(DVR, O_RDONLY|O_NONBLOCK)) < 0){
perror("DVR DEVICE"); perror("DVR DEVICE");
return -1; return -1;
} }
/* switch video and audio demuxes to dvr */ /* switch video and audio demuxes to dvr */
printf ("Switching dvr on\\n"); printf ("Switching dvr on\\n");
i = switch_to_record(demux1, demux2, vpid, apid); i = switch_to_record(demux1, demux2, vpid, apid);
printf("finished: "); printf("finished: ");
printf("Recording %2.0f MB of test file in TS format\\n", printf("Recording %2.0f MB of test file in TS format\\n",
MAX_LENGTH/(1024.0*1024.0)); MAX_LENGTH/(1024.0*1024.0));
length = 0; length = 0;
/* open output file */ /* open output file */
if ((dvr_out = open(DVR_FILE,O_WRONLY|O_CREAT if ((dvr_out = open(DVR_FILE,O_WRONLY|O_CREAT
|O_TRUNC, S_IRUSR|S_IWUSR |O_TRUNC, S_IRUSR|S_IWUSR
|S_IRGRP|S_IWGRP|S_IROTH| |S_IRGRP|S_IWGRP|S_IROTH|
S_IWOTH)) < 0){ S_IWOTH)) < 0){
perror("Can't open file for dvr test"); perror("Can't open file for dvr test");
return -1; return -1;
} }
pfd[0].fd = dvr; pfd[0].fd = dvr;
pfd[0].events = POLLIN; pfd[0].events = POLLIN;
/* poll for dvr data and write to file */ /* poll for dvr data and write to file */
while (length < MAX_LENGTH ) { while (length < MAX_LENGTH ) {
if (poll(pfd,1,1)){ if (poll(pfd,1,1)){
if (pfd[0].revents & POLLIN){ if (pfd[0].revents & POLLIN){
len = read(dvr, buf, BUFFY); len = read(dvr, buf, BUFFY);
if (len < 0){ if (len < 0){
perror("recording"); perror("recording");
return -1; return -1;
} }
if (len > 0){ if (len > 0){
written = 0; written = 0;
while (written < len) while (written < len)
written += written +=
write (dvr_out, write (dvr_out,
buf, len); buf, len);
length += len; length += len;
printf("written %2.0f MB\\r", printf("written %2.0f MB\\r",
length/1024./1024.); length/1024./1024.);
} }
} }
} }
} }
return 0; return 0;
} }
...@@ -24,7 +24,7 @@ Frontend bandwidth ...@@ -24,7 +24,7 @@ Frontend bandwidth
- .. _`BANDWIDTH-AUTO`: - .. _`BANDWIDTH-AUTO`:
``BANDWIDTH_AUTO`` ``BANDWIDTH_AUTO``
- Autodetect bandwidth (if supported) - Autodetect bandwidth (if supported)
...@@ -32,7 +32,7 @@ Frontend bandwidth ...@@ -32,7 +32,7 @@ Frontend bandwidth
- .. _`BANDWIDTH-1-712-MHZ`: - .. _`BANDWIDTH-1-712-MHZ`:
``BANDWIDTH_1_712_MHZ`` ``BANDWIDTH_1_712_MHZ``
- 1.712 MHz - 1.712 MHz
...@@ -40,7 +40,7 @@ Frontend bandwidth ...@@ -40,7 +40,7 @@ Frontend bandwidth
- .. _`BANDWIDTH-5-MHZ`: - .. _`BANDWIDTH-5-MHZ`:
``BANDWIDTH_5_MHZ`` ``BANDWIDTH_5_MHZ``
- 5 MHz - 5 MHz
...@@ -48,7 +48,7 @@ Frontend bandwidth ...@@ -48,7 +48,7 @@ Frontend bandwidth
- .. _`BANDWIDTH-6-MHZ`: - .. _`BANDWIDTH-6-MHZ`:
``BANDWIDTH_6_MHZ`` ``BANDWIDTH_6_MHZ``
- 6 MHz - 6 MHz
...@@ -56,7 +56,7 @@ Frontend bandwidth ...@@ -56,7 +56,7 @@ Frontend bandwidth
- .. _`BANDWIDTH-7-MHZ`: - .. _`BANDWIDTH-7-MHZ`:
``BANDWIDTH_7_MHZ`` ``BANDWIDTH_7_MHZ``
- 7 MHz - 7 MHz
...@@ -64,7 +64,7 @@ Frontend bandwidth ...@@ -64,7 +64,7 @@ Frontend bandwidth
- .. _`BANDWIDTH-8-MHZ`: - .. _`BANDWIDTH-8-MHZ`:
``BANDWIDTH_8_MHZ`` ``BANDWIDTH_8_MHZ``
- 8 MHz - 8 MHz
...@@ -72,6 +72,6 @@ Frontend bandwidth ...@@ -72,6 +72,6 @@ Frontend bandwidth
- .. _`BANDWIDTH-10-MHZ`: - .. _`BANDWIDTH-10-MHZ`:
``BANDWIDTH_10_MHZ`` ``BANDWIDTH_10_MHZ``
- 10 MHz - 10 MHz
...@@ -65,7 +65,7 @@ appropriately. The generic error codes are described at the ...@@ -65,7 +65,7 @@ appropriately. The generic error codes are described at the
- msg_len - msg_len
- Length of the DiSEqC message. Valid values are 0 to 4, where 0 - Length of the DiSEqC message. Valid values are 0 to 4, where 0
means no msg means no msg
- .. row 3 - .. row 3
...@@ -74,4 +74,4 @@ appropriately. The generic error codes are described at the ...@@ -74,4 +74,4 @@ appropriately. The generic error codes are described at the
- timeout - timeout
- Return from ioctl after timeout ms with errorcode when no message - Return from ioctl after timeout ms with errorcode when no message
was received was received
...@@ -69,7 +69,7 @@ enum fe_sec_mini_cmd ...@@ -69,7 +69,7 @@ enum fe_sec_mini_cmd
- .. _`SEC-MINI-A`: - .. _`SEC-MINI-A`:
``SEC_MINI_A`` ``SEC_MINI_A``
- Sends a mini-DiSEqC 22kHz '0' Tone Burst to select satellite-A - Sends a mini-DiSEqC 22kHz '0' Tone Burst to select satellite-A
...@@ -77,6 +77,6 @@ enum fe_sec_mini_cmd ...@@ -77,6 +77,6 @@ enum fe_sec_mini_cmd
- .. _`SEC-MINI-B`: - .. _`SEC-MINI-B`:
``SEC_MINI_B`` ``SEC_MINI_B``
- Sends a mini-DiSEqC 22kHz '1' Data Burst to select satellite-B - Sends a mini-DiSEqC 22kHz '1' Data Burst to select satellite-B
...@@ -71,8 +71,8 @@ appropriately. The generic error codes are described at the ...@@ -71,8 +71,8 @@ appropriately. The generic error codes are described at the
- type - type
- **DEPRECATED**. DVBv3 type. Should not be used on modern programs, - **DEPRECATED**. DVBv3 type. Should not be used on modern programs,
as a frontend may have more than one type. So, the DVBv5 API as a frontend may have more than one type. So, the DVBv5 API
should be used instead to enumerate and select the frontend type. should be used instead to enumerate and select the frontend type.
- .. row 3 - .. row 3
...@@ -177,16 +177,16 @@ supported only on some specific frontend types. ...@@ -177,16 +177,16 @@ supported only on some specific frontend types.
- .. _`FE-IS-STUPID`: - .. _`FE-IS-STUPID`:
``FE_IS_STUPID`` ``FE_IS_STUPID``
- There's something wrong at the frontend, and it can't report its - There's something wrong at the frontend, and it can't report its
capabilities capabilities
- .. row 3 - .. row 3
- .. _`FE-CAN-INVERSION-AUTO`: - .. _`FE-CAN-INVERSION-AUTO`:
``FE_CAN_INVERSION_AUTO`` ``FE_CAN_INVERSION_AUTO``
- The frontend is capable of auto-detecting inversion - The frontend is capable of auto-detecting inversion
...@@ -194,7 +194,7 @@ supported only on some specific frontend types. ...@@ -194,7 +194,7 @@ supported only on some specific frontend types.
- .. _`FE-CAN-FEC-1-2`: - .. _`FE-CAN-FEC-1-2`:
``FE_CAN_FEC_1_2`` ``FE_CAN_FEC_1_2``
- The frontend supports FEC 1/2 - The frontend supports FEC 1/2
...@@ -202,7 +202,7 @@ supported only on some specific frontend types. ...@@ -202,7 +202,7 @@ supported only on some specific frontend types.
- .. _`FE-CAN-FEC-2-3`: - .. _`FE-CAN-FEC-2-3`:
``FE_CAN_FEC_2_3`` ``FE_CAN_FEC_2_3``
- The frontend supports FEC 2/3 - The frontend supports FEC 2/3
...@@ -210,7 +210,7 @@ supported only on some specific frontend types. ...@@ -210,7 +210,7 @@ supported only on some specific frontend types.
- .. _`FE-CAN-FEC-3-4`: - .. _`FE-CAN-FEC-3-4`:
``FE_CAN_FEC_3_4`` ``FE_CAN_FEC_3_4``
- The frontend supports FEC 3/4 - The frontend supports FEC 3/4
...@@ -218,7 +218,7 @@ supported only on some specific frontend types. ...@@ -218,7 +218,7 @@ supported only on some specific frontend types.
- .. _`FE-CAN-FEC-4-5`: - .. _`FE-CAN-FEC-4-5`:
``FE_CAN_FEC_4_5`` ``FE_CAN_FEC_4_5``
- The frontend supports FEC 4/5 - The frontend supports FEC 4/5
...@@ -226,7 +226,7 @@ supported only on some specific frontend types. ...@@ -226,7 +226,7 @@ supported only on some specific frontend types.
- .. _`FE-CAN-FEC-5-6`: - .. _`FE-CAN-FEC-5-6`:
``FE_CAN_FEC_5_6`` ``FE_CAN_FEC_5_6``
- The frontend supports FEC 5/6 - The frontend supports FEC 5/6
...@@ -234,7 +234,7 @@ supported only on some specific frontend types. ...@@ -234,7 +234,7 @@ supported only on some specific frontend types.
- .. _`FE-CAN-FEC-6-7`: - .. _`FE-CAN-FEC-6-7`:
``FE_CAN_FEC_6_7`` ``FE_CAN_FEC_6_7``
- The frontend supports FEC 6/7 - The frontend supports FEC 6/7
...@@ -242,7 +242,7 @@ supported only on some specific frontend types. ...@@ -242,7 +242,7 @@ supported only on some specific frontend types.
- .. _`FE-CAN-FEC-7-8`: - .. _`FE-CAN-FEC-7-8`:
``FE_CAN_FEC_7_8`` ``FE_CAN_FEC_7_8``
- The frontend supports FEC 7/8 - The frontend supports FEC 7/8
...@@ -250,7 +250,7 @@ supported only on some specific frontend types. ...@@ -250,7 +250,7 @@ supported only on some specific frontend types.
- .. _`FE-CAN-FEC-8-9`: - .. _`FE-CAN-FEC-8-9`:
``FE_CAN_FEC_8_9`` ``FE_CAN_FEC_8_9``
- The frontend supports FEC 8/9 - The frontend supports FEC 8/9
...@@ -258,7 +258,7 @@ supported only on some specific frontend types. ...@@ -258,7 +258,7 @@ supported only on some specific frontend types.
- .. _`FE-CAN-FEC-AUTO`: - .. _`FE-CAN-FEC-AUTO`:
``FE_CAN_FEC_AUTO`` ``FE_CAN_FEC_AUTO``
- The frontend can autodetect FEC. - The frontend can autodetect FEC.
...@@ -266,7 +266,7 @@ supported only on some specific frontend types. ...@@ -266,7 +266,7 @@ supported only on some specific frontend types.
- .. _`FE-CAN-QPSK`: - .. _`FE-CAN-QPSK`:
``FE_CAN_QPSK`` ``FE_CAN_QPSK``
- The frontend supports QPSK modulation - The frontend supports QPSK modulation
...@@ -274,7 +274,7 @@ supported only on some specific frontend types. ...@@ -274,7 +274,7 @@ supported only on some specific frontend types.
- .. _`FE-CAN-QAM-16`: - .. _`FE-CAN-QAM-16`:
``FE_CAN_QAM_16`` ``FE_CAN_QAM_16``
- The frontend supports 16-QAM modulation - The frontend supports 16-QAM modulation
...@@ -282,7 +282,7 @@ supported only on some specific frontend types. ...@@ -282,7 +282,7 @@ supported only on some specific frontend types.
- .. _`FE-CAN-QAM-32`: - .. _`FE-CAN-QAM-32`:
``FE_CAN_QAM_32`` ``FE_CAN_QAM_32``
- The frontend supports 32-QAM modulation - The frontend supports 32-QAM modulation
...@@ -290,7 +290,7 @@ supported only on some specific frontend types. ...@@ -290,7 +290,7 @@ supported only on some specific frontend types.
- .. _`FE-CAN-QAM-64`: - .. _`FE-CAN-QAM-64`:
``FE_CAN_QAM_64`` ``FE_CAN_QAM_64``
- The frontend supports 64-QAM modulation - The frontend supports 64-QAM modulation
...@@ -298,7 +298,7 @@ supported only on some specific frontend types. ...@@ -298,7 +298,7 @@ supported only on some specific frontend types.
- .. _`FE-CAN-QAM-128`: - .. _`FE-CAN-QAM-128`:
``FE_CAN_QAM_128`` ``FE_CAN_QAM_128``
- The frontend supports 128-QAM modulation - The frontend supports 128-QAM modulation
...@@ -306,7 +306,7 @@ supported only on some specific frontend types. ...@@ -306,7 +306,7 @@ supported only on some specific frontend types.
- .. _`FE-CAN-QAM-256`: - .. _`FE-CAN-QAM-256`:
``FE_CAN_QAM_256`` ``FE_CAN_QAM_256``
- The frontend supports 256-QAM modulation - The frontend supports 256-QAM modulation
...@@ -314,7 +314,7 @@ supported only on some specific frontend types. ...@@ -314,7 +314,7 @@ supported only on some specific frontend types.
- .. _`FE-CAN-QAM-AUTO`: - .. _`FE-CAN-QAM-AUTO`:
``FE_CAN_QAM_AUTO`` ``FE_CAN_QAM_AUTO``
- The frontend can autodetect modulation - The frontend can autodetect modulation
...@@ -322,7 +322,7 @@ supported only on some specific frontend types. ...@@ -322,7 +322,7 @@ supported only on some specific frontend types.
- .. _`FE-CAN-TRANSMISSION-MODE-AUTO`: - .. _`FE-CAN-TRANSMISSION-MODE-AUTO`:
``FE_CAN_TRANSMISSION_MODE_AUTO`` ``FE_CAN_TRANSMISSION_MODE_AUTO``
- The frontend can autodetect the transmission mode - The frontend can autodetect the transmission mode
...@@ -330,7 +330,7 @@ supported only on some specific frontend types. ...@@ -330,7 +330,7 @@ supported only on some specific frontend types.
- .. _`FE-CAN-BANDWIDTH-AUTO`: - .. _`FE-CAN-BANDWIDTH-AUTO`:
``FE_CAN_BANDWIDTH_AUTO`` ``FE_CAN_BANDWIDTH_AUTO``
- The frontend can autodetect the bandwidth - The frontend can autodetect the bandwidth
...@@ -338,7 +338,7 @@ supported only on some specific frontend types. ...@@ -338,7 +338,7 @@ supported only on some specific frontend types.
- .. _`FE-CAN-GUARD-INTERVAL-AUTO`: - .. _`FE-CAN-GUARD-INTERVAL-AUTO`:
``FE_CAN_GUARD_INTERVAL_AUTO`` ``FE_CAN_GUARD_INTERVAL_AUTO``
- The frontend can autodetect the guard interval - The frontend can autodetect the guard interval
...@@ -346,7 +346,7 @@ supported only on some specific frontend types. ...@@ -346,7 +346,7 @@ supported only on some specific frontend types.
- .. _`FE-CAN-HIERARCHY-AUTO`: - .. _`FE-CAN-HIERARCHY-AUTO`:
``FE_CAN_HIERARCHY_AUTO`` ``FE_CAN_HIERARCHY_AUTO``
- The frontend can autodetect hierarch - The frontend can autodetect hierarch
...@@ -354,7 +354,7 @@ supported only on some specific frontend types. ...@@ -354,7 +354,7 @@ supported only on some specific frontend types.
- .. _`FE-CAN-8VSB`: - .. _`FE-CAN-8VSB`:
``FE_CAN_8VSB`` ``FE_CAN_8VSB``
- The frontend supports 8-VSB modulation - The frontend supports 8-VSB modulation
...@@ -362,7 +362,7 @@ supported only on some specific frontend types. ...@@ -362,7 +362,7 @@ supported only on some specific frontend types.
- .. _`FE-CAN-16VSB`: - .. _`FE-CAN-16VSB`:
``FE_CAN_16VSB`` ``FE_CAN_16VSB``
- The frontend supports 16-VSB modulation - The frontend supports 16-VSB modulation
...@@ -370,7 +370,7 @@ supported only on some specific frontend types. ...@@ -370,7 +370,7 @@ supported only on some specific frontend types.
- .. _`FE-HAS-EXTENDED-CAPS`: - .. _`FE-HAS-EXTENDED-CAPS`:
``FE_HAS_EXTENDED_CAPS`` ``FE_HAS_EXTENDED_CAPS``
- Currently, unused - Currently, unused
...@@ -378,7 +378,7 @@ supported only on some specific frontend types. ...@@ -378,7 +378,7 @@ supported only on some specific frontend types.
- .. _`FE-CAN-MULTISTREAM`: - .. _`FE-CAN-MULTISTREAM`:
``FE_CAN_MULTISTREAM`` ``FE_CAN_MULTISTREAM``
- The frontend supports multistream filtering - The frontend supports multistream filtering
...@@ -386,7 +386,7 @@ supported only on some specific frontend types. ...@@ -386,7 +386,7 @@ supported only on some specific frontend types.
- .. _`FE-CAN-TURBO-FEC`: - .. _`FE-CAN-TURBO-FEC`:
``FE_CAN_TURBO_FEC`` ``FE_CAN_TURBO_FEC``
- The frontend supports turbo FEC modulation - The frontend supports turbo FEC modulation
...@@ -394,7 +394,7 @@ supported only on some specific frontend types. ...@@ -394,7 +394,7 @@ supported only on some specific frontend types.
- .. _`FE-CAN-2G-MODULATION`: - .. _`FE-CAN-2G-MODULATION`:
``FE_CAN_2G_MODULATION`` ``FE_CAN_2G_MODULATION``
- The frontend supports "2nd generation modulation" (DVB-S2/T2)> - The frontend supports "2nd generation modulation" (DVB-S2/T2)>
...@@ -402,7 +402,7 @@ supported only on some specific frontend types. ...@@ -402,7 +402,7 @@ supported only on some specific frontend types.
- .. _`FE-NEEDS-BENDING`: - .. _`FE-NEEDS-BENDING`:
``FE_NEEDS_BENDING`` ``FE_NEEDS_BENDING``
- Not supported anymore, don't use it - Not supported anymore, don't use it
...@@ -410,7 +410,7 @@ supported only on some specific frontend types. ...@@ -410,7 +410,7 @@ supported only on some specific frontend types.
- .. _`FE-CAN-RECOVER`: - .. _`FE-CAN-RECOVER`:
``FE_CAN_RECOVER`` ``FE_CAN_RECOVER``
- The frontend can recover from a cable unplug automatically - The frontend can recover from a cable unplug automatically
...@@ -418,6 +418,6 @@ supported only on some specific frontend types. ...@@ -418,6 +418,6 @@ supported only on some specific frontend types.
- .. _`FE-CAN-MUTE-TS`: - .. _`FE-CAN-MUTE-TS`:
``FE_CAN_MUTE_TS`` ``FE_CAN_MUTE_TS``
- The frontend can stop spurious TS data output - The frontend can stop spurious TS data output
...@@ -77,7 +77,7 @@ state changes of the frontend hardware. It is produced using the enum ...@@ -77,7 +77,7 @@ state changes of the frontend hardware. It is produced using the enum
- .. _`FE-HAS-SIGNAL`: - .. _`FE-HAS-SIGNAL`:
``FE_HAS_SIGNAL`` ``FE_HAS_SIGNAL``
- The frontend has found something above the noise level - The frontend has found something above the noise level
...@@ -85,7 +85,7 @@ state changes of the frontend hardware. It is produced using the enum ...@@ -85,7 +85,7 @@ state changes of the frontend hardware. It is produced using the enum
- .. _`FE-HAS-CARRIER`: - .. _`FE-HAS-CARRIER`:
``FE_HAS_CARRIER`` ``FE_HAS_CARRIER``
- The frontend has found a DVB signal - The frontend has found a DVB signal
...@@ -93,16 +93,16 @@ state changes of the frontend hardware. It is produced using the enum ...@@ -93,16 +93,16 @@ state changes of the frontend hardware. It is produced using the enum
- .. _`FE-HAS-VITERBI`: - .. _`FE-HAS-VITERBI`:
``FE_HAS_VITERBI`` ``FE_HAS_VITERBI``
- The frontend FEC inner coding (Viterbi, LDPC or other inner code) - The frontend FEC inner coding (Viterbi, LDPC or other inner code)
is stable is stable
- .. row 5 - .. row 5
- .. _`FE-HAS-SYNC`: - .. _`FE-HAS-SYNC`:
``FE_HAS_SYNC`` ``FE_HAS_SYNC``
- Synchronization bytes was found - Synchronization bytes was found
...@@ -110,7 +110,7 @@ state changes of the frontend hardware. It is produced using the enum ...@@ -110,7 +110,7 @@ state changes of the frontend hardware. It is produced using the enum
- .. _`FE-HAS-LOCK`: - .. _`FE-HAS-LOCK`:
``FE_HAS_LOCK`` ``FE_HAS_LOCK``
- The DVB were locked and everything is working - The DVB were locked and everything is working
...@@ -118,7 +118,7 @@ state changes of the frontend hardware. It is produced using the enum ...@@ -118,7 +118,7 @@ state changes of the frontend hardware. It is produced using the enum
- .. _`FE-TIMEDOUT`: - .. _`FE-TIMEDOUT`:
``FE_TIMEDOUT`` ``FE_TIMEDOUT``
- no lock within the last about 2 seconds - no lock within the last about 2 seconds
...@@ -126,7 +126,7 @@ state changes of the frontend hardware. It is produced using the enum ...@@ -126,7 +126,7 @@ state changes of the frontend hardware. It is produced using the enum
- .. _`FE-REINIT`: - .. _`FE-REINIT`:
``FE_REINIT`` ``FE_REINIT``
- The frontend was reinitialized, application is recommended to - The frontend was reinitialized, application is recommended to
reset DiSEqC, tone and parameters reset DiSEqC, tone and parameters
...@@ -75,7 +75,7 @@ enum fe_sec_tone_mode ...@@ -75,7 +75,7 @@ enum fe_sec_tone_mode
- .. _`SEC-TONE-ON`: - .. _`SEC-TONE-ON`:
``SEC_TONE_ON`` ``SEC_TONE_ON``
- Sends a 22kHz tone burst to the antenna - Sends a 22kHz tone burst to the antenna
...@@ -83,7 +83,7 @@ enum fe_sec_tone_mode ...@@ -83,7 +83,7 @@ enum fe_sec_tone_mode
- .. _`SEC-TONE-OFF`: - .. _`SEC-TONE-OFF`:
``SEC_TONE_OFF`` ``SEC_TONE_OFF``
- Don't send a 22kHz tone to the antenna (except if the - Don't send a 22kHz tone to the antenna (except if the
FE_DISEQC_* ioctls are called) FE_DISEQC_* ioctls are called)
...@@ -26,13 +26,13 @@ fe_type_t type, defined as: ...@@ -26,13 +26,13 @@ fe_type_t type, defined as:
- Description - Description
- :ref:`DTV_DELIVERY_SYSTEM <DTV-DELIVERY-SYSTEM>` equivalent - :ref:`DTV_DELIVERY_SYSTEM <DTV-DELIVERY-SYSTEM>` equivalent
type type
- .. row 2 - .. row 2
- .. _`FE-QPSK`: - .. _`FE-QPSK`:
``FE_QPSK`` ``FE_QPSK``
- For DVB-S standard - For DVB-S standard
...@@ -42,7 +42,7 @@ fe_type_t type, defined as: ...@@ -42,7 +42,7 @@ fe_type_t type, defined as:
- .. _`FE-QAM`: - .. _`FE-QAM`:
``FE_QAM`` ``FE_QAM``
- For DVB-C annex A standard - For DVB-C annex A standard
...@@ -52,7 +52,7 @@ fe_type_t type, defined as: ...@@ -52,7 +52,7 @@ fe_type_t type, defined as:
- .. _`FE-OFDM`: - .. _`FE-OFDM`:
``FE_OFDM`` ``FE_OFDM``
- For DVB-T standard - For DVB-T standard
...@@ -62,10 +62,10 @@ fe_type_t type, defined as: ...@@ -62,10 +62,10 @@ fe_type_t type, defined as:
- .. _`FE-ATSC`: - .. _`FE-ATSC`:
``FE_ATSC`` ``FE_ATSC``
- For ATSC standard (terrestrial) or for DVB-C Annex B (cable) used - For ATSC standard (terrestrial) or for DVB-C Annex B (cable) used
in US. in US.
- ``SYS_ATSC`` (terrestrial) or ``SYS_DVBC_ANNEX_B`` (cable) - ``SYS_ATSC`` (terrestrial) or ``SYS_DVBC_ANNEX_B`` (cable)
......
...@@ -93,7 +93,7 @@ modulations are supported by a given standard. ...@@ -93,7 +93,7 @@ modulations are supported by a given standard.
- .. _`QPSK`: - .. _`QPSK`:
``QPSK`` ``QPSK``
- QPSK modulation - QPSK modulation
...@@ -101,7 +101,7 @@ modulations are supported by a given standard. ...@@ -101,7 +101,7 @@ modulations are supported by a given standard.
- .. _`QAM-16`: - .. _`QAM-16`:
``QAM_16`` ``QAM_16``
- 16-QAM modulation - 16-QAM modulation
...@@ -109,7 +109,7 @@ modulations are supported by a given standard. ...@@ -109,7 +109,7 @@ modulations are supported by a given standard.
- .. _`QAM-32`: - .. _`QAM-32`:
``QAM_32`` ``QAM_32``
- 32-QAM modulation - 32-QAM modulation
...@@ -117,7 +117,7 @@ modulations are supported by a given standard. ...@@ -117,7 +117,7 @@ modulations are supported by a given standard.
- .. _`QAM-64`: - .. _`QAM-64`:
``QAM_64`` ``QAM_64``
- 64-QAM modulation - 64-QAM modulation
...@@ -125,7 +125,7 @@ modulations are supported by a given standard. ...@@ -125,7 +125,7 @@ modulations are supported by a given standard.
- .. _`QAM-128`: - .. _`QAM-128`:
``QAM_128`` ``QAM_128``
- 128-QAM modulation - 128-QAM modulation
...@@ -133,7 +133,7 @@ modulations are supported by a given standard. ...@@ -133,7 +133,7 @@ modulations are supported by a given standard.
- .. _`QAM-256`: - .. _`QAM-256`:
``QAM_256`` ``QAM_256``
- 256-QAM modulation - 256-QAM modulation
...@@ -141,7 +141,7 @@ modulations are supported by a given standard. ...@@ -141,7 +141,7 @@ modulations are supported by a given standard.
- .. _`QAM-AUTO`: - .. _`QAM-AUTO`:
``QAM_AUTO`` ``QAM_AUTO``
- Autodetect QAM modulation - Autodetect QAM modulation
...@@ -149,7 +149,7 @@ modulations are supported by a given standard. ...@@ -149,7 +149,7 @@ modulations are supported by a given standard.
- .. _`VSB-8`: - .. _`VSB-8`:
``VSB_8`` ``VSB_8``
- 8-VSB modulation - 8-VSB modulation
...@@ -157,7 +157,7 @@ modulations are supported by a given standard. ...@@ -157,7 +157,7 @@ modulations are supported by a given standard.
- .. _`VSB-16`: - .. _`VSB-16`:
``VSB_16`` ``VSB_16``
- 16-VSB modulation - 16-VSB modulation
...@@ -165,7 +165,7 @@ modulations are supported by a given standard. ...@@ -165,7 +165,7 @@ modulations are supported by a given standard.
- .. _`PSK-8`: - .. _`PSK-8`:
``PSK_8`` ``PSK_8``
- 8-PSK modulation - 8-PSK modulation
...@@ -173,7 +173,7 @@ modulations are supported by a given standard. ...@@ -173,7 +173,7 @@ modulations are supported by a given standard.
- .. _`APSK-16`: - .. _`APSK-16`:
``APSK_16`` ``APSK_16``
- 16-APSK modulation - 16-APSK modulation
...@@ -181,7 +181,7 @@ modulations are supported by a given standard. ...@@ -181,7 +181,7 @@ modulations are supported by a given standard.
- .. _`APSK-32`: - .. _`APSK-32`:
``APSK_32`` ``APSK_32``
- 32-APSK modulation - 32-APSK modulation
...@@ -189,7 +189,7 @@ modulations are supported by a given standard. ...@@ -189,7 +189,7 @@ modulations are supported by a given standard.
- .. _`DQPSK`: - .. _`DQPSK`:
``DQPSK`` ``DQPSK``
- DQPSK modulation - DQPSK modulation
...@@ -197,7 +197,7 @@ modulations are supported by a given standard. ...@@ -197,7 +197,7 @@ modulations are supported by a given standard.
- .. _`QAM-4-NR`: - .. _`QAM-4-NR`:
``QAM_4_NR`` ``QAM_4_NR``
- 4-QAM-NR modulation - 4-QAM-NR modulation
...@@ -269,7 +269,7 @@ inversion off. If it fails, it will try to enable inversion. ...@@ -269,7 +269,7 @@ inversion off. If it fails, it will try to enable inversion.
- .. _`INVERSION-OFF`: - .. _`INVERSION-OFF`:
``INVERSION_OFF`` ``INVERSION_OFF``
- Don't do spectral band inversion. - Don't do spectral band inversion.
...@@ -277,7 +277,7 @@ inversion off. If it fails, it will try to enable inversion. ...@@ -277,7 +277,7 @@ inversion off. If it fails, it will try to enable inversion.
- .. _`INVERSION-ON`: - .. _`INVERSION-ON`:
``INVERSION_ON`` ``INVERSION_ON``
- Do spectral band inversion. - Do spectral band inversion.
...@@ -285,7 +285,7 @@ inversion off. If it fails, it will try to enable inversion. ...@@ -285,7 +285,7 @@ inversion off. If it fails, it will try to enable inversion.
- .. _`INVERSION-AUTO`: - .. _`INVERSION-AUTO`:
``INVERSION_AUTO`` ``INVERSION_AUTO``
- Autodetect spectral band inversion. - Autodetect spectral band inversion.
...@@ -339,7 +339,7 @@ enum fe_code_rate: type of the Forward Error Correction. ...@@ -339,7 +339,7 @@ enum fe_code_rate: type of the Forward Error Correction.
- .. _`FEC-NONE`: - .. _`FEC-NONE`:
``FEC_NONE`` ``FEC_NONE``
- No Forward Error Correction Code - No Forward Error Correction Code
...@@ -347,7 +347,7 @@ enum fe_code_rate: type of the Forward Error Correction. ...@@ -347,7 +347,7 @@ enum fe_code_rate: type of the Forward Error Correction.
- .. _`FEC-AUTO`: - .. _`FEC-AUTO`:
``FEC_AUTO`` ``FEC_AUTO``
- Autodetect Error Correction Code - Autodetect Error Correction Code
...@@ -355,7 +355,7 @@ enum fe_code_rate: type of the Forward Error Correction. ...@@ -355,7 +355,7 @@ enum fe_code_rate: type of the Forward Error Correction.
- .. _`FEC-1-2`: - .. _`FEC-1-2`:
``FEC_1_2`` ``FEC_1_2``
- Forward Error Correction Code 1/2 - Forward Error Correction Code 1/2
...@@ -363,7 +363,7 @@ enum fe_code_rate: type of the Forward Error Correction. ...@@ -363,7 +363,7 @@ enum fe_code_rate: type of the Forward Error Correction.
- .. _`FEC-2-3`: - .. _`FEC-2-3`:
``FEC_2_3`` ``FEC_2_3``
- Forward Error Correction Code 2/3 - Forward Error Correction Code 2/3
...@@ -371,7 +371,7 @@ enum fe_code_rate: type of the Forward Error Correction. ...@@ -371,7 +371,7 @@ enum fe_code_rate: type of the Forward Error Correction.
- .. _`FEC-3-4`: - .. _`FEC-3-4`:
``FEC_3_4`` ``FEC_3_4``
- Forward Error Correction Code 3/4 - Forward Error Correction Code 3/4
...@@ -379,7 +379,7 @@ enum fe_code_rate: type of the Forward Error Correction. ...@@ -379,7 +379,7 @@ enum fe_code_rate: type of the Forward Error Correction.
- .. _`FEC-4-5`: - .. _`FEC-4-5`:
``FEC_4_5`` ``FEC_4_5``
- Forward Error Correction Code 4/5 - Forward Error Correction Code 4/5
...@@ -387,7 +387,7 @@ enum fe_code_rate: type of the Forward Error Correction. ...@@ -387,7 +387,7 @@ enum fe_code_rate: type of the Forward Error Correction.
- .. _`FEC-5-6`: - .. _`FEC-5-6`:
``FEC_5_6`` ``FEC_5_6``
- Forward Error Correction Code 5/6 - Forward Error Correction Code 5/6
...@@ -395,7 +395,7 @@ enum fe_code_rate: type of the Forward Error Correction. ...@@ -395,7 +395,7 @@ enum fe_code_rate: type of the Forward Error Correction.
- .. _`FEC-6-7`: - .. _`FEC-6-7`:
``FEC_6_7`` ``FEC_6_7``
- Forward Error Correction Code 6/7 - Forward Error Correction Code 6/7
...@@ -403,7 +403,7 @@ enum fe_code_rate: type of the Forward Error Correction. ...@@ -403,7 +403,7 @@ enum fe_code_rate: type of the Forward Error Correction.
- .. _`FEC-7-8`: - .. _`FEC-7-8`:
``FEC_7_8`` ``FEC_7_8``
- Forward Error Correction Code 7/8 - Forward Error Correction Code 7/8
...@@ -411,7 +411,7 @@ enum fe_code_rate: type of the Forward Error Correction. ...@@ -411,7 +411,7 @@ enum fe_code_rate: type of the Forward Error Correction.
- .. _`FEC-8-9`: - .. _`FEC-8-9`:
``FEC_8_9`` ``FEC_8_9``
- Forward Error Correction Code 8/9 - Forward Error Correction Code 8/9
...@@ -419,7 +419,7 @@ enum fe_code_rate: type of the Forward Error Correction. ...@@ -419,7 +419,7 @@ enum fe_code_rate: type of the Forward Error Correction.
- .. _`FEC-9-10`: - .. _`FEC-9-10`:
``FEC_9_10`` ``FEC_9_10``
- Forward Error Correction Code 9/10 - Forward Error Correction Code 9/10
...@@ -427,7 +427,7 @@ enum fe_code_rate: type of the Forward Error Correction. ...@@ -427,7 +427,7 @@ enum fe_code_rate: type of the Forward Error Correction.
- .. _`FEC-2-5`: - .. _`FEC-2-5`:
``FEC_2_5`` ``FEC_2_5``
- Forward Error Correction Code 2/5 - Forward Error Correction Code 2/5
...@@ -435,7 +435,7 @@ enum fe_code_rate: type of the Forward Error Correction. ...@@ -435,7 +435,7 @@ enum fe_code_rate: type of the Forward Error Correction.
- .. _`FEC-3-5`: - .. _`FEC-3-5`:
``FEC_3_5`` ``FEC_3_5``
- Forward Error Correction Code 3/5 - Forward Error Correction Code 3/5
...@@ -469,7 +469,7 @@ described in the DiSEqC spec. ...@@ -469,7 +469,7 @@ described in the DiSEqC spec.
- .. _`SEC-VOLTAGE-13`: - .. _`SEC-VOLTAGE-13`:
``SEC_VOLTAGE_13`` ``SEC_VOLTAGE_13``
- Set DC voltage level to 13V - Set DC voltage level to 13V
...@@ -477,7 +477,7 @@ described in the DiSEqC spec. ...@@ -477,7 +477,7 @@ described in the DiSEqC spec.
- .. _`SEC-VOLTAGE-18`: - .. _`SEC-VOLTAGE-18`:
``SEC_VOLTAGE_18`` ``SEC_VOLTAGE_18``
- Set DC voltage level to 18V - Set DC voltage level to 18V
...@@ -485,7 +485,7 @@ described in the DiSEqC spec. ...@@ -485,7 +485,7 @@ described in the DiSEqC spec.
- .. _`SEC-VOLTAGE-OFF`: - .. _`SEC-VOLTAGE-OFF`:
``SEC_VOLTAGE_OFF`` ``SEC_VOLTAGE_OFF``
- Don't send any voltage to the antenna - Don't send any voltage to the antenna
...@@ -530,7 +530,7 @@ fe_pilot type ...@@ -530,7 +530,7 @@ fe_pilot type
- .. _`PILOT-ON`: - .. _`PILOT-ON`:
``PILOT_ON`` ``PILOT_ON``
- Pilot tones enabled - Pilot tones enabled
...@@ -538,7 +538,7 @@ fe_pilot type ...@@ -538,7 +538,7 @@ fe_pilot type
- .. _`PILOT-OFF`: - .. _`PILOT-OFF`:
``PILOT_OFF`` ``PILOT_OFF``
- Pilot tones disabled - Pilot tones disabled
...@@ -546,7 +546,7 @@ fe_pilot type ...@@ -546,7 +546,7 @@ fe_pilot type
- .. _`PILOT-AUTO`: - .. _`PILOT-AUTO`:
``PILOT_AUTO`` ``PILOT_AUTO``
- Autodetect pilot tones - Autodetect pilot tones
...@@ -583,7 +583,7 @@ fe_rolloff type ...@@ -583,7 +583,7 @@ fe_rolloff type
- .. _`ROLLOFF-35`: - .. _`ROLLOFF-35`:
``ROLLOFF_35`` ``ROLLOFF_35``
- Roloff factor: α=35% - Roloff factor: α=35%
...@@ -591,7 +591,7 @@ fe_rolloff type ...@@ -591,7 +591,7 @@ fe_rolloff type
- .. _`ROLLOFF-20`: - .. _`ROLLOFF-20`:
``ROLLOFF_20`` ``ROLLOFF_20``
- Roloff factor: α=20% - Roloff factor: α=20%
...@@ -599,7 +599,7 @@ fe_rolloff type ...@@ -599,7 +599,7 @@ fe_rolloff type
- .. _`ROLLOFF-25`: - .. _`ROLLOFF-25`:
``ROLLOFF_25`` ``ROLLOFF_25``
- Roloff factor: α=25% - Roloff factor: α=25%
...@@ -607,7 +607,7 @@ fe_rolloff type ...@@ -607,7 +607,7 @@ fe_rolloff type
- .. _`ROLLOFF-AUTO`: - .. _`ROLLOFF-AUTO`:
``ROLLOFF_AUTO`` ``ROLLOFF_AUTO``
- Auto-detect the roloff factor. - Auto-detect the roloff factor.
...@@ -670,7 +670,7 @@ Possible values: ...@@ -670,7 +670,7 @@ Possible values:
- .. _`SYS-UNDEFINED`: - .. _`SYS-UNDEFINED`:
``SYS_UNDEFINED`` ``SYS_UNDEFINED``
- Undefined standard. Generally, indicates an error - Undefined standard. Generally, indicates an error
...@@ -678,7 +678,7 @@ Possible values: ...@@ -678,7 +678,7 @@ Possible values:
- .. _`SYS-DVBC-ANNEX-A`: - .. _`SYS-DVBC-ANNEX-A`:
``SYS_DVBC_ANNEX_A`` ``SYS_DVBC_ANNEX_A``
- Cable TV: DVB-C following ITU-T J.83 Annex A spec - Cable TV: DVB-C following ITU-T J.83 Annex A spec
...@@ -686,7 +686,7 @@ Possible values: ...@@ -686,7 +686,7 @@ Possible values:
- .. _`SYS-DVBC-ANNEX-B`: - .. _`SYS-DVBC-ANNEX-B`:
``SYS_DVBC_ANNEX_B`` ``SYS_DVBC_ANNEX_B``
- Cable TV: DVB-C following ITU-T J.83 Annex B spec (ClearQAM) - Cable TV: DVB-C following ITU-T J.83 Annex B spec (ClearQAM)
...@@ -694,7 +694,7 @@ Possible values: ...@@ -694,7 +694,7 @@ Possible values:
- .. _`SYS-DVBC-ANNEX-C`: - .. _`SYS-DVBC-ANNEX-C`:
``SYS_DVBC_ANNEX_C`` ``SYS_DVBC_ANNEX_C``
- Cable TV: DVB-C following ITU-T J.83 Annex C spec - Cable TV: DVB-C following ITU-T J.83 Annex C spec
...@@ -702,7 +702,7 @@ Possible values: ...@@ -702,7 +702,7 @@ Possible values:
- .. _`SYS-ISDBC`: - .. _`SYS-ISDBC`:
``SYS_ISDBC`` ``SYS_ISDBC``
- Cable TV: ISDB-C (no drivers yet) - Cable TV: ISDB-C (no drivers yet)
...@@ -710,7 +710,7 @@ Possible values: ...@@ -710,7 +710,7 @@ Possible values:
- .. _`SYS-DVBT`: - .. _`SYS-DVBT`:
``SYS_DVBT`` ``SYS_DVBT``
- Terrestral TV: DVB-T - Terrestral TV: DVB-T
...@@ -718,7 +718,7 @@ Possible values: ...@@ -718,7 +718,7 @@ Possible values:
- .. _`SYS-DVBT2`: - .. _`SYS-DVBT2`:
``SYS_DVBT2`` ``SYS_DVBT2``
- Terrestral TV: DVB-T2 - Terrestral TV: DVB-T2
...@@ -726,7 +726,7 @@ Possible values: ...@@ -726,7 +726,7 @@ Possible values:
- .. _`SYS-ISDBT`: - .. _`SYS-ISDBT`:
``SYS_ISDBT`` ``SYS_ISDBT``
- Terrestral TV: ISDB-T - Terrestral TV: ISDB-T
...@@ -734,7 +734,7 @@ Possible values: ...@@ -734,7 +734,7 @@ Possible values:
- .. _`SYS-ATSC`: - .. _`SYS-ATSC`:
``SYS_ATSC`` ``SYS_ATSC``
- Terrestral TV: ATSC - Terrestral TV: ATSC
...@@ -742,7 +742,7 @@ Possible values: ...@@ -742,7 +742,7 @@ Possible values:
- .. _`SYS-ATSCMH`: - .. _`SYS-ATSCMH`:
``SYS_ATSCMH`` ``SYS_ATSCMH``
- Terrestral TV (mobile): ATSC-M/H - Terrestral TV (mobile): ATSC-M/H
...@@ -750,7 +750,7 @@ Possible values: ...@@ -750,7 +750,7 @@ Possible values:
- .. _`SYS-DTMB`: - .. _`SYS-DTMB`:
``SYS_DTMB`` ``SYS_DTMB``
- Terrestrial TV: DTMB - Terrestrial TV: DTMB
...@@ -758,7 +758,7 @@ Possible values: ...@@ -758,7 +758,7 @@ Possible values:
- .. _`SYS-DVBS`: - .. _`SYS-DVBS`:
``SYS_DVBS`` ``SYS_DVBS``
- Satellite TV: DVB-S - Satellite TV: DVB-S
...@@ -766,7 +766,7 @@ Possible values: ...@@ -766,7 +766,7 @@ Possible values:
- .. _`SYS-DVBS2`: - .. _`SYS-DVBS2`:
``SYS_DVBS2`` ``SYS_DVBS2``
- Satellite TV: DVB-S2 - Satellite TV: DVB-S2
...@@ -774,7 +774,7 @@ Possible values: ...@@ -774,7 +774,7 @@ Possible values:
- .. _`SYS-TURBO`: - .. _`SYS-TURBO`:
``SYS_TURBO`` ``SYS_TURBO``
- Satellite TV: DVB-S Turbo - Satellite TV: DVB-S Turbo
...@@ -782,7 +782,7 @@ Possible values: ...@@ -782,7 +782,7 @@ Possible values:
- .. _`SYS-ISDBS`: - .. _`SYS-ISDBS`:
``SYS_ISDBS`` ``SYS_ISDBS``
- Satellite TV: ISDB-S - Satellite TV: ISDB-S
...@@ -790,7 +790,7 @@ Possible values: ...@@ -790,7 +790,7 @@ Possible values:
- .. _`SYS-DAB`: - .. _`SYS-DAB`:
``SYS_DAB`` ``SYS_DAB``
- Digital audio: DAB (not fully supported) - Digital audio: DAB (not fully supported)
...@@ -798,7 +798,7 @@ Possible values: ...@@ -798,7 +798,7 @@ Possible values:
- .. _`SYS-DSS`: - .. _`SYS-DSS`:
``SYS_DSS`` ``SYS_DSS``
- Satellite TV:"DSS (not fully supported) - Satellite TV:"DSS (not fully supported)
...@@ -806,7 +806,7 @@ Possible values: ...@@ -806,7 +806,7 @@ Possible values:
- .. _`SYS-CMMB`: - .. _`SYS-CMMB`:
``SYS_CMMB`` ``SYS_CMMB``
- Terrestral TV (mobile):CMMB (not fully supported) - Terrestral TV (mobile):CMMB (not fully supported)
...@@ -814,7 +814,7 @@ Possible values: ...@@ -814,7 +814,7 @@ Possible values:
- .. _`SYS-DVBH`: - .. _`SYS-DVBH`:
``SYS_DVBH`` ``SYS_DVBH``
- Terrestral TV (mobile): DVB-H (standard deprecated) - Terrestral TV (mobile): DVB-H (standard deprecated)
...@@ -1240,20 +1240,20 @@ Possible values are: ...@@ -1240,20 +1240,20 @@ Possible values are:
- .. _`ATSCMH-RSFRAME-PRI-ONLY`: - .. _`ATSCMH-RSFRAME-PRI-ONLY`:
``ATSCMH_RSFRAME_PRI_ONLY`` ``ATSCMH_RSFRAME_PRI_ONLY``
- Single Frame: There is only a primary RS Frame for all Group - Single Frame: There is only a primary RS Frame for all Group
Regions. Regions.
- .. row 3 - .. row 3
- .. _`ATSCMH-RSFRAME-PRI-SEC`: - .. _`ATSCMH-RSFRAME-PRI-SEC`:
``ATSCMH_RSFRAME_PRI_SEC`` ``ATSCMH_RSFRAME_PRI_SEC``
- Dual Frame: There are two separate RS Frames: Primary RS Frame for - Dual Frame: There are two separate RS Frames: Primary RS Frame for
Group Region A and B and Secondary RS Frame for Group Region C and Group Region A and B and Secondary RS Frame for Group Region C and
D. D.
...@@ -1284,7 +1284,7 @@ Possible values are: ...@@ -1284,7 +1284,7 @@ Possible values are:
- .. _`ATSCMH-RSFRAME-ENS-PRI`: - .. _`ATSCMH-RSFRAME-ENS-PRI`:
``ATSCMH_RSFRAME_ENS_PRI`` ``ATSCMH_RSFRAME_ENS_PRI``
- Primary Ensemble. - Primary Ensemble.
...@@ -1292,7 +1292,7 @@ Possible values are: ...@@ -1292,7 +1292,7 @@ Possible values are:
- .. _`ATSCMH-RSFRAME-ENS-SEC`: - .. _`ATSCMH-RSFRAME-ENS-SEC`:
``AATSCMH_RSFRAME_PRI_SEC`` ``AATSCMH_RSFRAME_PRI_SEC``
- Secondary Ensemble. - Secondary Ensemble.
...@@ -1300,7 +1300,7 @@ Possible values are: ...@@ -1300,7 +1300,7 @@ Possible values are:
- .. _`ATSCMH-RSFRAME-RES`: - .. _`ATSCMH-RSFRAME-RES`:
``AATSCMH_RSFRAME_RES`` ``AATSCMH_RSFRAME_RES``
- Reserved. Shouldn't be used. - Reserved. Shouldn't be used.
...@@ -1333,7 +1333,7 @@ Possible values are: ...@@ -1333,7 +1333,7 @@ Possible values are:
- .. _`ATSCMH-RSCODE-211-187`: - .. _`ATSCMH-RSCODE-211-187`:
``ATSCMH_RSCODE_211_187`` ``ATSCMH_RSCODE_211_187``
- Reed Solomon code (211,187). - Reed Solomon code (211,187).
...@@ -1341,7 +1341,7 @@ Possible values are: ...@@ -1341,7 +1341,7 @@ Possible values are:
- .. _`ATSCMH-RSCODE-223-187`: - .. _`ATSCMH-RSCODE-223-187`:
``ATSCMH_RSCODE_223_187`` ``ATSCMH_RSCODE_223_187``
- Reed Solomon code (223,187). - Reed Solomon code (223,187).
...@@ -1349,7 +1349,7 @@ Possible values are: ...@@ -1349,7 +1349,7 @@ Possible values are:
- .. _`ATSCMH-RSCODE-235-187`: - .. _`ATSCMH-RSCODE-235-187`:
``ATSCMH_RSCODE_235_187`` ``ATSCMH_RSCODE_235_187``
- Reed Solomon code (235,187). - Reed Solomon code (235,187).
...@@ -1357,7 +1357,7 @@ Possible values are: ...@@ -1357,7 +1357,7 @@ Possible values are:
- .. _`ATSCMH-RSCODE-RES`: - .. _`ATSCMH-RSCODE-RES`:
``ATSCMH_RSCODE_RES`` ``ATSCMH_RSCODE_RES``
- Reserved. Shouldn't be used. - Reserved. Shouldn't be used.
...@@ -1401,25 +1401,25 @@ Possible values are: ...@@ -1401,25 +1401,25 @@ Possible values are:
- .. _`ATSCMH-SCCC-BLK-SEP`: - .. _`ATSCMH-SCCC-BLK-SEP`:
``ATSCMH_SCCC_BLK_SEP`` ``ATSCMH_SCCC_BLK_SEP``
- Separate SCCC: the SCCC outer code mode shall be set independently - Separate SCCC: the SCCC outer code mode shall be set independently
for each Group Region (A, B, C, D) for each Group Region (A, B, C, D)
- .. row 3 - .. row 3
- .. _`ATSCMH-SCCC-BLK-COMB`: - .. _`ATSCMH-SCCC-BLK-COMB`:
``ATSCMH_SCCC_BLK_COMB`` ``ATSCMH_SCCC_BLK_COMB``
- Combined SCCC: all four Regions shall have the same SCCC outer - Combined SCCC: all four Regions shall have the same SCCC outer
code mode. code mode.
- .. row 4 - .. row 4
- .. _`ATSCMH-SCCC-BLK-RES`: - .. _`ATSCMH-SCCC-BLK-RES`:
``ATSCMH_SCCC_BLK_RES`` ``ATSCMH_SCCC_BLK_RES``
- Reserved. Shouldn't be used. - Reserved. Shouldn't be used.
...@@ -1452,7 +1452,7 @@ Possible values are: ...@@ -1452,7 +1452,7 @@ Possible values are:
- .. _`ATSCMH-SCCC-CODE-HLF`: - .. _`ATSCMH-SCCC-CODE-HLF`:
``ATSCMH_SCCC_CODE_HLF`` ``ATSCMH_SCCC_CODE_HLF``
- The outer code rate of a SCCC Block is 1/2 rate. - The outer code rate of a SCCC Block is 1/2 rate.
...@@ -1460,7 +1460,7 @@ Possible values are: ...@@ -1460,7 +1460,7 @@ Possible values are:
- .. _`ATSCMH-SCCC-CODE-QTR`: - .. _`ATSCMH-SCCC-CODE-QTR`:
``ATSCMH_SCCC_CODE_QTR`` ``ATSCMH_SCCC_CODE_QTR``
- The outer code rate of a SCCC Block is 1/4 rate. - The outer code rate of a SCCC Block is 1/4 rate.
...@@ -1468,7 +1468,7 @@ Possible values are: ...@@ -1468,7 +1468,7 @@ Possible values are:
- .. _`ATSCMH-SCCC-CODE-RES`: - .. _`ATSCMH-SCCC-CODE-RES`:
``ATSCMH_SCCC_CODE_RES`` ``ATSCMH_SCCC_CODE_RES``
- to be documented. - to be documented.
...@@ -1564,7 +1564,7 @@ Modulation guard interval ...@@ -1564,7 +1564,7 @@ Modulation guard interval
- .. _`GUARD-INTERVAL-AUTO`: - .. _`GUARD-INTERVAL-AUTO`:
``GUARD_INTERVAL_AUTO`` ``GUARD_INTERVAL_AUTO``
- Autodetect the guard interval - Autodetect the guard interval
...@@ -1572,7 +1572,7 @@ Modulation guard interval ...@@ -1572,7 +1572,7 @@ Modulation guard interval
- .. _`GUARD-INTERVAL-1-128`: - .. _`GUARD-INTERVAL-1-128`:
``GUARD_INTERVAL_1_128`` ``GUARD_INTERVAL_1_128``
- Guard interval 1/128 - Guard interval 1/128
...@@ -1580,7 +1580,7 @@ Modulation guard interval ...@@ -1580,7 +1580,7 @@ Modulation guard interval
- .. _`GUARD-INTERVAL-1-32`: - .. _`GUARD-INTERVAL-1-32`:
``GUARD_INTERVAL_1_32`` ``GUARD_INTERVAL_1_32``
- Guard interval 1/32 - Guard interval 1/32
...@@ -1588,7 +1588,7 @@ Modulation guard interval ...@@ -1588,7 +1588,7 @@ Modulation guard interval
- .. _`GUARD-INTERVAL-1-16`: - .. _`GUARD-INTERVAL-1-16`:
``GUARD_INTERVAL_1_16`` ``GUARD_INTERVAL_1_16``
- Guard interval 1/16 - Guard interval 1/16
...@@ -1596,7 +1596,7 @@ Modulation guard interval ...@@ -1596,7 +1596,7 @@ Modulation guard interval
- .. _`GUARD-INTERVAL-1-8`: - .. _`GUARD-INTERVAL-1-8`:
``GUARD_INTERVAL_1_8`` ``GUARD_INTERVAL_1_8``
- Guard interval 1/8 - Guard interval 1/8
...@@ -1604,7 +1604,7 @@ Modulation guard interval ...@@ -1604,7 +1604,7 @@ Modulation guard interval
- .. _`GUARD-INTERVAL-1-4`: - .. _`GUARD-INTERVAL-1-4`:
``GUARD_INTERVAL_1_4`` ``GUARD_INTERVAL_1_4``
- Guard interval 1/4 - Guard interval 1/4
...@@ -1612,7 +1612,7 @@ Modulation guard interval ...@@ -1612,7 +1612,7 @@ Modulation guard interval
- .. _`GUARD-INTERVAL-19-128`: - .. _`GUARD-INTERVAL-19-128`:
``GUARD_INTERVAL_19_128`` ``GUARD_INTERVAL_19_128``
- Guard interval 19/128 - Guard interval 19/128
...@@ -1620,7 +1620,7 @@ Modulation guard interval ...@@ -1620,7 +1620,7 @@ Modulation guard interval
- .. _`GUARD-INTERVAL-19-256`: - .. _`GUARD-INTERVAL-19-256`:
``GUARD_INTERVAL_19_256`` ``GUARD_INTERVAL_19_256``
- Guard interval 19/256 - Guard interval 19/256
...@@ -1628,7 +1628,7 @@ Modulation guard interval ...@@ -1628,7 +1628,7 @@ Modulation guard interval
- .. _`GUARD-INTERVAL-PN420`: - .. _`GUARD-INTERVAL-PN420`:
``GUARD_INTERVAL_PN420`` ``GUARD_INTERVAL_PN420``
- PN length 420 (1/4) - PN length 420 (1/4)
...@@ -1636,7 +1636,7 @@ Modulation guard interval ...@@ -1636,7 +1636,7 @@ Modulation guard interval
- .. _`GUARD-INTERVAL-PN595`: - .. _`GUARD-INTERVAL-PN595`:
``GUARD_INTERVAL_PN595`` ``GUARD_INTERVAL_PN595``
- PN length 595 (1/6) - PN length 595 (1/6)
...@@ -1644,7 +1644,7 @@ Modulation guard interval ...@@ -1644,7 +1644,7 @@ Modulation guard interval
- .. _`GUARD-INTERVAL-PN945`: - .. _`GUARD-INTERVAL-PN945`:
``GUARD_INTERVAL_PN945`` ``GUARD_INTERVAL_PN945``
- PN length 945 (1/9) - PN length 945 (1/9)
...@@ -1693,16 +1693,16 @@ enum fe_transmit_mode: Number of carriers per channel ...@@ -1693,16 +1693,16 @@ enum fe_transmit_mode: Number of carriers per channel
- .. _`TRANSMISSION-MODE-AUTO`: - .. _`TRANSMISSION-MODE-AUTO`:
``TRANSMISSION_MODE_AUTO`` ``TRANSMISSION_MODE_AUTO``
- Autodetect transmission mode. The hardware will try to find the - Autodetect transmission mode. The hardware will try to find the
correct FFT-size (if capable) to fill in the missing parameters. correct FFT-size (if capable) to fill in the missing parameters.
- .. row 3 - .. row 3
- .. _`TRANSMISSION-MODE-1K`: - .. _`TRANSMISSION-MODE-1K`:
``TRANSMISSION_MODE_1K`` ``TRANSMISSION_MODE_1K``
- Transmission mode 1K - Transmission mode 1K
...@@ -1710,7 +1710,7 @@ enum fe_transmit_mode: Number of carriers per channel ...@@ -1710,7 +1710,7 @@ enum fe_transmit_mode: Number of carriers per channel
- .. _`TRANSMISSION-MODE-2K`: - .. _`TRANSMISSION-MODE-2K`:
``TRANSMISSION_MODE_2K`` ``TRANSMISSION_MODE_2K``
- Transmission mode 2K - Transmission mode 2K
...@@ -1718,7 +1718,7 @@ enum fe_transmit_mode: Number of carriers per channel ...@@ -1718,7 +1718,7 @@ enum fe_transmit_mode: Number of carriers per channel
- .. _`TRANSMISSION-MODE-8K`: - .. _`TRANSMISSION-MODE-8K`:
``TRANSMISSION_MODE_8K`` ``TRANSMISSION_MODE_8K``
- Transmission mode 8K - Transmission mode 8K
...@@ -1726,7 +1726,7 @@ enum fe_transmit_mode: Number of carriers per channel ...@@ -1726,7 +1726,7 @@ enum fe_transmit_mode: Number of carriers per channel
- .. _`TRANSMISSION-MODE-4K`: - .. _`TRANSMISSION-MODE-4K`:
``TRANSMISSION_MODE_4K`` ``TRANSMISSION_MODE_4K``
- Transmission mode 4K - Transmission mode 4K
...@@ -1734,7 +1734,7 @@ enum fe_transmit_mode: Number of carriers per channel ...@@ -1734,7 +1734,7 @@ enum fe_transmit_mode: Number of carriers per channel
- .. _`TRANSMISSION-MODE-16K`: - .. _`TRANSMISSION-MODE-16K`:
``TRANSMISSION_MODE_16K`` ``TRANSMISSION_MODE_16K``
- Transmission mode 16K - Transmission mode 16K
...@@ -1742,7 +1742,7 @@ enum fe_transmit_mode: Number of carriers per channel ...@@ -1742,7 +1742,7 @@ enum fe_transmit_mode: Number of carriers per channel
- .. _`TRANSMISSION-MODE-32K`: - .. _`TRANSMISSION-MODE-32K`:
``TRANSMISSION_MODE_32K`` ``TRANSMISSION_MODE_32K``
- Transmission mode 32K - Transmission mode 32K
...@@ -1750,7 +1750,7 @@ enum fe_transmit_mode: Number of carriers per channel ...@@ -1750,7 +1750,7 @@ enum fe_transmit_mode: Number of carriers per channel
- .. _`TRANSMISSION-MODE-C1`: - .. _`TRANSMISSION-MODE-C1`:
``TRANSMISSION_MODE_C1`` ``TRANSMISSION_MODE_C1``
- Single Carrier (C=1) transmission mode (DTMB) - Single Carrier (C=1) transmission mode (DTMB)
...@@ -1758,7 +1758,7 @@ enum fe_transmit_mode: Number of carriers per channel ...@@ -1758,7 +1758,7 @@ enum fe_transmit_mode: Number of carriers per channel
- .. _`TRANSMISSION-MODE-C3780`: - .. _`TRANSMISSION-MODE-C3780`:
``TRANSMISSION_MODE_C3780`` ``TRANSMISSION_MODE_C3780``
- Multi Carrier (C=3780) transmission mode (DTMB) - Multi Carrier (C=3780) transmission mode (DTMB)
...@@ -1810,7 +1810,7 @@ Frontend hierarchy ...@@ -1810,7 +1810,7 @@ Frontend hierarchy
- .. _`HIERARCHY-NONE`: - .. _`HIERARCHY-NONE`:
``HIERARCHY_NONE`` ``HIERARCHY_NONE``
- No hierarchy - No hierarchy
...@@ -1818,7 +1818,7 @@ Frontend hierarchy ...@@ -1818,7 +1818,7 @@ Frontend hierarchy
- .. _`HIERARCHY-AUTO`: - .. _`HIERARCHY-AUTO`:
``HIERARCHY_AUTO`` ``HIERARCHY_AUTO``
- Autodetect hierarchy (if supported) - Autodetect hierarchy (if supported)
...@@ -1826,7 +1826,7 @@ Frontend hierarchy ...@@ -1826,7 +1826,7 @@ Frontend hierarchy
- .. _`HIERARCHY-1`: - .. _`HIERARCHY-1`:
``HIERARCHY_1`` ``HIERARCHY_1``
- Hierarchy 1 - Hierarchy 1
...@@ -1834,7 +1834,7 @@ Frontend hierarchy ...@@ -1834,7 +1834,7 @@ Frontend hierarchy
- .. _`HIERARCHY-2`: - .. _`HIERARCHY-2`:
``HIERARCHY_2`` ``HIERARCHY_2``
- Hierarchy 2 - Hierarchy 2
...@@ -1842,7 +1842,7 @@ Frontend hierarchy ...@@ -1842,7 +1842,7 @@ Frontend hierarchy
- .. _`HIERARCHY-4`: - .. _`HIERARCHY-4`:
``HIERARCHY_4`` ``HIERARCHY_4``
- Hierarchy 4 - Hierarchy 4
...@@ -1917,7 +1917,7 @@ Time interleaving to be used. Currently, used only on DTMB. ...@@ -1917,7 +1917,7 @@ Time interleaving to be used. Currently, used only on DTMB.
- .. _`INTERLEAVING-NONE`: - .. _`INTERLEAVING-NONE`:
``INTERLEAVING_NONE`` ``INTERLEAVING_NONE``
- No interleaving. - No interleaving.
...@@ -1925,7 +1925,7 @@ Time interleaving to be used. Currently, used only on DTMB. ...@@ -1925,7 +1925,7 @@ Time interleaving to be used. Currently, used only on DTMB.
- .. _`INTERLEAVING-AUTO`: - .. _`INTERLEAVING-AUTO`:
``INTERLEAVING_AUTO`` ``INTERLEAVING_AUTO``
- Auto-detect interleaving. - Auto-detect interleaving.
...@@ -1933,7 +1933,7 @@ Time interleaving to be used. Currently, used only on DTMB. ...@@ -1933,7 +1933,7 @@ Time interleaving to be used. Currently, used only on DTMB.
- .. _`INTERLEAVING-240`: - .. _`INTERLEAVING-240`:
``INTERLEAVING_240`` ``INTERLEAVING_240``
- Interleaving of 240 symbols. - Interleaving of 240 symbols.
...@@ -1941,7 +1941,7 @@ Time interleaving to be used. Currently, used only on DTMB. ...@@ -1941,7 +1941,7 @@ Time interleaving to be used. Currently, used only on DTMB.
- .. _`INTERLEAVING-720`: - .. _`INTERLEAVING-720`:
``INTERLEAVING_720`` ``INTERLEAVING_720``
- Interleaving of 720 symbols. - Interleaving of 720 symbols.
......
...@@ -158,37 +158,37 @@ partial path like: ...@@ -158,37 +158,37 @@ partial path like:
.. code-block:: c .. code-block:: c
#include <linux/dvb/audio.h> #include <linux/dvb/audio.h>
.. code-block:: c .. code-block:: c
#include <linux/dvb/ca.h> #include <linux/dvb/ca.h>
.. code-block:: c .. code-block:: c
#include <linux/dvb/dmx.h> #include <linux/dvb/dmx.h>
.. code-block:: c .. code-block:: c
#include <linux/dvb/frontend.h> #include <linux/dvb/frontend.h>
.. code-block:: c .. code-block:: c
#include <linux/dvb/net.h> #include <linux/dvb/net.h>
.. code-block:: c .. code-block:: c
#include <linux/dvb/osd.h> #include <linux/dvb/osd.h>
.. code-block:: c .. code-block:: c
#include <linux/dvb/video.h> #include <linux/dvb/video.h>
To enable applications to support different API version, an additional To enable applications to support different API version, an additional
include file ``linux/dvb/version.h`` exists, which defines the constant include file ``linux/dvb/version.h`` exists, which defines the constant
......
...@@ -116,8 +116,8 @@ struct dvb_net_if description ...@@ -116,8 +116,8 @@ struct dvb_net_if description
- feedtype - feedtype
- Encapsulation type of the feed. It can be: - Encapsulation type of the feed. It can be:
``DVB_NET_FEEDTYPE_MPE`` for MPE encoding or ``DVB_NET_FEEDTYPE_MPE`` for MPE encoding or
``DVB_NET_FEEDTYPE_ULE`` for ULE encoding. ``DVB_NET_FEEDTYPE_ULE`` for ULE encoding.
......
...@@ -58,22 +58,22 @@ Arguments ...@@ -58,22 +58,22 @@ Arguments
- .. row 3 - .. row 3
- -
- O_RDONLY read-only access - O_RDONLY read-only access
- .. row 4 - .. row 4
- -
- O_RDWR read/write access - O_RDWR read/write access
- .. row 5 - .. row 5
- -
- O_NONBLOCK open in non-blocking mode - O_NONBLOCK open in non-blocking mode
- .. row 6 - .. row 6
- -
- (blocking mode is the default) - (blocking mode is the default)
...@@ -291,12 +291,12 @@ Arguments ...@@ -291,12 +291,12 @@ Arguments
- .. row 4 - .. row 4
- -
- TRUE: Blank screen when stop. - TRUE: Blank screen when stop.
- .. row 5 - .. row 5
- -
- FALSE: Show last decoded frame. - FALSE: Show last decoded frame.
...@@ -565,7 +565,7 @@ Arguments ...@@ -565,7 +565,7 @@ Arguments
- .. row 4 - .. row 4
- -
- FALSE: Show last decoded frame. - FALSE: Show last decoded frame.
...@@ -677,7 +677,7 @@ Arguments ...@@ -677,7 +677,7 @@ Arguments
- __u64 \*pts - __u64 \*pts
- Returns the number of frames displayed since the decoder was - Returns the number of frames displayed since the decoder was
started. started.
Return Value Return Value
...@@ -735,11 +735,11 @@ Arguments ...@@ -735,11 +735,11 @@ Arguments
- __u64 \*pts - __u64 \*pts
- Returns the 33-bit timestamp as defined in ITU T-REC-H.222.0 / - Returns the 33-bit timestamp as defined in ITU T-REC-H.222.0 /
ISO/IEC 13818-1. ISO/IEC 13818-1.
The PTS should belong to the currently played frame if possible, The PTS should belong to the currently played frame if possible,
but may also be a value close to it like the PTS of the last but may also be a value close to it like the PTS of the last
decoded frame or the last PTS extracted by the PES parser. decoded frame or the last PTS extracted by the PES parser.
Return Value Return Value
...@@ -1754,7 +1754,7 @@ Arguments ...@@ -1754,7 +1754,7 @@ Arguments
- video_spu_t \*spu - video_spu_t \*spu
- SPU decoding (de)activation and subid setting according to section - SPU decoding (de)activation and subid setting according to section
??. ??.
Return Value Return Value
......
...@@ -18,9 +18,9 @@ The ``video_format_t`` data type defined by ...@@ -18,9 +18,9 @@ The ``video_format_t`` data type defined by
.. code-block:: c .. code-block:: c
typedef enum { typedef enum {
VIDEO_FORMAT_4_3, /* Select 4:3 format */ VIDEO_FORMAT_4_3, /* Select 4:3 format */
VIDEO_FORMAT_16_9, /* Select 16:9 format. */ VIDEO_FORMAT_16_9, /* Select 16:9 format. */
VIDEO_FORMAT_221_1 /* 2.21:1 */ VIDEO_FORMAT_221_1 /* 2.21:1 */
} video_format_t; } video_format_t;
is used in the VIDEO_SET_FORMAT function (??) to tell the driver which is used in the VIDEO_SET_FORMAT function (??) to tell the driver which
...@@ -44,9 +44,9 @@ VIDEO_SET_DISPLAY_FORMAT call (??) which accepts ...@@ -44,9 +44,9 @@ VIDEO_SET_DISPLAY_FORMAT call (??) which accepts
.. code-block:: c .. code-block:: c
typedef enum { typedef enum {
VIDEO_PAN_SCAN, /* use pan and scan format */ VIDEO_PAN_SCAN, /* use pan and scan format */
VIDEO_LETTER_BOX, /* use letterbox format */ VIDEO_LETTER_BOX, /* use letterbox format */
VIDEO_CENTER_CUT_OUT /* use center cut out format */ VIDEO_CENTER_CUT_OUT /* use center cut out format */
} video_displayformat_t; } video_displayformat_t;
as argument. as argument.
...@@ -65,10 +65,10 @@ from an internal (demuxer) or external (user write) source. ...@@ -65,10 +65,10 @@ from an internal (demuxer) or external (user write) source.
.. code-block:: c .. code-block:: c
typedef enum { typedef enum {
VIDEO_SOURCE_DEMUX, /* Select the demux as the main source */ VIDEO_SOURCE_DEMUX, /* Select the demux as the main source */
VIDEO_SOURCE_MEMORY /* If this source is selected, the stream VIDEO_SOURCE_MEMORY /* If this source is selected, the stream
comes from the user through the write comes from the user through the write
system call */ system call */
} video_stream_source_t; } video_stream_source_t;
VIDEO_SOURCE_DEMUX selects the demultiplexer (fed either by the VIDEO_SOURCE_DEMUX selects the demultiplexer (fed either by the
...@@ -89,9 +89,9 @@ representing the state of video playback. ...@@ -89,9 +89,9 @@ representing the state of video playback.
.. code-block:: c .. code-block:: c
typedef enum { typedef enum {
VIDEO_STOPPED, /* Video is stopped */ VIDEO_STOPPED, /* Video is stopped */
VIDEO_PLAYING, /* Video is currently playing */ VIDEO_PLAYING, /* Video is currently playing */
VIDEO_FREEZED /* Video is freezed */ VIDEO_FREEZED /* Video is freezed */
} video_play_state_t; } video_play_state_t;
...@@ -107,27 +107,27 @@ it can be extended safely in the future. ...@@ -107,27 +107,27 @@ it can be extended safely in the future.
.. code-block:: c .. code-block:: c
struct video_command { struct video_command {
__u32 cmd; __u32 cmd;
__u32 flags; __u32 flags;
union { union {
struct { struct {
__u64 pts; __u64 pts;
} stop; } stop;
struct { struct {
/* 0 or 1000 specifies normal speed, /* 0 or 1000 specifies normal speed,
1 specifies forward single stepping, 1 specifies forward single stepping,
-1 specifies backward single stepping, -1 specifies backward single stepping,
>>1: playback at speed/1000 of the normal speed, >>1: playback at speed/1000 of the normal speed,
<-1: reverse playback at (-speed/1000) of the normal speed. */ <-1: reverse playback at (-speed/1000) of the normal speed. */
__s32 speed; __s32 speed;
__u32 format; __u32 format;
} play; } play;
struct { struct {
__u32 data[16]; __u32 data[16];
} raw; } raw;
}; };
}; };
...@@ -140,9 +140,9 @@ video_size_t ...@@ -140,9 +140,9 @@ video_size_t
.. code-block:: c .. code-block:: c
typedef struct { typedef struct {
int w; int w;
int h; int h;
video_format_t aspect_ratio; video_format_t aspect_ratio;
} video_size_t; } video_size_t;
...@@ -158,17 +158,17 @@ VIDEO_GET_EVENT call. ...@@ -158,17 +158,17 @@ VIDEO_GET_EVENT call.
.. code-block:: c .. code-block:: c
struct video_event { struct video_event {
__s32 type; __s32 type;
#define VIDEO_EVENT_SIZE_CHANGED 1 #define VIDEO_EVENT_SIZE_CHANGED 1
#define VIDEO_EVENT_FRAME_RATE_CHANGED 2 #define VIDEO_EVENT_FRAME_RATE_CHANGED 2
#define VIDEO_EVENT_DECODER_STOPPED 3 #define VIDEO_EVENT_DECODER_STOPPED 3
#define VIDEO_EVENT_VSYNC 4 #define VIDEO_EVENT_VSYNC 4
__kernel_time_t timestamp; __kernel_time_t timestamp;
union { union {
video_size_t size; video_size_t size;
unsigned int frame_rate; /* in frames per 1000sec */ unsigned int frame_rate; /* in frames per 1000sec */
unsigned char vsync_field; /* unknown/odd/even/progressive */ unsigned char vsync_field; /* unknown/odd/even/progressive */
} u; } u;
}; };
...@@ -184,11 +184,11 @@ about various states of the playback operation. ...@@ -184,11 +184,11 @@ about various states of the playback operation.
.. code-block:: c .. code-block:: c
struct video_status { struct video_status {
int video_blank; /* blank video on freeze? */ int video_blank; /* blank video on freeze? */
video_play_state_t play_state; /* current state of playback */ video_play_state_t play_state; /* current state of playback */
video_stream_source_t stream_source; /* current source (demux/memory) */ video_stream_source_t stream_source; /* current source (demux/memory) */
video_format_t video_format; /* current aspect ratio of stream */ video_format_t video_format; /* current aspect ratio of stream */
video_displayformat_t display_format;/* selected cropping mode */ video_displayformat_t display_format;/* selected cropping mode */
}; };
If video_blank is set video will be blanked out if the channel is If video_blank is set video will be blanked out if the channel is
...@@ -216,8 +216,8 @@ within the following structure. ...@@ -216,8 +216,8 @@ within the following structure.
/* pointer to and size of a single iframe in memory */ /* pointer to and size of a single iframe in memory */
struct video_still_picture { struct video_still_picture {
char *iFrame; /* pointer to a single iframe in memory */ char *iFrame; /* pointer to a single iframe in memory */
int32_t size; int32_t size;
}; };
...@@ -237,12 +237,12 @@ following bits set according to the hardwares capabilities. ...@@ -237,12 +237,12 @@ following bits set according to the hardwares capabilities.
#define VIDEO_CAP_MPEG1 1 #define VIDEO_CAP_MPEG1 1
#define VIDEO_CAP_MPEG2 2 #define VIDEO_CAP_MPEG2 2
/* can you send a system and/or program stream to video device? /* can you send a system and/or program stream to video device?
(you still have to open the video and the audio device but only (you still have to open the video and the audio device but only
send the stream to the video device) */ send the stream to the video device) */
#define VIDEO_CAP_SYS 4 #define VIDEO_CAP_SYS 4
#define VIDEO_CAP_PROG 8 #define VIDEO_CAP_PROG 8
/* can the driver also handle SPU, NAVI and CSS encoded data? /* can the driver also handle SPU, NAVI and CSS encoded data?
(CSS API is not present yet) */ (CSS API is not present yet) */
#define VIDEO_CAP_SPU 16 #define VIDEO_CAP_SPU 16
#define VIDEO_CAP_NAVI 32 #define VIDEO_CAP_NAVI 32
#define VIDEO_CAP_CSS 64 #define VIDEO_CAP_CSS 64
...@@ -260,14 +260,14 @@ output. The following system types can be set: ...@@ -260,14 +260,14 @@ output. The following system types can be set:
.. code-block:: c .. code-block:: c
typedef enum { typedef enum {
VIDEO_SYSTEM_PAL, VIDEO_SYSTEM_PAL,
VIDEO_SYSTEM_NTSC, VIDEO_SYSTEM_NTSC,
VIDEO_SYSTEM_PALN, VIDEO_SYSTEM_PALN,
VIDEO_SYSTEM_PALNc, VIDEO_SYSTEM_PALNc,
VIDEO_SYSTEM_PALM, VIDEO_SYSTEM_PALM,
VIDEO_SYSTEM_NTSC60, VIDEO_SYSTEM_NTSC60,
VIDEO_SYSTEM_PAL60, VIDEO_SYSTEM_PAL60,
VIDEO_SYSTEM_PALM60 VIDEO_SYSTEM_PALM60
} video_system_t; } video_system_t;
...@@ -284,21 +284,21 @@ information. The call expects the following format for that information: ...@@ -284,21 +284,21 @@ information. The call expects the following format for that information:
typedef typedef
struct video_highlight { struct video_highlight {
boolean active; /* 1=show highlight, 0=hide highlight */ boolean active; /* 1=show highlight, 0=hide highlight */
uint8_t contrast1; /* 7- 4 Pattern pixel contrast */ uint8_t contrast1; /* 7- 4 Pattern pixel contrast */
/* 3- 0 Background pixel contrast */ /* 3- 0 Background pixel contrast */
uint8_t contrast2; /* 7- 4 Emphasis pixel-2 contrast */ uint8_t contrast2; /* 7- 4 Emphasis pixel-2 contrast */
/* 3- 0 Emphasis pixel-1 contrast */ /* 3- 0 Emphasis pixel-1 contrast */
uint8_t color1; /* 7- 4 Pattern pixel color */ uint8_t color1; /* 7- 4 Pattern pixel color */
/* 3- 0 Background pixel color */ /* 3- 0 Background pixel color */
uint8_t color2; /* 7- 4 Emphasis pixel-2 color */ uint8_t color2; /* 7- 4 Emphasis pixel-2 color */
/* 3- 0 Emphasis pixel-1 color */ /* 3- 0 Emphasis pixel-1 color */
uint32_t ypos; /* 23-22 auto action mode */ uint32_t ypos; /* 23-22 auto action mode */
/* 21-12 start y */ /* 21-12 start y */
/* 9- 0 end y */ /* 9- 0 end y */
uint32_t xpos; /* 23-22 button color number */ uint32_t xpos; /* 23-22 button color number */
/* 21-12 start x */ /* 21-12 start x */
/* 9- 0 end x */ /* 9- 0 end x */
} video_highlight_t; } video_highlight_t;
...@@ -315,8 +315,8 @@ to the following format: ...@@ -315,8 +315,8 @@ to the following format:
typedef typedef
struct video_spu { struct video_spu {
boolean active; boolean active;
int stream_id; int stream_id;
} video_spu_t; } video_spu_t;
...@@ -333,8 +333,8 @@ VIDEO_SPU_PALETTE: ...@@ -333,8 +333,8 @@ VIDEO_SPU_PALETTE:
typedef typedef
struct video_spu_palette { struct video_spu_palette {
int length; int length;
uint8_t *palette; uint8_t *palette;
} video_spu_palette_t; } video_spu_palette_t;
...@@ -351,8 +351,8 @@ passed to the ioctl VIDEO_GET_NAVI: ...@@ -351,8 +351,8 @@ passed to the ioctl VIDEO_GET_NAVI:
typedef typedef
struct video_navi_pack { struct video_navi_pack {
int length; /* 0 ... 1024 */ int length; /* 0 ... 1024 */
uint8_t data[1024]; uint8_t data[1024];
} video_navi_pack_t; } video_navi_pack_t;
......
...@@ -19,10 +19,10 @@ Generic Error Codes ...@@ -19,10 +19,10 @@ Generic Error Codes
- ``EAGAIN`` (aka ``EWOULDBLOCK``) - ``EAGAIN`` (aka ``EWOULDBLOCK``)
- The ioctl can't be handled because the device is in state where it - The ioctl can't be handled because the device is in state where it
can't perform it. This could happen for example in case where can't perform it. This could happen for example in case where
device is sleeping and ioctl is performed to query statistics. It device is sleeping and ioctl is performed to query statistics. It
is also returned when the ioctl would need to wait for an event, is also returned when the ioctl would need to wait for an event,
but the device was opened in non-blocking mode. but the device was opened in non-blocking mode.
- .. row 2 - .. row 2
...@@ -35,26 +35,26 @@ Generic Error Codes ...@@ -35,26 +35,26 @@ Generic Error Codes
- ``EBUSY`` - ``EBUSY``
- The ioctl can't be handled because the device is busy. This is - The ioctl can't be handled because the device is busy. This is
typically return while device is streaming, and an ioctl tried to typically return while device is streaming, and an ioctl tried to
change something that would affect the stream, or would require change something that would affect the stream, or would require
the usage of a hardware resource that was already allocated. The the usage of a hardware resource that was already allocated. The
ioctl must not be retried without performing another action to fix ioctl must not be retried without performing another action to fix
the problem first (typically: stop the stream before retrying). the problem first (typically: stop the stream before retrying).
- .. row 4 - .. row 4
- ``EFAULT`` - ``EFAULT``
- There was a failure while copying data from/to userspace, probably - There was a failure while copying data from/to userspace, probably
caused by an invalid pointer reference. caused by an invalid pointer reference.
- .. row 5 - .. row 5
- ``EINVAL`` - ``EINVAL``
- One or more of the ioctl parameters are invalid or out of the - One or more of the ioctl parameters are invalid or out of the
allowed range. This is a widely used error code. See the allowed range. This is a widely used error code. See the
individual ioctl requests for specific causes. individual ioctl requests for specific causes.
- .. row 6 - .. row 6
...@@ -73,23 +73,23 @@ Generic Error Codes ...@@ -73,23 +73,23 @@ Generic Error Codes
- ``ENOTTY`` - ``ENOTTY``
- The ioctl is not supported by the driver, actually meaning that - The ioctl is not supported by the driver, actually meaning that
the required functionality is not available, or the file the required functionality is not available, or the file
descriptor is not for a media device. descriptor is not for a media device.
- .. row 9 - .. row 9
- ``ENOSPC`` - ``ENOSPC``
- On USB devices, the stream ioctl's can return this error, meaning - On USB devices, the stream ioctl's can return this error, meaning
that this request would overcommit the usb bandwidth reserved for that this request would overcommit the usb bandwidth reserved for
periodic transfers (up to 80% of the USB bandwidth). periodic transfers (up to 80% of the USB bandwidth).
- .. row 10 - .. row 10
- ``EPERM`` - ``EPERM``
- Permission denied. Can be returned if the device needs write - Permission denied. Can be returned if the device needs write
permission, or some special capabilities is needed (e. g. root) permission, or some special capabilities is needed (e. g. root)
Note 1: ioctls may return other error codes. Since errors may have side Note 1: ioctls may return other error codes. Since errors may have side
......
...@@ -53,12 +53,12 @@ ioctl never fails. ...@@ -53,12 +53,12 @@ ioctl never fails.
- ``driver``\ [16] - ``driver``\ [16]
- Name of the driver implementing the media API as a NUL-terminated - Name of the driver implementing the media API as a NUL-terminated
ASCII string. The driver version is stored in the ASCII string. The driver version is stored in the
``driver_version`` field. ``driver_version`` field.
Driver specific applications can use this information to verify Driver specific applications can use this information to verify
the driver identity. It is also useful to work around known bugs, the driver identity. It is also useful to work around known bugs,
or to identify drivers in error reports. or to identify drivers in error reports.
- .. row 2 - .. row 2
...@@ -67,8 +67,8 @@ ioctl never fails. ...@@ -67,8 +67,8 @@ ioctl never fails.
- ``model``\ [32] - ``model``\ [32]
- Device model name as a NUL-terminated UTF-8 string. The device - Device model name as a NUL-terminated UTF-8 string. The device
version is stored in the ``device_version`` field and is not be version is stored in the ``device_version`` field and is not be
appended to the model name. appended to the model name.
- .. row 3 - .. row 3
...@@ -85,8 +85,8 @@ ioctl never fails. ...@@ -85,8 +85,8 @@ ioctl never fails.
- ``bus_info``\ [32] - ``bus_info``\ [32]
- Location of the device in the system as a NUL-terminated ASCII - Location of the device in the system as a NUL-terminated ASCII
string. This includes the bus type name (PCI, USB, ...) and a string. This includes the bus type name (PCI, USB, ...) and a
bus-specific identifier. bus-specific identifier.
- .. row 5 - .. row 5
...@@ -111,8 +111,8 @@ ioctl never fails. ...@@ -111,8 +111,8 @@ ioctl never fails.
- ``driver_version`` - ``driver_version``
- Media device driver version, formatted with the - Media device driver version, formatted with the
``KERNEL_VERSION()`` macro. Together with the ``driver`` field ``KERNEL_VERSION()`` macro. Together with the ``driver`` field
this identifies a particular driver. this identifies a particular driver.
- .. row 8 - .. row 8
...@@ -121,7 +121,7 @@ ioctl never fails. ...@@ -121,7 +121,7 @@ ioctl never fails.
- ``reserved``\ [31] - ``reserved``\ [31]
- Reserved for future extensions. Drivers and applications must set - Reserved for future extensions. Drivers and applications must set
this array to zero. this array to zero.
The ``serial`` and ``bus_info`` fields can be used to distinguish The ``serial`` and ``bus_info`` fields can be used to distinguish
......
...@@ -60,11 +60,11 @@ id's until they get an error. ...@@ -60,11 +60,11 @@ id's until they get an error.
- ``id`` - ``id``
- -
- -
- Entity id, set by the application. When the id is or'ed with - Entity id, set by the application. When the id is or'ed with
``MEDIA_ENT_ID_FLAG_NEXT``, the driver clears the flag and returns ``MEDIA_ENT_ID_FLAG_NEXT``, the driver clears the flag and returns
the first entity with a larger id. the first entity with a larger id.
- .. row 2 - .. row 2
...@@ -72,8 +72,8 @@ id's until they get an error. ...@@ -72,8 +72,8 @@ id's until they get an error.
- ``name``\ [32] - ``name``\ [32]
- -
- -
- Entity name as an UTF-8 NULL-terminated string. - Entity name as an UTF-8 NULL-terminated string.
- .. row 3 - .. row 3
...@@ -82,8 +82,8 @@ id's until they get an error. ...@@ -82,8 +82,8 @@ id's until they get an error.
- ``type`` - ``type``
- -
- -
- Entity type, see :ref:`media-entity-type` for details. - Entity type, see :ref:`media-entity-type` for details.
- .. row 4 - .. row 4
...@@ -92,8 +92,8 @@ id's until they get an error. ...@@ -92,8 +92,8 @@ id's until they get an error.
- ``revision`` - ``revision``
- -
- -
- Entity revision. Always zero (obsolete) - Entity revision. Always zero (obsolete)
- .. row 5 - .. row 5
...@@ -102,8 +102,8 @@ id's until they get an error. ...@@ -102,8 +102,8 @@ id's until they get an error.
- ``flags`` - ``flags``
- -
- -
- Entity flags, see :ref:`media-entity-flag` for details. - Entity flags, see :ref:`media-entity-flag` for details.
- .. row 6 - .. row 6
...@@ -112,8 +112,8 @@ id's until they get an error. ...@@ -112,8 +112,8 @@ id's until they get an error.
- ``group_id`` - ``group_id``
- -
- -
- Entity group ID. Always zero (obsolete) - Entity group ID. Always zero (obsolete)
- .. row 7 - .. row 7
...@@ -122,8 +122,8 @@ id's until they get an error. ...@@ -122,8 +122,8 @@ id's until they get an error.
- ``pads`` - ``pads``
- -
- -
- Number of pads - Number of pads
- .. row 8 - .. row 8
...@@ -132,10 +132,10 @@ id's until they get an error. ...@@ -132,10 +132,10 @@ id's until they get an error.
- ``links`` - ``links``
- -
- -
- Total number of outbound links. Inbound links are not counted in - Total number of outbound links. Inbound links are not counted in
this field. this field.
- .. row 9 - .. row 9
...@@ -143,18 +143,18 @@ id's until they get an error. ...@@ -143,18 +143,18 @@ id's until they get an error.
- .. row 10 - .. row 10
- -
- struct - struct
- ``dev`` - ``dev``
- -
- Valid for (sub-)devices that create a single device node. - Valid for (sub-)devices that create a single device node.
- .. row 11 - .. row 11
- -
- -
- __u32 - __u32
- ``major`` - ``major``
...@@ -163,8 +163,8 @@ id's until they get an error. ...@@ -163,8 +163,8 @@ id's until they get an error.
- .. row 12 - .. row 12
- -
- -
- __u32 - __u32
- ``minor`` - ``minor``
...@@ -173,13 +173,13 @@ id's until they get an error. ...@@ -173,13 +173,13 @@ id's until they get an error.
- .. row 13 - .. row 13
- -
- __u8 - __u8
- ``raw``\ [184] - ``raw``\ [184]
- -
- -
......
...@@ -78,7 +78,7 @@ returned during the enumeration process. ...@@ -78,7 +78,7 @@ returned during the enumeration process.
- \*\ ``pads`` - \*\ ``pads``
- Pointer to a pads array allocated by the application. Ignored if - Pointer to a pads array allocated by the application. Ignored if
NULL. NULL.
- .. row 3 - .. row 3
...@@ -87,7 +87,7 @@ returned during the enumeration process. ...@@ -87,7 +87,7 @@ returned during the enumeration process.
- \*\ ``links`` - \*\ ``links``
- Pointer to a links array allocated by the application. Ignored if - Pointer to a links array allocated by the application. Ignored if
NULL. NULL.
......
...@@ -60,11 +60,11 @@ desired arrays with the media graph elements. ...@@ -60,11 +60,11 @@ desired arrays with the media graph elements.
- ``topology_version`` - ``topology_version``
- -
- -
- Version of the media graph topology. When the graph is created, - Version of the media graph topology. When the graph is created,
this field starts with zero. Every time a graph element is added this field starts with zero. Every time a graph element is added
or removed, this field is incremented. or removed, this field is incremented.
- .. row 2 - .. row 2
...@@ -72,8 +72,8 @@ desired arrays with the media graph elements. ...@@ -72,8 +72,8 @@ desired arrays with the media graph elements.
- ``num_entities`` - ``num_entities``
- -
- -
- Number of entities in the graph - Number of entities in the graph
- .. row 3 - .. row 3
...@@ -82,12 +82,12 @@ desired arrays with the media graph elements. ...@@ -82,12 +82,12 @@ desired arrays with the media graph elements.
- ``ptr_entities`` - ``ptr_entities``
- -
- -
- A pointer to a memory area where the entities array will be - A pointer to a memory area where the entities array will be
stored, converted to a 64-bits integer. It can be zero. if zero, stored, converted to a 64-bits integer. It can be zero. if zero,
the ioctl won't store the entities. It will just update the ioctl won't store the entities. It will just update
``num_entities`` ``num_entities``
- .. row 4 - .. row 4
...@@ -95,8 +95,8 @@ desired arrays with the media graph elements. ...@@ -95,8 +95,8 @@ desired arrays with the media graph elements.
- ``num_interfaces`` - ``num_interfaces``
- -
- -
- Number of interfaces in the graph - Number of interfaces in the graph
- .. row 5 - .. row 5
...@@ -105,12 +105,12 @@ desired arrays with the media graph elements. ...@@ -105,12 +105,12 @@ desired arrays with the media graph elements.
- ``ptr_interfaces`` - ``ptr_interfaces``
- -
- -
- A pointer to a memory area where the interfaces array will be - A pointer to a memory area where the interfaces array will be
stored, converted to a 64-bits integer. It can be zero. if zero, stored, converted to a 64-bits integer. It can be zero. if zero,
the ioctl won't store the interfaces. It will just update the ioctl won't store the interfaces. It will just update
``num_interfaces`` ``num_interfaces``
- .. row 6 - .. row 6
...@@ -118,8 +118,8 @@ desired arrays with the media graph elements. ...@@ -118,8 +118,8 @@ desired arrays with the media graph elements.
- ``num_pads`` - ``num_pads``
- -
- -
- Total number of pads in the graph - Total number of pads in the graph
- .. row 7 - .. row 7
...@@ -128,11 +128,11 @@ desired arrays with the media graph elements. ...@@ -128,11 +128,11 @@ desired arrays with the media graph elements.
- ``ptr_pads`` - ``ptr_pads``
- -
- -
- A pointer to a memory area where the pads array will be stored, - A pointer to a memory area where the pads array will be stored,
converted to a 64-bits integer. It can be zero. if zero, the ioctl converted to a 64-bits integer. It can be zero. if zero, the ioctl
won't store the pads. It will just update ``num_pads`` won't store the pads. It will just update ``num_pads``
- .. row 8 - .. row 8
...@@ -140,8 +140,8 @@ desired arrays with the media graph elements. ...@@ -140,8 +140,8 @@ desired arrays with the media graph elements.
- ``num_links`` - ``num_links``
- -
- -
- Total number of data and interface links in the graph - Total number of data and interface links in the graph
- .. row 9 - .. row 9
...@@ -150,11 +150,11 @@ desired arrays with the media graph elements. ...@@ -150,11 +150,11 @@ desired arrays with the media graph elements.
- ``ptr_links`` - ``ptr_links``
- -
- -
- A pointer to a memory area where the links array will be stored, - A pointer to a memory area where the links array will be stored,
converted to a 64-bits integer. It can be zero. if zero, the ioctl converted to a 64-bits integer. It can be zero. if zero, the ioctl
won't store the links. It will just update ``num_links`` won't store the links. It will just update ``num_links``
...@@ -171,8 +171,8 @@ desired arrays with the media graph elements. ...@@ -171,8 +171,8 @@ desired arrays with the media graph elements.
- ``id`` - ``id``
- -
- -
- Unique ID for the entity. - Unique ID for the entity.
- .. row 2 - .. row 2
...@@ -181,8 +181,8 @@ desired arrays with the media graph elements. ...@@ -181,8 +181,8 @@ desired arrays with the media graph elements.
- ``name``\ [64] - ``name``\ [64]
- -
- -
- Entity name as an UTF-8 NULL-terminated string. - Entity name as an UTF-8 NULL-terminated string.
- .. row 3 - .. row 3
...@@ -191,8 +191,8 @@ desired arrays with the media graph elements. ...@@ -191,8 +191,8 @@ desired arrays with the media graph elements.
- ``function`` - ``function``
- -
- -
- Entity main function, see :ref:`media-entity-type` for details. - Entity main function, see :ref:`media-entity-type` for details.
- .. row 4 - .. row 4
...@@ -202,7 +202,7 @@ desired arrays with the media graph elements. ...@@ -202,7 +202,7 @@ desired arrays with the media graph elements.
- ``reserved``\ [12] - ``reserved``\ [12]
- Reserved for future extensions. Drivers and applications must set - Reserved for future extensions. Drivers and applications must set
this array to zero. this array to zero.
...@@ -219,8 +219,8 @@ desired arrays with the media graph elements. ...@@ -219,8 +219,8 @@ desired arrays with the media graph elements.
- ``id`` - ``id``
- -
- -
- Unique ID for the interface. - Unique ID for the interface.
- .. row 2 - .. row 2
...@@ -229,8 +229,8 @@ desired arrays with the media graph elements. ...@@ -229,8 +229,8 @@ desired arrays with the media graph elements.
- ``intf_type`` - ``intf_type``
- -
- -
- Interface type, see :ref:`media-intf-type` for details. - Interface type, see :ref:`media-intf-type` for details.
- .. row 3 - .. row 3
...@@ -239,8 +239,8 @@ desired arrays with the media graph elements. ...@@ -239,8 +239,8 @@ desired arrays with the media graph elements.
- ``flags`` - ``flags``
- -
- -
- Interface flags. Currently unused. - Interface flags. Currently unused.
- .. row 4 - .. row 4
...@@ -249,10 +249,10 @@ desired arrays with the media graph elements. ...@@ -249,10 +249,10 @@ desired arrays with the media graph elements.
- ``reserved``\ [9] - ``reserved``\ [9]
- -
- -
- Reserved for future extensions. Drivers and applications must set - Reserved for future extensions. Drivers and applications must set
this array to zero. this array to zero.
- .. row 5 - .. row 5
...@@ -260,10 +260,10 @@ desired arrays with the media graph elements. ...@@ -260,10 +260,10 @@ desired arrays with the media graph elements.
- ``devnode`` - ``devnode``
- -
- -
- Used only for device node interfaces. See - Used only for device node interfaces. See
:ref:`media-v2-intf-devnode` for details.. :ref:`media-v2-intf-devnode` for details..
...@@ -280,8 +280,8 @@ desired arrays with the media graph elements. ...@@ -280,8 +280,8 @@ desired arrays with the media graph elements.
- ``major`` - ``major``
- -
- -
- Device node major number. - Device node major number.
- .. row 2 - .. row 2
...@@ -290,8 +290,8 @@ desired arrays with the media graph elements. ...@@ -290,8 +290,8 @@ desired arrays with the media graph elements.
- ``minor`` - ``minor``
- -
- -
- Device node minor number. - Device node minor number.
...@@ -309,8 +309,8 @@ desired arrays with the media graph elements. ...@@ -309,8 +309,8 @@ desired arrays with the media graph elements.
- ``id`` - ``id``
- -
- -
- Unique ID for the pad. - Unique ID for the pad.
- .. row 2 - .. row 2
...@@ -319,8 +319,8 @@ desired arrays with the media graph elements. ...@@ -319,8 +319,8 @@ desired arrays with the media graph elements.
- ``entity_id`` - ``entity_id``
- -
- -
- Unique ID for the entity where this pad belongs. - Unique ID for the entity where this pad belongs.
- .. row 3 - .. row 3
...@@ -329,8 +329,8 @@ desired arrays with the media graph elements. ...@@ -329,8 +329,8 @@ desired arrays with the media graph elements.
- ``flags`` - ``flags``
- -
- -
- Pad flags, see :ref:`media-pad-flag` for more details. - Pad flags, see :ref:`media-pad-flag` for more details.
- .. row 4 - .. row 4
...@@ -339,10 +339,10 @@ desired arrays with the media graph elements. ...@@ -339,10 +339,10 @@ desired arrays with the media graph elements.
- ``reserved``\ [9] - ``reserved``\ [9]
- -
- -
- Reserved for future extensions. Drivers and applications must set - Reserved for future extensions. Drivers and applications must set
this array to zero. this array to zero.
...@@ -359,8 +359,8 @@ desired arrays with the media graph elements. ...@@ -359,8 +359,8 @@ desired arrays with the media graph elements.
- ``id`` - ``id``
- -
- -
- Unique ID for the pad. - Unique ID for the pad.
- .. row 2 - .. row 2
...@@ -369,11 +369,11 @@ desired arrays with the media graph elements. ...@@ -369,11 +369,11 @@ desired arrays with the media graph elements.
- ``source_id`` - ``source_id``
- -
- -
- On pad to pad links: unique ID for the source pad. - On pad to pad links: unique ID for the source pad.
On interface to entity links: unique ID for the interface. On interface to entity links: unique ID for the interface.
- .. row 3 - .. row 3
...@@ -381,11 +381,11 @@ desired arrays with the media graph elements. ...@@ -381,11 +381,11 @@ desired arrays with the media graph elements.
- ``sink_id`` - ``sink_id``
- -
- -
- On pad to pad links: unique ID for the sink pad. - On pad to pad links: unique ID for the sink pad.
On interface to entity links: unique ID for the entity. On interface to entity links: unique ID for the entity.
- .. row 4 - .. row 4
...@@ -393,8 +393,8 @@ desired arrays with the media graph elements. ...@@ -393,8 +393,8 @@ desired arrays with the media graph elements.
- ``flags`` - ``flags``
- -
- -
- Link flags, see :ref:`media-link-flag` for more details. - Link flags, see :ref:`media-link-flag` for more details.
- .. row 5 - .. row 5
...@@ -403,10 +403,10 @@ desired arrays with the media graph elements. ...@@ -403,10 +403,10 @@ desired arrays with the media graph elements.
- ``reserved``\ [5] - ``reserved``\ [5]
- -
- -
- Reserved for future extensions. Drivers and applications must set - Reserved for future extensions. Drivers and applications must set
this array to zero. this array to zero.
......
...@@ -18,7 +18,7 @@ Types and flags used to represent the media graph elements ...@@ -18,7 +18,7 @@ Types and flags used to represent the media graph elements
- ``MEDIA_ENT_F_UNKNOWN`` and ``MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN`` - ``MEDIA_ENT_F_UNKNOWN`` and ``MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN``
- Unknown entity. That generally indicates that a driver didn't - Unknown entity. That generally indicates that a driver didn't
initialize properly the entity, with is a Kernel bug initialize properly the entity, with is a Kernel bug
- .. row 2 - .. row 2
...@@ -55,7 +55,7 @@ Types and flags used to represent the media graph elements ...@@ -55,7 +55,7 @@ Types and flags used to represent the media graph elements
- ``MEDIA_ENT_F_TS_DEMUX`` - ``MEDIA_ENT_F_TS_DEMUX``
- MPEG Transport stream demux entity. Could be implemented on - MPEG Transport stream demux entity. Could be implemented on
hardware or in Kernelspace by the Linux DVB subsystem. hardware or in Kernelspace by the Linux DVB subsystem.
- .. row 8 - .. row 8
...@@ -68,7 +68,7 @@ Types and flags used to represent the media graph elements ...@@ -68,7 +68,7 @@ Types and flags used to represent the media graph elements
- ``MEDIA_ENT_F_DTV_NET_DECAP`` - ``MEDIA_ENT_F_DTV_NET_DECAP``
- Digital TV network ULE/MLE desencapsulation entity. Could be - Digital TV network ULE/MLE desencapsulation entity. Could be
implemented on hardware or in Kernelspace implemented on hardware or in Kernelspace
- .. row 10 - .. row 10
...@@ -111,42 +111,42 @@ Types and flags used to represent the media graph elements ...@@ -111,42 +111,42 @@ Types and flags used to represent the media graph elements
- ``MEDIA_ENT_F_ATV_DECODER`` - ``MEDIA_ENT_F_ATV_DECODER``
- Analog video decoder, the basic function of the video decoder is - Analog video decoder, the basic function of the video decoder is
to accept analogue video from a wide variety of sources such as to accept analogue video from a wide variety of sources such as
broadcast, DVD players, cameras and video cassette recorders, in broadcast, DVD players, cameras and video cassette recorders, in
either NTSC, PAL, SECAM or HD format, separating the stream into either NTSC, PAL, SECAM or HD format, separating the stream into
its component parts, luminance and chrominance, and output it in its component parts, luminance and chrominance, and output it in
some digital video standard, with appropriate timing signals. some digital video standard, with appropriate timing signals.
- .. row 17 - .. row 17
- ``MEDIA_ENT_F_TUNER`` - ``MEDIA_ENT_F_TUNER``
- Digital TV, analog TV, radio and/or software radio tuner, with - Digital TV, analog TV, radio and/or software radio tuner, with
consists on a PLL tuning stage that converts radio frequency (RF) consists on a PLL tuning stage that converts radio frequency (RF)
signal into an Intermediate Frequency (IF). Modern tuners have signal into an Intermediate Frequency (IF). Modern tuners have
internally IF-PLL decoders for audio and video, but older models internally IF-PLL decoders for audio and video, but older models
have those stages implemented on separate entities. have those stages implemented on separate entities.
- .. row 18 - .. row 18
- ``MEDIA_ENT_F_IF_VID_DECODER`` - ``MEDIA_ENT_F_IF_VID_DECODER``
- IF-PLL video decoder. It receives the IF from a PLL and decodes - IF-PLL video decoder. It receives the IF from a PLL and decodes
the analog TV video signal. This is commonly found on some very the analog TV video signal. This is commonly found on some very
old analog tuners, like Philips MK3 designs. They all contain a old analog tuners, like Philips MK3 designs. They all contain a
tda9887 (or some software compatible similar chip, like tda9885). tda9887 (or some software compatible similar chip, like tda9885).
Those devices use a different I2C address than the tuner PLL. Those devices use a different I2C address than the tuner PLL.
- .. row 19 - .. row 19
- ``MEDIA_ENT_F_IF_AUD_DECODER`` - ``MEDIA_ENT_F_IF_AUD_DECODER``
- IF-PLL sound decoder. It receives the IF from a PLL and decodes - IF-PLL sound decoder. It receives the IF from a PLL and decodes
the analog TV audio signal. This is commonly found on some very the analog TV audio signal. This is commonly found on some very
old analog hardware, like Micronas msp3400, Philips tda9840, old analog hardware, like Micronas msp3400, Philips tda9840,
tda985x, etc. Those devices use a different I2C address than the tda985x, etc. Those devices use a different I2C address than the
tuner PLL and should be controlled together with the IF-PLL video tuner PLL and should be controlled together with the IF-PLL video
decoder. decoder.
- .. row 20 - .. row 20
...@@ -180,7 +180,7 @@ Types and flags used to represent the media graph elements ...@@ -180,7 +180,7 @@ Types and flags used to represent the media graph elements
- ``MEDIA_ENT_FL_DEFAULT`` - ``MEDIA_ENT_FL_DEFAULT``
- Default entity for its type. Used to discover the default audio, - Default entity for its type. Used to discover the default audio,
VBI and video devices, the default camera sensor, ... VBI and video devices, the default camera sensor, ...
- .. row 2 - .. row 2
...@@ -355,25 +355,25 @@ Types and flags used to represent the media graph elements ...@@ -355,25 +355,25 @@ Types and flags used to represent the media graph elements
- ``MEDIA_PAD_FL_SINK`` - ``MEDIA_PAD_FL_SINK``
- Input pad, relative to the entity. Input pads sink data and are - Input pad, relative to the entity. Input pads sink data and are
targets of links. targets of links.
- .. row 2 - .. row 2
- ``MEDIA_PAD_FL_SOURCE`` - ``MEDIA_PAD_FL_SOURCE``
- Output pad, relative to the entity. Output pads source data and - Output pad, relative to the entity. Output pads source data and
are origins of links. are origins of links.
- .. row 3 - .. row 3
- ``MEDIA_PAD_FL_MUST_CONNECT`` - ``MEDIA_PAD_FL_MUST_CONNECT``
- If this flag is set and the pad is linked to any other pad, then - If this flag is set and the pad is linked to any other pad, then
at least one of those links must be enabled for the entity to be at least one of those links must be enabled for the entity to be
able to stream. There could be temporary reasons (e.g. device able to stream. There could be temporary reasons (e.g. device
configuration dependent) for the pad to need enabled links even configuration dependent) for the pad to need enabled links even
when this flag isn't set; the absence of the flag doesn't imply when this flag isn't set; the absence of the flag doesn't imply
there is none. there is none.
One and only one of ``MEDIA_PAD_FL_SINK`` and ``MEDIA_PAD_FL_SOURCE`` One and only one of ``MEDIA_PAD_FL_SINK`` and ``MEDIA_PAD_FL_SOURCE``
...@@ -392,31 +392,31 @@ must be set for every pad. ...@@ -392,31 +392,31 @@ must be set for every pad.
- ``MEDIA_LNK_FL_ENABLED`` - ``MEDIA_LNK_FL_ENABLED``
- The link is enabled and can be used to transfer media data. When - The link is enabled and can be used to transfer media data. When
two or more links target a sink pad, only one of them can be two or more links target a sink pad, only one of them can be
enabled at a time. enabled at a time.
- .. row 2 - .. row 2
- ``MEDIA_LNK_FL_IMMUTABLE`` - ``MEDIA_LNK_FL_IMMUTABLE``
- The link enabled state can't be modified at runtime. An immutable - The link enabled state can't be modified at runtime. An immutable
link is always enabled. link is always enabled.
- .. row 3 - .. row 3
- ``MEDIA_LNK_FL_DYNAMIC`` - ``MEDIA_LNK_FL_DYNAMIC``
- The link enabled state can be modified during streaming. This flag - The link enabled state can be modified during streaming. This flag
is set by drivers and is read-only for applications. is set by drivers and is read-only for applications.
- .. row 4 - .. row 4
- ``MEDIA_LNK_FL_LINK_TYPE`` - ``MEDIA_LNK_FL_LINK_TYPE``
- This is a bitmask that defines the type of the link. Currently, - This is a bitmask that defines the type of the link. Currently,
two types of links are supported: two types of links are supported:
``MEDIA_LNK_FL_DATA_LINK`` if the link is between two pads ``MEDIA_LNK_FL_DATA_LINK`` if the link is between two pads
``MEDIA_LNK_FL_INTERFACE_LINK`` if the link is between an ``MEDIA_LNK_FL_INTERFACE_LINK`` if the link is between an
interface and an entity interface and an entity
...@@ -288,7 +288,7 @@ the remote via /dev/input/event devices. ...@@ -288,7 +288,7 @@ the remote via /dev/input/event devices.
- ``KEY_ANGLE`` - ``KEY_ANGLE``
- Switch video camera angle (on videos with more than one angle - Switch video camera angle (on videos with more than one angle
stored) stored)
- ANGLE / SWAP - ANGLE / SWAP
...@@ -739,19 +739,19 @@ at some cheaper IR's. Due to that, it is recommended to: ...@@ -739,19 +739,19 @@ at some cheaper IR's. Due to that, it is recommended to:
- .. row 1 - .. row 1
- On simpler IR's, without separate channel keys, you need to map UP - On simpler IR's, without separate channel keys, you need to map UP
as ``KEY_CHANNELUP`` as ``KEY_CHANNELUP``
- .. row 2 - .. row 2
- On simpler IR's, without separate channel keys, you need to map - On simpler IR's, without separate channel keys, you need to map
DOWN as ``KEY_CHANNELDOWN`` DOWN as ``KEY_CHANNELDOWN``
- .. row 3 - .. row 3
- On simpler IR's, without separate volume keys, you need to map - On simpler IR's, without separate volume keys, you need to map
LEFT as ``KEY_VOLUMEDOWN`` LEFT as ``KEY_VOLUMEDOWN``
- .. row 4 - .. row 4
- On simpler IR's, without separate volume keys, you need to map - On simpler IR's, without separate volume keys, you need to map
RIGHT as ``KEY_VOLUMEUP`` RIGHT as ``KEY_VOLUMEUP``
...@@ -62,8 +62,8 @@ the :ref:`VIDIOC_QUERYCAP` ioctl. ...@@ -62,8 +62,8 @@ the :ref:`VIDIOC_QUERYCAP` ioctl.
memset(&audio, 0, sizeof(audio)); memset(&audio, 0, sizeof(audio));
if (-1 == ioctl(fd, VIDIOC_G_AUDIO, &audio)) { if (-1 == ioctl(fd, VIDIOC_G_AUDIO, &audio)) {
perror("VIDIOC_G_AUDIO"); perror("VIDIOC_G_AUDIO");
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
printf("Current input: %s\\n", audio.name); printf("Current input: %s\\n", audio.name);
...@@ -79,8 +79,8 @@ the :ref:`VIDIOC_QUERYCAP` ioctl. ...@@ -79,8 +79,8 @@ the :ref:`VIDIOC_QUERYCAP` ioctl.
audio.index = 0; audio.index = 0;
if (-1 == ioctl(fd, VIDIOC_S_AUDIO, &audio)) { if (-1 == ioctl(fd, VIDIOC_S_AUDIO, &audio)) {
perror("VIDIOC_S_AUDIO"); perror("VIDIOC_S_AUDIO");
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
.. [1] .. [1]
......
...@@ -60,38 +60,38 @@ EBUSY error code until all applications closed the framebuffer device. ...@@ -60,38 +60,38 @@ EBUSY error code until all applications closed the framebuffer device.
int fb_fd; int fb_fd;
if (-1 == ioctl(fd, VIDIOC_G_FBUF, &fbuf)) { if (-1 == ioctl(fd, VIDIOC_G_FBUF, &fbuf)) {
perror("VIDIOC_G_FBUF"); perror("VIDIOC_G_FBUF");
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
for (i = 0; i < 30; i++) { for (i = 0; i < 30; i++) {
char dev_name[16]; char dev_name[16];
struct fb_fix_screeninfo si; struct fb_fix_screeninfo si;
snprintf(dev_name, sizeof(dev_name), "/dev/fb%u", i); snprintf(dev_name, sizeof(dev_name), "/dev/fb%u", i);
fb_fd = open(dev_name, O_RDWR); fb_fd = open(dev_name, O_RDWR);
if (-1 == fb_fd) { if (-1 == fb_fd) {
switch (errno) { switch (errno) {
case ENOENT: /* no such file */ case ENOENT: /* no such file */
case ENXIO: /* no driver */ case ENXIO: /* no driver */
continue; continue;
default: default:
perror("open"); perror("open");
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
} }
if (0 == ioctl(fb_fd, FBIOGET_FSCREENINFO, &si)) { if (0 == ioctl(fb_fd, FBIOGET_FSCREENINFO, &si)) {
if (si.smem_start == (unsigned long)fbuf.base) if (si.smem_start == (unsigned long)fbuf.base)
break; break;
} else { } else {
/* Apparently not a framebuffer device. */ /* Apparently not a framebuffer device. */
} }
close(fb_fd); close(fb_fd);
fb_fd = -1; fb_fd = -1;
} }
/* fb_fd is the file descriptor of the framebuffer device /* fb_fd is the file descriptor of the framebuffer device
......
...@@ -144,21 +144,21 @@ RDS datastructures ...@@ -144,21 +144,21 @@ RDS datastructures
- Bits 3-5 - Bits 3-5
- Deprecated. Currently identical to bits 0-2. Do not use these - Deprecated. Currently identical to bits 0-2. Do not use these
bits. bits.
- .. row 3 - .. row 3
- Bit 6 - Bit 6
- Corrected bit. Indicates that an error was corrected for this data - Corrected bit. Indicates that an error was corrected for this data
block. block.
- .. row 4 - .. row 4
- Bit 7 - Bit 7
- Error bit. Indicates that an uncorrectable error occurred during - Error bit. Indicates that an uncorrectable error occurred during
reception of this block. reception of this block.
...@@ -174,7 +174,7 @@ RDS datastructures ...@@ -174,7 +174,7 @@ RDS datastructures
- V4L2_RDS_BLOCK_MSK - V4L2_RDS_BLOCK_MSK
- -
- 7 - 7
- Mask for bits 0-2 to get the block ID. - Mask for bits 0-2 to get the block ID.
...@@ -183,7 +183,7 @@ RDS datastructures ...@@ -183,7 +183,7 @@ RDS datastructures
- V4L2_RDS_BLOCK_A - V4L2_RDS_BLOCK_A
- -
- 0 - 0
- Block A. - Block A.
...@@ -192,7 +192,7 @@ RDS datastructures ...@@ -192,7 +192,7 @@ RDS datastructures
- V4L2_RDS_BLOCK_B - V4L2_RDS_BLOCK_B
- -
- 1 - 1
- Block B. - Block B.
...@@ -201,7 +201,7 @@ RDS datastructures ...@@ -201,7 +201,7 @@ RDS datastructures
- V4L2_RDS_BLOCK_C - V4L2_RDS_BLOCK_C
- -
- 2 - 2
- Block C. - Block C.
...@@ -210,7 +210,7 @@ RDS datastructures ...@@ -210,7 +210,7 @@ RDS datastructures
- V4L2_RDS_BLOCK_D - V4L2_RDS_BLOCK_D
- -
- 3 - 3
- Block D. - Block D.
...@@ -219,7 +219,7 @@ RDS datastructures ...@@ -219,7 +219,7 @@ RDS datastructures
- V4L2_RDS_BLOCK_C_ALT - V4L2_RDS_BLOCK_C_ALT
- -
- 4 - 4
- Block C'. - Block C'.
......
...@@ -93,9 +93,9 @@ data transfer, set by the driver in order to inform application. ...@@ -93,9 +93,9 @@ data transfer, set by the driver in order to inform application.
- ``pixelformat`` - ``pixelformat``
- The data format or type of compression, set by the application. - The data format or type of compression, set by the application.
This is a little endian This is a little endian
:ref:`four character code <v4l2-fourcc>`. V4L2 defines SDR :ref:`four character code <v4l2-fourcc>`. V4L2 defines SDR
formats in :ref:`sdr-formats`. formats in :ref:`sdr-formats`.
- .. row 2 - .. row 2
...@@ -104,7 +104,7 @@ data transfer, set by the driver in order to inform application. ...@@ -104,7 +104,7 @@ data transfer, set by the driver in order to inform application.
- ``buffersize`` - ``buffersize``
- Maximum size in bytes required for data. Value is set by the - Maximum size in bytes required for data. Value is set by the
driver. driver.
- .. row 3 - .. row 3
...@@ -113,7 +113,7 @@ data transfer, set by the driver in order to inform application. ...@@ -113,7 +113,7 @@ data transfer, set by the driver in order to inform application.
- ``reserved[24]`` - ``reserved[24]``
- This array is reserved for future extensions. Drivers and - This array is reserved for future extensions. Drivers and
applications must set it to zero. applications must set it to zero.
An SDR device may support :ref:`read/write <rw>` and/or streaming An SDR device may support :ref:`read/write <rw>` and/or streaming
......
...@@ -211,7 +211,7 @@ list entity names and pad numbers). ...@@ -211,7 +211,7 @@ list entity names and pad numbers).
- .. row 1 - .. row 1
- -
- Sensor/0 format - Sensor/0 format
- Frontend/0 format - Frontend/0 format
......
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册