Loading media/libaudiohal/Android.bp +6 −0 Original line number Diff line number Diff line Loading @@ -74,6 +74,12 @@ cc_library_shared { cc_library_headers { name: "libaudiohal_headers", header_libs: [ "libeffectsconfig_headers", ], export_header_lib_headers: ["libeffectsconfig_headers"], export_include_dirs: ["include"], } Loading media/libaudiohal/impl/Android.bp +3 −1 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ cc_defaults { "android.hidl.allocator@1.0", "android.hidl.memory@1.0", "libaudiohal_deathhandler", "libeffectsconfig", "libhidlbase", "libhidlmemory", ], Loading Loading @@ -281,15 +282,16 @@ cc_library_shared { "android.hardware.common.fmq-V1-ndk", ], shared_libs: [ "libbinder_ndk", "libaudio_aidl_conversion_common_cpp", "libaudio_aidl_conversion_common_ndk", "libaudio_aidl_conversion_core_ndk", "libaudio_aidl_conversion_effect_ndk", "libaudioaidlcommon", "libbinder_ndk", ], header_libs: [ "libaudio_system_headers", "libeffectsconfig_headers", ], cflags: [ "-Wall", Loading media/libaudiohal/impl/EffectsFactoryHalAidl.cpp +14 −6 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ //#define LOG_NDEBUG 0 #include <error/expected_utils.h> #include <aidl/android/media/audio/common/AudioStreamType.h> #include <android/binder_manager.h> #include <media/AidlConversionCppNdk.h> #include <media/AidlConversionEffect.h> Loading @@ -35,11 +36,13 @@ #include "EffectsFactoryHalAidl.h" using ::aidl::android::legacy2aidl_audio_uuid_t_AudioUuid; using aidl::android::aidl_utils::statusTFromBinderStatus; using aidl::android::hardware::audio::effect::Descriptor; using aidl::android::hardware::audio::effect::IFactory; using aidl::android::media::audio::common::AudioUuid; using android::detail::AudioHalVersionInfo; using ::aidl::android::aidl_utils::statusTFromBinderStatus; using ::aidl::android::hardware::audio::effect::Descriptor; using ::aidl::android::hardware::audio::effect::IFactory; using ::aidl::android::hardware::audio::effect::Processing; using ::aidl::android::media::audio::common::AudioUuid; using ::android::base::unexpected; using ::android::detail::AudioHalVersionInfo; namespace android { namespace effect { Loading Loading @@ -92,7 +95,8 @@ EffectsFactoryHalAidl::EffectsFactoryHalAidl(std::shared_ptr<IFactory> effectsFa [](const Descriptor& desc) { return !desc.common.id.proxy.has_value(); }); return list; }()), mEffectCount(mNonProxyDescList.size() + mProxyDescList.size()) { mEffectCount(mNonProxyDescList.size() + mProxyDescList.size()), mEffectProcessings(INVALID_EFFECT_PROCESSING) { ALOG_ASSERT(mFactory != nullptr, "Provided IEffectsFactory service is NULL"); ALOGI("%s with %zu nonProxyEffects and %zu proxyEffects", __func__, mNonProxyDescList.size(), mProxyDescList.size()); Loading Loading @@ -269,6 +273,10 @@ bool EffectsFactoryHalAidl::isProxyEffect(const AudioUuid& uuid) const { return 0 != mUuidProxyMap.count(uuid); } const effectsConfig::EffectProcessings& EffectsFactoryHalAidl::getProcessings() const { return mEffectProcessings; } } // namespace effect // When a shared library is built from a static library, even explicit Loading media/libaudiohal/impl/EffectsFactoryHalAidl.h +4 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,8 @@ class EffectsFactoryHalAidl final : public EffectsFactoryHalInterface { detail::AudioHalVersionInfo getHalVersion() const override; const effectsConfig::EffectProcessings& getProcessings() const override; private: const std::shared_ptr<IFactory> mFactory; const detail::AudioHalVersionInfo mHalVersion; Loading @@ -77,6 +79,8 @@ class EffectsFactoryHalAidl final : public EffectsFactoryHalInterface { const std::vector<Descriptor> mNonProxyDescList; // total number of effects including proxy effects const size_t mEffectCount; // Query result and all processing from effect factory const effectsConfig::EffectProcessings mEffectProcessings; std::mutex mLock; uint64_t mEffectIdCounter GUARDED_BY(mLock) = 0; // Align with HIDL (0 is INVALID_ID) Loading media/libaudiohal/impl/EffectsFactoryHalHidl.cpp +17 −2 Original line number Diff line number Diff line Loading @@ -33,10 +33,11 @@ #include "android/media/AudioHalVersion.h" using ::android::base::unexpected; using ::android::detail::AudioHalVersionInfo; using ::android::hardware::Return; using ::android::hardware::audio::common::CPP_VERSION::implementation::UuidUtils; using ::android::hardware::audio::effect::CPP_VERSION::implementation::EffectUtils; using ::android::hardware::Return; namespace android { namespace effect { Loading Loading @@ -78,7 +79,17 @@ EffectDescriptorCache::QueryResult EffectDescriptorCache::queryAllDescriptors( } EffectsFactoryHalHidl::EffectsFactoryHalHidl(sp<IEffectsFactory> effectsFactory) : EffectConversionHelperHidl("EffectsFactory"), mCache(new EffectDescriptorCache) { : EffectConversionHelperHidl("EffectsFactory"), mCache(new EffectDescriptorCache), mEffectProcessings([&]() -> effectsConfig::EffectProcessings { effectsConfig::EffectProcessings processings; const auto& parseResult = effectsConfig::parse(); if (!parseResult.parsedConfig) { return INVALID_EFFECT_PROCESSING; } return {parseResult.nbSkippedElement, parseResult.parsedConfig->preprocess, parseResult.parsedConfig->postprocess, parseResult.parsedConfig->deviceprocess}; }()) { ALOG_ASSERT(effectsFactory != nullptr, "Provided IEffectsFactory service is NULL"); mEffectsFactory = std::move(effectsFactory); } Loading Loading @@ -228,6 +239,10 @@ AudioHalVersionInfo EffectsFactoryHalHidl::getHalVersion() const { return AudioHalVersionInfo(AudioHalVersionInfo::Type::HIDL, MAJOR_VERSION, MINOR_VERSION); } const effectsConfig::EffectProcessings& EffectsFactoryHalHidl::getProcessings() const { return mEffectProcessings; } } // namespace effect // When a shared library is built from a static library, even explicit Loading Loading
media/libaudiohal/Android.bp +6 −0 Original line number Diff line number Diff line Loading @@ -74,6 +74,12 @@ cc_library_shared { cc_library_headers { name: "libaudiohal_headers", header_libs: [ "libeffectsconfig_headers", ], export_header_lib_headers: ["libeffectsconfig_headers"], export_include_dirs: ["include"], } Loading
media/libaudiohal/impl/Android.bp +3 −1 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ cc_defaults { "android.hidl.allocator@1.0", "android.hidl.memory@1.0", "libaudiohal_deathhandler", "libeffectsconfig", "libhidlbase", "libhidlmemory", ], Loading Loading @@ -281,15 +282,16 @@ cc_library_shared { "android.hardware.common.fmq-V1-ndk", ], shared_libs: [ "libbinder_ndk", "libaudio_aidl_conversion_common_cpp", "libaudio_aidl_conversion_common_ndk", "libaudio_aidl_conversion_core_ndk", "libaudio_aidl_conversion_effect_ndk", "libaudioaidlcommon", "libbinder_ndk", ], header_libs: [ "libaudio_system_headers", "libeffectsconfig_headers", ], cflags: [ "-Wall", Loading
media/libaudiohal/impl/EffectsFactoryHalAidl.cpp +14 −6 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ //#define LOG_NDEBUG 0 #include <error/expected_utils.h> #include <aidl/android/media/audio/common/AudioStreamType.h> #include <android/binder_manager.h> #include <media/AidlConversionCppNdk.h> #include <media/AidlConversionEffect.h> Loading @@ -35,11 +36,13 @@ #include "EffectsFactoryHalAidl.h" using ::aidl::android::legacy2aidl_audio_uuid_t_AudioUuid; using aidl::android::aidl_utils::statusTFromBinderStatus; using aidl::android::hardware::audio::effect::Descriptor; using aidl::android::hardware::audio::effect::IFactory; using aidl::android::media::audio::common::AudioUuid; using android::detail::AudioHalVersionInfo; using ::aidl::android::aidl_utils::statusTFromBinderStatus; using ::aidl::android::hardware::audio::effect::Descriptor; using ::aidl::android::hardware::audio::effect::IFactory; using ::aidl::android::hardware::audio::effect::Processing; using ::aidl::android::media::audio::common::AudioUuid; using ::android::base::unexpected; using ::android::detail::AudioHalVersionInfo; namespace android { namespace effect { Loading Loading @@ -92,7 +95,8 @@ EffectsFactoryHalAidl::EffectsFactoryHalAidl(std::shared_ptr<IFactory> effectsFa [](const Descriptor& desc) { return !desc.common.id.proxy.has_value(); }); return list; }()), mEffectCount(mNonProxyDescList.size() + mProxyDescList.size()) { mEffectCount(mNonProxyDescList.size() + mProxyDescList.size()), mEffectProcessings(INVALID_EFFECT_PROCESSING) { ALOG_ASSERT(mFactory != nullptr, "Provided IEffectsFactory service is NULL"); ALOGI("%s with %zu nonProxyEffects and %zu proxyEffects", __func__, mNonProxyDescList.size(), mProxyDescList.size()); Loading Loading @@ -269,6 +273,10 @@ bool EffectsFactoryHalAidl::isProxyEffect(const AudioUuid& uuid) const { return 0 != mUuidProxyMap.count(uuid); } const effectsConfig::EffectProcessings& EffectsFactoryHalAidl::getProcessings() const { return mEffectProcessings; } } // namespace effect // When a shared library is built from a static library, even explicit Loading
media/libaudiohal/impl/EffectsFactoryHalAidl.h +4 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,8 @@ class EffectsFactoryHalAidl final : public EffectsFactoryHalInterface { detail::AudioHalVersionInfo getHalVersion() const override; const effectsConfig::EffectProcessings& getProcessings() const override; private: const std::shared_ptr<IFactory> mFactory; const detail::AudioHalVersionInfo mHalVersion; Loading @@ -77,6 +79,8 @@ class EffectsFactoryHalAidl final : public EffectsFactoryHalInterface { const std::vector<Descriptor> mNonProxyDescList; // total number of effects including proxy effects const size_t mEffectCount; // Query result and all processing from effect factory const effectsConfig::EffectProcessings mEffectProcessings; std::mutex mLock; uint64_t mEffectIdCounter GUARDED_BY(mLock) = 0; // Align with HIDL (0 is INVALID_ID) Loading
media/libaudiohal/impl/EffectsFactoryHalHidl.cpp +17 −2 Original line number Diff line number Diff line Loading @@ -33,10 +33,11 @@ #include "android/media/AudioHalVersion.h" using ::android::base::unexpected; using ::android::detail::AudioHalVersionInfo; using ::android::hardware::Return; using ::android::hardware::audio::common::CPP_VERSION::implementation::UuidUtils; using ::android::hardware::audio::effect::CPP_VERSION::implementation::EffectUtils; using ::android::hardware::Return; namespace android { namespace effect { Loading Loading @@ -78,7 +79,17 @@ EffectDescriptorCache::QueryResult EffectDescriptorCache::queryAllDescriptors( } EffectsFactoryHalHidl::EffectsFactoryHalHidl(sp<IEffectsFactory> effectsFactory) : EffectConversionHelperHidl("EffectsFactory"), mCache(new EffectDescriptorCache) { : EffectConversionHelperHidl("EffectsFactory"), mCache(new EffectDescriptorCache), mEffectProcessings([&]() -> effectsConfig::EffectProcessings { effectsConfig::EffectProcessings processings; const auto& parseResult = effectsConfig::parse(); if (!parseResult.parsedConfig) { return INVALID_EFFECT_PROCESSING; } return {parseResult.nbSkippedElement, parseResult.parsedConfig->preprocess, parseResult.parsedConfig->postprocess, parseResult.parsedConfig->deviceprocess}; }()) { ALOG_ASSERT(effectsFactory != nullptr, "Provided IEffectsFactory service is NULL"); mEffectsFactory = std::move(effectsFactory); } Loading Loading @@ -228,6 +239,10 @@ AudioHalVersionInfo EffectsFactoryHalHidl::getHalVersion() const { return AudioHalVersionInfo(AudioHalVersionInfo::Type::HIDL, MAJOR_VERSION, MINOR_VERSION); } const effectsConfig::EffectProcessings& EffectsFactoryHalHidl::getProcessings() const { return mEffectProcessings; } } // namespace effect // When a shared library is built from a static library, even explicit Loading