簡體   English   中英

IMFTransform 配置

[英]IMFTransform Configuration

我想編寫一個混合 2 個音頻流的IMFTransform 但理想情況下,我想以特定於流的方式應用它。 例如,我只想混合特定持續時間的流。 重申一下,每個實例的確切時間和持續時間會有所不同。

問題是我在IMFTransform接口中看不到任何類型的 function 允許我傳遞此信息。 我錯過了什么嗎? 我應該使用一些自定義方法或函數來擴展IMFTransform接口嗎? 可以接受的前進方式是什么?

您不需要擴展IMFTransform接口,這不是應該做的事情。 您通常在同一變換 class 上實現另一個私有接口,並使用常規 COM IUnknown::QueryInterface (或在某種意義上類似於IMFGetService )使其可用。 應用程序將創建一個 transofrm 實例,查詢這個附加接口並傳遞必要的配置。

我對這個項目使用了類似的方法: MFSkVideoRenderer

  • VideoShaderEffect.idl:聲明 COM object(接口/方法/庫)
  • SinkVideoRenderer.h:添加公共IMFVideoShaderEffect,並聲明方法(STDMETHOD(FunctionName)();)
  • SinkVideoRenderer.cpp:實現方法 HRESULT CSinkVideoRenderer::FunctionName(){ return S_OK: }(如果代碼簡單,也可以內聯在 SinkVideoRenderer.h 中)
  • 包括:#include“VideoShaderEffect_h.h”(將從.idl生成)
  • 在另一個程序中使用:#include "VideoShaderEffect_i.c"(也將從.idl 生成)參見MFNodePlayer示例

您將不得不了解一點MIDL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM