7.58. ioctl VIDIOC_SUBDEV_ENUM_MBUS_CODE¶
7.58.1. 名稱¶
VIDIOC_SUBDEV_ENUM_MBUS_CODE - 列舉媒體匯流排格式
7.58.2. 概要¶
-
VIDIOC_SUBDEV_ENUM_MBUS_CODE¶
int ioctl(int fd, VIDIOC_SUBDEV_ENUM_MBUS_CODE, struct v4l2_subdev_mbus_code_enum * argp)
7.58.3. 引數¶
fdopen()返回的檔案描述符。argp指向 struct
v4l2_subdev_mbus_code_enum的指標。
7.58.4. 描述¶
此呼叫由應用程式用於訪問所選 pad 的媒體匯流排格式的列舉。
列舉由驅動程式定義,並使用 struct v4l2_subdev_mbus_code_enum 的 index 欄位進行索引。每個列舉都以 index 0 開始,並且最低的無效索引標記列舉的結束。
因此,要列舉給定子裝置 pad 上可用的媒體匯流排格式,請將 pad 和 which 欄位初始化為所需值,並將 index 設定為 0。然後使用指向此結構的指標呼叫 ioctl VIDIOC_SUBDEV_ENUM_MBUS_CODE ioctl。
成功呼叫將返回,並且 code 欄位填充有 mbus 程式碼值。重複增加 index 直到收到 EINVAL。EINVAL 表示 pad 無效,或者此 pad 上沒有更多可用的程式碼。
對於同一 pad 上的不同索引,驅動程式不得返回相同的 code 值。
可用的媒體匯流排格式可能取決於子裝置的其他 pad 上的當前“try”格式,以及當前活動的連結。有關 try 格式的更多資訊,請參見 ioctl VIDIOC_SUBDEV_G_FMT, VIDIOC_SUBDEV_S_FMT。
-
type v4l2_subdev_mbus_code_enum¶
__u32 |
|
媒體控制器 API 報告的 Pad 編號。由應用程式填充。 |
__u32 |
|
屬於給定 pad 的列舉中的 mbus 程式碼的索引。由應用程式填充。 |
__u32 |
|
媒體匯流排格式程式碼,如 媒體匯流排格式 中定義。由驅動程式填充。 |
__u32 |
|
要列舉的媒體匯流排格式程式碼,來自 enum v4l2_subdev_format_whence。 |
__u32 |
|
|
__u32 |
|
流識別符號。 |
__u32 |
|
保留供將來擴充套件使用。應用程式和驅動程式必須將陣列設定為零。 |
V4L2_SUBDEV_MBUS_CODE_CSC_COLORSPACE |
0x00000001 |
驅動程式允許應用程式嘗試更改預設顏色空間編碼。呼叫帶有 V4L2_MBUS_FRAMEFMT_SET_CSC 設定的 VIDIOC_SUBDEV_S_FMT ioctl 時,應用程式可以請求配置子裝置的顏色空間。有關如何執行此操作,請參見 媒體匯流排格式。 |
V4L2_SUBDEV_MBUS_CODE_CSC_XFER_FUNC |
0x00000002 |
驅動程式允許應用程式嘗試更改預設轉換函式。呼叫帶有 V4L2_MBUS_FRAMEFMT_SET_CSC 設定的 VIDIOC_SUBDEV_S_FMT ioctl 時,應用程式可以請求配置子裝置的轉換函式。有關如何執行此操作,請參見 媒體匯流排格式。 |
V4L2_SUBDEV_MBUS_CODE_CSC_YCBCR_ENC |
0x00000004 |
驅動程式允許應用程式嘗試更改預設 Y’CbCr 編碼。呼叫帶有 V4L2_MBUS_FRAMEFMT_SET_CSC 設定的 VIDIOC_SUBDEV_S_FMT ioctl 時,應用程式可以請求配置子裝置的 Y’CbCr 編碼。有關如何執行此操作,請參見 媒體匯流排格式。 |
V4L2_SUBDEV_MBUS_CODE_CSC_HSV_ENC |
0x00000004 |
驅動程式允許應用程式嘗試更改預設 HSV 編碼。呼叫帶有 V4L2_MBUS_FRAMEFMT_SET_CSC 設定的 VIDIOC_SUBDEV_S_FMT ioctl 時,應用程式可以請求配置子裝置的 HSV 編碼。有關如何執行此操作,請參見 媒體匯流排格式。 |
V4L2_SUBDEV_MBUS_CODE_CSC_QUANTIZATION |
0x00000008 |
驅動程式允許應用程式嘗試更改預設量化。呼叫帶有 V4L2_MBUS_FRAMEFMT_SET_CSC 設定的 VIDIOC_SUBDEV_S_FMT ioctl 時,應用程式可以請求配置子裝置的量化。有關如何執行此操作,請參見 媒體匯流排格式。 |
7.58.5. 返回值¶
成功時返回 0,錯誤時返回 -1,並適當設定 errno 變數。通用錯誤程式碼在 通用錯誤程式碼 章節中描述。
- EINVAL
struct
v4l2_subdev_mbus_code_enumpad引用了一個不存在的 pad,which欄位具有不支援的值,或者index欄位超出範圍。