Loading media/audioaidlconversion/AidlConversionEffect.cpp +31 −42 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ using ::android::OK; using ::android::status_t; using ::android::base::unexpected; using ::android::effect::utils::EffectParamReader; using ::android::effect::utils::EffectParamWrapper; using ::android::effect::utils::EffectParamWriter; //////////////////////////////////////////////////////////////////////////////////////////////////// Loading Loading @@ -408,40 +409,7 @@ legacy2aidl_Parameter_Visualizer_uint32_MeasurementMode(uint32_t legacy) { } } /** * Copy the parameter area of effect_param_t to DefaultExtension::bytes. */ ConversionResult<VendorExtension> legacy2aidl_EffectParameterReader_Param_VendorExtension( EffectParamReader& param) { size_t len = param.getParameterSize(); DefaultExtension defaultExt; defaultExt.bytes.resize(len); RETURN_IF_ERROR(param.readFromParameter(defaultExt.bytes.data(), len)); VendorExtension ext; ext.extension.setParcelable(defaultExt); return ext; } /** * Copy the data area of effect_param_t to DefaultExtension::bytes. */ ConversionResult<VendorExtension> legacy2aidl_EffectParameterReader_Data_VendorExtension( EffectParamReader& param) { size_t len = param.getValueSize(); DefaultExtension defaultExt; defaultExt.bytes.resize(len); RETURN_IF_ERROR(param.readFromValue(defaultExt.bytes.data(), len)); VendorExtension ext; ext.extension.setParcelable(defaultExt); return ext; } /** * Copy DefaultExtension::bytes to the data area of effect_param_t. */ ConversionResult<status_t> aidl2legacy_VendorExtension_EffectParameterWriter_Data( ConversionResult<status_t> aidl2legacy_VendorExtension_EffectParameterWriter( EffectParamWriter& param, VendorExtension ext) { std::optional<DefaultExtension> defaultExt; RETURN_IF_ERROR(ext.extension.getParcelable(&defaultExt)); Loading @@ -449,26 +417,47 @@ ConversionResult<status_t> aidl2legacy_VendorExtension_EffectParameterWriter_Dat return unexpected(BAD_VALUE); } RETURN_IF_ERROR(param.writeToValue(defaultExt->bytes.data(), defaultExt->bytes.size())); // DefaultExtension defaultValue = defaultExt->get(); if (defaultExt->bytes.size() < sizeof(effect_param_t)) { return unexpected(BAD_VALUE); } // verify data length with EffectParamWrapper, DefaultExtension array size should not smaller // than (sizeof(effect_param_t) + paddedPSize + vSize) EffectParamWrapper wrapper(*(effect_param_t*)defaultExt->bytes.data()); if (sizeof(effect_param_t) + wrapper.getPaddedParameterSize() + wrapper.getValueSize() > defaultExt->bytes.size()) { return unexpected(BAD_VALUE); } RETURN_IF_ERROR(param.overwrite(wrapper.getEffectParam())); return OK; } ConversionResult<Parameter> legacy2aidl_EffectParameterReader_ParameterExtension( ConversionResult<VendorExtension> legacy2aidl_EffectParameterReader_VendorExtension( EffectParamReader& param) { VendorExtension ext = VALUE_OR_RETURN(legacy2aidl_EffectParameterReader_Data_VendorExtension(param)); return UNION_MAKE(Parameter, specific, UNION_MAKE(Parameter::Specific, vendorEffect, ext)); size_t len = param.getTotalSize(); DefaultExtension defaultExt; defaultExt.bytes.resize(len); std::memcpy(defaultExt.bytes.data(), (void *)¶m.getEffectParam(), len); VendorExtension ext; ext.extension.setParcelable(defaultExt); return ext; } ConversionResult<::android::status_t> aidl2legacy_ParameterExtension_EffectParameterWriter( ConversionResult<::android::status_t> aidl2legacy_Parameter_EffectParameterWriter( const ::aidl::android::hardware::audio::effect::Parameter& aidl, EffectParamWriter& legacy) { VendorExtension ext = VALUE_OR_RETURN( (::aidl::android::getParameterSpecific<Parameter, VendorExtension, Parameter::Specific::vendorEffect>(aidl))); return VALUE_OR_RETURN_STATUS( aidl2legacy_VendorExtension_EffectParameterWriter_Data(legacy, ext)); return VALUE_OR_RETURN_STATUS(aidl2legacy_VendorExtension_EffectParameterWriter(legacy, ext)); } ConversionResult<Parameter> legacy2aidl_EffectParameterReader_Parameter(EffectParamReader& param) { VendorExtension ext = VALUE_OR_RETURN(legacy2aidl_EffectParameterReader_VendorExtension(param)); return UNION_MAKE(Parameter, specific, UNION_MAKE(Parameter::Specific, vendorEffect, ext)); } } // namespace android Loading media/audioaidlconversion/include/media/AidlConversionEffect.h +18 −19 Original line number Diff line number Diff line Loading @@ -67,7 +67,7 @@ ConversionResult<F> getParameterSpecificField(const P& u) { #define VENDOR_EXTENSION_GET_AND_RETURN(_effect, _tag, _param) \ { \ aidl::android::hardware::audio::effect::VendorExtension _extId = VALUE_OR_RETURN_STATUS( \ aidl::android::legacy2aidl_EffectParameterReader_Param_VendorExtension(_param)); \ aidl::android::legacy2aidl_EffectParameterReader_VendorExtension(_param)); \ aidl::android::hardware::audio::effect::Parameter::Id _id = \ MAKE_EXTENSION_PARAMETER_ID(_effect, _tag##Tag, _extId); \ aidl::android::hardware::audio::effect::Parameter _aidlParam; \ Loading @@ -76,8 +76,7 @@ ConversionResult<F> getParameterSpecificField(const P& u) { VALUE_OR_RETURN_STATUS(GET_PARAMETER_SPECIFIC_FIELD( \ _aidlParam, _effect, _tag, _effect::vendor, VendorExtension)); \ return VALUE_OR_RETURN_STATUS( \ aidl::android::aidl2legacy_ParameterExtension_EffectParameterWriter(_aidlParam, \ _param)); \ aidl::android::aidl2legacy_Parameter_EffectParameterWriter(_aidlParam, _param)); \ } ConversionResult<uint32_t> aidl2legacy_Flags_Type_uint32( Loading Loading @@ -157,26 +156,26 @@ ConversionResult<uint32_t> aidl2legacy_Parameter_Visualizer_MeasurementMode_uint ConversionResult<::aidl::android::hardware::audio::effect::Visualizer::MeasurementMode> legacy2aidl_Parameter_Visualizer_uint32_MeasurementMode(uint32_t legacy); ConversionResult<::aidl::android::hardware::audio::effect::Parameter> legacy2aidl_EffectParameterReader_ParameterExtension( ::android::effect::utils::EffectParamReader& param); ConversionResult<::android::status_t> aidl2legacy_ParameterExtension_EffectParameterWriter( const ::aidl::android::hardware::audio::effect::Parameter& aidl, ::android::effect::utils::EffectParamWriter& legacy); ConversionResult<::aidl::android::hardware::audio::effect::VendorExtension> legacy2aidl_EffectParameterReader_Param_VendorExtension( ::android::effect::utils::EffectParamReader& param); ConversionResult<::aidl::android::hardware::audio::effect::VendorExtension> legacy2aidl_EffectParameterReader_Data_VendorExtension( ::android::effect::utils::EffectParamReader& param); /** * Read DefaultExtension from VendorExtension, and overwrite to the entire effect_param_t (both * parameter and data area) with EffectParamWriter::overwrite. */ ConversionResult<::android::status_t> aidl2legacy_VendorExtension_EffectParameterWriter_Data( ::android::effect::utils::EffectParamWriter& param, ::aidl::android::hardware::audio::effect::VendorExtension ext); ConversionResult<::aidl::android::hardware::audio::effect::Parameter> legacy2aidl_EffectParameterReader_ParameterExtension( /** * Copy the entire effect_param_t (both parameter and data area) to DefaultExtension::bytes, and * write into VendorExtension. */ ConversionResult<::aidl::android::hardware::audio::effect::VendorExtension> legacy2aidl_EffectParameterReader_VendorExtension( ::android::effect::utils::EffectParamReader& param); ConversionResult<::android::status_t> aidl2legacy_Parameter_EffectParameterWriter( const ::aidl::android::hardware::audio::effect::Parameter& aidl, ::android::effect::utils::EffectParamWriter& legacy); ConversionResult<::aidl::android::hardware::audio::effect::Parameter> legacy2aidl_EffectParameterReader_Parameter( ::android::effect::utils::EffectParamReader& param); } // namespace android } // namespace aidl media/libaudiohal/impl/effectsAidlConversion/AidlConversionAec.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -67,7 +67,7 @@ status_t AidlConversionAec::setParameter(EffectParamReader& param) { default: { // for vendor extension, copy data area to the DefaultExtension, parameter ignored VendorExtension ext = VALUE_OR_RETURN_STATUS( aidl::android::legacy2aidl_EffectParameterReader_Data_VendorExtension(param)); aidl::android::legacy2aidl_EffectParameterReader_VendorExtension(param)); aidlParam = MAKE_SPECIFIC_PARAMETER(AcousticEchoCanceler, acousticEchoCanceler, vendor, ext); RETURN_STATUS_IF_ERROR(statusTFromBinderStatus(mEffect->setParameter(aidlParam))); Loading media/libaudiohal/impl/effectsAidlConversion/AidlConversionAgc1.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -90,7 +90,7 @@ status_t AidlConversionAgc1::setParameter(EffectParamReader& param) { default: { // for vendor extension, copy data area to the DefaultExtension, parameter ignored VendorExtension ext = VALUE_OR_RETURN_STATUS( aidl::android::legacy2aidl_EffectParameterReader_Data_VendorExtension(param)); aidl::android::legacy2aidl_EffectParameterReader_VendorExtension(param)); Parameter aidlParam = MAKE_SPECIFIC_PARAMETER(AutomaticGainControlV1, automaticGainControlV1, vendor, ext); return statusTFromBinderStatus(mEffect->setParameter(aidlParam)); Loading media/libaudiohal/impl/effectsAidlConversion/AidlConversionAgc2.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -68,7 +68,7 @@ status_t AidlConversionAgc2::setParameter(EffectParamReader& param) { default: { // for vendor extension, copy data area to the DefaultExtension, parameter ignored VendorExtension ext = VALUE_OR_RETURN_STATUS( aidl::android::legacy2aidl_EffectParameterReader_Data_VendorExtension(param)); aidl::android::legacy2aidl_EffectParameterReader_VendorExtension(param)); aidlParam = MAKE_SPECIFIC_PARAMETER(AutomaticGainControlV2, automaticGainControlV2, vendor, ext); break; Loading Loading
media/audioaidlconversion/AidlConversionEffect.cpp +31 −42 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ using ::android::OK; using ::android::status_t; using ::android::base::unexpected; using ::android::effect::utils::EffectParamReader; using ::android::effect::utils::EffectParamWrapper; using ::android::effect::utils::EffectParamWriter; //////////////////////////////////////////////////////////////////////////////////////////////////// Loading Loading @@ -408,40 +409,7 @@ legacy2aidl_Parameter_Visualizer_uint32_MeasurementMode(uint32_t legacy) { } } /** * Copy the parameter area of effect_param_t to DefaultExtension::bytes. */ ConversionResult<VendorExtension> legacy2aidl_EffectParameterReader_Param_VendorExtension( EffectParamReader& param) { size_t len = param.getParameterSize(); DefaultExtension defaultExt; defaultExt.bytes.resize(len); RETURN_IF_ERROR(param.readFromParameter(defaultExt.bytes.data(), len)); VendorExtension ext; ext.extension.setParcelable(defaultExt); return ext; } /** * Copy the data area of effect_param_t to DefaultExtension::bytes. */ ConversionResult<VendorExtension> legacy2aidl_EffectParameterReader_Data_VendorExtension( EffectParamReader& param) { size_t len = param.getValueSize(); DefaultExtension defaultExt; defaultExt.bytes.resize(len); RETURN_IF_ERROR(param.readFromValue(defaultExt.bytes.data(), len)); VendorExtension ext; ext.extension.setParcelable(defaultExt); return ext; } /** * Copy DefaultExtension::bytes to the data area of effect_param_t. */ ConversionResult<status_t> aidl2legacy_VendorExtension_EffectParameterWriter_Data( ConversionResult<status_t> aidl2legacy_VendorExtension_EffectParameterWriter( EffectParamWriter& param, VendorExtension ext) { std::optional<DefaultExtension> defaultExt; RETURN_IF_ERROR(ext.extension.getParcelable(&defaultExt)); Loading @@ -449,26 +417,47 @@ ConversionResult<status_t> aidl2legacy_VendorExtension_EffectParameterWriter_Dat return unexpected(BAD_VALUE); } RETURN_IF_ERROR(param.writeToValue(defaultExt->bytes.data(), defaultExt->bytes.size())); // DefaultExtension defaultValue = defaultExt->get(); if (defaultExt->bytes.size() < sizeof(effect_param_t)) { return unexpected(BAD_VALUE); } // verify data length with EffectParamWrapper, DefaultExtension array size should not smaller // than (sizeof(effect_param_t) + paddedPSize + vSize) EffectParamWrapper wrapper(*(effect_param_t*)defaultExt->bytes.data()); if (sizeof(effect_param_t) + wrapper.getPaddedParameterSize() + wrapper.getValueSize() > defaultExt->bytes.size()) { return unexpected(BAD_VALUE); } RETURN_IF_ERROR(param.overwrite(wrapper.getEffectParam())); return OK; } ConversionResult<Parameter> legacy2aidl_EffectParameterReader_ParameterExtension( ConversionResult<VendorExtension> legacy2aidl_EffectParameterReader_VendorExtension( EffectParamReader& param) { VendorExtension ext = VALUE_OR_RETURN(legacy2aidl_EffectParameterReader_Data_VendorExtension(param)); return UNION_MAKE(Parameter, specific, UNION_MAKE(Parameter::Specific, vendorEffect, ext)); size_t len = param.getTotalSize(); DefaultExtension defaultExt; defaultExt.bytes.resize(len); std::memcpy(defaultExt.bytes.data(), (void *)¶m.getEffectParam(), len); VendorExtension ext; ext.extension.setParcelable(defaultExt); return ext; } ConversionResult<::android::status_t> aidl2legacy_ParameterExtension_EffectParameterWriter( ConversionResult<::android::status_t> aidl2legacy_Parameter_EffectParameterWriter( const ::aidl::android::hardware::audio::effect::Parameter& aidl, EffectParamWriter& legacy) { VendorExtension ext = VALUE_OR_RETURN( (::aidl::android::getParameterSpecific<Parameter, VendorExtension, Parameter::Specific::vendorEffect>(aidl))); return VALUE_OR_RETURN_STATUS( aidl2legacy_VendorExtension_EffectParameterWriter_Data(legacy, ext)); return VALUE_OR_RETURN_STATUS(aidl2legacy_VendorExtension_EffectParameterWriter(legacy, ext)); } ConversionResult<Parameter> legacy2aidl_EffectParameterReader_Parameter(EffectParamReader& param) { VendorExtension ext = VALUE_OR_RETURN(legacy2aidl_EffectParameterReader_VendorExtension(param)); return UNION_MAKE(Parameter, specific, UNION_MAKE(Parameter::Specific, vendorEffect, ext)); } } // namespace android Loading
media/audioaidlconversion/include/media/AidlConversionEffect.h +18 −19 Original line number Diff line number Diff line Loading @@ -67,7 +67,7 @@ ConversionResult<F> getParameterSpecificField(const P& u) { #define VENDOR_EXTENSION_GET_AND_RETURN(_effect, _tag, _param) \ { \ aidl::android::hardware::audio::effect::VendorExtension _extId = VALUE_OR_RETURN_STATUS( \ aidl::android::legacy2aidl_EffectParameterReader_Param_VendorExtension(_param)); \ aidl::android::legacy2aidl_EffectParameterReader_VendorExtension(_param)); \ aidl::android::hardware::audio::effect::Parameter::Id _id = \ MAKE_EXTENSION_PARAMETER_ID(_effect, _tag##Tag, _extId); \ aidl::android::hardware::audio::effect::Parameter _aidlParam; \ Loading @@ -76,8 +76,7 @@ ConversionResult<F> getParameterSpecificField(const P& u) { VALUE_OR_RETURN_STATUS(GET_PARAMETER_SPECIFIC_FIELD( \ _aidlParam, _effect, _tag, _effect::vendor, VendorExtension)); \ return VALUE_OR_RETURN_STATUS( \ aidl::android::aidl2legacy_ParameterExtension_EffectParameterWriter(_aidlParam, \ _param)); \ aidl::android::aidl2legacy_Parameter_EffectParameterWriter(_aidlParam, _param)); \ } ConversionResult<uint32_t> aidl2legacy_Flags_Type_uint32( Loading Loading @@ -157,26 +156,26 @@ ConversionResult<uint32_t> aidl2legacy_Parameter_Visualizer_MeasurementMode_uint ConversionResult<::aidl::android::hardware::audio::effect::Visualizer::MeasurementMode> legacy2aidl_Parameter_Visualizer_uint32_MeasurementMode(uint32_t legacy); ConversionResult<::aidl::android::hardware::audio::effect::Parameter> legacy2aidl_EffectParameterReader_ParameterExtension( ::android::effect::utils::EffectParamReader& param); ConversionResult<::android::status_t> aidl2legacy_ParameterExtension_EffectParameterWriter( const ::aidl::android::hardware::audio::effect::Parameter& aidl, ::android::effect::utils::EffectParamWriter& legacy); ConversionResult<::aidl::android::hardware::audio::effect::VendorExtension> legacy2aidl_EffectParameterReader_Param_VendorExtension( ::android::effect::utils::EffectParamReader& param); ConversionResult<::aidl::android::hardware::audio::effect::VendorExtension> legacy2aidl_EffectParameterReader_Data_VendorExtension( ::android::effect::utils::EffectParamReader& param); /** * Read DefaultExtension from VendorExtension, and overwrite to the entire effect_param_t (both * parameter and data area) with EffectParamWriter::overwrite. */ ConversionResult<::android::status_t> aidl2legacy_VendorExtension_EffectParameterWriter_Data( ::android::effect::utils::EffectParamWriter& param, ::aidl::android::hardware::audio::effect::VendorExtension ext); ConversionResult<::aidl::android::hardware::audio::effect::Parameter> legacy2aidl_EffectParameterReader_ParameterExtension( /** * Copy the entire effect_param_t (both parameter and data area) to DefaultExtension::bytes, and * write into VendorExtension. */ ConversionResult<::aidl::android::hardware::audio::effect::VendorExtension> legacy2aidl_EffectParameterReader_VendorExtension( ::android::effect::utils::EffectParamReader& param); ConversionResult<::android::status_t> aidl2legacy_Parameter_EffectParameterWriter( const ::aidl::android::hardware::audio::effect::Parameter& aidl, ::android::effect::utils::EffectParamWriter& legacy); ConversionResult<::aidl::android::hardware::audio::effect::Parameter> legacy2aidl_EffectParameterReader_Parameter( ::android::effect::utils::EffectParamReader& param); } // namespace android } // namespace aidl
media/libaudiohal/impl/effectsAidlConversion/AidlConversionAec.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -67,7 +67,7 @@ status_t AidlConversionAec::setParameter(EffectParamReader& param) { default: { // for vendor extension, copy data area to the DefaultExtension, parameter ignored VendorExtension ext = VALUE_OR_RETURN_STATUS( aidl::android::legacy2aidl_EffectParameterReader_Data_VendorExtension(param)); aidl::android::legacy2aidl_EffectParameterReader_VendorExtension(param)); aidlParam = MAKE_SPECIFIC_PARAMETER(AcousticEchoCanceler, acousticEchoCanceler, vendor, ext); RETURN_STATUS_IF_ERROR(statusTFromBinderStatus(mEffect->setParameter(aidlParam))); Loading
media/libaudiohal/impl/effectsAidlConversion/AidlConversionAgc1.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -90,7 +90,7 @@ status_t AidlConversionAgc1::setParameter(EffectParamReader& param) { default: { // for vendor extension, copy data area to the DefaultExtension, parameter ignored VendorExtension ext = VALUE_OR_RETURN_STATUS( aidl::android::legacy2aidl_EffectParameterReader_Data_VendorExtension(param)); aidl::android::legacy2aidl_EffectParameterReader_VendorExtension(param)); Parameter aidlParam = MAKE_SPECIFIC_PARAMETER(AutomaticGainControlV1, automaticGainControlV1, vendor, ext); return statusTFromBinderStatus(mEffect->setParameter(aidlParam)); Loading
media/libaudiohal/impl/effectsAidlConversion/AidlConversionAgc2.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -68,7 +68,7 @@ status_t AidlConversionAgc2::setParameter(EffectParamReader& param) { default: { // for vendor extension, copy data area to the DefaultExtension, parameter ignored VendorExtension ext = VALUE_OR_RETURN_STATUS( aidl::android::legacy2aidl_EffectParameterReader_Data_VendorExtension(param)); aidl::android::legacy2aidl_EffectParameterReader_VendorExtension(param)); aidlParam = MAKE_SPECIFIC_PARAMETER(AutomaticGainControlV2, automaticGainControlV2, vendor, ext); break; Loading