« Win2kでのデバッグ | メイン | 分離することに »

2005年12月19日

吉里吉里 ムービー拡張日誌2:: 音なしで再生

    

オーディオレンダリングフィルタがPauseから返ってきていないだけかもしれないと思い、オーディオレンダリングフィルタを追加せずに再生してみた。
再生できた。
負荷もかなり軽い。
DirectX VAを使って再生できた。
少しうれしかったが、音がないのでまだ使えない。
いったいどうすればいいのだろう?

音が原因だとわかったので、その部分に絞って調べれば良いのだが、よくわからない。
音の出力側でもDirectX VAの設定をしてしまっているようだったので、しないようにしたが変化なし。(そもそも勘違い)

構成を変えるべきだろうか?
現状、ソースフィルタ内にDemuxとDecoderが入った構成になっているが、これをソースフィルタ内にはDemuxのみにし、Decoderは別フィルタにしてくっつけると言う方法もある。
WMF SDKのヘルプには、DemuxとDecoderがくっついたソースフィルタで作れと書かれている。(To enable DirectX VA for streamed content, you must create a custom source filter like the one in the top diagram. top diagramはDemuxとDecoderがくっついたソースフィルタの図を指している)
だけど、DirectShowに元々あるWMV用のソースフィルタ(WM ASF Reader)は、DemuxとDecoderが分離した形になっている。
GraphEditにドロップした時もこの形になり、DirectX VAが有効になる。
だから、どっちでもいいと言ったらどっちでもいいと思われる。
ただ、フィルタを分離すると少しオーバーヘッドがある。
カスタムアロケーターを作ればコピーが減らせるので、大差ないかもしれないが、現状の方が効率的だろう。

もう少し現在の構成でがんばってみるかな。
ヘルプにはWMV Decoder DMOとネゴシエートすると明確に書かれているし、図ではWMA Decoder DMOがAudio Rendererとつながっている。
だから出来そうではあるのだが・・・



投稿者 Takenori : 2005年12月19日 10:36




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