7.19. ioctl VIDIOC_ENUMOUTPUT

7.19.1. 名稱

VIDIOC_ENUMOUTPUT - 列舉影片輸出

7.19.2. 概要

VIDIOC_ENUMOUTPUT

int ioctl(int fd, VIDIOC_ENUMOUTPUT, struct v4l2_output *argp)

7.19.3. 引數

fd

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

argp

指向結構體 v4l2_output 的指標。

7.19.4. 描述

要查詢影片輸出的屬性,應用程式初始化結構體 v4l2_outputindex 欄位,並使用指向此結構的指標呼叫 ioctl VIDIOC_ENUMOUTPUT。 如果索引超出範圍,驅動程式將填充結構的其餘部分或返回 EINVAL 錯誤程式碼。 要列舉所有輸出,應用程式應從索引零開始,每次遞增一,直到驅動程式返回 EINVAL

型別 v4l2_output
struct v4l2_output

__u32

index

標識輸出,由應用程式設定。

__u8

name[32]

影片輸出的名稱,一個以 NUL 結尾的 ASCII 字串,例如:“Vout”。 此資訊供使用者使用,最好是裝置本身上的聯結器標籤。

__u32

type

輸出型別,請參閱 輸出型別

__u32

audioset

驅動程式最多可以列舉 32 個影片和音訊輸出。 如果這是當前選擇的影片輸出,則此欄位顯示哪些音訊輸出可選擇為當前輸出。 這是一個位掩碼。 LSB 對應於音訊輸出 0,MSB 對應於輸出 31。 可以設定任意數量的位,也可以不設定。

當驅動程式不列舉音訊輸出時,不得設定任何位。 應用程式不得將其解釋為缺乏音訊支援。 驅動程式可能會自動選擇音訊輸出而不列舉它們。

有關音訊輸出以及如何選擇當前輸出的詳細資訊,請參閱 音訊輸入和輸出

__u32

modulator

輸出裝置可以有零個或多個 RF 調製器。 當 typeV4L2_OUTPUT_TYPE_MODULATOR 時,這是一個 RF 聯結器,此欄位標識調製器。 它對應於結構體 v4l2_modulator 欄位 index。 有關調製器的詳細資訊,請參閱 調諧器和調製器

v4l2_std_id

std

每個影片輸出都支援一種或多種不同的影片標準。 此欄位是所有支援標準的集合。 有關影片標準以及如何切換的詳細資訊,請參閱 影片標準

__u32

capabilities

此欄位提供輸出的功能。 有關標誌,請參閱 輸出功能

__u32

reserved[3]

為將來的擴充套件保留。 驅動程式必須將陣列設定為零。

輸出型別

V4L2_OUTPUT_TYPE_MODULATOR

1

此輸出是一個模擬電視調製器。

V4L2_OUTPUT_TYPE_ANALOG

2

任何非調製器影片輸出,例如複合影片、S-Video、HDMI。 命名為 _TYPE_ANALOG 是歷史原因,今天我們會將其稱為 _TYPE_VIDEO

V4L2_OUTPUT_TYPE_ANALOGVGAOVERLAY

3

影片輸出將被複制到 影片疊加

輸出功能

V4L2_OUT_CAP_DV_TIMINGS

0x00000002

此輸出支援使用 VIDIOC_S_DV_TIMINGS 設定影片時序。

V4L2_OUT_CAP_STD

0x00000004

此輸出支援使用 VIDIOC_S_STD 設定電視標準。

V4L2_OUT_CAP_NATIVE_SIZE

0x00000008

此輸出支援使用 V4L2_SEL_TGT_NATIVE_SIZE 選擇目標設定原始大小,請參閱 通用選擇定義

7.19.5. 返回值

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

EINVAL

結構體 v4l2_output index 超出範圍。