0

オーバーレイ画像のようなCustom DirectShow Video Renderer Filter拡張機能を備えた があります。Microsoft's Video Renderer Filtera で同じことができることはわかっていますが、Transform Filterその方法を選択しました。また、以下で説明する a で同じ問題に直面するTransform Filterと思います。

を使用するMicrosoft's Video Renderer Filterと、ストリームの開始/変更時にウィンドウとバッファのサイズを自動的に変更できます。私のフィルターは同じことを行うことができますが、ストリームの開始後にイベントを受信できないことを除いて. どうにかしてクエリを実行できると思いますが、方法がわかりません。

現在のイベント パイプラインは次のようになります。

On Pin Connect
--------------
CreateInstance  
Video Renderer Class Constructor
CheckMediaType  
SetMediaType    
-> Width: 100, Height: 100  
CheckMediaType  
CheckMediaType  
CheckMediaType  
SetMediaType
-> Width: 100, Height: 100  

On Play
-------
StartStreaming
DoRenderSample
...
...
...
DoRenderSample

On Stop
-------
Video Renderer Class Destructor

ソース フィルターによって設定されたデフォルトのウィンドウ サイズは 100x100 です。ピン接続でこれを2回取得できます。しかし、その後、再びイベントStartStreamingを取得できません。ソースフィルターからそれらをトリガーしようとすることもできました(これも私のコードです)が、で自動的にサイズ変更できるため、同じ機能が必要でした。CheckMediaTypeSetMediaTypeMicrosoft's Video RendererStartStreaming

質問:

  1. ストリーミング開始後にどのようにトリガーCheckMediaType/コールすればよいですか? SetMediaType実際SetMediaType、私にとって重要なものです。または、現在のストリーム解像度を照会する別の方法はありますか?
  2. でビデオ サイズの変更の可能性を継続的に確認する必要がありDoRenderSampleますか?
4

1 に答える 1

1

CheckMediaTypeSetMediaTypeは厳密には「イベント」ではありません。それらは単独では発生しないため、それらをトリガーすることはできません。解像度を変更しますか?VMR のように自分でストライドを伸ばすには?または、アップストリーム フィルターからの解像度の変更を受け入れますか?

この MSDN セクションでは、詳細について説明しています: Dynamic Format Changes

于 2011-11-17T11:01:21.830 に答える