Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'extern/audaspace/src/respec/ChannelMapperReader.cpp')
-rw-r--r--extern/audaspace/src/respec/ChannelMapperReader.cpp19
1 files changed, 11 insertions, 8 deletions
diff --git a/extern/audaspace/src/respec/ChannelMapperReader.cpp b/extern/audaspace/src/respec/ChannelMapperReader.cpp
index 1af5e70bfc8..e0063d5c4a2 100644
--- a/extern/audaspace/src/respec/ChannelMapperReader.cpp
+++ b/extern/audaspace/src/respec/ChannelMapperReader.cpp
@@ -97,12 +97,15 @@ void ChannelMapperReader::calculateMapping()
for(int i = 0; i < m_source_channels * m_target_channels; i++)
m_mapping[i] = 0;
- const Channel* source_channels = CHANNEL_MAPS[m_source_channels - 1];
- const Channel* target_channels = CHANNEL_MAPS[m_target_channels - 1];
+ const Channels source_channel_count = std::min(m_source_channels, CHANNELS_SURROUND71);
+ const Channels target_channel_count = std::min(m_target_channels, CHANNELS_SURROUND71);
+
+ const Channel* source_channels = CHANNEL_MAPS[source_channel_count - 1];
+ const Channel* target_channels = CHANNEL_MAPS[target_channel_count - 1];
int lfe = -1;
- for(int i = 0; i < m_target_channels; i++)
+ for(int i = 0; i < target_channel_count; i++)
{
if(target_channels[i] == CHANNEL_LFE)
{
@@ -111,16 +114,16 @@ void ChannelMapperReader::calculateMapping()
}
}
- const float* source_angles = CHANNEL_ANGLES[m_source_channels - 1];
- const float* target_angles = CHANNEL_ANGLES[m_target_channels - 1];
+ const float* source_angles = CHANNEL_ANGLES[source_channel_count - 1];
+ const float* target_angles = CHANNEL_ANGLES[target_channel_count - 1];
- if(m_source_channels == CHANNELS_MONO)
+ if(source_channel_count == CHANNELS_MONO)
source_angles = &m_mono_angle;
int channel_left, channel_right;
float angle_left, angle_right, angle;
- for(int i = 0; i < m_source_channels; i++)
+ for(int i = 0; i < source_channel_count; i++)
{
if(source_channels[i] == CHANNEL_LFE)
{
@@ -134,7 +137,7 @@ void ChannelMapperReader::calculateMapping()
angle_left = -2 * M_PI;
angle_right = 2 * M_PI;
- for(int j = 0; j < m_target_channels; j++)
+ for(int j = 0; j < target_channel_count; j++)
{
if(j == lfe)
continue;