« DirectX VAネゴシエーション ステップ訳 | メイン | インプレイスフィルタ with VMR »

2005年10月24日

吉里吉里 ムービー拡張日誌2:: Async Readerでないと無理

    

パトラッシュ、僕はもう疲れたよ。

IWMSyncReaderとCSource/CSourceStreamの組み合わせで、ソースフィルタを作った。
再生も出来た。
DirectX VAのネゴシエーションも組んだ。
が、IWMReaderAcceleratorインターフェイスがもらえません。
IWMSyncReaderインターフェイスは、IWMReaderAcceleratorを実装していないと返ってくる。
ヘルプをよく読むと、IWMReaderを使わないとDirectX VAが使えないっぽい。
なんてことだ orz
OnSampleが非同期でコールされるスタイルでは、ソースフィルタを組みづらいためIWMSyncReaderにして作ったのに、それらが水泡に帰した。
ま、TheoraやVFAPIを実装する場合、現在の構造でやることになるので、まったくの無駄ってことはないのだが。

IWMReaderでOnSampleがコールバックされるスタイルで組むのなら、ソースフィルタにスレッドと、バッファのキューを持たせて、OnSample時にレンダーが受け取れなかったらキューにデータを入れて、イベントをスレッドに投げて起こして、起こされたスレッドはレンダーが受け取れるまでポーリングする。
もし、キューにデータが多くなりすぎたら、IWMReaderの再生を一時停止するか、データを捨てるかする。
と言った実装になるだろうか。

よし、1時間ぐらい現実逃避してからリトライだ。



投稿者 Takenori : 2005年10月24日 20:11




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