Loading policy_hal/Android.mk +8 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,14 @@ ifeq ($(strip $(AUDIO_FEATURE_ENABLED_RECORD_PLAY_CONCURRENCY)),true) LOCAL_CFLAGS += -DRECORD_PLAY_CONCURRENCY endif ifeq ($(strip $(AUDIO_FEATURE_ENABLED_PCM_OFFLOAD)),true) LOCAL_CFLAGS += -DPCM_OFFLOAD_ENABLED endif ifeq ($(strip $(AUDIO_FEATURE_ENABLED_PCM_OFFLOAD_24)),true) LOCAL_CFLAGS += -DPCM_OFFLOAD_ENABLED_24 endif LOCAL_MODULE := libaudiopolicymanager include $(BUILD_SHARED_LIBRARY) Loading policy_hal/AudioPolicyManager.cpp +58 −29 Original line number Diff line number Diff line Loading @@ -351,21 +351,49 @@ bool AudioPolicyManagerCustom::isOffloadSupported(const audio_offload_info_t& of return false; } #endif // Check if offload has been disabled // Check if stream type is music, then only allow offload as of now. if (offloadInfo.stream_type != AUDIO_STREAM_MUSIC) { ALOGV("isOffloadSupported: stream_type != MUSIC, returning false"); return false; } char propValue[PROPERTY_VALUE_MAX]; bool pcmOffload = false; #ifdef PCM_OFFLOAD_ENABLED if ((offloadInfo.format & AUDIO_FORMAT_MAIN_MASK) == AUDIO_FORMAT_PCM_OFFLOAD) { bool prop_enabled = false; if ((AUDIO_FORMAT_PCM_16_BIT_OFFLOAD == offloadInfo.format) && property_get("audio.offload.pcm.16bit.enable", propValue, NULL)) { prop_enabled = atoi(propValue) || !strncmp("true", propValue, 4); } #ifdef PCM_OFFLOAD_ENABLED_24 if ((AUDIO_FORMAT_PCM_24_BIT_OFFLOAD == offloadInfo.format) && property_get("audio.offload.pcm.24bit.enable", propValue, NULL)) { prop_enabled = atoi(propValue) || !strncmp("true", propValue, 4); } #endif if (prop_enabled) { ALOGI("PCM offload property is enabled"); pcmOffload = true; } if (!pcmOffload) { ALOGD("system property not enabled for PCM offload format[%x]",offloadInfo.format); return false; } } #endif if (!pcmOffload) { // Check if offload has been disabled if (property_get("audio.offload.disable", propValue, "0")) { if (atoi(propValue) != 0) { ALOGV("offload disabled by audio.offload.disable=%s", propValue ); return false; } } // Check if stream type is music, then only allow offload as of now. if (offloadInfo.stream_type != AUDIO_STREAM_MUSIC) { ALOGV("isOffloadSupported: stream_type != MUSIC, returning false"); return false; } //check if it's multi-channel AAC (includes sub formats) and FLAC format if ((popcount(offloadInfo.channel_mask) > 2) && (((offloadInfo.format & AUDIO_FORMAT_MAIN_MASK) == AUDIO_FORMAT_AAC) || Loading @@ -391,6 +419,7 @@ bool AudioPolicyManagerCustom::isOffloadSupported(const audio_offload_info_t& of ALOGV("isOffloadSupported: has_video == true, returning false"); return false; } } //If duration is less than minimum value defined in property, return false if (property_get("audio.offload.min.duration.secs", propValue, NULL)) { Loading Loading
policy_hal/Android.mk +8 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,14 @@ ifeq ($(strip $(AUDIO_FEATURE_ENABLED_RECORD_PLAY_CONCURRENCY)),true) LOCAL_CFLAGS += -DRECORD_PLAY_CONCURRENCY endif ifeq ($(strip $(AUDIO_FEATURE_ENABLED_PCM_OFFLOAD)),true) LOCAL_CFLAGS += -DPCM_OFFLOAD_ENABLED endif ifeq ($(strip $(AUDIO_FEATURE_ENABLED_PCM_OFFLOAD_24)),true) LOCAL_CFLAGS += -DPCM_OFFLOAD_ENABLED_24 endif LOCAL_MODULE := libaudiopolicymanager include $(BUILD_SHARED_LIBRARY) Loading
policy_hal/AudioPolicyManager.cpp +58 −29 Original line number Diff line number Diff line Loading @@ -351,21 +351,49 @@ bool AudioPolicyManagerCustom::isOffloadSupported(const audio_offload_info_t& of return false; } #endif // Check if offload has been disabled // Check if stream type is music, then only allow offload as of now. if (offloadInfo.stream_type != AUDIO_STREAM_MUSIC) { ALOGV("isOffloadSupported: stream_type != MUSIC, returning false"); return false; } char propValue[PROPERTY_VALUE_MAX]; bool pcmOffload = false; #ifdef PCM_OFFLOAD_ENABLED if ((offloadInfo.format & AUDIO_FORMAT_MAIN_MASK) == AUDIO_FORMAT_PCM_OFFLOAD) { bool prop_enabled = false; if ((AUDIO_FORMAT_PCM_16_BIT_OFFLOAD == offloadInfo.format) && property_get("audio.offload.pcm.16bit.enable", propValue, NULL)) { prop_enabled = atoi(propValue) || !strncmp("true", propValue, 4); } #ifdef PCM_OFFLOAD_ENABLED_24 if ((AUDIO_FORMAT_PCM_24_BIT_OFFLOAD == offloadInfo.format) && property_get("audio.offload.pcm.24bit.enable", propValue, NULL)) { prop_enabled = atoi(propValue) || !strncmp("true", propValue, 4); } #endif if (prop_enabled) { ALOGI("PCM offload property is enabled"); pcmOffload = true; } if (!pcmOffload) { ALOGD("system property not enabled for PCM offload format[%x]",offloadInfo.format); return false; } } #endif if (!pcmOffload) { // Check if offload has been disabled if (property_get("audio.offload.disable", propValue, "0")) { if (atoi(propValue) != 0) { ALOGV("offload disabled by audio.offload.disable=%s", propValue ); return false; } } // Check if stream type is music, then only allow offload as of now. if (offloadInfo.stream_type != AUDIO_STREAM_MUSIC) { ALOGV("isOffloadSupported: stream_type != MUSIC, returning false"); return false; } //check if it's multi-channel AAC (includes sub formats) and FLAC format if ((popcount(offloadInfo.channel_mask) > 2) && (((offloadInfo.format & AUDIO_FORMAT_MAIN_MASK) == AUDIO_FORMAT_AAC) || Loading @@ -391,6 +419,7 @@ bool AudioPolicyManagerCustom::isOffloadSupported(const audio_offload_info_t& of ALOGV("isOffloadSupported: has_video == true, returning false"); return false; } } //If duration is less than minimum value defined in property, return false if (property_get("audio.offload.min.duration.secs", propValue, NULL)) { Loading