« エンコードしてみる | メイン | MPEG2のライセンス »

2005年10月14日

動画エンコーダー開発:: MPEG2をつなげようとする

    

Graph Edit上で試したところ、PowerDVD XPのフィルターは無理だった。
なぜか常にOverlayMixerを間に入れようとする。
で、WinDVD 2000のフィルターで試すとつながらなかったが、単にメディアタイプが一致しないのが問題のようだ。
ソースを見ると、様々なフォーマットに対応している。
そこで、つなげるコードを組んでみることにした。
が、なぜかWinDVD 2000のフィルターをインスタンス化しようとすると落ちる。CoCreateInstanseのパラメタを変更してみるも効果なし。
デバッガでステップ実行していていたら、そこで突然落ちる。
なんだろう?
Graph Editならインスタンス化出来るのに。

Graph Editでは、フィルタを選択出来る。
つまり、フィルタを列挙してから、ユーザーが選択したものをインスタンス化している。
なので、それにならってフィルタを列挙してから、BindObjectでインスタンス化する方法で書いてみたら、BindObjectで落ちた。

さっぱりわからない。
で、なんとなくReleaseビルドしてみて、実行するとインスタンス化の後の、フィルタが接続できませんってエラーが投げられてきた。
なぜだかわからないけど、Releaseビルドだとインスタンス化出来るようだ。
でも、やはりつなげられないのは変わらない。
接続部分のソースコードを追ってみると、かなりの形式に対応しているのだが……
Major TypeやSub Typeの問題ではなさそうな気がする。
Format Typeを見ると、FORMAT_VideoInfoのみに対応している。
確か、MPEG2はFORMAT_VideoInfo2を使うと言う記述がどこかにあったようななかったような。
と言うことで、次はFORMAT_VideoInfo2をサポートするようにしてみることにした。



投稿者 Takenori : 2005年10月14日 01:16




comments powered by Disqus
Total : Today : Yesterday : なかのひと