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

버퍼 시작부터 관련 데이터의 오프셋(바이트)입니다. 이 멤버의 사용은 현재 값 0으로 제한됩니다.

[in] DataSize

버퍼의 관련 데이터 양(바이트)입니다. 버퍼의 마지막 콘텐츠 바이트 위치는 DataOffset 값과 DataSize 에서 1을 뺀 값입니다.

[in] FirstMBaddress

가속기로 전달되는 버퍼에서 첫 번째 macroblock의 macroblock 주소입니다. 매크로 블록 주소는 래스터 검사 순서로 지정됩니다. 주소는 DXVA_PictureParameters 구조체의 멤버에 의해 결정됩니다. 다음 표에서는 매크로 블록 주소의 예를 보여 줍니다.

매크로 블록 주소
왼쪽 위 0
오른쪽 위 wPicWidthInMBminus1 of DXVA_PictureParameters.
왼쪽 아래 wPicHeightInMBminus1 x(wPicWidthInMBminus1+1). DXVA_PictureParameters 멤버입니다.
오른쪽 아래 (wPicHeightInMBminus1+1) x (wPicWidthInMBminus1+1)-1. DXVA_PictureParame 멤버

데이터 버퍼가 그림 디코딩 매개 변수, 역수량화 행렬, 조각 컨트롤, 비트스트림 데이터, AYUV, IA44/AI44, DPXD, 강조 표시 및 DCCMD 형식 중 하나인 경우 FirstMBaddress 멤버는 0이어야 합니다.

데이터 버퍼가 잔차 블록 데이터 버퍼인 경우 FirstMBaddress 는 해당 macroblock 컨트롤 명령 버퍼와 동일한 값을 가져야 합니다.

[in] NumMBsInBuffer

건너뛴 매크로 블록 등 버퍼의 데이터 매크로 블록 수입니다. 데이터 버퍼가 그림 디코딩 매개 변수, 역수량화 행렬, AYUV, IA44/AI44, DPXD, 강조 표시 또는 DCCMD 형식 중 하나인 경우 이 멤버는 0이어야 합니다.

NumMBsInBuffer 값은 다음 표와 같이 사용 중인 데이터 버퍼의 형식에 따라 달라집니다.

버퍼 유형 NumMBsInBuffer 값
Macroblock 컨트롤 명령 매크로 블록 컨트롤 명령 버퍼의 macroblock 컨트롤 명령 수에 추가된 MBskipsFollowing에 대한 모든 값의 합계입니다.
잔차 블록 해당 macroblock 컨트롤 명령 버퍼와 동일한 값입니다.
조각 제어 명령 조각 제어 버퍼에 있는 DXVA_SliceInfo 구조체의 wNumberMBsInSlice 멤버 값입니다.
Bitstream 해당 slice-control 명령 버퍼와 동일한 값입니다.

[in] Width

예약되어 있습니다. 이 멤버를 사용하지 마세요. 자세한 내용은 주의 섹션을 참조하세요.

[in] Height

예약되어 있습니다. 이 멤버를 사용하지 마세요. 자세한 내용은 주의 섹션을 참조하세요.

[in] Stride

예약되어 있습니다. 이 멤버를 사용하지 마세요. 자세한 내용은 주의 섹션을 참조하세요.

[in] ReservedBits

압축 및 맞춤에 사용되는 예약된 비트입니다. 이 멤버는 0이어야 합니다.

[in] pCipherCounter

128비트 PVP(보호된 비디오 경로) 값이 포함된 DXVADDI_PVP_HW_IV 구조체에 대한 포인터입니다.

설명

DXVADDI_DECODEBUFFERDESC 구조의 배열을 버퍼 설명 목록이라고 합니다. 버퍼 집합이 호스트 디코더에서 하드웨어 가속기로 전송되면 버퍼 설명 목록이 전송되어 버퍼를 설명합니다. 버퍼 설명 목록에는 이 집합의 각 버퍼에 대해 하나의 DXVADDI_DECODEBUFFERDESC 구조가 포함되어 있습니다. 버퍼 설명 목록은 첫 번째 형식의 첫 번째 버퍼에 대한 DXVADDI_DECODEBUFFERDESC 구조체와 같은 형식의 다음 버퍼에 대한 DXVADDI_DECODEBUFFERDESC 구조로 시작합니다. 그런 다음 버퍼 설명 목록은 다음 형식의 첫 번째 버퍼에 대한 DXVADDI_DECODEBUFFERDESC 구조로 계속됩니다. 이 전체 목록은 D3DDDIARG_DECODEEXECUTE 구조에 포함되어 있습니다.

Microsoft DirectX VA(비디오 가속) 버전 2.0은 DirectX VA 1.0에서 사용하는 개인 표면 대신 Microsoft Direct3D 표면을 사용하므로 사용자 모드 표시 드라이버는 BufferIndex, Width, HeightStride 멤버의 값이 아닌 지정된 압축 버퍼 형식에서 인덱스, 너비, 높이 및 보폭 값을 가져옵니다. 실제로 Microsoft Direct3D 런타임은 이러한 멤버를 0으로 설정합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다.
머리글 d3dumddi.h(D3dumddi.h 포함)

추가 정보

D3DDDIARG_DECODEEXECUTE

DXVADDI_PVP_HW_IV

DXVA_PictureParameters

DXVA_SliceInfo