структура 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 |
---|---|
Команда элемента управления Macroblock | Сумма всех значений для MBskipsFollowing, добавленная к количеству команд управления макроблоком в буфере команд элемента управления макроблоком. |
Блок остаточной разницы | То же значение, что и для соответствующего буфера команд управления макроблоком. |
Команда "Управление срезом" | Значение члена wNumberMBsInSlice структуры DXVA_SliceInfo в буфере управления срезом. |
Битовый поток | То же значение, что и для соответствующего буфера команд управления срезом. |
[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 и Stride . Фактически среда выполнения Microsoft Direct3D задает для этих членов нулевое значение.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows Vista и более поздних версиях операционных систем Windows. |
Верхняя часть | d3dumddi.h (включая D3dumddi.h) |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по