3.1. 解复用器数据类型¶
-
enum dmx_output¶
解复用器的输出。
常量
DMX_OUT_DECODER
直接流向解码器。
DMX_OUT_TAP
输出到内存缓冲区(通过读取命令检索)。将流输出传递到调用 ioctl 的解复用器设备上。
DMX_OUT_TS_TAP
输出多路复用到新的 TS(通过从逻辑 DVR 设备读取来检索)。将输出路由到逻辑 DVR 设备
/dev/dvb/adapter?/dvr?
,该设备提供从指定了 **DMX_OUT_TS_TAP** 的所有过滤器多路复用的 TS。
DMX_OUT_TSDEMUX_TAP
与 **DMX_OUT_TS_TAP** 类似,但从 DMX 设备检索。
-
enum dmx_input¶
解复用器的输入。
常量
DMX_IN_FRONTEND
来自前端设备的输入。
DMX_IN_DVR
来自逻辑 DVR 设备的输入。
-
enum dmx_ts_pes¶
PES 过滤器的类型。
常量
DMX_PES_AUDIO0
第一个音频 PID。也称为 **DMX_PES_AUDIO**。
DMX_PES_VIDEO0
第一个视频 PID。也称为 **DMX_PES_VIDEO**。
DMX_PES_TELETEXT0
第一个图文电视 PID。也称为 **DMX_PES_TELETEXT**。
DMX_PES_SUBTITLE0
第一个字幕 PID。也称为 **DMX_PES_SUBTITLE**。
DMX_PES_PCR0
第一个节目时钟参考 PID。也称为 **DMX_PES_PCR**。
DMX_PES_AUDIO1
第二个音频 PID。
DMX_PES_VIDEO1
第二个视频 PID。
DMX_PES_TELETEXT1
第二个图文电视 PID。
DMX_PES_SUBTITLE1
第二个字幕 PID。
DMX_PES_PCR1
第二个节目时钟参考 PID。
DMX_PES_AUDIO2
第三个音频 PID。
DMX_PES_VIDEO2
第三个视频 PID。
DMX_PES_TELETEXT2
第三个图文电视 PID。
DMX_PES_SUBTITLE2
第三个字幕 PID。
DMX_PES_PCR2
第三个节目时钟参考 PID。
DMX_PES_AUDIO3
第四个音频 PID。
DMX_PES_VIDEO3
第四个视频 PID。
DMX_PES_TELETEXT3
第四个图文电视 PID。
DMX_PES_SUBTITLE3
第四个字幕 PID。
DMX_PES_PCR3
第四个节目时钟参考 PID。
DMX_PES_OTHER
任何其他 PID。
-
struct dmx_filter¶
指定一个节头过滤器。
定义:
struct dmx_filter {
__u8 filter[DMX_FILTER_SIZE];
__u8 mask[DMX_FILTER_SIZE];
__u8 mode[DMX_FILTER_SIZE];
};
成员
filter
在节头匹配的位数组。
mask
在过滤器位数组中有效的位。
mode
匹配模式:如果位为零,则如果相等(正匹配)则匹配;如果位为一,则如果该位被取反,则匹配。
注意
此结构中的所有数组的大小均为 DMX_FILTER_SIZE(16 字节)。
-
struct dmx_sct_filter_params¶
指定一个节过滤器。
定义:
struct dmx_sct_filter_params {
__u16 pid;
struct dmx_filter filter;
__u32 timeout;
__u32 flags;
#define DMX_CHECK_CRC 1;
#define DMX_ONESHOT 2;
#define DMX_IMMEDIATE_START 4;
};
成员
pid
要过滤的 PID。
filter
节头过滤器,由
struct dmx_filter
定义。timeout
过滤的最大时间,以毫秒为单位。
flags
节过滤器的额外标志。
描述
携带 MPEG-TS 节过滤器的配置。
**flags** 可以是
DMX_CHECK_CRC
- 仅传递 CRC 校验成功的节;
DMX_ONESHOT
- 在传递一个节后禁用节过滤器;
DMX_IMMEDIATE_START
- 立即启动过滤器,而无需 DMX_START。
-
struct dmx_pes_filter_params¶
指定分组基本流 (PES) 过滤器参数。
定义:
struct dmx_pes_filter_params {
__u16 pid;
enum dmx_input input;
enum dmx_output output;
enum dmx_ts_pes pes_type;
__u32 flags;
};
成员
pid
要过滤的 PID。
input
解复用器输入,由
enum dmx_input
指定。output
解复用器输出,由
enum dmx_output
指定。pes_type
pes 过滤器的类型,由
enum dmx_pes_type
指定。flags
解复用器 PES 标志。
-
struct dmx_stc¶
存储系统时间计数器 (STC) 信息。
定义:
struct dmx_stc {
unsigned int num;
unsigned int base;
__u64 stc;
};
成员
num
输入数据:STC 的编号,从 0 到 N。
base
输出:STC 的除数,以获得 90 kHz 时钟。
stc
输出:以 **base** * 90 kHz 单位表示的 stc。
-
enum dmx_buffer_flags¶
DMX 内存映射缓冲区标志
常量
DMX_BUFFER_FLAG_HAD_CRC32_DISCARD
指示内核由于错误的 CRC32 校验和而丢弃了一个或多个帧。
DMX_BUFFER_FLAG_TEI
指示内核在过滤的 pid 上检测到传输错误指示符 (TEI)。
DMX_BUFFER_PKT_COUNTER_MISMATCH
指示内核在过滤的 pid 上检测到数据包计数器不匹配。
DMX_BUFFER_FLAG_DISCONTINUITY_DETECTED
指示内核检测到一个或多个帧不连续。
DMX_BUFFER_FLAG_DISCONTINUITY_INDICATOR
接收到至少一个带有帧不连续指示符的数据包。
-
struct dmx_buffer¶
dmx 缓冲区信息
定义:
struct dmx_buffer {
__u32 index;
__u32 bytesused;
__u32 offset;
__u32 length;
__u32 flags;
__u32 count;
};
成员
index
缓冲区的 ID 编号
bytesused
缓冲区中数据(有效负载)占用的字节数;
offset
对于 memory == DMX_MEMORY_MMAP 的缓冲区;此平面的设备内存起始位置的偏移量,(或应作为偏移量传递给 mmap() 的“cookie”)
length
缓冲区的字节大小
flags
缓冲区标志的位数组,由
enum dmx_buffer_flags
定义。仅在DMX_DQBUF
时填充。count
已填充缓冲区的单调计数器。有助于识别数据流丢失。仅在
DMX_DQBUF
时填充。
描述
包含应用程序和驱动程序使用一种流式 I/O 方法交换的数据。
请注意,对于 DMX_QBUF
,仅应填充 **index**。在 DMX_DQBUF
调用时,所有字段将由内核填充。
-
struct dmx_requestbuffers¶
请求 dmx 缓冲区信息
定义:
struct dmx_requestbuffers {
__u32 count;
__u32 size;
};
成员
count
请求的缓冲区数量,
size
请求的缓冲区的大小(以字节为单位)
描述
包含用于请求 dmx 缓冲区的数据。所有保留字段必须设置为零。
-
struct dmx_exportbuffer¶
将 dmx 缓冲区导出为 DMABUF 文件描述符
定义:
struct dmx_exportbuffer {
__u32 index;
__u32 flags;
__s32 fd;
};
成员
index
缓冲区的 ID 编号
flags
新创建文件的标志,当前仅支持 O_CLOEXEC,有关更多详细信息,请参阅 open 系统调用的手册
fd
与 DMABUF 关联的文件描述符(由驱动程序设置)
描述
包含用于将 dmx 缓冲区导出为 DMABUF 文件描述符的数据。该缓冲区由 DMX_QUERYBUF 返回的“cookie”标识(与用于将缓冲区 mmap() 到用户空间的 cookie 相同)。所有保留字段必须设置为零。字段 reserved0 预计会成为一个结构“type”,允许结构的替代布局。因此,此字段不应用于任何其他扩展。