CriAtomDbasConfig dbas_config; CriSint32 dbas_wrok_size; void* dbas_work; CriAtomDbasId dbas_id; criAtomDbas_SetDefaultConfig(&dbas_config); dbas_wrok_size = criAtomDbas_CalculateWorkSize(&dbas_config); dbas_work = malloc((size_t)dbas_wrok_size); dbas_id = criAtomDbas_Create(&dbas_config, dbas_work, dbas_wrok_size);
CriSint32 adx_bps; CriSint32 hca_bps; CriAtomDbasConfig dbas_config; CriSint32 dbas_wrok_size; void* dbas_work; CriAtomDbasId dbas_id; /* ステレオ 48 kHz ADXデータのビットレートを計算 */ adx_bps = criAtom_CalculateAdxBitrate(2, 48000); /* ステレオ 48 kHz 高品質 HCAデータのビットレートを計算 */ hca_bps = criAtom_CalculateHcaBitrate(2, 48000, CRIATOM_ENCODE_QUALITY_HIGH); criAtomDbas_SetDefaultConfig(&dbas_config); /* ストリーミング本数は合計4本 */ dbas_config.max_streams = 4; /* ステレオ 48 kHz ADXデータを2本、ステレオ 48 kHz 高品質 HCAデータを2本の合計ビットレートを設定 */ dbas_config.max_bps = adx_bps * 2 + hca_bps * 2; dbas_wrok_size = criAtomDbas_CalculateWorkSize(&dbas_config); dbas_work = malloc((size_t)dbas_wrok_size); dbas_id = criAtomDbas_Create(&dbas_config, dbas_work, dbas_wrok_size);
CriSint32 adx_bps; CriSint32 hca_bps; CriAtomDbasConfig dbas_config; CriSint32 dbas_wrok_size; void* dbas_work; CriAtomDbasId dbas_id; /* ステレオ 48 kHz ADXデータのビットレートを計算 */ adx_bps = criAtom_CalculateAdxBitrate(2, 48000); /* ステレオ 48 kHz 高品質 HCAデータのビットレートを計算 */ hca_bps = criAtom_CalculateHcaBitrate(2, 48000, CRIATOM_ENCODE_QUALITY_HIGH); criAtomDbas_SetDefaultConfig(&dbas_config); /* ストリーミング本数は合計4本 */ dbas_config.max_streams = 4; /* ステレオ 48 kHz ADXデータを2本、ステレオ 48 kHz 高品質 HCAデータを2本の合計ビットレートを設定 */ dbas_config.max_bps = adx_bps * 2 + hca_bps * 2; dbas_wrok_size = criAtomDbas_CalculateWorkSize(&dbas_config); dbas_work = malloc((size_t)dbas_wrok_size); dbas_id = criAtomDbas_Create(&dbas_config, dbas_work, dbas_wrok_size); : : : /* シーンチェンジ */ : : : /* 既存D-BASの破棄 */ /* 注意)ストリーミング再生中の音声があると、停止待ちによりブロックする */ criAtomDbas_Destroy(dbas_id); /* パラメーターを変えて作り直し */ criAtomDbas_SetDefaultConfig(&dbas_config); /* ストリーミング本数を合計2本へ変更 */ dbas_config.max_streams = 2; /* 全てステレオ 48 kHz 高品質 HCAデータ */ dbas_config.max_bps = hca_bps * 2; dbas_wrok_size = criAtomDbas_CalculateWorkSize(&dbas_config); dbas_work = malloc((size_t)dbas_wrok_size); dbas_id = criAtomDbas_Create(&dbas_config, dbas_work, dbas_wrok_size);
CriAtomDbasConfig dbas_config; CriSint32 dbas_wrok_size; void* dbas_work; CriAtomDbasId dbas_id; criAtomDbas_SetDefaultConfig(&dbas_config); /* シーンAのストリーミング本数を設定 */ dbas_config.max_streams = 16; /* シーンBの再生ビットレートを設定 */ dbas_config.max_bps = 2 * 1000 * 1000; /* 2 mbps */ dbas_wrok_size = criAtomDbas_CalculateWorkSize(&dbas_config); dbas_work = malloc((size_t)dbas_wrok_size); dbas_id = criAtomDbas_Create(&dbas_config, dbas_work, dbas_wrok_size);
CriAtomStreamingInfo streaming_info; CriBool is_succeeded; is_succeeded = criAtom_GetStreamingInfo(streaming_info); if (is_succeeded == CRI_TRUE) { /* 最大値を覚えておく */ if (actual_max_streams < streaming_info.num_streaming) { actual_max_streams = streaming_info.num_streaming; } /* 最大値を覚えておく */ if (actual_max_bps < streaming_info.total_bps) { actual_max_bps = streaming_info.total_bps; } } : : : /* アプリケーション終了時にコンソール出力 */ printf("Actual Max Streams:%d\n", actual_max_streams); printf("Actual Max Bitrate:%d\n", actual_max_bps);
CriAtomDbasConfig dbas_config; CriSint32 dbas_wrok_size; void* dbas_work; CriAtomDbasId dbas_id; const CriSint32 atom_streams = 4; /* オーディオストリーミングは4本 */ const CriSint32 atom_bps = 320 * 1000; /* 320 kbps */ const CriSint32 mana_streams = 1; /* ムービーストリーミングは1本 */ const CriSint32 mana_bps = 15 * 1000 * 1000; /* 15 mbps */ criAtomDbas_SetDefaultConfig(&dbas_config); /* ムービー分を加味 */ dbas_config.max_streams = atom_streams + mana_streams; dbas_config.max_bps = atom_bps + mana_bps; /* ムービー分のストリーム本数、ビットレートをD-BASに伝える */ dbas_config.max_mana_streams = mana_streams; dbas_config.max_mana_bps = mana_bps; dbas_wrok_size = criAtomDbas_CalculateWorkSize(&dbas_config); dbas_work = malloc((size_t)dbas_wrok_size); dbas_id = criAtomDbas_Create(&dbas_config, dbas_work, dbas_wrok_size);