Bagikan melalui


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

KS_BITMAPINFOHEADER

KS_DATARANGE_VIDEO2

KS_VIDEOINFOHEADER