Merge "Add vendor extension effect example"

This commit is contained in:
Treehugger Robot
2023-03-07 02:22:08 +00:00
committed by Gerrit Code Review
36 changed files with 52 additions and 47 deletions

View File

@@ -39,7 +39,7 @@ union AcousticEchoCanceler {
boolean mobileMode;
@VintfStability
union Id {
int vendorExtensionTag;
android.hardware.audio.effect.VendorExtension vendorExtensionTag;
android.hardware.audio.effect.AcousticEchoCanceler.Tag commonTag;
}
}

View File

@@ -40,7 +40,7 @@ union AutomaticGainControlV1 {
boolean enableLimiter;
@VintfStability
union Id {
int vendorExtensionTag;
android.hardware.audio.effect.VendorExtension vendorExtensionTag;
android.hardware.audio.effect.AutomaticGainControlV1.Tag commonTag;
}
}

View File

@@ -40,7 +40,7 @@ union AutomaticGainControlV2 {
int saturationMarginMb;
@VintfStability
union Id {
int vendorExtensionTag;
android.hardware.audio.effect.VendorExtension vendorExtensionTag;
android.hardware.audio.effect.AutomaticGainControlV2.Tag commonTag;
}
@Backing(type="int") @VintfStability

View File

@@ -38,7 +38,7 @@ union BassBoost {
int strengthPm;
@VintfStability
union Id {
int vendorExtensionTag;
android.hardware.audio.effect.VendorExtension vendorExtensionTag;
android.hardware.audio.effect.BassBoost.Tag commonTag;
}
}

View File

@@ -38,7 +38,7 @@ union Downmix {
android.hardware.audio.effect.Downmix.Type type;
@VintfStability
union Id {
int vendorExtensionTag;
android.hardware.audio.effect.VendorExtension vendorExtensionTag;
android.hardware.audio.effect.Downmix.Tag commonTag;
}
@VintfStability

View File

@@ -34,7 +34,7 @@
package android.hardware.audio.effect;
@VintfStability
union DynamicsProcessing {
android.hardware.audio.effect.VendorExtension vendorExtension;
android.hardware.audio.effect.VendorExtension vendor;
android.hardware.audio.effect.DynamicsProcessing.EngineArchitecture engineArchitecture;
android.hardware.audio.effect.DynamicsProcessing.ChannelConfig[] preEq;
android.hardware.audio.effect.DynamicsProcessing.ChannelConfig[] postEq;
@@ -46,7 +46,7 @@ union DynamicsProcessing {
android.hardware.audio.effect.DynamicsProcessing.InputGain[] inputGain;
@VintfStability
union Id {
int vendorExtensionTag;
android.hardware.audio.effect.VendorExtension vendorExtensionTag;
android.hardware.audio.effect.DynamicsProcessing.Tag commonTag;
}
enum ResolutionPreference {

View File

@@ -48,7 +48,7 @@ union EnvironmentalReverb {
boolean bypass;
@VintfStability
union Id {
int vendorExtensionTag;
android.hardware.audio.effect.VendorExtension vendorExtensionTag;
android.hardware.audio.effect.EnvironmentalReverb.Tag commonTag;
}
}

View File

@@ -34,7 +34,7 @@
package android.hardware.audio.effect;
@VintfStability
union Equalizer {
android.hardware.audio.effect.VendorExtension vendorExtension;
android.hardware.audio.effect.VendorExtension vendor;
android.hardware.audio.effect.Equalizer.BandLevel[] bandLevels;
int preset;
int[] centerFreqMh;
@@ -42,7 +42,7 @@ union Equalizer {
android.hardware.audio.effect.Equalizer.Preset[] presets;
@VintfStability
union Id {
int vendorExtensionTag;
android.hardware.audio.effect.VendorExtension vendorExtensionTag;
android.hardware.audio.effect.Equalizer.Tag commonTag;
}
@VintfStability

View File

@@ -34,12 +34,12 @@
package android.hardware.audio.effect;
@VintfStability
union HapticGenerator {
android.hardware.audio.effect.VendorExtension vendorExtension;
android.hardware.audio.effect.VendorExtension vendor;
android.hardware.audio.effect.HapticGenerator.HapticScale[] hapticScales;
android.hardware.audio.effect.HapticGenerator.VibratorInformation vibratorInfo;
@VintfStability
union Id {
int vendorExtensionTag;
android.hardware.audio.effect.VendorExtension vendorExtensionTag;
android.hardware.audio.effect.HapticGenerator.Tag commonTag;
}
@Backing(type="int") @VintfStability

View File

@@ -38,7 +38,7 @@ union LoudnessEnhancer {
int gainMb;
@VintfStability
union Id {
int vendorExtensionTag;
android.hardware.audio.effect.VendorExtension vendorExtensionTag;
android.hardware.audio.effect.LoudnessEnhancer.Tag commonTag;
}
}

View File

@@ -39,7 +39,7 @@ union NoiseSuppression {
android.hardware.audio.effect.NoiseSuppression.Type type;
@VintfStability
union Id {
int vendorExtensionTag;
android.hardware.audio.effect.VendorExtension vendorExtensionTag;
android.hardware.audio.effect.NoiseSuppression.Tag commonTag;
}
@Backing(type="int") @VintfStability

View File

@@ -42,7 +42,7 @@ union Parameter {
android.hardware.audio.effect.Parameter.Specific specific;
@VintfStability
union Id {
int vendorEffectTag;
android.hardware.audio.effect.VendorExtension vendorEffectTag;
android.hardware.audio.effect.AcousticEchoCanceler.Id acousticEchoCancelerTag;
android.hardware.audio.effect.AutomaticGainControlV1.Id automaticGainControlV1Tag;
android.hardware.audio.effect.AutomaticGainControlV2.Id automaticGainControlV2Tag;

View File

@@ -49,7 +49,7 @@ union PresetReverb {
}
@VintfStability
union Id {
int vendorExtensionTag;
android.hardware.audio.effect.VendorExtension vendorExtensionTag;
android.hardware.audio.effect.PresetReverb.Tag commonTag;
}
}

View File

@@ -40,7 +40,7 @@ union Virtualizer {
android.media.audio.common.AudioDeviceDescription device;
@VintfStability
union Id {
int vendorExtensionTag;
android.hardware.audio.effect.VendorExtension vendorExtensionTag;
android.hardware.audio.effect.Virtualizer.Tag commonTag;
android.hardware.audio.effect.Virtualizer.SpeakerAnglesPayload speakerAnglesPayload;
}

View File

@@ -44,7 +44,7 @@ union Visualizer {
android.hardware.audio.effect.Visualizer.MeasurementMode measurementMode;
@VintfStability
union Id {
int vendorExtensionTag;
android.hardware.audio.effect.VendorExtension vendorExtensionTag;
android.hardware.audio.effect.Visualizer.Tag commonTag;
}
@VintfStability

View File

@@ -39,7 +39,7 @@ union Volume {
boolean mute;
@VintfStability
union Id {
int vendorExtensionTag;
android.hardware.audio.effect.VendorExtension vendorExtensionTag;
android.hardware.audio.effect.Volume.Tag commonTag;
}
}

View File

@@ -33,7 +33,7 @@ union AcousticEchoCanceler {
*/
@VintfStability
union Id {
int vendorExtensionTag;
VendorExtension vendorExtensionTag;
AcousticEchoCanceler.Tag commonTag;
}

View File

@@ -35,7 +35,7 @@ union AutomaticGainControlV1 {
*/
@VintfStability
union Id {
int vendorExtensionTag;
VendorExtension vendorExtensionTag;
AutomaticGainControlV1.Tag commonTag;
}

View File

@@ -36,7 +36,7 @@ union AutomaticGainControlV2 {
*/
@VintfStability
union Id {
int vendorExtensionTag;
VendorExtension vendorExtensionTag;
AutomaticGainControlV2.Tag commonTag;
}

View File

@@ -32,7 +32,7 @@ union BassBoost {
*/
@VintfStability
union Id {
int vendorExtensionTag;
VendorExtension vendorExtensionTag;
BassBoost.Tag commonTag;
}

View File

@@ -31,7 +31,7 @@ union Downmix {
*/
@VintfStability
union Id {
int vendorExtensionTag;
VendorExtension vendorExtensionTag;
Downmix.Tag commonTag;
}

View File

@@ -32,14 +32,14 @@ union DynamicsProcessing {
*/
@VintfStability
union Id {
int vendorExtensionTag;
VendorExtension vendorExtensionTag;
DynamicsProcessing.Tag commonTag;
}
/**
* Vendor DynamicsProcessing implementation definition for additional parameters.
*/
VendorExtension vendorExtension;
VendorExtension vendor;
/**
* Resolution preference definition.

View File

@@ -33,7 +33,7 @@ union EnvironmentalReverb {
*/
@VintfStability
union Id {
int vendorExtensionTag;
VendorExtension vendorExtensionTag;
EnvironmentalReverb.Tag commonTag;
}

View File

@@ -31,14 +31,14 @@ union Equalizer {
*/
@VintfStability
union Id {
int vendorExtensionTag;
VendorExtension vendorExtensionTag;
Equalizer.Tag commonTag;
}
/**
* Vendor Equalizer implementation definition for additional parameters.
*/
VendorExtension vendorExtension;
VendorExtension vendor;
/**
* Level setting for each band in millibels.

View File

@@ -33,14 +33,14 @@ union HapticGenerator {
*/
@VintfStability
union Id {
int vendorExtensionTag;
VendorExtension vendorExtensionTag;
HapticGenerator.Tag commonTag;
}
/**
* Vendor HapticGenerator implementation definition for additional parameters.
*/
VendorExtension vendorExtension;
VendorExtension vendor;
@VintfStability
@Backing(type="int")

View File

@@ -32,7 +32,7 @@ union LoudnessEnhancer {
*/
@VintfStability
union Id {
int vendorExtensionTag;
VendorExtension vendorExtensionTag;
LoudnessEnhancer.Tag commonTag;
}

View File

@@ -35,7 +35,7 @@ union NoiseSuppression {
*/
@VintfStability
union Id {
int vendorExtensionTag;
VendorExtension vendorExtensionTag;
NoiseSuppression.Tag commonTag;
}

View File

@@ -66,10 +66,10 @@ union Parameter {
@VintfStability
union Id {
/**
* Parameter tag defined for vendor effects. Use int here so there is flexibility for vendor
* to define different tag.
* Parameter tag defined for vendor effects. Use VendorExtension here so it's possible to
* pass customized information.
*/
int vendorEffectTag;
VendorExtension vendorEffectTag;
/**
* Parameter tag defined for nested parameters. Can be used to get any parameter defined in
* nested Union structure.

View File

@@ -68,7 +68,7 @@ union PresetReverb {
*/
@VintfStability
union Id {
int vendorExtensionTag;
VendorExtension vendorExtensionTag;
PresetReverb.Tag commonTag;
}

View File

@@ -34,7 +34,7 @@ union Virtualizer {
*/
@VintfStability
union Id {
int vendorExtensionTag;
VendorExtension vendorExtensionTag;
Virtualizer.Tag commonTag;
SpeakerAnglesPayload speakerAnglesPayload;
}

View File

@@ -33,7 +33,7 @@ union Visualizer {
*/
@VintfStability
union Id {
int vendorExtensionTag;
VendorExtension vendorExtensionTag;
Visualizer.Tag commonTag;
}
Id id;

View File

@@ -31,7 +31,7 @@ union Volume {
*/
@VintfStability
union Id {
int vendorExtensionTag;
VendorExtension vendorExtensionTag;
Volume.Tag commonTag;
}

View File

@@ -170,7 +170,7 @@ ndk::ScopedAStatus DynamicsProcessingSw::setParameterSpecific(const Parameter::S
EX_ILLEGAL_ARGUMENT, "inputGainCfgFailed");
return ndk::ScopedAStatus::ok();
}
case DynamicsProcessing::vendorExtension: {
case DynamicsProcessing::vendor: {
LOG(ERROR) << __func__ << " unsupported tag: " << toString(tag);
return ndk::ScopedAStatus::fromExceptionCodeWithMessage(
EX_ILLEGAL_ARGUMENT, "DynamicsProcessingTagNotSupported");
@@ -237,7 +237,7 @@ ndk::ScopedAStatus DynamicsProcessingSw::getParameterDynamicsProcessing(
dpParam.set<DynamicsProcessing::inputGain>(mContext->getInputGainCfgs());
break;
}
case DynamicsProcessing::vendorExtension: {
case DynamicsProcessing::vendor: {
LOG(ERROR) << __func__ << " unsupported tag: " << toString(tag);
return ndk::ScopedAStatus::fromExceptionCodeWithMessage(
EX_ILLEGAL_ARGUMENT, "DynamicsProcessingTagNotSupported");

View File

@@ -88,7 +88,7 @@ ndk::ScopedAStatus ExtensionEffect::setParameterSpecific(const Parameter::Specif
std::optional<DefaultExtension> defaultExt;
RETURN_IF(STATUS_OK != vendorEffect.extension.getParcelable(&defaultExt), EX_ILLEGAL_ARGUMENT,
"getParcelableFailed");
RETURN_IF(!defaultExt.has_value(), EX_ILLEGAL_ARGUMENT, "parcelableNulld");
RETURN_IF(!defaultExt.has_value(), EX_ILLEGAL_ARGUMENT, "parcelableNull");
RETURN_IF(mContext->setParams(defaultExt->bytes) != RetCode::SUCCESS, EX_ILLEGAL_ARGUMENT,
"paramNotSupported");
@@ -99,10 +99,15 @@ ndk::ScopedAStatus ExtensionEffect::getParameterSpecific(const Parameter::Id& id
Parameter::Specific* specific) {
auto tag = id.getTag();
RETURN_IF(Parameter::Id::vendorEffectTag != tag, EX_ILLEGAL_ARGUMENT, "wrongIdTag");
auto specificId = id.get<Parameter::Id::vendorEffectTag>();
auto extensionId = id.get<Parameter::Id::vendorEffectTag>();
std::optional<DefaultExtension> defaultIdExt;
RETURN_IF(STATUS_OK != extensionId.extension.getParcelable(&defaultIdExt), EX_ILLEGAL_ARGUMENT,
"getIdParcelableFailed");
RETURN_IF(!defaultIdExt.has_value(), EX_ILLEGAL_ARGUMENT, "parcelableIdNull");
VendorExtension extension;
DefaultExtension defaultExt;
defaultExt.bytes = mContext->getParams(specificId);
defaultExt.bytes = mContext->getParams(defaultIdExt->bytes);
RETURN_IF(STATUS_OK != extension.extension.setParcelable(defaultExt), EX_ILLEGAL_ARGUMENT,
"setParcelableFailed");
specific->set<Parameter::Specific::vendorEffect>(extension);

View File

@@ -37,7 +37,7 @@ class ExtensionEffectContext final : public EffectContext {
mParams = params;
return RetCode::SUCCESS;
}
std::vector<uint8_t> getParams(int tag __unused) const { return mParams; }
std::vector<uint8_t> getParams(std::vector<uint8_t> id __unused) const { return mParams; }
private:
std::vector<uint8_t> mParams;

View File

@@ -224,7 +224,7 @@ bool DynamicsProcessingTestHelper::isParamEqual(const DynamicsProcessing::Tag& t
dpRef.get<DynamicsProcessing::inputGain>(),
dpTest.get<DynamicsProcessing::inputGain>());
}
case DynamicsProcessing::vendorExtension: {
case DynamicsProcessing::vendor: {
return false;
}
}