Bug 1432779 - P1. Fix ChannelLayout calculation for uncommon layouts. r?padenot
MozReview-Commit-ID: Fi5ESBhziOp
--- a/dom/media/AudioConfig.cpp
+++ b/dom/media/AudioConfig.cpp
@@ -235,26 +235,27 @@ AudioConfig::ChannelLayout::SMPTEDefault
case L3F3R_LFE_MAP: return L3F3R_LFE;
case L3F4_LFE_MAP: return L3F4_LFE;
default:
break;
}
AutoTArray<Channel, MAX_AUDIO_CHANNELS> layout;
uint32_t channels = 0;
- uint32_t i = 1;
+ uint32_t i = 0;
while (aMap) {
if (aMap & 1) {
layout.AppendElement(static_cast<Channel>(i));
channels++;
if (channels > MAX_AUDIO_CHANNELS) {
return ChannelLayout();
}
}
aMap >>= 1;
+ i++;
}
return ChannelLayout(channels, layout.Elements());
}
bool
AudioConfig::ChannelLayout::MappingTable(const ChannelLayout& aOther,
uint8_t* aMap) const
{