mediaswcodec: fix handling API level Bug: 204932691 Test: presubmit Change-Id: Id11b4b2efc2749c1e0d1f493de98f94d3272aec4
diff --git a/services/mediacodec/registrant/CodecServiceRegistrant.cpp b/services/mediacodec/registrant/CodecServiceRegistrant.cpp index b479433..1de9efe 100644 --- a/services/mediacodec/registrant/CodecServiceRegistrant.cpp +++ b/services/mediacodec/registrant/CodecServiceRegistrant.cpp
@@ -17,7 +17,7 @@ //#define LOG_NDEBUG 0 #define LOG_TAG "CodecServiceRegistrant" -#include <android-base/properties.h> +#include <android/api-level.h> #include <android-base/logging.h> #include <android-base/properties.h> @@ -416,48 +416,33 @@ using namespace ::android::hardware::media::c2; - int platformVersion = - android::base::GetIntProperty("ro.build.version.sdk", int32_t(29)); - // STOPSHIP: Remove code name checking once platform version bumps up to 30. - std::string codeName = - android::base::GetProperty("ro.build.version.codename", ""); - if (codeName == "S") { - platformVersion = 31; - } + int platformVersion = android_get_device_api_level(); - switch (platformVersion) { - case 31: { - android::sp<V1_2::IComponentStore> storeV1_2 = - new V1_2::utils::ComponentStore(store); - if (storeV1_2->registerAsService("software") != android::OK) { - LOG(ERROR) << "Cannot register software Codec2 v1.2 service."; - return; - } - break; - } - case 30: { - android::sp<V1_1::IComponentStore> storeV1_1 = - new V1_1::utils::ComponentStore(store); - if (storeV1_1->registerAsService("software") != android::OK) { - LOG(ERROR) << "Cannot register software Codec2 v1.1 service."; - return; - } - break; - } - case 29: { - android::sp<V1_0::IComponentStore> storeV1_0 = - new V1_0::utils::ComponentStore(store); - if (storeV1_0->registerAsService("software") != android::OK) { - LOG(ERROR) << "Cannot register software Codec2 v1.0 service."; - return; - } - break; - } - default: { - LOG(ERROR) << "The platform version " << platformVersion << - " is not supported."; + if (platformVersion >= __ANDROID_API_S__) { + android::sp<V1_2::IComponentStore> storeV1_2 = + new V1_2::utils::ComponentStore(store); + if (storeV1_2->registerAsService("software") != android::OK) { + LOG(ERROR) << "Cannot register software Codec2 v1.2 service."; return; } + } else if (platformVersion == __ANDROID_API_R__) { + android::sp<V1_1::IComponentStore> storeV1_1 = + new V1_1::utils::ComponentStore(store); + if (storeV1_1->registerAsService("software") != android::OK) { + LOG(ERROR) << "Cannot register software Codec2 v1.1 service."; + return; + } + } else if (platformVersion == __ANDROID_API_Q__) { + android::sp<V1_0::IComponentStore> storeV1_0 = + new V1_0::utils::ComponentStore(store); + if (storeV1_0->registerAsService("software") != android::OK) { + LOG(ERROR) << "Cannot register software Codec2 v1.0 service."; + return; + } + } else { // platformVersion < __ANDROID_API_Q__ + LOG(ERROR) << "The platform version " << platformVersion << + " is not supported."; + return; } if (!ionPropertiesDefined()) { using IComponentStore =