DirectShowをC#で

2004年11月10日 15時07分 旧ブログより
DirectShowをC#にて、呼び出すためのラッパに追加のコードを入れましょうな話
最近は、こちらを利用してますんで、過去の話ですが…


こんにちわ!
当地は朝から、強雨となっております。

ってことで、C#.NET@VS2003にて仕事しておりまして、
必要に迫られ、DVエンコーダをDirectShowにて接続、
映像表示するシステムなんぞ、突貫で作っております。

んで、MSさん、何を血迷ったのか、DirectX関連のラッパークラスは、ほとんど準備しているみたいなんですが、
なぜかDirectShow周りだけ、ラッパークラスを準備していない(怒)VC++での実装実績はありましたんで、
VCにてDirectShow周りをアクセスするアンマネージDLLを作成して、C#から呼んでやろうかとも考えましたが…

code project内にDirectShowのインタフェースラッパーを発見、必要最低限の実装だけど、なんとなく使えそう(ニヤリッ)
こいつをC#上のプロジェクトから呼んでやりましたが、問題なさそうでしたんで、こいつでシステム、作り上げてやりました。

ただし、DVエンコーダの解像度を切り替えるインタフェースラッパーの実装は、ありませんでしたので、
私が、作りこんでみました。合ってるかどうかは、謎ですが(苦笑)とりあえず、この実装で、問題は出ておりませんです…
必要とされる方は、ご自由にお使いください(もちろん、自己責任でよろしく!)

  [ComVisible(true), ComImport,
  Guid("b8e8bd60-0bfe-11d0-af91-00aa00b67a42"),
  InterfaceType( ComInterfaceType.InterfaceIsIUnknown )]
  public interface IIPDVDec
  {
    int get_IPDisplay(
      [Out] out int displayPix);
    int put_IPDisplay(
      [In] int displayPix);
  }

  public enum DVDECODERRESOLUTION
  {
    DVDECODERRESOLUTION_720x480 = 1000,
    DVDECODERRESOLUTION_360x240 = 1001,
    DVDECODERRESOLUTION_180x120 = 1002,
    DVDECODERRESOLUTION_88x60 = 1003
  }
 んでは、仕事に戻りますぅ~~


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください