struktur KS_FRAME_INFO (ksmedia.h)

Struktur KS_FRAME_INFO memperluas struktur KSSTREAM_HEADER untuk streaming video.

Sintaks

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;

Anggota

ExtendedHeaderSize

Menentukan ukuran struktur ini, dalam byte.

dwFrameFlags

Menentukan bendera yang menunjukkan informasi tambahan tentang bingkai yang diambil. Selama pengambilan, minidriver mengatur anggota ini ke salah satu nilai berikut yang ditentukan dalam ksmedia.h:

Bendera Makna
KS_VIDEO_FLAG_FRAME Menunjukkan bingkai lengkap.
KS_VIDEO_FLAG_FIELD1 Menunjukkan Bidang 1 dari urutan dua bidang.
KS_VIDEO_FLAG_FIELD2 Menunjukkan Bidang 2 dari urutan dua bidang.
KS_VIDEO_FLAG_I_FRAME Menunjukkan bahwa bingkai ini dapat didekode sepenuhnya tanpa referensi ke bingkai lain.
KS_VIDEO_FLAG_P_FRAME Menunjukkan bahwa ini adalah bingkai yang diprediksi.
KS_VIDEO_FLAG_B_FRAME Menunjukkan bahwa ini adalah bingkai dua arah.

PictureNumber

Menentukan hitungan yang menunjukkan nomor gambar saat ini. Menginisialisasi atau memperbarui nilai ini saat transisi ke KSSTATE_ACQUIRE.

DropCount

Menentukan jumlah gambar yang tidak diambil. Selama pengambilan, minidriver mengatur anggota ini. Penghitung ini harus dinaikkan setiap kali bingkai seharusnya ditangkap tetapi tidak; kondisi ini biasanya muncul ketika tidak ada buffer yang tersedia selama pengambilan. Menginisialisasi atau memperbarui nilai ini saat transisi ke KSSTATE_ACQUIRE.

hDirectDraw

Menentukan handel mode pengguna ke DirectDraw. Handel ini hanya disediakan untuk minidriver saat menangkap permukaan DirectDraw untuk tujuan pratinjau atau overlay.

hSurfaceHandle

Menentukan handel mode pengguna ke permukaan DirectDraw. Handel ini hanya disediakan untuk minidriver saat menangkap permukaan DirectDraw untuk tujuan pratinjau atau overlay.

DirectDrawRect

Menentukan bagian permukaan DirectDraw yang telah dikunci. Ini biasanya seluruh permukaan.

lSurfacePitch

Berisi permukaan pitch (juga dikenal sebagai langkah).

Reserved1

Dicadangkan dan tidak boleh digunakan oleh minidriver.

Reserved2

Dicadangkan dan tidak boleh digunakan oleh minidriver.

Reserved3

Dicadangkan dan tidak boleh digunakan oleh minidriver.

Reserved4

Dicadangkan dan tidak boleh digunakan oleh minidriver.

FrameCompletionNumber

Nomor urutan identifikasi untuk bingkai dalam antrean yang selesai. Nomor ini digunakan untuk memverifikasi urutan bingkai yang tepat. Ketika nilai ini adalah 0, bingkai dibatalkan.

Anggota ini tersedia dimulai dengan Windows 8.1.

Keterangan

Struktur KS_FRAME_INFO menyediakan cara untuk mengembalikan informasi tentang bingkai yang ditangkap, serta cara untuk melewati handel Microsoft DirectDraw yang digunakan saat menangkap permukaan DirectDraw.

Jumlah anggota PictureNumber mewakili hitungan gambar saat ini, yang dihitung dalam salah satu dari dua cara tergantung pada perangkat:

  • Ukur waktu sejak aliran dimulai dan bagi dengan durasi bingkai. Metode ini sesuai untuk perangkat yang tidak menyediakan jamnya sendiri. Contohnya:

    PictureNumber = ElapsedTime / FrameDuration;
    
  • Tambahkan bersama-sama jumlah bingkai yang diambil dan jumlah bingkai yang dijatuhkan. Metode ini sesuai untuk perangkat yang menyediakan jam mereka sendiri. Contohnya:

    PictureNumber = FramesCaptured + FramesDropped;
    

Saat menghitung PictureNumber dan DropCount, penting untuk menggunakan durasi bingkai yang ditentukan ketika aliran dibuka, yang mungkin tidak selalu cocok dengan laju di mana perangkat benar-benar menghasilkan gambar. Misalnya, kamera USB hanya dapat menghasilkan gambar pada 7,5 fps, tetapi klien dapat membuka aliran pada 8 fps. Dalam hal ini, semua perhitungan harus menggunakan angka 8 fps.

Untuk informasi selengkapnya tentang memperbarui PictureNumber dan DropCount , lihat Menangkap Video.

Persyaratan

Persyaratan Nilai
Header ksmedia.h (termasuk Ksmedia.h)

Lihat juga

KSSTREAM_HEADER