コミットメタ情報

リビジョンa7c21e08c54e71b89f3abf85a1fd32f7d77e60f9 (tree)
日時2019-01-31 23:25:04
作者yyagi <yyagi.dtxmania@gmai...>
コミッターyyagi

ログメッセージ

#37271 ミキシング高速化ではないが、各サウンドストリームのバッファ更新に用いるスレッド数を増やした。(1→論理コア数)。これで多少はサウンド処理の負荷が軽減するはず。
#xxxxx WASAPI/ASIO使用時にRIFF chunked MP3のファイルを開いたときのログ出力を見直した。それとわかるような詳しめの情報を出力するように変更。

変更サマリ

差分

--- a/FDK/コード/03.サウンド/CSound.cs
+++ b/FDK/コード/03.サウンド/CSound.cs
@@ -350,7 +350,13 @@ namespace FDK
350350 //}
351351 if ( soundDeviceType == ESoundDeviceType.ExclusiveWASAPI || soundDeviceType == ESoundDeviceType.ASIO || soundDeviceType == ESoundDeviceType.SharedWASAPI )
352352 {
353- //Bass.BASS_SetConfig( BASSConfig.BASS_CONFIG_UPDATETHREADS, 4 );
353+ #region [ CPU論理コア数の取得 (HT含む) ]
354+ CWin32.SYSTEM_INFO sysInfo = new CWin32.SYSTEM_INFO();
355+ CWin32.GetSystemInfo(ref sysInfo);
356+ int nCPUCores = (int)sysInfo.dwNumberOfProcessors;
357+ #endregion
358+
359+ Bass.BASS_SetConfig( BASSConfig.BASS_CONFIG_UPDATETHREADS, nCPUCores );
354360 //Bass.BASS_SetConfig( BASSConfig.BASS_CONFIG_UPDATEPERIOD, 0 );
355361
356362 Trace.TraceInformation( "BASS_CONFIG_UpdatePeriod=" + Bass.BASS_GetConfig( BASSConfig.BASS_CONFIG_UPDATEPERIOD ) );
@@ -1715,14 +1721,19 @@ Debug.WriteLine("更に再生に失敗: " + Path.GetFileName(this.strファイ
17151721 }
17161722 }
17171723 }
1724+ // 以下、SharpDX.Multimedia.SoundStreamの生成に失敗した場合の処置
17181725 catch ( InvalidDataException e)
17191726 {
1720- // DirectShowでのデコードに失敗したら、次はACMでのデコードを試すことになるため、ここではエラーログを出さない。
17211727 Trace.TraceWarning( "Warning: {0}: デコードに失敗しました。別の方法でデコードします。({1})", Path.GetFileName(strファイル名), e.Message );
17221728 }
1723- catch ( Exception e)
1729+ catch ( InvalidOperationException e) // RIFF chunked mp3の場合は、ここに来る
17241730 {
17251731 // DirectShowでのデコードに失敗したら、次はACMでのデコードを試すことになるため、ここではエラーログを出さない。
1732+ Trace.TraceWarning("Warning: {0}: RIFF Chunked MP3はSharpDXで扱えないため、別の方法でデコードします。({1})", Path.GetFileName(strファイル名), e.Message );
1733+
1734+ }
1735+ catch ( Exception e)
1736+ {
17261737 Trace.TraceWarning( "Warning: {0}: 読み込みに失敗しました。別の方法でデコードします。({1})", Path.GetFileName( strファイル名 ), e.Message );
17271738 }
17281739 #endregion
旧リポジトリブラウザで表示