структура DXVADDI_DECODEBUFFERDESC (d3dumddi.h)
Структура DXVADDI_DECODEBUFFERDESC описывает буфер, который в настоящее время передается из декодера узла в акселератор.
Синтаксис
typedef struct _DXVADDI_DECODEBUFFERDESC {
[in] HANDLE hBuffer;
[in] D3DDDIFORMAT CompressedBufferType;
[in] UINT BufferIndex;
[in] UINT DataOffset;
[in] UINT DataSize;
[in] UINT FirstMBaddress;
[in] UINT NumMBsInBuffer;
[in] UINT Width;
[in] UINT Height;
[in] UINT Stride;
[in] UINT ReservedBits;
[in] DXVADDI_PVP_HW_IV *pCipherCounter;
} DXVADDI_DECODEBUFFERDESC;
Члены
[in] hBuffer
Дескриптор буфера.
[in] CompressedBufferType
Значение D3DDDIFORMATтипа, указывающее формат пикселя буфера.
[in] BufferIndex
Скрытный. Не используйте этот элемент. Дополнительные сведения см. в разделе "Примечания".
[in] DataOffset
Смещение соответствующих данных с начала буфера в байтах. Использование этого элемента в настоящее время ограничено нулевым значением.
[in] DataSize
Объем соответствующих данных в буфере в байтах. Расположение последнего байта содержимого в буфере — это значение DataOffset плюс значение DataSize минус 1.
[in] FirstMBaddress
Адрес макроблока первого макроблока в буфере, который передается акселератору. Адрес макроблока указан в порядке сканирования растрового текста. Адрес определяется элементами структуры DXVA_PictureParameters. В следующей таблице показаны примеры адресов макроблока.
Макроблок | адрес |
---|---|
Верхний левый | Нуль |
В правом верхнем углу | wPicWidthInMBminus1 DXVA_PictureParameters. |
В левом нижнем углу | wPicHeightInMBminus1 x (wPicWidthInMBminus1+1). Члены DXVA_PictureParameters. |
В правом нижнем углу | (wPicHeightInMBminus1+1) x (wPicWidthInMBminus1+1)-1. Члены DXVA_PictureParame |
Элемент FirstMBaddress должен быть нулевым, если буфер данных является одним из следующих типов: параметры декодирования рисунков, матрица декодирования рисунков, матрица обратной квантизации, элемент управления срезом, битовые данные, AYUV, IA44/AI44, DPXD, Highlight и DCCMD.
Если буфер данных является буфером данных остаточной разницы, FirstMBaddress должны иметь то же значение, что и для соответствующего буфера команд управления макроблоком.
[in] NumMBsInBuffer
Количество макроблоков данных в буфере, включая пропущенные макроблоки. Этот элемент должен быть равен нулю, если буфер данных является одним из следующих типов: параметры декодирования рисунков, матрица обратной квантизации, AYUV, IA44/AI44, DPXD, Highlight или DCCMD.
Значение NumMBsInBuffer зависит от типа используемого буфера данных, как показано в следующей таблице.
типа буфера | значение NumMBsInBuffer |
---|---|
Команда управления Макроблоком | Сумма всех значений для MBskipsFollowing, добавленная к числу команд управления макроблока в буфере команд управления макроблока. |
Блок разницы остатков | То же значение, что и для соответствующего буфера команд управления макроблоком. |
Команда "Срез-элемент управления" | Значение элемента wNumberMBsInSlice структуры DXVA_SliceInfo в буфере управления срезом. |
Bitstream | То же значение, что и для соответствующего буфера команд управления срезом. |
[in] Width
Скрытный. Не используйте этот элемент. Дополнительные сведения см. в разделе "Примечания".
[in] Height
Скрытный. Не используйте этот элемент. Дополнительные сведения см. в разделе "Примечания".
[in] Stride
Скрытный. Не используйте этот элемент. Дополнительные сведения см. в разделе "Примечания".
[in] ReservedBits
Зарезервированные биты, используемые для упаковки и выравнивания. Этот элемент должен быть равен нулю.
[in] pCipherCounter
Указатель на структуру DXVADDI_PVP_HW_IV, содержащую 128-разрядное значение защищенного видеопуть (PVP).
Замечания
Массив структур DXVADDI_DECODEBUFFERDESC называется списком описания буфера. Когда набор буферов отправляется из декодера узла в аппаратный ускоритель, список описания буфера отправляется для описания буферов. Список описания буфера содержит одну DXVADDI_DECODEBUFFERDESC структуру для каждого буфера в этом наборе. Список описания буфера начинается со структуры DXVADDI_DECODEBUFFERDESC для первого буфера первого типа, а затем DXVADDI_DECODEBUFFERDESC структуры для следующего буфера того же типа и т. д. Затем список описаний буфера продолжается с DXVADDI_DECODEBUFFERDESC структурой для первого буфера следующего типа и т. д. Весь список содержится в структуре D3DDDIARG_DECODEEXECUTE.
Так как microsoft DirectX Video Acceleration (VA) версии 2.0 использует поверхности Microsoft Direct3D, а не частные поверхности, которые использует DirectX VA 1.0, драйвер отображения пользовательского режима получает значения для индекса, ширины, высоты и шага от заданного сжатого типа буфера, а не из значений в BufferIndex, Width, Height, и членов. На самом деле среда выполнения Microsoft Direct3D устанавливает для этих членов значение нулю.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно в Windows Vista и более поздних версиях операционных систем Windows. |
заголовка | d3dumddi.h (include D3dumddi.h) |