KS_FRAME_INFO 結構 (ksmedia.h)

KS_FRAME_INFO 結構會擴充視訊串流的KSSTREAM_HEADER結構。

語法

typedef struct tagKS_FRAME_INFO {
  ULONG    ExtendedHeaderSize;
  DWORD    dwFrameFlags;
  LONGLONG PictureNumber;
  LONGLONG DropCount;
  HANDLE   hDirectDraw;
  HANDLE   hSurfaceHandle;
  RECT     DirectDrawRect;
  union {
    LONG  lSurfacePitch;
    DWORD Reserved1;
  };
  DWORD    Reserved2;
  union {
    struct {
      DWORD Reserved3;
      DWORD Reserved4;
    };
    ULONGLONG FrameCompletionNumber;
  };
} KS_FRAME_INFO, *PKS_FRAME_INFO;

成員

ExtendedHeaderSize

指定這個結構的大小,以位元組為單位。

dwFrameFlags

指定旗標,指出擷取框架的其他資訊。 在擷取期間,minidriver 會將此成員設定為 ksmedia.h 中定義的下列其中一個值:

旗標 意義
KS_VIDEO_FLAG_FRAME 表示完整的框架。
KS_VIDEO_FLAG_FIELD1 表示兩個字段序列的欄位 1。
KS_VIDEO_FLAG_FIELD2 表示兩個字段序列的欄位 2。
KS_VIDEO_FLAG_I_FRAME 表示此框架可以完全譯碼,而不參考任何其他畫面格。
KS_VIDEO_FLAG_P_FRAME 表示這是預測框架。
KS_VIDEO_FLAG_B_FRAME 表示這是雙向框架。

PictureNumber

指定代表目前圖片編號的計數。 在轉換至 KSSTATE_ACQUIRE 時初始化或更新此值。

DropCount

指定未擷取的圖片數目。 在擷取期間,minidriver 會設定此成員。 每當應該擷取框架但不是時,應該遞增此計數器;當擷取期間沒有緩衝區可用時,通常會發生此狀況。 在轉換至 KSSTATE_ACQUIRE 時初始化或更新此值。

hDirectDraw

指定 DirectDraw 的使用者模式句柄。 只有在擷取至 DirectDraw 表面以進行預覽或重疊時,才會提供此句柄給 minidriver。

hSurfaceHandle

指定 DirectDraw 介面的使用者模式句柄。 只有在擷取至 DirectDraw 表面以進行預覽或重疊時,才會提供此句柄給 minidriver。

DirectDrawRect

指定已鎖定之 DirectDraw 表面的部分。 這通常是整個表面。

lSurfacePitch

包含表面間距 (也稱為) 。

Reserved1

Minidriver 不應使用保留和 。

Reserved2

Minidriver 不應使用保留和 。

Reserved3

Minidriver 不應使用保留和 。

Reserved4

Minidriver 不應使用保留和 。

FrameCompletionNumber

已完成佇列中框架的識別序號。 這個數位是用來驗證適當的畫面順序。 當此值為 0 時,框架已取消。

從 Windows 8.1 開始,即可使用此成員。

備註

KS_FRAME_INFO 結構提供傳回所擷取畫面的相關信息,以及將擷取至 DirectDraw 介面時所使用的 Microsoft DirectDraw 句柄的方法。

PictureNumber 成員計數代表目前圖片的計數,這會根據裝置以兩種方式之一計算:

  • 測量串流啟動後的時間,並除以框架持續時間。 這個方法適用於未提供自己的時鐘的裝置。 例如:

    PictureNumber = ElapsedTime / FrameDuration;
    
  • 將擷取的畫面計數和框架捨棄的計數加在一起。 這個方法適用於提供自己的時鐘的裝置。 例如:

    PictureNumber = FramesCaptured + FramesDropped;
    

計算 PictureNumberDropCount 時,請務必使用在開啟數據流時指定的畫面持續時間,這不一定符合裝置實際產生影像的速率。 例如,USB 相機可能只會在 7.5 fps 產生影像,但用戶端可以在 8 fps 開啟數據流。 在此情況下,所有計算都應該使用8 fps數位。

如需更新 PictureNumberDropCount 的詳細資訊,請參閱 擷取影片

規格需求

需求
標頭 ksmedia.h (包含 Ksmedia.h)

另請參閱

KSSTREAM_HEADER