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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk