7.40. ioctl VIDIOC_G_SLICED_VBI_CAP

7.40.1. 名稱

VIDIOC_G_SLICED_VBI_CAP - 查詢切片 VBI 功能

7.40.2. 概要

VIDIOC_G_SLICED_VBI_CAP

int ioctl(int fd, VIDIOC_G_SLICED_VBI_CAP, struct v4l2_sliced_vbi_cap *argp)

7.40.3. 引數

fd

open() 返回的檔案描述符。

argp

指向 struct v4l2_sliced_vbi_cap 的指標。

7.40.4. 描述

為了找出切片 VBI 捕獲或輸出裝置支援哪些資料服務,應用程式初始化 struct v4l2_sliced_vbi_captype 欄位,清除 reserved 陣列並呼叫 VIDIOC_G_SLICED_VBI_CAP ioctl。 如果切片 VBI API 不受支援或 type 無效,驅動程式將填充剩餘欄位或返回 EINVAL 錯誤程式碼。

注意

type 欄位已新增,並且 ioctl 在 Linux 2.6.19 中從只讀更改為寫入-讀取。

type v4l2_sliced_vbi_cap
struct v4l2_sliced_vbi_cap

__u16

service_set

驅動程式支援的所有資料服務的集合。

等於 service_lines 陣列所有元素的並集。

__u16

service_lines[2][24]

此陣列的每個元素都包含硬體可以查詢或插入到特定掃描行中的一組資料服務。 資料服務在 切片 VBI 服務 中定義。 陣列索引對映到 ITU-R 行號[1],如下所示

元素

525 行系統

625 行系統

service_lines[0][1]

1

1

service_lines[0][23]

23

23

service_lines[1][1]

264

314

service_lines[1][23]

286

336

硬體可以捕獲或輸出的每幀 VBI 行數,或者它可以在給定行上識別的服務數可能受到限制。 例如,在 PAL 行 16 上,硬體可能能夠查詢 VPS 或 Teletext 訊號,但不能同時查詢兩者。 應用程式可以使用 VIDIOC_S_FMT ioctl 瞭解這些限制,如 切片 VBI 資料介面 中所述。

驅動程式必須將 service_lines [0][0] 和 service_lines[1][0] 設定為零。

__u32

type

資料流的型別,請參見 v4l2_buf_type。 應該是 V4L2_BUF_TYPE_SLICED_VBI_CAPTUREV4L2_BUF_TYPE_SLICED_VBI_OUTPUT

__u32

reserved[3]

此陣列保留供將來擴充套件使用。

應用程式和驅動程式必須將其設定為零。

切片 VBI 服務

符號

參考

通常的行

有效負載

V4L2_SLICED_TELETEXT_B (Teletext 系統 B)

0x0001

ETS 300 706,

ITU BT.653

PAL/SECAM 行 7-22、320-335(第二個場 7-22)

45 位元組 Teletext 資料包的最後 42 個位元組,即沒有時鐘執行和幀程式碼,先傳輸 lsb。

V4L2_SLICED_VPS

0x0400

ETS 300 231

PAL 行 16

根據 ETS 300 231 的圖 9,位元組編號 3 到 15,先傳輸 lsb。

V4L2_SLICED_CAPTION_525

0x1000

CEA 608-E

NTSC 行 21、284(第二個場 21)

按傳輸順序排列的兩個位元組,包括奇偶校驗位,先傳輸 lsb。

V4L2_SLICED_WSS_625

0x4000

EN 300 294,

ITU BT.1119

PAL/SECAM 行 23

請參見下面的 V4L2_SLICED_VBI_CAP WSS_625 有效負載

V4L2_SLICED_VBI_525

0x1000

適用於 525 行系統的服務集。

V4L2_SLICED_VBI_625

0x4401

適用於 625 行系統的服務集。

7.40.4.1. V4L2_SLICED_VBI_CAP WSS_625 有效負載

V4L2_SLICED_WSS_625 的有效負載是

位元組

0

1

msb

lsb

msb

lsb

7

6

5

4

3

2

1

0

x

x

13

12

11

10

9

8

7.40.5. 返回值

成功時返回 0,出錯時返回 -1,並適當設定 errno 變數。 通用錯誤程式碼在 通用錯誤程式碼 章節中描述。

EINVAL

type 欄位中的值錯誤。