7.22. ioctl VIDIOC_G_AUDIO, VIDIOC_S_AUDIO¶
7.22.1. 名稱¶
VIDIOC_G_AUDIO - VIDIOC_S_AUDIO - 查詢或選擇當前音訊輸入及其屬性
7.22.2. 概要¶
-
VIDIOC_G_AUDIO¶
int ioctl(int fd, VIDIOC_G_AUDIO, struct v4l2_audio *argp)
-
VIDIOC_S_AUDIO¶
int ioctl(int fd, VIDIOC_S_AUDIO, const struct v4l2_audio *argp)
7.22.3. 引數¶
fd由
open()返回的檔案描述符。argp指向 struct
v4l2_audio的指標。
7.22.4. 描述¶
要查詢當前的音訊輸入,應用程式將 struct v4l2_audio 的 reserved 陣列置零,並使用指向此結構的指標呼叫 VIDIOC_G_AUDIO ioctl。當裝置沒有音訊輸入,或沒有與當前影片輸入組合的音訊輸入時,驅動程式會填充結構的其餘部分或返回 EINVAL 錯誤程式碼。
音訊輸入具有一個可寫屬性,即音訊模式。要選擇當前的音訊輸入和更改音訊模式,應用程式初始化 struct v4l2_audio 結構的 index 和 mode 欄位以及 reserved 陣列,並呼叫 VIDIOC_S_AUDIO ioctl。如果請求無法滿足,驅動程式可能會切換到不同的音訊模式。但是,這是一個只寫 ioctl,它不會返回實際的新音訊模式。
-
type v4l2_audio¶
__u32 |
|
標識音訊輸入,由驅動程式或應用程式設定。 |
__u8 |
|
音訊輸入的名稱,一個以 NUL 結尾的 ASCII 字串,例如:“線路輸入”。此資訊供使用者使用,最好是裝置本身的聯結器標籤。 |
__u32 |
|
音訊功能標誌,請參閱 音訊功能標誌。 |
__u32 |
|
由驅動程式和應用程式設定的音訊模式標誌(在 VIDIOC_S_AUDIO ioctl 上),請參閱 音訊模式標誌。 |
__u32 |
|
保留供未來擴充套件。驅動程式和應用程式必須將陣列設定為零。 |
|
0x00001 |
這是一個立體聲輸入。該標誌旨在在訊號始終為單聲道時自動停用立體聲錄製等。除非音訊輸入屬於調諧器,否則 API 不提供檢測是否接收到立體聲的方法。 |
|
0x00002 |
支援自動音量電平模式。 |
|
0x00001 |
AVL 模式已開啟。 |
7.22.5. 返回值¶
成功時返回 0,出錯時返回 -1,並適當設定 errno 變數。通用錯誤程式碼在 通用錯誤程式碼 章節中描述。
- EINVAL
沒有音訊輸入與當前影片輸入組合,或者所選音訊輸入的數量超出範圍或未組合。