CRI Sofdec  Last Updated: 2024-09-25 20:36 p
サンプル: ADXとの同時ストリーミング再生
このサンプルプログラムでは、ADXと同時にストリーミング再生を行う場合に調整すべきポイントを紹介しています。

調整が必要なパラメーター

ADXとの同時ストリーミング再生で調整すべきパラメーターは下記の二つです。
  1. CRI File Systemライブラリの初期化設定構造体 (CriFsConfig)の設定
  2. ADXのD-BAS作成パラメーター構造体 (CriDbasConfig)の設定

1.CRI File Systemライブラリの初期化設定構造体 (CriFsConfig)の設定
/* CriFileSystemの初期化構造体の設定 */
/* 以下は、オーディオとムービーを同時にストリーミング再生した場合の設定 */
config_fs.thread_model = CRIFS_THREAD_MODEL_MULTI;
config_fs.num_binders = 1; /* AWBハンドルにつき一つ消費する */
config_fs.num_loaders = NUM_VOICES + /* 最大同時に再生するストリーミング(Audio+Video)の本数分必要 */
NUM_MOVIES; /* Manaプレーヤーハンドルにつき一つローダーを消費 */
config_fs.num_group_loaders = 0; /* AtomEx, Manaライブラリの内部では使用しません */
config_fs.num_stdio_handles = 0; /* AtomEx, Manaライブラリの内部では使用しません */
config_fs.num_installers = 0; /* AtomEx, Manaライブラリの内部では使用しません */
config_fs.max_binds = 1; /* AWBハンドルにつき一つ消費する */
config_fs.max_files = 1+1; /* 最大同時にオープンするファイル数 ここではAWB+USMの二つ */
config_fs.max_path = CRIFS_CONFIG_DEFAULT_MAX_PATH;
/* CriAtomExライブラリの初期化 */
/* 再生するオーディオの仕様にあわせて適宜修正してください */
criAtomEx_SetDefaultConfig_PC(&config_atom);
config_atom.atom_ex.fs_config = &config_fs; /* 上で設定したCriFsConfigをセット */
criAtomEx_Initialize_PC(&config_atom, NULL, 0);


CRI Manaライブラリでは、Manaプレーヤーハンドル作成につき、ストリーミング再生時にCriFileSystemのライブラリのcriFsLoaderハンドルを一つ消費します。 それ以外のリソースは使用しませんが、最大同時ファイルオープン数にムービーファイルもカウントされますので注意してください。


ADXと同時にストリーミング再生をする場合は、このManaプレーヤーハンドル側のリソース消費も加味した上で、その使用状況に応じてCriFsConfig構造体を調整してください。

2.ADXのD-BAS作成パラメーター構造体 (CriDbasConfig)の設定
/* D-BASの作成 */
/* ムービーのストリーミング再生と同時に音声ストリーミングをする場合、 */
/* ムービー再生を考慮してD-BASを設定する必要があります。 */
/* ムービー再生中にオーディオのストリーミングをしない場合は必要ありません */
config_dbas.identifier = 0; /* アプリ任意の識別子 */
config_dbas.max_bps = AUDIO_MAXBPS + MOVIE_MAXBPS; /* 瞬間最大ビットレート (ムービーのビットレートも加味) */
config_dbas.max_streams = NUM_VOICES + NUM_MOVIES; /* 最大ストリーミング数 (ムービーのストリーム本数も加味) */
app_obj->dbas_id = criAtomDbas_Create(&config_dbas, NULL, 0);
app_obj->dbas_size = criAtomDbas_CalculateWorkSize(&config_dbas); /* D-BASのワークサイズを記録 */


ADXのD-BASのバッファーサイズに対しても、ムービーのストリーミング再生を考慮する必要があります。


CriAtomDbasConfig構造体に対して、同時に再生するムービーの最大ビットレートとストリーム本数を足し合わせます。 ムービーをメモリ再生する場合には考慮する必要はありません。



[備考]
ADXとSofdecを併用についての詳細は「ADXマニュアル」の「Tips」で説明しています。