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

October 02, 2004

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 : October 2, 2004 07:41 PM

Trackback Pings

このエントリーのトラックバックURL:
http://blog.kaede-software.com/mt-tb.cgi/237

コメント

Total : Today : Yesterday :