7.35. ioctl VIDIOC_G_MODULATOR, VIDIOC_S_MODULATOR¶
7.35.1. 名稱¶
VIDIOC_G_MODULATOR - VIDIOC_S_MODULATOR - 獲取或設定調製器屬性
7.35.2. 概要¶
-
VIDIOC_G_MODULATOR¶
int ioctl(int fd, VIDIOC_G_MODULATOR, struct v4l2_modulator *argp)
-
VIDIOC_S_MODULATOR¶
int ioctl(int fd, VIDIOC_S_MODULATOR, const struct v4l2_modulator *argp)
7.35.3. 引數¶
fd由
open()返回的檔案描述符。argp指向 struct
v4l2_modulator的指標。
7.35.4. 描述¶
要查詢調製器的屬性,應用程式初始化 index 欄位並將 struct v4l2_modulator 的 reserved 陣列清零,並使用指向此結構的指標呼叫 VIDIOC_G_MODULATOR ioctl。 當索引超出範圍時,驅動程式會填充結構的其餘部分或返回 EINVAL 錯誤程式碼。 要列舉所有調製器,應用程式應從索引零開始,每次遞增 1,直到驅動程式返回 EINVAL。
調製器具有兩個可寫屬性,一個是音訊調製集,另一個是無線電頻率。 要更改調製的音訊子程式,應用程式初始化 index 和 txsubchans 欄位以及 reserved 陣列,並呼叫 VIDIOC_S_MODULATOR ioctl。 如果無法滿足請求,驅動程式可能會選擇不同的音訊調製。 但是,這是一個只寫 ioctl,它不會返回實際選擇的音訊調製。
SDR 特定調製器型別是 V4L2_TUNER_SDR 和 V4L2_TUNER_RF。 對於 SDR 裝置,txsubchans 欄位必須初始化為零。 在這種情況下,“調製器”一詞表示 SDR 發射器。
要更改無線電頻率,可以使用 VIDIOC_S_FREQUENCY ioctl。
-
type v4l2_modulator¶
__u32 |
|
標識調製器,由應用程式設定。 |
||
__u8 |
|
調製器的名稱,一個以 NUL 結尾的 ASCII 字串。 此資訊供使用者使用。 |
||
__u32 |
|
調製器功能標誌。 未為此欄位定義標誌,因此相應地使用 struct |
||
__u32 |
|
最低可調頻率,單位為 62.5 KHz;如果設定了 |
||
__u32 |
|
最高可調頻率,單位為 62.5 KHz;如果設定了 |
||
__u32 |
|
透過此欄位,應用程式可以確定音訊子載波的調製方式。 它包含一組標誌,如 調製器音訊傳輸標誌 中所定義。 注意 重用了調諧器 |
||
__u32 |
|
調製器的型別,請參閱 |
||
__u32 |
|
保留供將來擴充套件。 驅動程式和應用程式必須將陣列設定為零。 |
||
|
0x0001 |
將通道 1 調製為單聲道音訊;當輸入具有多個通道時,將通道 1 和 2 混音。 此標誌不與 |
|
0x0002 |
將通道 1 和 2 調製為立體聲音訊訊號的左右聲道。 當輸入只有一個通道或兩個通道並且還設定了 |
|
0x0008 |
將通道 1 和 2 調製為雙語音訊訊號的主要語言和輔助語言。 當輸入只有一個通道時,它用於兩種語言。 無法僅編碼主要語言或輔助語言。 此標誌不與 |
|
0x0004 |
與 |
|
0x0004 |
當與 |
|
0x0010 |
為無線電 FM 發射器啟用 RDS 編碼器。 |
7.35.5. 返回值¶
成功時返回 0,出錯時返回 -1,並適當設定 errno 變數。 通用錯誤程式碼在 通用錯誤程式碼 章節中描述。
- EINVAL
struct
v4l2_modulatorindex超出範圍。