7.54. ioctl VIDIOC_S_HW_FREQ_SEEK¶
7.54.1. 名稱¶
VIDIOC_S_HW_FREQ_SEEK - 執行硬體頻率搜尋
7.54.2. 概要¶
-
VIDIOC_S_HW_FREQ_SEEK¶
int ioctl(int fd, VIDIOC_S_HW_FREQ_SEEK, struct v4l2_hw_freq_seek *argp)
7.54.3. 引數¶
fd由
open()返回的檔案描述符。argp指向結構體
v4l2_hw_freq_seek的指標。
7.54.4. 描述¶
從當前頻率開始硬體頻率搜尋。為此,應用程式初始化 tuner、type、seek_upward、wrap_around、spacing、rangelow 和 rangehigh 欄位,並將結構體 v4l2_hw_freq_seek 的 reserved 陣列清零,然後使用指向此結構的指標呼叫 VIDIOC_S_HW_FREQ_SEEK ioctl。
可以將 rangelow 和 rangehigh 欄位設定為非零值,以告訴驅動程式搜尋特定頻段。如果結構體 v4l2_tuner capability 欄位設定了 V4L2_TUNER_CAP_HWSEEK_PROG_LIM 標誌,則這些值必須落在 ioctl VIDIOC_ENUM_FREQ_BANDS 返回的頻段之一內。如果未設定 V4L2_TUNER_CAP_HWSEEK_PROG_LIM 標誌,則這些值必須與 ioctl VIDIOC_ENUM_FREQ_BANDS 返回的頻段之一完全匹配。如果調諧器的當前頻率不在所選頻段內,則在開始搜尋之前,它將被限制為適合該頻段。
如果返回錯誤,則將恢復原始頻率。
如果設定了 V4L2_CAP_HW_FREQ_SEEK 功能,則支援此 ioctl。
如果從非阻塞檔案控制代碼呼叫此 ioctl,則返回 EAGAIN 錯誤程式碼,並且不進行搜尋。
-
type v4l2_hw_freq_seek¶
__u32 |
|
調諧器索引號。這與結構體 |
__u32 |
|
調諧器型別。這與結構體 |
__u32 |
|
如果非零,則從當前頻率向上搜尋,否則向下搜尋。 |
__u32 |
|
如果非零,則在頻率範圍結束時迴繞,否則停止搜尋。結構體 |
__u32 |
|
如果非零,則定義硬體搜尋解析度(以 Hz 為單位)。驅動程式選擇裝置支援的最近似的值。如果 spacing 為零,則使用合理的預設值。 |
__u32 |
|
如果非零,則搜尋頻段的最低可調頻率,單位為 62.5 kHz,或者如果結構體 |
__u32 |
|
如果非零,則搜尋頻段的最高可調頻率,單位為 62.5 kHz,或者如果結構體 |
__u32 |
|
保留以供將來擴充套件。應用程式必須將陣列設定為零。 |
7.54.5. 返回值¶
成功時返回 0,錯誤時返回 -1 並適當設定 errno 變數。通用錯誤程式碼在 通用錯誤程式碼 章節中描述。
- EINVAL
tuner索引超出範圍,不支援wrap_around值,或者type、rangelow或rangehigh欄位中的某個值錯誤。- EAGAIN
嘗試以非阻塞模式使用檔案控制代碼呼叫
VIDIOC_S_HW_FREQ_SEEK。- ENODATA
硬體搜尋未找到任何頻道。
- EBUSY
另一個硬體搜尋已經在進行中。