структура 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)

См. также раздел

D3DDDIARG_DECODEEXECUTE

DXVADDI_PVP_HW_IV

DXVA_PictureParameters

DXVA_SliceInfo