共用方式為


PFND3DDDI_DECODEEXECUTE回呼函式 (d3dumddi.h)

DecodeExecute 函式會使用指定的 Microsoft DirectX 視訊加速器 (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 結構應該包含譯碼框架所需的所有緩衝區資訊。 譯碼Execute 後續可以針對相同的畫面呼叫;不過,這些呼叫只需要累加式數據。 如果特定 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