Table of Contents
The DVB demux device controls the filters of the DVB hardware/software. It can be accessed through /dev/adapter0/demux0. Data types and and ioctl definitions can be accessed by including linux/dvb/dmx.h in your application.
typedef enum { DMX_OUT_DECODER, /⋆ Streaming directly to decoder. ⋆/ DMX_OUT_TAP, /⋆ Output going to a memory buffer ⋆/ /⋆ (to be retrieved via the read command).⋆/ DMX_OUT_TS_TAP, /⋆ Output multiplexed into a new TS ⋆/ /⋆ (to be retrieved by reading from the ⋆/ /⋆ logical DVR device). ⋆/ DMX_OUT_TSDEMUX_TAP /⋆ Like TS_TAP but retrieved from the DMX device ⋆/ } dmx_output_t;
DMX_OUT_TAP delivers the stream output to the demux device on which the ioctl is called.
DMX_OUT_TS_TAP routes output to the logical DVR device /dev/dvb/adapter0/dvr0, which delivers a TS multiplexed from all filters for which DMX_OUT_TS_TAP was specified.
typedef enum { DMX_IN_FRONTEND, /⋆ Input from a front-end device. ⋆/ DMX_IN_DVR /⋆ Input from the logical DVR device. ⋆/ } dmx_input_t;
typedef enum { DMX_PES_AUDIO0, DMX_PES_VIDEO0, DMX_PES_TELETEXT0, DMX_PES_SUBTITLE0, DMX_PES_PCR0, DMX_PES_AUDIO1, DMX_PES_VIDEO1, DMX_PES_TELETEXT1, DMX_PES_SUBTITLE1, DMX_PES_PCR1, DMX_PES_AUDIO2, DMX_PES_VIDEO2, DMX_PES_TELETEXT2, DMX_PES_SUBTITLE2, DMX_PES_PCR2, DMX_PES_AUDIO3, DMX_PES_VIDEO3, DMX_PES_TELETEXT3, DMX_PES_SUBTITLE3, DMX_PES_PCR3, DMX_PES_OTHER } dmx_pes_type_t;
typedef struct dmx_filter { __u8 filter[DMX_FILTER_SIZE]; __u8 mask[DMX_FILTER_SIZE]; __u8 mode[DMX_FILTER_SIZE]; } dmx_filter_t;
struct dmx_sct_filter_params { __u16 pid; dmx_filter_t filter; __u32 timeout; __u32 flags; #define DMX_CHECK_CRC 1 #define DMX_ONESHOT 2 #define DMX_IMMEDIATE_START 4 #define DMX_KERNEL_CLIENT 0x8000 };
struct dmx_pes_filter_params { __u16 pid; dmx_input_t input; dmx_output_t output; dmx_pes_type_t pes_type; __u32 flags; };
struct dmx_event { dmx_event_t event; time_t timeStamp; union { dmx_scrambling_status_t scrambling; } u; };
struct dmx_stc { unsigned int num; /⋆ input : which STC? 0..N ⋆/ unsigned int base; /⋆ output: divisor for stc to get 90 kHz clock ⋆/ __u64 stc; /⋆ output: stc in 'base'⋆90 kHz units ⋆/ };