レンダーレスモードでVMR-9を使用しているときにSelectAtPosition()がクラッシュするのを解決するにはどうすればよいですか?
1 に答える
レンダーレスモードが使用されている場合のSelectAtPosition()のクラッシュの問題は、カスタムアロケータにIVMRWindowlessControl9インターフェイスを実装することで解決できます。
IVMRSurfaceAllocator9とIVMRImagePresenter9に加えて、IMRWindowlessControl9も実装してください。クラスCAllocator:public IVMRSurfaceAllocator9、IVMRImagePresenter9、IVMRWindowlessControl9
IVMRWindowlessControl9のすべての仮想関数を定義します。私の場合、マウス処理を適切に機能させるために、次の関数に追加のコードを追加する必要がありました:GetAspectRatioMode()、SetAspectRatioMode()、SetAspectRatioMode()、GetVideoPosition()&GetNativeVideoSize()。他の関数はS_OKを返すだけです。
M $ SDKのドキュメントには、これを実装する必要があるとは記載されていませんでした。何時間もデバッグした後、quartz.dllがカスタムアロケータからこのインターフェイスをクエリしようとしていることに気付きました。時々、辛抱強くなることは本当に報われます!