summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMingming Yin <mingming@codeaurora.org>2013-11-13 15:27:44 -0800
committerSteve Kondik <shade@chemlab.org>2013-12-27 17:11:11 -0800
commit55a3ee8a78d74a1e5b280555dea4f7b05eef6022 (patch)
tree0e7ef5e958243536e06f23a2ee5f4b4310dc5553
parent0d27bcbc289c656a1e63cc602380bdf9e2aa9061 (diff)
downloadandroid_hardware_libhardware_legacy-55a3ee8a78d74a1e5b280555dea4f7b05eef6022.tar.gz
android_hardware_libhardware_legacy-55a3ee8a78d74a1e5b280555dea4f7b05eef6022.tar.bz2
android_hardware_libhardware_legacy-55a3ee8a78d74a1e5b280555dea4f7b05eef6022.zip
audio: Add support for DOLBY DD+ decoding
- Add DOLBY AC3/EAC3 format enums - Use offload profile for DOLBY decoding regardless of duration Change-Id: I2c9738fa34635304aeca8fb529dbe8c2aa5e528d
-rw-r--r--audio/Android.mk3
-rw-r--r--audio/AudioPolicyManagerBase.cpp12
2 files changed, 14 insertions, 1 deletions
diff --git a/audio/Android.mk b/audio/Android.mk
index 1430471..c6bf3d7 100644
--- a/audio/Android.mk
+++ b/audio/Android.mk
@@ -46,6 +46,9 @@ LOCAL_CFLAGS += -DAUDIO_EXTN_FORMATS_ENABLED
endif
endif
+ifneq ($(strip $(AUDIO_FEATURE_DISABLED_DS1_DOLBY_DDP)),true)
+LOCAL_CFLAGS += -DAUDIO_EXTN_DS1_DOLBY_DDP_ENABLED
+endif
LOCAL_STATIC_LIBRARIES := libmedia_helper
LOCAL_MODULE := libaudiopolicy_legacy
diff --git a/audio/AudioPolicyManagerBase.cpp b/audio/AudioPolicyManagerBase.cpp
index d648428..f423d66 100644
--- a/audio/AudioPolicyManagerBase.cpp
+++ b/audio/AudioPolicyManagerBase.cpp
@@ -1526,7 +1526,10 @@ bool AudioPolicyManagerBase::isOffloadSupported(const audio_offload_info_t& offl
}
} else if (offloadInfo.duration_us < OFFLOAD_DEFAULT_MIN_DURATION_SECS * 1000000) {
ALOGV("Offload denied by duration < default min(=%u)", OFFLOAD_DEFAULT_MIN_DURATION_SECS);
- return false;
+ //duration checks only valid for MP3/AAC formats,
+ //do not check duration for other audio formats, e.g. dolby AAC/AC3 and amrwb+ formats
+ if (offloadInfo.format == AUDIO_FORMAT_MP3 || offloadInfo.format == AUDIO_FORMAT_AAC)
+ return false;
}
// Do not allow offloading if one non offloadable effect is enabled. This prevents from
@@ -3790,6 +3793,13 @@ const struct StringToEnum sOutChannelsNameToEnumTable[] = {
STRING_TO_ENUM(AUDIO_CHANNEL_OUT_6POINT1),
#endif
STRING_TO_ENUM(AUDIO_CHANNEL_OUT_7POINT1),
+#ifdef AUDIO_EXTN_DS1_DOLBY_DDP_ENABLED
+ STRING_TO_ENUM(AUDIO_CHANNEL_OUT_2POINT1),
+ STRING_TO_ENUM(AUDIO_CHANNEL_OUT_QUAD),
+ STRING_TO_ENUM(AUDIO_CHANNEL_OUT_SURROUND),
+ STRING_TO_ENUM(AUDIO_CHANNEL_OUT_PENTA),
+ STRING_TO_ENUM(AUDIO_CHANNEL_OUT_6POINT1),
+#endif
};
const struct StringToEnum sInChannelsNameToEnumTable[] = {