7.13. ioctl VIDIOC_ENUM_DV_TIMINGS, VIDIOC_SUBDEV_ENUM_DV_TIMINGS¶
7.13.1. 名稱¶
VIDIOC_ENUM_DV_TIMINGS - VIDIOC_SUBDEV_ENUM_DV_TIMINGS - 列舉支援的數字影片時序
7.13.2. 概要¶
-
VIDIOC_ENUM_DV_TIMINGS¶
int ioctl(int fd, VIDIOC_ENUM_DV_TIMINGS, struct v4l2_enum_dv_timings *argp)
-
VIDIOC_SUBDEV_ENUM_DV_TIMINGS¶
int ioctl(int fd, VIDIOC_SUBDEV_ENUM_DV_TIMINGS, struct v4l2_enum_dv_timings *argp)
7.13.3. 引數¶
fdopen()返回的檔案描述符。argp指向結構體
v4l2_enum_dv_timings的指標。
7.13.4. 描述¶
雖然一些DV接收器或發射器支援範圍廣泛的時序,但其他一些只支援有限數量的時序。透過此ioctl,應用程式可以列舉已知支援的時序列表。呼叫ioctl VIDIOC_DV_TIMINGS_CAP, VIDIOC_SUBDEV_DV_TIMINGS_CAP來檢查它是否也支援其他標準,甚至是不在此列表中的自定義時序。
要查詢可用的時序,應用程式初始化index欄位,將pad欄位設定為0,將結構體v4l2_enum_dv_timings的保留陣列置零,然後在影片節點上呼叫VIDIOC_ENUM_DV_TIMINGS ioctl,並將指向此結構的指標作為引數。當索引超出範圍時,驅動程式將填充結構的其餘部分,或返回EINVAL錯誤程式碼。要列舉所有支援的DV時序,應用程式應從索引零開始,每次遞增1,直到驅動程式返回EINVAL。
注意
在切換影片輸入或輸出後,驅動程式可能會列舉一組不同的DV時序。
如果驅動程式實現了子裝置的DV時序,則可以透過直接在子裝置節點上呼叫VIDIOC_SUBDEV_ENUM_DV_TIMINGSioctl來查詢。DV時序特定於輸入(對於DV接收器)或輸出(對於DV發射器),應用程式必須在結構體v4l2_enum_dv_timings的pad欄位中指定所需的pad編號。嘗試列舉不支援時序的pad將返回EINVAL錯誤程式碼。
-
type v4l2_enum_dv_timings¶
__u32 |
|
DV時序的編號,由應用程式設定。 |
__u32 |
|
媒體控制器API報告的Pad編號。僅在對子裝置節點進行操作時使用此欄位。在對影片節點進行操作時,應用程式必須將此欄位設定為零。 |
__u32 |
|
保留用於未來擴充套件。驅動程式和應用程式必須將陣列設定為零。 |
struct |
|
時序。 |
7.13.5. 返回值¶
成功時返回0,出錯時返回-1,並適當設定errno變數。通用錯誤程式碼在通用錯誤程式碼章節中描述。
- EINVAL
結構體
v4l2_enum_dv_timings的index超出範圍或pad編號無效。- ENODATA
此輸入或輸出不支援數字影片預設。