|
▼L.Entisさん:
> とりあえず、良くあるミスに、eriInitializeLibrary 関数を呼び出していないことが考えられますがいかがでしょうか?
> ソースのほうに検索を掛けてみただけですが、eriInitializeLibrary 関数を呼び出している部分が見当たりません。
> 因みに、eriInitializeLibrary を呼び出さなくても可逆フォーマットは再生できると思います。
>※ライブラリ自体の仕様としては、何はともあれ eriInitializeLibrary 関数を呼び出すことになっているわけですが
はうっΣ( ̄▽ ̄;)
まさしくそれでした(ι´Д`)
erinaf.docの方ばかり見ていて、
specifications.docは途中までしか見ていませんでした……Σ( ̄▽ ̄;)
おかげさまで、正常動作させることができました。
ありがとうございます。
#いつもDLLとか、最初のメソッド呼び出し時に自動でInitializeするタイプの
#ライブラリしか使って無かったので、明示的に呼び出すって概念が、
#すっかり抜けてしまっていましたΣ( ̄▽ ̄;)
ところで、ココで新たな疑問が湧いたのですが、
eriInitializeTask() と eriCloseTask()が必要になると、
スレッド間で共有する場合とかに、どうなっちゃうのでしょうか?
例えば、今のLilithでは、
メインスレッドでデコーダオブジェクトの作成(デコーダの初期化)が行われ、
サウンドライブラリ側の再生スレッド内でデコードが行われます。
eriInitializeTask() と eriCloseTask()が必要な形に変わった場合、
正常な動作は期待できなくなるのでしょうか?
そうすると、デコードとデコーダの初期化は、
同一スレッド上で行うようにしなくてはならないですよね。
オブジェクト自体を今までのように任意のスレッドで共有できるようにするには、
デコーダオブジェクト内でスレッドを生成して、
そこですべての動作を行う非同期モデルに変更する必要があります。
そのあたり、どうなる予定でしょうか?
また、LibraryおよぼTaskのInitializeとCloseには、
参照カウントがありますか?
それとも、各々1回ずつでなくてはダメなのでしょうか?
|
|