結局 Media Foundation 用のコーデックを書いているのですが、その間に調べたことをメモ。

  • メディアタイプのサブタイプの指定は GUID だけで行う。DirectShow みたいに BITMAPINFOHEADER の biCompression/biBitCount は併用しない。
  • RGB フォーマットである MFVideoFormat_RGB32 などはトップダウンフォーマットである。DirectShow での MEDIASUBTYPE_RGB32 などのようなボトムアップフォーマットはたぶん存在しない。(独自に D3DFORMAT や FourCC を定義すれば別だが)
  • サブタイプに MEDIASUBTYPE_RGB32 を指定すると、MFVideoFormat_RGB32 として扱われるぽい。結果として、上下反転した映像になる。
  • おそらく AVI2.0 (OpenDML) のファイルを開くことができない(Windows 自身が開くコンポーネントを提供していないだけなので、どこかから入手してくれば開けるはず)。デスクトップアプリである Windows Media Player(Windows 7/Vista のものを含む)の場合は DirectShow にフォールバックするのでそれほど問題ないが、Metro スタイルの WMP Metro スタイルアプリである「ビデオ」の場合は Media Foundation しか使えないので再生できない。一応、「Windows Media Player で開いてみる?」と聞いてくるが、はいと答えると関連付けの設定が変更されてしまう。
  • Media Foundation 自身の話ではないが、SDK ツールである TopoEdit(DirectShow における GraphEdit に相当するもの)で映像を再生すると縦横半分に縮小して表示される。何故。
Trackback

no comment untill now

Add your comment now