なんとか再生はDirectShow経由でできるようになり、エンコーダもCUIのテストバージョンからGUIのバージョンに変更して一通り完成です。
GUIにするときに、エンコード元をどうするかで迷いましたが、結局
- 連番ファイル(png,bmp)+サウンドファイル(wav)
- AVIファイルをVFWを使って
- DirectShowをつかって
をすべてサポートすることで決着して組み終わりました。
DirectShowの実装に手こずりましたが、まさかリファレンスクロックを除外するとタイミングを無視してフルスピードでグラフを再生するようになるとは知らなかったです。
ちなみに、DirectShowを実装してあるということはAVIもDirectShow経由にするとそれで終わりということに気がついたのはAVIを自前再生できるようにコードを書いてからだったりします。
ちょっとゲーム動画をエンコードしてみていましたが、動き検索が遅いなあ~という感想です。
検索しているうちにいろいろなアルゴリズムは見つかりますが、組み込んでみても自分の実装があまりよくないのか、
それほどの速度向上にならないな~という感じですね。一応SVGAレベルのシングルスレッドで1/3倍速くらいでエンコードできるようですが・・・。
後は可逆圧縮動画のテストと透過率を含んだ絵での動画テストが残っているんですね・・・。がんばらないと・・・。