Make Codec2 software service public
This CL makes the software Codec2 service present the public Codec2 HAL
interface, and makes the framework use it.
Test: make cts -j123 && cts-tradefed run cts-dev -m \
CtsMediaTestCases --compatibility:module-arg \
CtsMediaTestCases:include-annotation:\
android.platform.test.annotations.RequiresDevice
Bug: 112362730
Bug: 119853704
Change-Id: I047c6948a883a6e085d988a3fa542129ebb9571f
diff --git a/media/codec2/hidl/client/client.cpp b/media/codec2/hidl/client/client.cpp
index ddeb4ff..26bd96c 100644
--- a/media/codec2/hidl/client/client.cpp
+++ b/media/codec2/hidl/client/client.cpp
@@ -76,7 +76,11 @@
// Convenience methods to obtain known clients.
std::shared_ptr<Codec2Client> getClient(size_t index) {
- return Codec2Client::CreateFromService(kClientNames[index]);
+ uint32_t serviceMask = ::android::base::GetUintProperty(
+ "debug.media.codec2", uint32_t(0));
+ return Codec2Client::CreateFromService(
+ kClientNames[index],
+ (serviceMask & (1 << index)) != 0);
}
ClientList getClientList() {
@@ -633,9 +637,13 @@
Base::tryGetService(instanceName);
if (!baseStore) {
if (waitForService) {
- ALOGE("Codec2.0 service inaccessible. Check the device manifest.");
+ ALOGW("Codec2.0 service \"%s\" inaccessible. "
+ "Check the device manifest.",
+ instanceName);
} else {
- ALOGW("Codec2.0 service not available right now. Try again later.");
+ ALOGD("Codec2.0 service \"%s\" unavailable right now. "
+ "Try again later.",
+ instanceName);
}
return nullptr;
}