2011-06-24 2 views
1

設定を変更できるGrapheditのフィルタがあります。どのように私はプログラムでDirectShowフィルタのオプションを設定できますか?

私はそのプロパティに行ってさまざまなサイズのストリームにすることができますが、実際のウェブカメラのプロパティボックスをポップアップさせずにこれらのタイプのオプションをプログラムで変更する方法がわからないusbウェブカムがあります。私はそれをある意味で裏打ちされたストリームにしておきたい。

.QueryFilterInfo() 

は私にオプションのこれらのタイプへのアクセスを与えていない、どちらもC#でこれらのオプションへのアクセスを取得する方法は

.QueryPinInfo() 

をありませんでしたか?

更新: http://sourceforge.net/projects/directshownet/forums/forum/460697/topic/1319584

が正しく

答えて

3

あなたが探しているインタフェースをGetStreamCapsを使用する方法を示しますこれは、あなたがなど、FPSと高さと幅を指定することができますソースフィルタの出力ピンにIAMStreamConfigですリンクはC++バージョン用ですが、IAMStreamConfigはC#で利用可能です(here)。

+0

これは、カメラを強制的に他のモード(1280 x 720)にするか、現在のフォーマット(640 x 480)を定義されたモードに強制して品質を落としますか? – Grant

+0

私はあなたの質問を正しく理解しているかわかりません。 IAMStreamConfigを使用すると、a)GetNumberOfCapabilitiesを呼び出してカウントを取得し、GetStreamCapsを呼び出してサポートされているタイプを反復処理することができます。さらに、解像度を変更するためにGetFormatを呼び出して現在の設定されたフォーマットを取得し、このフォーマットを変更し、変更されたAM_MEDIA_TYPE *でSetFormatを呼び出します。この変更された型はフィルタによってサポートされていなければなりません。そうしないと、呼び出しは失敗します。 – Ralf

+0

つまり、カメラのスタイルを640x480から1280x720に変更するか、640x480を1280x720サイズに伸縮させるのですか?後者は画質と視野角の損失をもたらします – Grant

関連する問題