« perlの1行スクリプト | メイン | あれ?アクセス数が・・・ »

2004年10月02日

吉里吉里2/KAG3ムービー拡張日誌:: BRender.axの内包

    

BRender から必要なソースをコピーし、CBaseControlVideo を継承し作成したクラスを削除、IBasicVideo インターフェイスを取得できないようにする。
代わりにIRendererBufferVideo インターフェイスを作成し、それを継承するようにし、IBasicVideo が提供していたメソッドを実装する。

krlmovie 側では基底クラスでIBasicVideo のメソッドをラップし、IBasicVideo を使用している箇所から分離、そのメソッドを継承側でオーバーライドしてIRendererBufferVideo インターフェイスのメソッドをコールするようにする。
以上のようにすることで、IBasicVideo インターフェイスがなくても動くようにした。
これでクラスファクトリがどうとか言う問題はなくなる。
また、追加されたメソッドはインターフェイスを別にしたので、コードもなかなかスッキリした。
BRender.ax をアンインストールし、動作確認。
以前と同じように動作した。
これでBRender.axは必要なくなった。

にしても、次の2つは紛らわしい。
typedef LONGLONG REFERENCE_TIME;
typedef double REFTIME;
REFERENCE_TIMEは100ナノ秒単位、REFTIMEは普通に実数で時間を保持している。

次は特定の環境でMPEG再生がうまく行かない問題の対処だな。
フィルターをつなぎ合わせるメソッドは作ってあるので、ひたすらクエリーして接続していくだけのはず。



投稿者 Takenori : 2004年10月02日 07:41




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