Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Snippets Groups Projects
Commit 312d5427 authored by Mikhail Naganov's avatar Mikhail Naganov
Browse files

audioserver: Improve logging / dumping for encoded formats

The "encoded formats" field of device ports was lacking
from the APM dump.

In the audio flinger, log the encoded format used to find
a module for a device type.

Bug: 291543025
Test: adb shell dumpsys media.audio_policy
Change-Id: Ic02dddc474b2f8a069467fc72733a268a14fb995
parent bd3ca7a9
Branches
No related tags found
No related merge requests found
...@@ -125,6 +125,15 @@ void DeviceDescriptorBase::dump(std::string *dst, int spaces, ...@@ -125,6 +125,15 @@ void DeviceDescriptorBase::dump(std::string *dst, int spaces,
dst->append(base::StringPrintf( dst->append(base::StringPrintf(
"%*sEncapsulation modes: %u, metadata types: %u\n", spaces, "", "%*sEncapsulation modes: %u, metadata types: %u\n", spaces, "",
mEncapsulationModes, mEncapsulationMetadataTypes)); 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()));
}
AudioPort::dump(dst, spaces, nullptr, verbose); AudioPort::dump(dst, spaces, nullptr, verbose);
} }
......
...@@ -383,8 +383,8 @@ sp<DeviceDescriptor> HwModuleCollection::getDeviceDescriptor(const audio_devices ...@@ -383,8 +383,8 @@ sp<DeviceDescriptor> HwModuleCollection::getDeviceDescriptor(const audio_devices
} }
} }
if (!allowToCreate) { if (!allowToCreate) {
ALOGV("%s: could not find HW module for device %s %04x address %s", __FUNCTION__, ALOGW("%s: could not find HW module for device %s (%s, %08x) address %s", __FUNCTION__,
name, deviceType, address); name, audio_device_to_string(deviceType), deviceType, address);
return nullptr; return nullptr;
} }
return createDevice(deviceType, address, name, encodedFormat); return createDevice(deviceType, address, name, encodedFormat);
...@@ -398,8 +398,14 @@ sp<DeviceDescriptor> HwModuleCollection::createDevice(const audio_devices_t type ...@@ -398,8 +398,14 @@ sp<DeviceDescriptor> HwModuleCollection::createDevice(const audio_devices_t type
std::string tagName = {}; std::string tagName = {};
sp<HwModule> hwModule = getModuleForDeviceType(type, encodedFormat, &tagName); sp<HwModule> hwModule = getModuleForDeviceType(type, encodedFormat, &tagName);
if (hwModule == 0) { if (hwModule == 0) {
ALOGE("%s: could not find HW module for device %04x address %s", __FUNCTION__, type, if (encodedFormat == AUDIO_FORMAT_DEFAULT) {
address); 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; return nullptr;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment