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) |