1

レンダーレスモードでVMR-9を使用しているときにSelectAtPosition()がクラッシュするのを解決するにはどうすればよいですか?

4

1 に答える 1

2

レンダーレスモードが使用されている場合のSelectAtPosition()のクラッシュの問題は、カスタムアロケータにIVMRWindowlessControl9インターフェイスを実装することで解決できます。

  1. IVMRSurfaceAllocator9とIVMRImagePresenter9に加えて、IMRWindowlessControl9も実装してください。クラスCAllocator:public IVMRSurfaceAllocator9、IVMRImagePresenter9、IVMRWindowlessControl9

  2. IVMRWindowlessControl9のすべての仮想関数を定義します。私の場合、マウス処理を適切に機能させるために、次の関数に追加のコードを追加する必要がありました:GetAspectRatioMode()、SetAspectRatioMode()、SetAspectRatioMode()、GetVideoPosition()&GetNativeVideoSize()。他の関数はS_OKを返すだけです。

M $ SDKのドキュメントには、これを実装する必要があるとは記載されていませんでした。何時間もデバッグした後、quartz.dllがカスタムアロケータからこのインターフェイスをクエリしようとしていることに気付きました。時々、辛抱強くなることは本当に報われます!

于 2009-01-09T03:49:43.750 に答える