Поделиться через


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

См. также

D3DDDIARG_DECODEEXECUTE

DXVADDI_PVP_HW_IV

DXVA_PictureParameters

DXVA_SliceInfo