Loading audio/common/6.0/types.hal +22 −0 Original line number Diff line number Diff line Loading @@ -903,6 +903,25 @@ enum AudioContentType : uint32_t { SONIFICATION = 4, }; /** Encapsulation mode used for sending audio compressed data. */ @export(name="audio_encapsulation_mode_t", value_prefix="AUDIO_ENCAPSULATION_MODE_") enum AudioEncapsulationMode : int32_t { // Do not change these values without updating their counterparts // in frameworks/base/media/java/android/media/AudioTrack.java /** * No encapsulation mode for metadata. */ NONE = 0, /** * Elementary stream payload with metadata */ ELEMENTARY_STREAM = 1, /** * Handle-based payload with metadata */ HANDLE = 2, }; /** * Additional information about the stream passed to hardware decoders. */ Loading @@ -918,6 +937,9 @@ struct AudioOffloadInfo { uint32_t bitWidth; uint32_t bufferSize; AudioUsage usage; AudioEncapsulationMode encapsulationMode; int32_t contentId; int32_t syncId; }; /** Loading audio/common/all-versions/default/HidlUtils.cpp +33 −4 Original line number Diff line number Diff line Loading @@ -28,12 +28,13 @@ namespace common { namespace CPP_VERSION { namespace implementation { void HidlUtils::audioConfigFromHal(const audio_config_t& halConfig, AudioConfig* config) { status_t HidlUtils::audioConfigFromHal(const audio_config_t& halConfig, AudioConfig* config) { config->sampleRateHz = halConfig.sample_rate; config->channelMask = EnumBitfield<AudioChannelMask>(halConfig.channel_mask); config->format = AudioFormat(halConfig.format); audioOffloadInfoFromHal(halConfig.offload_info, &config->offloadInfo); status_t status = audioOffloadInfoFromHal(halConfig.offload_info, &config->offloadInfo); config->frameCount = halConfig.frame_count; return status; } void HidlUtils::audioConfigToHal(const AudioConfig& config, audio_config_t* halConfig) { Loading Loading @@ -106,7 +107,7 @@ audio_usage_t HidlUtils::audioUsageToHal(const AudioUsage usage) { return static_cast<audio_usage_t>(usage); } void HidlUtils::audioOffloadInfoFromHal(const audio_offload_info_t& halOffload, status_t HidlUtils::audioOffloadInfoFromHal(const audio_offload_info_t& halOffload, AudioOffloadInfo* offload) { offload->sampleRateHz = halOffload.sample_rate; offload->channelMask = EnumBitfield<AudioChannelMask>(halOffload.channel_mask); Loading @@ -119,6 +120,26 @@ void HidlUtils::audioOffloadInfoFromHal(const audio_offload_info_t& halOffload, offload->bitWidth = halOffload.bit_width; offload->bufferSize = halOffload.offload_buffer_size; offload->usage = audioUsageFromHal(halOffload.usage); #if MAJOR_VERSION >= 6 if (halOffload.version >= AUDIO_OFFLOAD_INFO_VERSION_0_2) { offload->encapsulationMode = static_cast<AudioEncapsulationMode>(halOffload.encapsulation_mode); offload->contentId = halOffload.content_id; offload->syncId = halOffload.sync_id; } else { offload->encapsulationMode = AudioEncapsulationMode::NONE; offload->contentId = 0; offload->syncId = 0; } #else // nonzero values here are not compatible with HAL versions below 6. if (halOffload.version >= AUDIO_OFFLOAD_INFO_VERSION_0_2 && (halOffload.encapsulation_mode != AUDIO_ENCAPSULATION_MODE_NONE || halOffload.content_id != 0 || halOffload.sync_id != 0)) { return BAD_VALUE; } #endif return OK; } void HidlUtils::audioOffloadInfoToHal(const AudioOffloadInfo& offload, Loading @@ -135,6 +156,14 @@ void HidlUtils::audioOffloadInfoToHal(const AudioOffloadInfo& offload, halOffload->bit_width = offload.bitWidth; halOffload->offload_buffer_size = offload.bufferSize; halOffload->usage = audioUsageToHal(offload.usage); #if MAJOR_VERSION >= 6 halOffload->encapsulation_mode = static_cast<audio_encapsulation_mode_t>(offload.encapsulationMode); halOffload->content_id = offload.contentId; halOffload->sync_id = offload.syncId; #else // offload doesn't contain encapsulationMode, contentId, syncId, so this is OK. #endif } void HidlUtils::audioPortConfigFromHal(const struct audio_port_config& halConfig, Loading audio/common/all-versions/default/HidlUtils.h +10 −5 Original line number Diff line number Diff line Loading @@ -36,7 +36,10 @@ using namespace ::android::hardware::audio::common::CPP_VERSION; class HidlUtils { public: static void audioConfigFromHal(const audio_config_t& halConfig, AudioConfig* config); // A failure here indicates a platform config that is incompatible with // the compiled HIDL interface version. static status_t audioConfigFromHal(const audio_config_t& halConfig, AudioConfig* config); static void audioConfigToHal(const AudioConfig& config, audio_config_t* halConfig); static void audioGainConfigFromHal(const struct audio_gain_config& halConfig, AudioGainConfig* config); Loading @@ -46,7 +49,9 @@ class HidlUtils { static void audioGainToHal(const AudioGain& gain, struct audio_gain* halGain); static AudioUsage audioUsageFromHal(const audio_usage_t halUsage); static audio_usage_t audioUsageToHal(const AudioUsage usage); static void audioOffloadInfoFromHal(const audio_offload_info_t& halOffload, // A failure here indicates a platform offload info that is incompatible with // the compiled HIDL interface version. static status_t audioOffloadInfoFromHal(const audio_offload_info_t& halOffload, AudioOffloadInfo* offload); static void audioOffloadInfoToHal(const AudioOffloadInfo& offload, audio_offload_info_t* halOffload); Loading audio/core/all-versions/default/Device.cpp +4 −2 Original line number Diff line number Diff line Loading @@ -171,7 +171,8 @@ std::tuple<Result, sp<IStreamOut>> Device::openOutputStreamImpl(int32_t ioHandle streamOut = new StreamOut(this, halStream); ++mOpenedStreamsCount; } HidlUtils::audioConfigFromHal(halConfig, suggestedConfig); status_t convertStatus = HidlUtils::audioConfigFromHal(halConfig, suggestedConfig); ALOGW_IF(convertStatus != OK, "%s: suggested config with incompatible fields", __func__); return {analyzeStatus("open_output_stream", status, {EINVAL} /*ignore*/), streamOut}; } Loading @@ -198,7 +199,8 @@ std::tuple<Result, sp<IStreamIn>> Device::openInputStreamImpl( streamIn = new StreamIn(this, halStream); ++mOpenedStreamsCount; } HidlUtils::audioConfigFromHal(halConfig, suggestedConfig); status_t convertStatus = HidlUtils::audioConfigFromHal(halConfig, suggestedConfig); ALOGW_IF(convertStatus != OK, "%s: suggested config with incompatible fields", __func__); return {analyzeStatus("open_input_stream", status, {EINVAL} /*ignore*/), streamIn}; } Loading current.txt +1 −1 Original line number Diff line number Diff line Loading @@ -613,7 +613,7 @@ fd1f1b29f26b42e886220f04a08086c00e5ade9d7b53f095438e578ab9d42a93 android.hardwar 2df5d5866b37776f25079c0e54b54350a2abe4e025a59c9e02a7d3abe8ca00e8 android.hardware.audio@6.0::IStreamIn e6cd2b7c1a86b6ca683c0224ffde3b73aa14f6487de9f46833e539d26d1b3b5c android.hardware.audio@6.0::IStreamOut 997fdaad7a9d17ee7e01feb7031a753e2365e72ad30b11d950e9183fabdf3844 android.hardware.audio@6.0::IStreamOutCallback 167ed5cfb7d91db2e2bf20f1320c1a9004eeb768e26f535e0f7db94a21867d21 android.hardware.audio.common@6.0::types bee662c62d997d8065e2bcb5c1e7a9578931f22ce28fd02c219fdb4d0630abf7 android.hardware.audio.common@6.0::types 817930d58412d662cb45e641c50cb62c727e4a3e3ffe7029a53cad9677b97d58 android.hardware.audio.effect@6.0::types 525bec6b44f1103869c269a128d51b8dccd73af5340ba863c8886c68357c7faf android.hardware.audio.effect@6.0::IAcousticEchoCancelerEffect 8d76bbe3719d051a8e9a1dcf9244f37f5b0a491feb249fa48391edf7cb4f3131 android.hardware.audio.effect@6.0::IAutomaticGainControlEffect Loading Loading
audio/common/6.0/types.hal +22 −0 Original line number Diff line number Diff line Loading @@ -903,6 +903,25 @@ enum AudioContentType : uint32_t { SONIFICATION = 4, }; /** Encapsulation mode used for sending audio compressed data. */ @export(name="audio_encapsulation_mode_t", value_prefix="AUDIO_ENCAPSULATION_MODE_") enum AudioEncapsulationMode : int32_t { // Do not change these values without updating their counterparts // in frameworks/base/media/java/android/media/AudioTrack.java /** * No encapsulation mode for metadata. */ NONE = 0, /** * Elementary stream payload with metadata */ ELEMENTARY_STREAM = 1, /** * Handle-based payload with metadata */ HANDLE = 2, }; /** * Additional information about the stream passed to hardware decoders. */ Loading @@ -918,6 +937,9 @@ struct AudioOffloadInfo { uint32_t bitWidth; uint32_t bufferSize; AudioUsage usage; AudioEncapsulationMode encapsulationMode; int32_t contentId; int32_t syncId; }; /** Loading
audio/common/all-versions/default/HidlUtils.cpp +33 −4 Original line number Diff line number Diff line Loading @@ -28,12 +28,13 @@ namespace common { namespace CPP_VERSION { namespace implementation { void HidlUtils::audioConfigFromHal(const audio_config_t& halConfig, AudioConfig* config) { status_t HidlUtils::audioConfigFromHal(const audio_config_t& halConfig, AudioConfig* config) { config->sampleRateHz = halConfig.sample_rate; config->channelMask = EnumBitfield<AudioChannelMask>(halConfig.channel_mask); config->format = AudioFormat(halConfig.format); audioOffloadInfoFromHal(halConfig.offload_info, &config->offloadInfo); status_t status = audioOffloadInfoFromHal(halConfig.offload_info, &config->offloadInfo); config->frameCount = halConfig.frame_count; return status; } void HidlUtils::audioConfigToHal(const AudioConfig& config, audio_config_t* halConfig) { Loading Loading @@ -106,7 +107,7 @@ audio_usage_t HidlUtils::audioUsageToHal(const AudioUsage usage) { return static_cast<audio_usage_t>(usage); } void HidlUtils::audioOffloadInfoFromHal(const audio_offload_info_t& halOffload, status_t HidlUtils::audioOffloadInfoFromHal(const audio_offload_info_t& halOffload, AudioOffloadInfo* offload) { offload->sampleRateHz = halOffload.sample_rate; offload->channelMask = EnumBitfield<AudioChannelMask>(halOffload.channel_mask); Loading @@ -119,6 +120,26 @@ void HidlUtils::audioOffloadInfoFromHal(const audio_offload_info_t& halOffload, offload->bitWidth = halOffload.bit_width; offload->bufferSize = halOffload.offload_buffer_size; offload->usage = audioUsageFromHal(halOffload.usage); #if MAJOR_VERSION >= 6 if (halOffload.version >= AUDIO_OFFLOAD_INFO_VERSION_0_2) { offload->encapsulationMode = static_cast<AudioEncapsulationMode>(halOffload.encapsulation_mode); offload->contentId = halOffload.content_id; offload->syncId = halOffload.sync_id; } else { offload->encapsulationMode = AudioEncapsulationMode::NONE; offload->contentId = 0; offload->syncId = 0; } #else // nonzero values here are not compatible with HAL versions below 6. if (halOffload.version >= AUDIO_OFFLOAD_INFO_VERSION_0_2 && (halOffload.encapsulation_mode != AUDIO_ENCAPSULATION_MODE_NONE || halOffload.content_id != 0 || halOffload.sync_id != 0)) { return BAD_VALUE; } #endif return OK; } void HidlUtils::audioOffloadInfoToHal(const AudioOffloadInfo& offload, Loading @@ -135,6 +156,14 @@ void HidlUtils::audioOffloadInfoToHal(const AudioOffloadInfo& offload, halOffload->bit_width = offload.bitWidth; halOffload->offload_buffer_size = offload.bufferSize; halOffload->usage = audioUsageToHal(offload.usage); #if MAJOR_VERSION >= 6 halOffload->encapsulation_mode = static_cast<audio_encapsulation_mode_t>(offload.encapsulationMode); halOffload->content_id = offload.contentId; halOffload->sync_id = offload.syncId; #else // offload doesn't contain encapsulationMode, contentId, syncId, so this is OK. #endif } void HidlUtils::audioPortConfigFromHal(const struct audio_port_config& halConfig, Loading
audio/common/all-versions/default/HidlUtils.h +10 −5 Original line number Diff line number Diff line Loading @@ -36,7 +36,10 @@ using namespace ::android::hardware::audio::common::CPP_VERSION; class HidlUtils { public: static void audioConfigFromHal(const audio_config_t& halConfig, AudioConfig* config); // A failure here indicates a platform config that is incompatible with // the compiled HIDL interface version. static status_t audioConfigFromHal(const audio_config_t& halConfig, AudioConfig* config); static void audioConfigToHal(const AudioConfig& config, audio_config_t* halConfig); static void audioGainConfigFromHal(const struct audio_gain_config& halConfig, AudioGainConfig* config); Loading @@ -46,7 +49,9 @@ class HidlUtils { static void audioGainToHal(const AudioGain& gain, struct audio_gain* halGain); static AudioUsage audioUsageFromHal(const audio_usage_t halUsage); static audio_usage_t audioUsageToHal(const AudioUsage usage); static void audioOffloadInfoFromHal(const audio_offload_info_t& halOffload, // A failure here indicates a platform offload info that is incompatible with // the compiled HIDL interface version. static status_t audioOffloadInfoFromHal(const audio_offload_info_t& halOffload, AudioOffloadInfo* offload); static void audioOffloadInfoToHal(const AudioOffloadInfo& offload, audio_offload_info_t* halOffload); Loading
audio/core/all-versions/default/Device.cpp +4 −2 Original line number Diff line number Diff line Loading @@ -171,7 +171,8 @@ std::tuple<Result, sp<IStreamOut>> Device::openOutputStreamImpl(int32_t ioHandle streamOut = new StreamOut(this, halStream); ++mOpenedStreamsCount; } HidlUtils::audioConfigFromHal(halConfig, suggestedConfig); status_t convertStatus = HidlUtils::audioConfigFromHal(halConfig, suggestedConfig); ALOGW_IF(convertStatus != OK, "%s: suggested config with incompatible fields", __func__); return {analyzeStatus("open_output_stream", status, {EINVAL} /*ignore*/), streamOut}; } Loading @@ -198,7 +199,8 @@ std::tuple<Result, sp<IStreamIn>> Device::openInputStreamImpl( streamIn = new StreamIn(this, halStream); ++mOpenedStreamsCount; } HidlUtils::audioConfigFromHal(halConfig, suggestedConfig); status_t convertStatus = HidlUtils::audioConfigFromHal(halConfig, suggestedConfig); ALOGW_IF(convertStatus != OK, "%s: suggested config with incompatible fields", __func__); return {analyzeStatus("open_input_stream", status, {EINVAL} /*ignore*/), streamIn}; } Loading
current.txt +1 −1 Original line number Diff line number Diff line Loading @@ -613,7 +613,7 @@ fd1f1b29f26b42e886220f04a08086c00e5ade9d7b53f095438e578ab9d42a93 android.hardwar 2df5d5866b37776f25079c0e54b54350a2abe4e025a59c9e02a7d3abe8ca00e8 android.hardware.audio@6.0::IStreamIn e6cd2b7c1a86b6ca683c0224ffde3b73aa14f6487de9f46833e539d26d1b3b5c android.hardware.audio@6.0::IStreamOut 997fdaad7a9d17ee7e01feb7031a753e2365e72ad30b11d950e9183fabdf3844 android.hardware.audio@6.0::IStreamOutCallback 167ed5cfb7d91db2e2bf20f1320c1a9004eeb768e26f535e0f7db94a21867d21 android.hardware.audio.common@6.0::types bee662c62d997d8065e2bcb5c1e7a9578931f22ce28fd02c219fdb4d0630abf7 android.hardware.audio.common@6.0::types 817930d58412d662cb45e641c50cb62c727e4a3e3ffe7029a53cad9677b97d58 android.hardware.audio.effect@6.0::types 525bec6b44f1103869c269a128d51b8dccd73af5340ba863c8886c68357c7faf android.hardware.audio.effect@6.0::IAcousticEchoCancelerEffect 8d76bbe3719d051a8e9a1dcf9244f37f5b0a491feb249fa48391edf7cb4f3131 android.hardware.audio.effect@6.0::IAutomaticGainControlEffect Loading