aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux/dev_dvb_demux.txt
blob: c4126858fb95052f01ce937ba82edfafb156dc3a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# Copyright 2026 syzkaller project authors. All rights reserved.
# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.

include <linux/ioctl.h>
include <linux/fcntl.h>
include <uapi/linux/dvb/dmx.h>

resource fd_dvb_demux[fd]

syz_open_dev$dvb_demux(dev ptr[in, string["/dev/dvb/adapter#/demux#"]], id intptr, flags flags[open_flags]) fd_dvb_demux
ioctl$DVB_DEMUX_DMX_START(fd fd_dvb_demux, cmd const[DMX_START])
ioctl$DVB_DEMUX_DMX_STOP(fd fd_dvb_demux, cmd const[DMX_STOP])
ioctl$DVB_DEMUX_DMX_SET_FILTER(fd fd_dvb_demux, cmd const[DMX_SET_FILTER], arg ptr[in, dmx_sct_filter_params])
ioctl$DVB_DEMUX_DMX_SET_PES_FILTER(fd fd_dvb_demux, cmd const[DMX_SET_PES_FILTER], arg ptr[in, dmx_pes_filter_params])
ioctl$DVB_DEMUX_DMX_SET_BUFFER_SIZE(fd fd_dvb_demux, cmd const[DMX_SET_BUFFER_SIZE], arg intptr)
ioctl$DVB_DEMUX_DMX_GET_PES_PIDS(fd fd_dvb_demux, cmd const[DMX_GET_PES_PIDS], arg ptr[out, array[int16, 5]])
ioctl$DVB_DEMUX_DMX_GET_STC(fd fd_dvb_demux, cmd const[DMX_GET_STC], arg ptr[inout, dmx_stc])
ioctl$DVB_DEMUX_DMX_ADD_PID(fd fd_dvb_demux, cmd const[DMX_ADD_PID], arg ptr[in, int16])
ioctl$DVB_DEMUX_DMX_REMOVE_PID(fd fd_dvb_demux, cmd const[DMX_REMOVE_PID], arg ptr[in, int16])
ioctl$DVB_DEMUX_DMX_REQBUFS(fd fd_dvb_demux, cmd const[DMX_REQBUFS], arg ptr[inout, dmx_requestbuffers])
ioctl$DVB_DEMUX_DMX_QUERYBUF(fd fd_dvb_demux, cmd const[DMX_QUERYBUF], arg ptr[inout, dmx_buffer])
ioctl$DVB_DEMUX_DMX_EXPBUF(fd fd_dvb_demux, cmd const[DMX_EXPBUF], arg ptr[inout, dmx_exportbuffer])
ioctl$DVB_DEMUX_DMX_QBUF(fd fd_dvb_demux, cmd const[DMX_QBUF], arg ptr[inout, dmx_buffer])
ioctl$DVB_DEMUX_DMX_DQBUF(fd fd_dvb_demux, cmd const[DMX_DQBUF], arg ptr[inout, dmx_buffer])

dmx_sct_filter_flags = DMX_CHECK_CRC, DMX_ONESHOT, DMX_IMMEDIATE_START
dmx_input = DMX_IN_FRONTEND, DMX_IN_DVR
dmx_output = DMX_OUT_DECODER, DMX_OUT_TAP, DMX_OUT_TS_TAP, DMX_OUT_TSDEMUX_TAP
dmx_ts_pes = 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_filter_flags = DMX_IMMEDIATE_START
dmx_buffer_flags = DMX_BUFFER_FLAG_HAD_CRC32_DISCARD, DMX_BUFFER_FLAG_TEI, DMX_BUFFER_PKT_COUNTER_MISMATCH, DMX_BUFFER_FLAG_DISCONTINUITY_DETECTED, DMX_BUFFER_FLAG_DISCONTINUITY_INDICATOR
dmx_exportbuffer_flags = O_CLOEXEC

dmx_sct_filter_params {
	pid	int16
	filter	dmx_filter
	timeout	int32
	flags	flags[dmx_sct_filter_flags, int32]
}

dmx_filter {
	filter	array[int8, DMX_FILTER_SIZE]
	mask	array[int8, DMX_FILTER_SIZE]
	mode	array[int8, DMX_FILTER_SIZE]
}

dmx_pes_filter_params {
	pid		int16
	input		flags[dmx_input, int32]
	output		flags[dmx_output, int32]
	pes_type	flags[dmx_ts_pes, int32]
	flags		flags[dmx_pes_filter_flags, int32]
}

dmx_stc {
	num	int32	(in)
	base	int32	(out)
	stc	int64	(out)
}

dmx_requestbuffers {
	count	int32
	size	int32
}

dmx_buffer {
	index		int32
	bytesused	int32
	offset		int32
	length		int32
	flags		flags[dmx_buffer_flags, int32]
	count		int32
}

dmx_exportbuffer {
	index	int32
	flags	flags[dmx_exportbuffer_flags, int32]
	fd	fd
}