Merge "AudioFlinger: Create MelReporter callback" into main
diff --git a/media/libaudiofoundation/DeviceDescriptorBase.cpp b/media/libaudiofoundation/DeviceDescriptorBase.cpp
index 2bb6afc..af70c39 100644
--- a/media/libaudiofoundation/DeviceDescriptorBase.cpp
+++ b/media/libaudiofoundation/DeviceDescriptorBase.cpp
@@ -125,6 +125,15 @@
dst->append(base::StringPrintf(
"%*sEncapsulation modes: %u, metadata types: %u\n", spaces, "",
mEncapsulationModes, mEncapsulationMetadataTypes));
+ if (!mEncodedFormats.empty()) {
+ std::string s;
+ for (const auto& format : mEncodedFormats) {
+ if (!s.empty()) s.append(", ");
+ s.append(audio_format_to_string(format));
+ }
+ dst->append(base::StringPrintf(
+ "%*sEncoded formats: %s\n", spaces, "", s.c_str()));
+ }
std::string portStr;
AudioPort::dump(&portStr, spaces, nullptr, verbose);
diff --git a/services/audiopolicy/common/managerdefinitions/src/HwModule.cpp b/services/audiopolicy/common/managerdefinitions/src/HwModule.cpp
index 5f14ee4..95f8d14 100644
--- a/services/audiopolicy/common/managerdefinitions/src/HwModule.cpp
+++ b/services/audiopolicy/common/managerdefinitions/src/HwModule.cpp
@@ -383,8 +383,8 @@
}
}
if (!allowToCreate) {
- ALOGV("%s: could not find HW module for device %s %04x address %s", __FUNCTION__,
- name, deviceType, address);
+ ALOGW("%s: could not find HW module for device %s (%s, %08x) address %s", __FUNCTION__,
+ name, audio_device_to_string(deviceType), deviceType, address);
return nullptr;
}
return createDevice(deviceType, address, name, encodedFormat);
@@ -398,8 +398,14 @@
std::string tagName = {};
sp<HwModule> hwModule = getModuleForDeviceType(type, encodedFormat, &tagName);
if (hwModule == 0) {
- ALOGE("%s: could not find HW module for device %04x address %s", __FUNCTION__, type,
- address);
+ if (encodedFormat == AUDIO_FORMAT_DEFAULT) {
+ ALOGE("%s: could not find HW module for device type '%s' (%08x)",
+ __FUNCTION__, audio_device_to_string(type), type);
+ } else {
+ ALOGE("%s: could not find HW module for device type '%s' (%08x), "
+ "encoded format '%s'", __FUNCTION__, audio_device_to_string(type), type,
+ audio_format_to_string(encodedFormat));
+ }
return nullptr;
}
diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp
index 4757a42..6d3c7a5 100644
--- a/services/camera/libcameraservice/CameraService.cpp
+++ b/services/camera/libcameraservice/CameraService.cpp
@@ -2117,6 +2117,9 @@
if (err != OK) {
ALOGE("%s: Could not initialize client from HAL.", __FUNCTION__);
// Errors could be from the HAL module open call or from AppOpsManager
+ mServiceLock.unlock();
+ client->disconnect();
+ mServiceLock.lock();
switch(err) {
case BAD_VALUE:
return STATUS_ERROR_FMT(ERROR_ILLEGAL_ARGUMENT,