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, Height 및 Stride 멤버의 값이 아닌 지정된 압축 버퍼 형식에서 인덱스, 너비, 높이 및 보폭 값을 가져옵니다. 실제로 Microsoft Direct3D 런타임은 이러한 멤버를 0으로 설정합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다. |
머리글 | d3dumddi.h(D3dumddi.h 포함) |