7.28. ioctl VIDIOC_G_ENC_INDEX¶
7.28.1. 名稱¶
VIDIOC_G_ENC_INDEX - 獲取有關壓縮影片流的元資料
7.28.2. 概要¶
-
VIDIOC_G_ENC_INDEX¶
int ioctl(int fd, VIDIOC_G_ENC_INDEX, struct v4l2_enc_idx *argp)
7.28.3. 引數¶
fd由
open()返回的檔案描述符。argp指向結構體
v4l2_enc_idx的指標。
7.28.4. 描述¶
VIDIOC_G_ENC_INDEX ioctl 提供有關壓縮影片流的元資料,該影片流與當前從驅動程式讀取的相同或另一個應用程式,這對於隨機訪問流而無需解碼它非常有用。
要讀取資料,應用程式必須使用指向v4l2_enc_idx結構體的指標呼叫VIDIOC_G_ENC_INDEX。 成功後,驅動程式會填充entry陣列,將寫入的元素數量儲存在entries欄位中,並初始化entries_cap欄位。
entry陣列的每個元素都包含有關一個圖片的元資料。VIDIOC_G_ENC_INDEX呼叫從驅動程式緩衝區讀取最多V4L2_ENC_IDX_ENTRIES個條目,該緩衝區最多可容納entries_cap個條目。此數字可以小於或大於V4L2_ENC_IDX_ENTRIES,但不能為零。當應用程式未能及時讀取元資料時,最早的條目將丟失。當緩衝區為空或未進行捕獲/編碼時,entries將為零。
目前,此ioctl僅為MPEG-2程式流和影片基本流定義。
-
type v4l2_enc_idx¶
__u32 |
|
驅動程式儲存在 |
__u32 |
|
驅動程式可以緩衝的條目數。 必須大於零。 |
__u32 |
|
保留供將來擴充套件。 驅動程式必須將陣列設定為零。 |
struct |
|
有關壓縮影片流的元資料。 陣列的每個元素都對應於一個圖片,按其 |
-
type v4l2_enc_idx_entry¶
__u64 |
|
從壓縮影片流的開頭到此圖片開頭的位元組偏移量,即ISO 13818-1中定義的PES資料包頭或ISO 13818-2中定義的圖片頭。 停止編碼器時,驅動程式會將偏移量重置為零。 |
__u64 |
|
ISO 13818-1中定義的此圖片的33位演示時間戳。 |
__u32 |
|
此圖片的位元組長度。 |
__u32 |
|
包含此圖片的編碼型別的標誌,請參閱索引條目標誌。 |
__u32 |
|
保留供將來擴充套件。 驅動程式必須將陣列設定為零。 |
|
0x00 |
這是一個幀內編碼圖片。 |
|
0x01 |
這是一個預測編碼圖片。 |
|
0x02 |
這是一個雙向預測編碼圖片。 |
|
0x0F |
用此掩碼AND標誌欄位以獲取圖片編碼型別。 |
7.28.5. 返回值¶
成功時返回0,發生錯誤時返回-1,並適當地設定errno變數。 泛型錯誤程式碼在通用錯誤程式碼章節中描述。