PFND3DDDI_DECODEEXECUTE回呼函式 (d3dumddi.h)

DecodeExecute 函式會使用指定的 Microsoft DirectX Video Accelerator (VA) 譯碼裝置來執行譯碼作業。

語法

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 中,使用者模式顯示驅動程式應該執行自己的同步處理,類似於同步處理 3D 管道的方式。 如需此同步處理的詳細資訊,請參閱 同步處理視訊譯碼作業

規格需求

需求
最低支援的用戶端 可在 Windows Vista 和更新版本的 Windows 作業系統中使用。
目標平台 桌面
標頭 d3dumddi.h (包含 D3dumddi.h)

另請參閱

D3DDDIARG_DECODEEXECUTE

D3DDDI_DEVICEFUNCS