PFND3DDDI_DECODEEXECUTE 콜백 함수(d3dumddi.h)

DecodeExecute 함수는 지정된 VA(Microsoft DirectX Video Accelerator) 디코딩 디바이스를 사용하여 디코딩 작업을 수행합니다.

구문

PFND3DDDI_DECODEEXECUTE Pfnd3dddiDecodeexecute;

HRESULT Pfnd3dddiDecodeexecute(
  HANDLE hDevice,
  const D3DDDIARG_DECODEEXECUTE *unnamedParam2
)
{...}

매개 변수

hDevice

디스플레이 디바이스(그래픽 컨텍스트)에 대한 핸들입니다.

unnamedParam2

pData [in]

수행할 DirectX VA 디코딩 작업을 설명하는 D3DDDIARG_DECODEEXECUTE 구조체에 대한 포인터입니다.

반환 값

DecodeExecute는 다음 값 중 하나를 반환합니다.

반환 코드 설명
S_OK DirectX VA 디코딩 작업이 성공적으로 수행되었습니다.
E_OUTOFMEMORY DecodeExecute가 완료하는 데 필요한 메모리를 할당할 수 없습니다.

설명

Microsoft Direct3D 런타임은 모든 표준 DirectX VA 디 코딩 작업에 대해 DecodeExecute 함수를 호출합니다. 각 프레임에 대해 DecodeExecute를 처음 호출하는 경우 pData로 지정된 D3DDDIARG_DECODEEXECUTE 구조에는 프레임 디코딩에 필요한 모든 버퍼 정보가 포함되어야 합니다. DecodeExecute 는 이후에 동일한 프레임에 대해 호출될 수 있습니다. 그러나 이러한 호출에는 증분 데이터만 필요합니다. 특정 DirectX VA 디코딩 형식의 GUID가 D3DDDIARG_DECODEEXECUTE 지정된 버퍼를 사용하지 않는 경우 버퍼에 대한 핸들 및 설명이 NULL로 설정됩니다. 예를 들어 MPEG2 디코딩 형식에는 그림 매개 변수, 매크로 블록 버퍼 및 잔차 버퍼가 필요하므로 이러한 모든 항목은 각 프레임에 대한 첫 번째 호출에 있어야 합니다. 그러나 데이터 크기에 따라 Direct3D 런타임은 DecodeExecute 를 다시 호출하여 전체 프레임을 디코딩하는 데 필요한 추가 잔차 데이터만 제공할 수 있습니다.

DirectX VA 1.0은 DdMoCompQueryStatus 함수 호출을 통해 외부 동기화 메커니즘을 지원했습니다. DirectX VA 2.0에서 사용자 모드 표시 드라이버는 3차원 파이프를 동기화하는 방식과 유사하게 자체 동기화를 수행해야 합니다. 이 동기화에 대한 자세한 내용은 비디오 디코딩 작업 동기화를 참조하세요.

요구 사항

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

추가 정보

D3DDDIARG_DECODEEXECUTE

D3DDDI_DEVICEFUNCS