blob: 3246321844aa560710be5432eeb121bdacc9e05e [file] [log] [blame]
Elliott Hughes180edef2023-11-02 00:08:05 +00001/*
2 * This file is auto-generated. Modifications will be lost.
3 *
4 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5 * for more information.
6 */
Ben Cheng655a7c02013-10-16 16:09:24 -07007#ifndef _UAPI_DVBDMX_H_
8#define _UAPI_DVBDMX_H_
9#include <linux/types.h>
10#include <time.h>
Ben Cheng655a7c02013-10-16 16:09:24 -070011#define DMX_FILTER_SIZE 16
Christopher Ferris05d08e92016-02-04 13:16:38 -080012enum dmx_output {
Tao Baod7db5942015-01-28 10:07:51 -080013 DMX_OUT_DECODER,
14 DMX_OUT_TAP,
Tao Baod7db5942015-01-28 10:07:51 -080015 DMX_OUT_TS_TAP,
16 DMX_OUT_TSDEMUX_TAP
Christopher Ferris05d08e92016-02-04 13:16:38 -080017};
Christopher Ferris1308ad32017-11-14 17:32:13 -080018enum dmx_input {
Tao Baod7db5942015-01-28 10:07:51 -080019 DMX_IN_FRONTEND,
20 DMX_IN_DVR
Christopher Ferris1308ad32017-11-14 17:32:13 -080021};
22enum dmx_ts_pes {
Tao Baod7db5942015-01-28 10:07:51 -080023 DMX_PES_AUDIO0,
24 DMX_PES_VIDEO0,
25 DMX_PES_TELETEXT0,
Christopher Ferris05d08e92016-02-04 13:16:38 -080026 DMX_PES_SUBTITLE0,
Tao Baod7db5942015-01-28 10:07:51 -080027 DMX_PES_PCR0,
28 DMX_PES_AUDIO1,
29 DMX_PES_VIDEO1,
Christopher Ferris05d08e92016-02-04 13:16:38 -080030 DMX_PES_TELETEXT1,
Tao Baod7db5942015-01-28 10:07:51 -080031 DMX_PES_SUBTITLE1,
32 DMX_PES_PCR1,
33 DMX_PES_AUDIO2,
Christopher Ferris05d08e92016-02-04 13:16:38 -080034 DMX_PES_VIDEO2,
Tao Baod7db5942015-01-28 10:07:51 -080035 DMX_PES_TELETEXT2,
36 DMX_PES_SUBTITLE2,
37 DMX_PES_PCR2,
Christopher Ferris05d08e92016-02-04 13:16:38 -080038 DMX_PES_AUDIO3,
Tao Baod7db5942015-01-28 10:07:51 -080039 DMX_PES_VIDEO3,
40 DMX_PES_TELETEXT3,
41 DMX_PES_SUBTITLE3,
Christopher Ferris05d08e92016-02-04 13:16:38 -080042 DMX_PES_PCR3,
Tao Baod7db5942015-01-28 10:07:51 -080043 DMX_PES_OTHER
Christopher Ferris1308ad32017-11-14 17:32:13 -080044};
Ben Cheng655a7c02013-10-16 16:09:24 -070045#define DMX_PES_AUDIO DMX_PES_AUDIO0
Christopher Ferris05d08e92016-02-04 13:16:38 -080046#define DMX_PES_VIDEO DMX_PES_VIDEO0
Tao Baod7db5942015-01-28 10:07:51 -080047#define DMX_PES_TELETEXT DMX_PES_TELETEXT0
Ben Cheng655a7c02013-10-16 16:09:24 -070048#define DMX_PES_SUBTITLE DMX_PES_SUBTITLE0
49#define DMX_PES_PCR DMX_PES_PCR0
Christopher Ferris1308ad32017-11-14 17:32:13 -080050struct dmx_filter {
Tao Baod7db5942015-01-28 10:07:51 -080051 __u8 filter[DMX_FILTER_SIZE];
52 __u8 mask[DMX_FILTER_SIZE];
53 __u8 mode[DMX_FILTER_SIZE];
Christopher Ferris1308ad32017-11-14 17:32:13 -080054};
Tao Baod7db5942015-01-28 10:07:51 -080055struct dmx_sct_filter_params {
56 __u16 pid;
Christopher Ferris1308ad32017-11-14 17:32:13 -080057 struct dmx_filter filter;
Christopher Ferris05d08e92016-02-04 13:16:38 -080058 __u32 timeout;
Tao Baod7db5942015-01-28 10:07:51 -080059 __u32 flags;
Ben Cheng655a7c02013-10-16 16:09:24 -070060#define DMX_CHECK_CRC 1
61#define DMX_ONESHOT 2
Christopher Ferris05d08e92016-02-04 13:16:38 -080062#define DMX_IMMEDIATE_START 4
Ben Cheng655a7c02013-10-16 16:09:24 -070063};
Tao Baod7db5942015-01-28 10:07:51 -080064struct dmx_pes_filter_params {
Christopher Ferris05d08e92016-02-04 13:16:38 -080065 __u16 pid;
Christopher Ferris1308ad32017-11-14 17:32:13 -080066 enum dmx_input input;
67 enum dmx_output output;
68 enum dmx_ts_pes pes_type;
Christopher Ferris05d08e92016-02-04 13:16:38 -080069 __u32 flags;
Ben Cheng655a7c02013-10-16 16:09:24 -070070};
Christopher Ferris05d08e92016-02-04 13:16:38 -080071struct dmx_stc {
Tao Baod7db5942015-01-28 10:07:51 -080072 unsigned int num;
73 unsigned int base;
74 __u64 stc;
Christopher Ferris05d08e92016-02-04 13:16:38 -080075};
Christopher Ferris76a1d452018-06-27 14:12:29 -070076enum dmx_buffer_flags {
77 DMX_BUFFER_FLAG_HAD_CRC32_DISCARD = 1 << 0,
78 DMX_BUFFER_FLAG_TEI = 1 << 1,
79 DMX_BUFFER_PKT_COUNTER_MISMATCH = 1 << 2,
80 DMX_BUFFER_FLAG_DISCONTINUITY_DETECTED = 1 << 3,
81 DMX_BUFFER_FLAG_DISCONTINUITY_INDICATOR = 1 << 4,
82};
83struct dmx_buffer {
84 __u32 index;
85 __u32 bytesused;
86 __u32 offset;
87 __u32 length;
88 __u32 flags;
89 __u32 count;
90};
91struct dmx_requestbuffers {
92 __u32 count;
93 __u32 size;
94};
95struct dmx_exportbuffer {
96 __u32 index;
97 __u32 flags;
98 __s32 fd;
99};
Ben Cheng655a7c02013-10-16 16:09:24 -0700100#define DMX_START _IO('o', 41)
101#define DMX_STOP _IO('o', 42)
Ben Cheng655a7c02013-10-16 16:09:24 -0700102#define DMX_SET_FILTER _IOW('o', 43, struct dmx_sct_filter_params)
Christopher Ferris05d08e92016-02-04 13:16:38 -0800103#define DMX_SET_PES_FILTER _IOW('o', 44, struct dmx_pes_filter_params)
Ben Cheng655a7c02013-10-16 16:09:24 -0700104#define DMX_SET_BUFFER_SIZE _IO('o', 45)
105#define DMX_GET_PES_PIDS _IOR('o', 47, __u16[5])
Ben Cheng655a7c02013-10-16 16:09:24 -0700106#define DMX_GET_STC _IOWR('o', 50, struct dmx_stc)
107#define DMX_ADD_PID _IOW('o', 51, __u16)
Ben Cheng655a7c02013-10-16 16:09:24 -0700108#define DMX_REMOVE_PID _IOW('o', 52, __u16)
Christopher Ferris1308ad32017-11-14 17:32:13 -0800109typedef enum dmx_output dmx_output_t;
110typedef enum dmx_input dmx_input_t;
111typedef enum dmx_ts_pes dmx_pes_type_t;
112typedef struct dmx_filter dmx_filter_t;
Christopher Ferris76a1d452018-06-27 14:12:29 -0700113#define DMX_REQBUFS _IOWR('o', 60, struct dmx_requestbuffers)
114#define DMX_QUERYBUF _IOWR('o', 61, struct dmx_buffer)
115#define DMX_EXPBUF _IOWR('o', 62, struct dmx_exportbuffer)
116#define DMX_QBUF _IOWR('o', 63, struct dmx_buffer)
117#define DMX_DQBUF _IOWR('o', 64, struct dmx_buffer)
Christopher Ferris05d08e92016-02-04 13:16:38 -0800118#endif