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