Last active
March 19, 2017 16:19
-
-
Save faroit/dc103520c1f52e15b7315b9c2654525a to your computer and use it in GitHub Desktop.
Add more than 8 channel support to chromium
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From 40b2c9fb9e3104f437d9f9d420f48e456c788c92 Mon Sep 17 00:00:00 2001 | |
From: Fabian-Robert Stoeter <mail@faroit.com> | |
Date: Fri, 17 Mar 2017 12:17:46 +0100 | |
Subject: [PATCH] add support for more than 8channels | |
--- | |
media/base/channel_layout.cc | 10 ++++++++-- | |
media/base/channel_layout.h | 2 +- | |
2 files changed, 9 insertions(+), 3 deletions(-) | |
diff --git a/media/base/channel_layout.cc b/media/base/channel_layout.cc | |
index 7d3e754df..eff7157e8 100644 | |
--- a/media/base/channel_layout.cc | |
+++ b/media/base/channel_layout.cc | |
@@ -166,6 +166,10 @@ int ChannelLayoutToChannelCount(ChannelLayout layout) { | |
// Converts a channel count into a channel layout. | |
ChannelLayout GuessChannelLayout(int channels) { | |
+ if (channels <= 0) { | |
+ DVLOG(1) << "Unsupported channel count: " << channels; | |
+ return CHANNEL_LAYOUT_UNSUPPORTED; | |
+ } | |
switch (channels) { | |
case 1: | |
return CHANNEL_LAYOUT_MONO; | |
@@ -184,12 +188,14 @@ ChannelLayout GuessChannelLayout(int channels) { | |
case 8: | |
return CHANNEL_LAYOUT_7_1; | |
default: | |
- DVLOG(1) << "Unsupported channel count: " << channels; | |
+ return CHANNEL_LAYOUT_DISCRETE; | |
} | |
- return CHANNEL_LAYOUT_UNSUPPORTED; | |
} | |
int ChannelOrder(ChannelLayout layout, Channels channel) { | |
+ if (layout == CHANNEL_LAYOUT_DISCRETE) | |
+ return -1; | |
+ | |
DCHECK_LT(static_cast<size_t>(layout), arraysize(kChannelOrderings)); | |
DCHECK_LT(static_cast<size_t>(channel), arraysize(kChannelOrderings[0])); | |
return kChannelOrderings[layout][channel]; | |
diff --git a/media/base/channel_layout.h b/media/base/channel_layout.h | |
index aaecf6b9e..de3e892da 100644 | |
--- a/media/base/channel_layout.h | |
+++ b/media/base/channel_layout.h | |
@@ -131,7 +131,7 @@ enum Channels { | |
// The maximum number of concurrently active channels for all possible layouts. | |
// ChannelLayoutToChannelCount() will never return a value higher than this. | |
-constexpr int kMaxConcurrentChannels = 8; | |
+constexpr int kMaxConcurrentChannels = 32; | |
// Returns the expected channel position in an interleaved stream. Values of -1 | |
// mean the channel at that index is not used for that layout. Values range | |
-- | |
2.11.0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Build arguments for release build | |
is_debug = false | |
is_component_build = false | |
is_official_build = true |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment