DirectX

ダミーを使え

DirectShowを使ったWindowsアプリケーションで,去年から「できねー」って思ってたことが,ダミーを使ったらあっさりできた. 結構,既存のライブラリを活用することがあって,ライブラリが想定している使い方より細かいことをやろうとすると一苦労する.こ…

ブラー効果

簡単に言うと,画像をぼかす処理. これは,ある画素の輝度値を,隣接しているいくつかの画素の輝度の平均値とすることによって実現される.試作中のソースコードの一部は以下の通り.代入先の変数に対応する画素自身を含めて,隣接する9個の画素の輝度値の…

ISampleGrabberCBとTransInplaceFilter(TransFilter)の違い

どちらも,グラフ上を流れているデータを参照できるけど,そのデータを書き換えようとするとISampleGrabberCBの方はちょっと問題あり. っていうのは,Smart teeフィルタをそれらのフィルタの前にはさんで,データを変更したものとしないものとを分けようと…

ISampleGrabberCB使える!

DirectShowで,フィルタ中のデータを取得するのに,今まではTransInplaceFilterを使ってたけど,ISampleGrabberの方が汎用性が高くて便利だわ

DirectShowによる動画像の上下左右反転

カメラ映像を上下左右反転させるように中間フィルタ(TransInPlace Filter)を作成してみた.カメラの位置,向きに制約がある場合は,こういう風にソフトウェア的に処理するのが重宝する.反転させるメソッドは以下のような感じ. m_lVidHeight, m_lVidWidthは…

DirectShowでのマウス,キーボードメッセージの伝達

DirectShowでは,IVideoWindowインタフェースで,映像を表示するウィンドウに関する様々な設定,制御ができる. マウス,キーボードメッセージを受け取らせるウィンドウの指定は,m_pVW->put_MessageDrainで行える. HRESULT hr = m_pVW->put_Message((OAHWN…

WM ASF WRITERのメモ(DirectShow)

DirectShowで,ASF(WMV)形式で動画像を保存するフィルタにWM ASF WRITERがある.このフィルタには,AudioピンとVideoピンがあるんだけど,映像あるいは音声のどちらかだけを保存したい場合であっても,両方のピンにAudio Source, Video Sourceを接続しないと…

DirectShowのフィルタ

DirectShowのフィルタは,なかなか良く設計されてると思う.他のを使ったことがないからかもしれないけど,かなり使いやすい.やっぱCOMはすごいや. 入力フィルタ,中間フィルタ,出力フィルタと順につないでいってプログラミングする.各フィルタは,入力…

カメラ映像の解像度の変更(DirectShow, C++)

hr = pAMSConfig->GetStreamCaps(iFormat, &pmt, reinterpret_cast(&scc));で,カメラの適切な解像度を探っていく.以下のソースコードの該当箇所のfor文の繰り返しの数を,カメラごとに,指定したい解像度に合わせて変更すれば一応できる.もっとスマートな…

VistaでGraphEdit

Vista上で,DirectShowを使って開発をしているんだけど,GraphEditが見つからない. 最新版では,DirectX内にはDirectShowが存在せず,Platform SDKに入っている. そして,Platform SDKにGraphEditは入っておらず,Windows SDK for Windows Vistaに入ってい…