Bug 1432779 - P2. Add L3F2_BACK layout shortcuts. r?padenot draft
authorJean-Yves Avenard <jyavenard@mozilla.com>
Fri, 09 Mar 2018 13:51:40 +0100
changeset 768199 5d908eb5101c4d03ad142ca242693e18ea8434dc
parent 768198 8d34537428bec861fbfef37f1fd533760af2e15d
child 768200 dcdd1003dfd64afc6ec1b5085db6938bd1fc85b3
push id102819
push userbmo:jyavenard@mozilla.com
push dateThu, 15 Mar 2018 19:46:59 +0000
reviewerspadenot
bugs1432779
milestone61.0a1
Bug 1432779 - P2. Add L3F2_BACK layout shortcuts. r?padenot MozReview-Commit-ID: LKVt88dWKdg
dom/media/AudioConfig.cpp
dom/media/AudioConfig.h
--- a/dom/media/AudioConfig.cpp
+++ b/dom/media/AudioConfig.cpp
@@ -88,16 +88,25 @@ ChannelLayout ChannelLayout::L3F2{ CHANN
                                    CHANNEL_FRONT_RIGHT,
                                    CHANNEL_FRONT_CENTER,
                                    CHANNEL_SIDE_LEFT,
                                    CHANNEL_SIDE_RIGHT };
 ChannelLayout ChannelLayout::L3F2_LFE{
   CHANNEL_FRONT_LEFT, CHANNEL_FRONT_RIGHT, CHANNEL_FRONT_CENTER,
   CHANNEL_LFE,        CHANNEL_SIDE_LEFT,   CHANNEL_SIDE_RIGHT
 };
+ChannelLayout ChannelLayout::L3F2_BACK{ CHANNEL_FRONT_LEFT,
+                                        CHANNEL_FRONT_RIGHT,
+                                        CHANNEL_FRONT_CENTER,
+                                        CHANNEL_BACK_LEFT,
+                                        CHANNEL_BACK_RIGHT };
+ChannelLayout ChannelLayout::L3F2_BACK_LFE{
+  CHANNEL_FRONT_LEFT, CHANNEL_FRONT_RIGHT, CHANNEL_FRONT_CENTER,
+  CHANNEL_LFE,        CHANNEL_BACK_LEFT,   CHANNEL_BACK_RIGHT
+};
 ChannelLayout ChannelLayout::L5POINT1_SURROUND = ChannelLayout::L3F2_LFE;
 
 ChannelLayout ChannelLayout::L3F3R_LFE{
   CHANNEL_FRONT_LEFT,  CHANNEL_FRONT_RIGHT, CHANNEL_FRONT_CENTER, CHANNEL_LFE,
   CHANNEL_BACK_CENTER, CHANNEL_SIDE_LEFT,   CHANNEL_SIDE_RIGHT
 };
 ChannelLayout ChannelLayout::L3F4_LFE{
   CHANNEL_FRONT_LEFT, CHANNEL_FRONT_RIGHT, CHANNEL_FRONT_CENTER,
@@ -207,16 +216,18 @@ AudioConfig::ChannelLayout::SMPTEDefault
   MOZ_ASSERT(L2F1_LFE_MAP == L2F1_LFE.Map());
   MOZ_ASSERT(L3F1_MAP == L3F1.Map());
   MOZ_ASSERT(L3F1_LFE_MAP == L3F1_LFE.Map());
   MOZ_ASSERT(L2F2_MAP == L2F2.Map());
   MOZ_ASSERT(L2F2_LFE_MAP == L2F2_LFE.Map());
   MOZ_ASSERT(LQUAD_MAP == LQUAD.Map());
   MOZ_ASSERT(L3F2_MAP == L3F2.Map());
   MOZ_ASSERT(L3F2_LFE_MAP == L3F2_LFE.Map());
+  MOZ_ASSERT(L3F2_BACK_MAP == L3F2_BACK.Map());
+  MOZ_ASSERT(L3F2_BACK_LFE_MAP == L3F2_BACK_LFE.Map());
   MOZ_ASSERT(L3F3R_LFE_MAP == L3F3R_LFE.Map());
   MOZ_ASSERT(L3F4_LFE_MAP == L3F4_LFE.Map());
 
   // First handle the most common cases.
   switch (aMap) {
     case LMONO_MAP: return LMONO;
     case LMONO_LFE_MAP: return LMONO_LFE;
     case LSTEREO_MAP: return LSTEREO;
@@ -227,16 +238,18 @@ AudioConfig::ChannelLayout::SMPTEDefault
     case L2F1_LFE_MAP: return L2F1_LFE;
     case L3F1_MAP: return L3F1;
     case L3F1_LFE_MAP: return L3F1_LFE;
     case L2F2_MAP: return L2F2;
     case L2F2_LFE_MAP: return L2F2_LFE;
     case LQUAD_MAP: return LQUAD;
     case L3F2_MAP: return L3F2;
     case L3F2_LFE_MAP: return L3F2_LFE;
+    case L3F2_BACK_MAP: return L3F2_BACK;
+    case L3F2_BACK_LFE_MAP: return L3F2_BACK_LFE;
     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;
 
--- a/dom/media/AudioConfig.h
+++ b/dom/media/AudioConfig.h
@@ -170,16 +170,24 @@ public:
     static ChannelLayout L3F2_LFE;
     static constexpr ChannelMap L3F2_LFE_MAP =
       1 << CHANNEL_FRONT_LEFT | 1 << CHANNEL_FRONT_RIGHT |
       1 << CHANNEL_FRONT_CENTER | 1 << CHANNEL_LFE | 1 << CHANNEL_SIDE_LEFT |
       1 << CHANNEL_SIDE_RIGHT;
     // 3F2_LFE Alias
     static ChannelLayout L5POINT1_SURROUND;
     static constexpr ChannelMap L5POINT1_SURROUND_MAP = L3F2_LFE_MAP;
+    static ChannelLayout L3F2_BACK;
+    static constexpr ChannelMap L3F2_BACK_MAP =
+      1 << CHANNEL_FRONT_LEFT | 1 << CHANNEL_FRONT_RIGHT |
+      1 << CHANNEL_FRONT_CENTER | 1 << CHANNEL_BACK_LEFT |
+      1 << CHANNEL_BACK_RIGHT;
+    static ChannelLayout L3F2_BACK_LFE;
+    static constexpr ChannelMap L3F2_BACK_LFE_MAP =
+      L3F2_BACK_MAP | 1 << CHANNEL_LFE;
     static ChannelLayout L3F3R_LFE;
     static constexpr ChannelMap L3F3R_LFE_MAP =
       1 << CHANNEL_FRONT_LEFT | 1 << CHANNEL_FRONT_RIGHT |
       1 << CHANNEL_FRONT_CENTER | 1 << CHANNEL_LFE | 1 << CHANNEL_BACK_CENTER |
       1 << CHANNEL_SIDE_LEFT | 1 << CHANNEL_SIDE_RIGHT;
     static ChannelLayout L3F4_LFE;
     static constexpr ChannelMap L3F4_LFE_MAP =
       1 << CHANNEL_FRONT_LEFT | 1 << CHANNEL_FRONT_RIGHT |