CRI ADX  Last Updated: 2024-11-26 16:51 p
ADXとSofdecを併用する際の注意点は?

ライブラリ初期化時の注意点

(1) エラーコールバック

エラーコールバック関数は全てのライブラリについて1つです。
criErr_SetCallback 関数を複数回実行すると、先に登録したコールバック関数が後から登録するコールバック関数により上書きされてしまいます。
(先に登録したコールバック関数はエラーが発生しても呼ばれなくなってしまいます。)

(2) 初期化順序

以下の順序でライブラリを初期化する必要があります。

  • (1) CRI File Systemライブラリの初期化処理 ( criFs_InitializeLibrary )
  • (2) CRI Atomライブラリの初期化処理 ( criAtomEx_Initialize_~ )
  • (3) CRI Manaライブラリの初期化処理 ( criMana_Initialize_~ )
終了処理は初期化処理とは逆の順序で行う必要があります。

  • (1) CRI Manaライブラリの終了処理 ( criMana_Finalize_~ )
  • (2) CRI Atomライブラリの終了処理 ( criAtomEx_Finalize_~ )
  • (3) CRI File Systemライブラリの終了処理 ( criFs_FinalizeLibrary )
[備考]
CRI Atomライブラリを使用する場合、CRI File Systemライブラリの初期化/終了処理は省略することも可能です。
CRI File Systemライブラリの初期化を省いた場合は、CRI File Systemライブラリの初期化処理をCRI Atomライブラリ側で行います。

(3) スレッドフレームワーク

CRI AtomライブラリとCRI File Systemライブラリには、同じスレッドフレームワークを指定する必要があります。
具体的には、各ライブラリを初期化する際、以下の構造体メンバーに同じスレッドフレームワークタイプ(スレッドモデル)を設定する必要があります。
  • CriFsConfig 構造体の thread_model メンバー
  • CriAtomExConfig 構造体の thread_model メンバー
[備考]
CRI Manaライブラリのスレッドフレームワークは、CRI AtomライブラリやCRI File Systemライブラリとは異なるスレッドモデルを設定可能です。
  • LibConfig 構造体の thread_model メンバー

ライブラリ間で共有されるリソース

(1) スレッド

CRI Atomライブラリのサーバ処理スレッドと、CRI File Systemライブラリのサーバ処理スレッドは、同一のスレッドです。
CRI Atomライブラリのスレッドプライオリティやアフィニティマスクなどのパラメーターを変更した場合、CRI File Systemライブラリのサーバー処理スレッドのパラメーターも変更されます。

(2) サーバー処理

CRI Atomライブラリのサーバー処理 ( criAtomEx_ExecuteMain 関数 ) と、CRI File Systemライブラリのサーバー処理 ( criFs_ExecuteMain関数 ) は、同一の実体を持つ関数です。
そのため、CRI AtomライブラリとCRI File Systemライブラリを併用する場合、どちらか一方のサーバー処理のみを実行してください。
(両方のサーバー処理を実行すると、処理が二重に行われます。)
[注意]
CRI Manaライブラリを併用する場合、CRI Atomライブラリのサーバー処理(またはCRI File Systemライブラリのサーバー処理)とは別に、CRI Manaライブラリのサーバー処理( criMana_ExecuteMain 関数)を実行する必要があります。

ストリーミング再生の注意点

(1) D-BAS

音声のストリーム再生とムービのストリーム再生を同時に行う場合、D-BASに指定するストリーム数と最大ビットレートには、両者を足し合わせた数を指定する必要があります。
[備考]
音声/ムービーのストリーミング以外のデータの読み込みについては、D-BAS作成時のパラメーターに加える必要はありません。
ローダー等によるデータの裏読みは、ストリーミングの空き時間にバッファリングなしに行われるため、D-BAS作成時に考慮する必要はありません。

(2) プライオリティ

音声やムービーのストリーミングは、ローダーに設定可能な最高プライオリティ ( CRIFSLOADER_PRIORITY_HIGHEST ) よりも高いプライオリティで実行されます。
そのため、ストリーム再生中に巨大なデータをローダーで読み込んだとしても、ストリーム再生中の音声やムービーが途切れることはありません。
[注意]
データの読み込みは、ストリーミングデータの読み込みに頻繁に割り込まれるため、ストリーミング中のデータ読み込みの速度は低下します。