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

匹配模式:如果位為零,則如果相等則匹配(正匹配);如果位為 1,則如果該位被否定則匹配。

注意

此結構中的所有陣列的大小均為 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

輸出:用於獲得 90 kHz 時鐘的 STC 除數。

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”,允許結構內容的替代佈局。因此,此欄位不應用於任何其他擴充套件。