struktur DXVA_BufferDescription (dxva.h)
Struktur DXVA_BufferDescription dikirim oleh dekoder host ke akselerator untuk memberikan informasi kepada akselerator tentang buffer yang saat ini sedang diteruskan dari host ke akselerator.
Sintaks
typedef struct _DXVA_BufferDescription {
DWORD dwTypeIndex;
DWORD dwBufferIndex;
DWORD dwDataOffset;
DWORD dwDataSize;
DWORD dwFirstMBaddress;
DWORD dwNumMBsInBuffer;
DWORD dwWidth;
DWORD dwHeight;
DWORD dwStride;
DWORD dwReservedBits;
} DXVA_BufferDescription, *LPDXVA_BufferDescription;
Anggota
dwTypeIndex
Mengidentifikasi jenis buffer yang diteruskan ke akselerator. Tabel berikut mencantumkan pengidentifikasi numerik dan jenis buffer terkait.
Nilai | Jenis Buffer |
---|---|
1 | Buffer parameter pendekodean gambar. |
2 | Buffer perintah kontrol macroblock (terkait erat dengan dan memiliki korespondensi 1:1 dengan buffer data blok perbedaan sisa). |
3 | Buffer data blok perbedaan residu. Lihat Pendekodean Gambar Berorientasi Makroblock untuk informasi selengkapnya. |
4 | Pemblokiran buffer perintah kontrol filter (dengan atau tanpa batasan pada efek filter). |
5 | Buffer matriks kuantisasi terbalik (hanya digunakan dengan pemrosesan VLD di luar host). |
6 | Buffer kontrol ilis (terkait erat dengan dan memiliki korespondensi 1:1 dengan buffer data bitstream). |
7 | Buffer data bitstream. |
8 | Buffer sampel alpha-blending AYUV. |
9 | Buffer permukaan alpha-blending IA44/AI44. |
10 | Buffer permukaan alfa-blending DPXD. |
11 | Sorot buffer data. |
12 | Buffer data DCCMD. |
13 | Buffer kombinasi alpha-blend. |
14 | Buffer kontrol pengambilan sampel ulang gambar. |
15 | Buffer perintah read-back berisi perintah untuk membaca makroblock dari gambar yang dihasilkan kembali ke host. |
dwBufferIndex
Menentukan nomor urut buffer dalam buffer dengan jenis yang sama yang diteruskan dalam daftar deskripsi buffer yang sama.
dwDataOffset
Menentukan offset data yang relevan dari awal buffer dalam byte. Penggunaan anggota ini saat ini dibatasi untuk nilai nol.
dwDataSize
Menentukan jumlah data yang relevan dalam buffer dalam byte. Lokasi byte terakhir konten dalam buffer adalah dwDataOffset, ditambah dwDataSize dikurangi 1.
dwFirstMBaddress
Menentukan alamat blok makro dari blok makro pertama dalam buffer yang diteruskan ke akselerator. Alamat macroblock diberikan dalam urutan pemindaian raster. Alamat ditentukan oleh anggota DXVA_PictureParameters. Contoh alamat macroblock adalah sebagai berikut.
Blokir Makro | Alamat |
---|---|
kiri atas | Nol |
kanan atas | wPicWidthInMBminus1 |
kiri bawah | wPicHeightInMBminus1 x (wPicWidthInMBminus1+1) |
kanan bawah | (wPicHeightInMBminus1+1) x (wPicWidthInMBminus1+1)-1 |
Anggota ini harus nol jika buffer data berada di antara jenis berikut: parameter pendekodean gambar, matriks kuantisasi terbalik, kontrol potongan, data bitstream, AYUV, IA44/AI44, DPXD, Sorotan, dan DCCMD.
Jika buffer data adalah buffer data blok perbedaan residu, dwFirstMBaddress harus memiliki nilai yang sama seperti untuk buffer perintah kontrol makroblock yang sesuai. Lihat Pendekodean Gambar Berorientasi Makroblock untuk informasi selengkapnya.
dwNumMBsInBuffer
Menentukan jumlah blokir makro data dalam buffer. Jumlah ini mencakup blokir makro yang dilewati. Harus nol jika buffer data berada di antara jenis berikut: parameter pendekodean gambar, matriks kuantisasi terbalik, AYUV, IA44/AI44, DPXD, Sorotan, atau DCCMD.
Nilai untuk dwNumMBsInBuffer bergantung pada jenis buffer data yang digunakan seperti yang diperlihatkan dalam tabel berikut.
Jenis Buffer | Nilai dwNumMBsInBuffer |
---|---|
Perintah kontrol macroblock | Harus sama dengan jumlah semua nilai untuk MBskipsFollowing, ditambahkan ke jumlah perintah kontrol makroblock dalam buffer perintah kontrol makroblock. |
Blok perbedaan residu | Harus memiliki nilai yang sama seperti untuk buffer perintah kontrol blok makro yang sesuai. |
Perintah kontrol irama | Harus sama dengan nilai anggota wNumberMBsInSlice dari struktur DXVA_SliceInfo dalam buffer kontrol irama. |
Bitstream | Harus memiliki nilai yang sama seperti untuk buffer perintah kontrol irama yang sesuai. |
dwWidth
Menentukan lebar data dalam buffer sebagai jumlah unit bit untuk jenis data berikut: AYUV (data ditentukan dalam unit 32-bit), IA44/AI44 (data ditentukan dalam unit 8-bit), atau DPXD (data ditentukan dalam unit 2-bit). Anggota ini harus nol jika buffer data tidak termasuk di antara jenis sebelumnya.
dwHeight
Menentukan tinggi data dalam buffer sebagai jumlah unit bit untuk jenis data berikut: AYUV (data ditentukan dalam unit 32-bit), IA44/AI44 (data ditentukan dalam unit 8-bit), atau DPXD (data ditentukan dalam unit 2-bit). Anggota ini harus nol jika buffer data tidak termasuk di antara jenis sebelumnya.
dwStride
Menentukan langkah data dalam buffer sebagai jumlah unit bit untuk jenis data berikut: AYUV (data ditentukan dalam unit 32-bit), IA44/AI44 (data ditentukan dalam unit 8-bit), atau DPXD (data ditentukan dalam unit 2-bit). Langkah untuk jenis buffer yang berlaku ditentukan dari pengaturan alokasi buffer yang dilakukan oleh akselerator. Anggota ini harus nol jika buffer data tidak termasuk di antara jenis sebelumnya.
dwReservedBits
Bit cadangan yang digunakan untuk pengemasan dan penyelarasan. Harus nol.
Keterangan
Array struktur DXVA_BufferDescription disebut sebagai daftar deskripsi buffer. Ketika satu set buffer dikirim dari dekoder host ke akselerator perangkat keras, daftar deskripsi buffer dikirim untuk menjelaskan buffer. Daftar deskripsi buffer berisi satu struktur DXVA_BufferDescription untuk setiap buffer dalam set ini. Daftar deskripsi buffer dimulai dengan struktur DXVA_BufferDescription untuk buffer pertama dari jenis pertama, diikuti dengan struktur DXVA_BufferDescription untuk buffer berikutnya dengan jenis yang sama, dan sebagainya. Daftar deskripsi buffer kemudian dilanjutkan dengan struktur DXVA_BufferDescription untuk buffer pertama dari jenis berikutnya, dan sebagainya.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | dxva.h (termasuk Dxva.h) |