struktur KS_VIDEOINFOHEADER2 (ksmedia.h)
Struktur KS_VIDEOINFOHEADER2 menjelaskan detail aliran video, termasuk pengaturan bob atau tenun, perlindungan salin, dan rasio aspek piksel.
Sintaks
typedef struct tagKS_VIDEOINFOHEADER2 {
RECT rcSource;
RECT rcTarget;
DWORD dwBitRate;
DWORD dwBitErrorRate;
REFERENCE_TIME AvgTimePerFrame;
DWORD dwInterlaceFlags;
DWORD dwCopyProtectFlags;
DWORD dwPictAspectRatioX;
DWORD dwPictAspectRatioY;
union {
DWORD dwControlFlags;
DWORD dwReserved1;
};
DWORD dwReserved2;
KS_BITMAPINFOHEADER bmiHeader;
} KS_VIDEOINFOHEADER2, *PKS_VIDEOINFOHEADER2;
Anggota
rcSource
Menentukan persegi panjang kliping yang memilih bagian sinyal video aktif yang akan digunakan.
rcTarget
Menentukan persegi panjang yang menunjukkan bagian mana dari buffer target yang akan digunakan.
dwBitRate
Menentukan nilai yang menunjukkan laju data streaming video yang sesuai, dalam bit per detik.
dwBitErrorRate
Menentukan nilai yang menunjukkan tingkat kesalahan data streaming video, dalam kesalahan bit per detik.
AvgTimePerFrame
Menentukan waktu rata-rata per bingkai, dalam unit 100 nanodetik.
dwInterlaceFlags
Menentukan informasi interlace. Bendera yang tidak terdefinisi harus diatur ke nol, atau koneksi mungkin ditolak. Anggota ini dapat diatur ke satu atau beberapa nilai (logis OR) yang ditentukan dalam ksmedia.h:
Bendera | Deskripsi |
---|---|
KS_INTERLACE_IsInterlaced | Menunjukkan aliran interlace. Jika 0, maka bit KS_INTERLACE_Xxx lainnya tidak relevan. |
KS_INTERLACE_1FieldPerSample | Menunjukkan satu bidang per sampel media. Jika nol, menunjukkan dua bidang per sampel media. |
KS_INTERLACE_Field1First | Menunjukkan bahwa Bidang 1 adalah yang pertama. Jika nol, menunjukkan bahwa Bidang 2 adalah yang pertama. Bidang teratas di PAL adalah Bidang 1, bidang atas di NTSC adalah Bidang 2. |
KS_INTERLACE_UNUSED | Tidak digunakan |
KS_INTERLACE_FieldPatternMask | Menunjukkan bit yang digunakan untuk menentukan pola bidang. |
KS_INTERLACE_FieldPatField1Only | Menunjukkan bahwa aliran tidak pernah berisi Bidang 2. |
KS_INTERLACE_FieldPatField2Only | Menunjukkan bahwa aliran tidak pernah berisi Bidang 1. |
KS_INTERLACE_FieldPatBothRegular | Menunjukkan bahwa akan ada Bidang 2 untuk setiap Bidang 1. |
KS_INTERLACE_FieldPatBothIrregular | Menunjukkan pola acak Bidang 1 dan Bidang 2. |
KS_INTERLACE_DisplayModeMask | Tidak valid untuk pengambilan video. |
KS_INTERLACE_DisplayModeBobOnly | Tidak valid untuk pengambilan video. |
KS_INTERLACE_DisplayModeWeaveOnly | Tidak valid untuk pengambilan video. |
KS_INTERLACE_DisplayModeBobOrWeave | Tidak valid untuk pengambilan video. |
dwCopyProtectFlags
Menentukan nilai KSCOPYPROTECTRestrictDuplication (0x00000001) untuk menunjukkan apakah duplikasi aliran harus dibatasi. Jika tidak ditentukan, tentukan nol atau koneksi akan ditolak.
dwPictAspectRatioX
Menentukan dimensi x rasio aspek gambar (misalnya, 16 untuk tampilan 16 × 9). Nilai dinyatakan dalam inci demi inci, bukan piksel demi piksel.
dwPictAspectRatioY
Menentukan dimensi y dari rasio aspek gambar (misalnya, 9 untuk 16 tampilan × 9). Nilai dinyatakan dalam inci demi inci, bukan piksel demi piksel.
dwControlFlags
Dalam sistem operasi sebelum Windows Vista, anggota ini bernama dwReserved1 dan diharuskan nol. Di Windows Vista, dwReserved1 digabungkan dalam serikat dengan anggota baru bernama dwControlFlags. Jika digunakan, dwControlFlags berisi bitwise OR dari bendera dalam tabel berikut.
Nilai | Deskripsi |
---|---|
AMCONTROL_USED | Menunjukkan bendera dwControlFlags digunakan. |
AMCONTROL_PAD_TO_4x3 | Gambar harus dilapisi dan ditampilkan di area 4 x 3. |
AMCONTROL_PAD_TO_16x9 | Gambar harus dilapisi dan ditampilkan di area 16 x 9. |
AMCONTROL_COLORINFO_PRESENT | Informasi warna tambahan terkandung dalam 24 bit atas bidang dwControlFlags . |
Bendera AMCONTROL_USED memberikan kompatibilitas mundur dengan filter yang lebih lama. Jika bendera AMCONTROL_USED tidak diatur, bit yang tersisa di bidang ini harus diabaikan. Jika filter menggunakan bendera lain, filter harus mengatur bendera AMCONTROL_USED.
Dua bendera AMCONTROL_PAD_xxx digunakan oleh dekode untuk menentukan rasio aspek persegi panjang output.
Jika bendera AMCONTROL_COLORINFO_PRESENT diatur, itu berarti 24 bit atas bidang dwControlFlags diperlakukan sebagai struktur DXVA_ExtendedFormat .
Lihat bagian Keterangan nanti dalam topik ini untuk informasi selengkapnya tentang dwControlFlags.
dwReserved1
Anggota ini untuk kompatibilitas mundur. Lihat dwControlFlags untuk informasi selengkapnya.
dwReserved2
Dicadangkan untuk penggunaan sistem. Harus diatur ke nol atau koneksi akan ditolak.
bmiHeader
Menunjukkan struktur KS_BITMAPINFOHEADER yang berisi informasi warna dan dimensi untuk bitmap gambar video.
Keterangan
Untuk menggambarkan streaming video tanpa pengaturan bob atau weave, gunakan KS_VIDEOINFOHEADER.
Struktur KS_VIDEOINFOHEADER2 identik dengan struktur VIDEOINFOHEADER2 DirectShow.
Ambil minidriver yang menghasilkan bidang video (bukan bingkai) harus menggunakan struktur KS_DATARANGE_VIDEO2 , yang berisi struktur KS_VIDEOINFOHEADER2.
Filter sumber dapat meminta agar filter sink hanya mengambil bagian video dengan menyediakan nilai yang secara efektif menentukan persegi panjang kliping di anggota rcSource . Namun, jika filter sink tidak memeriksa persegi panjang kliping pada koneksi, filter sink hanya merender semua video, secara efektif mengabaikan informasi kliping apa pun yang diteruskan dari filter sumber ke filter sink.
Idealnya, filter sink memeriksa rcSource dan jika filter sink tidak mendukung ekstraksi gambar, dan persegi panjang tidak kosong, maka ia menolak koneksi. Filter harus menggunakan fungsi Win32 SetRectEmpty untuk mengatur ulang persegi panjang ke semua nol (dan mengatur IsRectEmpty untuk memeriksa persegi panjang nanti).
Anggota rcTarget menentukan persegi tujuan untuk video. Sebagian besar filter sumber mengatur anggota ini ke semua nol. Filter hilir dapat meminta agar video ditempatkan di area tertentu dari buffer yang disediakannya. Dalam hal ini, ini memanggil fungsi Win32 QueryAccept dengan target yang tidak kosong.
Jika bendera AMCONTROL_COLORINFO_PRESENT diatur dalam anggota dwControlFlags , Anda dapat mentransmisikan nilai dwControlFlags ke struktur DXVA_ExtendedFormat untuk mengakses informasi warna yang diperluas. Untuk informasi selengkapnya, lihat VIDEOINFOHEADER2.
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