Bug 1432779 - P1. Fix ChannelLayout calculation for uncommon layouts. r?padenot draft
authorJean-Yves Avenard <jyavenard@mozilla.com>
Fri, 09 Mar 2018 13:44:11 +0100
changeset 768198 8d34537428bec861fbfef37f1fd533760af2e15d
parent 768197 851fab60a28ba001c7f1c9bd81289da0d7764310
child 768199 5d908eb5101c4d03ad142ca242693e18ea8434dc
push id102819
push userbmo:jyavenard@mozilla.com
push dateThu, 15 Mar 2018 19:46:59 +0000
reviewerspadenot
bugs1432779
milestone61.0a1
Bug 1432779 - P1. Fix ChannelLayout calculation for uncommon layouts. r?padenot MozReview-Commit-ID: Fi5ESBhziOp
dom/media/AudioConfig.cpp
--- 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
 {