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

Commit 9f3b352c authored by Harish Mahendrakar's avatar Harish Mahendrakar
Browse files

OMX VTS: Added a test to mandate transition to C2 codecs

- For devices launching with S and above, only audio codecs are
  allowed to use OMX.
- For devices launching with T and above, no codecs are allowed
  to use OMX.

Bug: 217793552
Test: atest VtsHalMediaOmxV1_0TargetStoreTest

Change-Id: Iff5e0c45dd7e61be9118bdcec1b6d35db3d39b4e
parent 87a6fbc5
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
@@ -20,7 +20,9 @@
#endif

#include <android-base/logging.h>
#include <android-base/properties.h>
#include <android-base/strings.h>
#include <android/api-level.h>

#include <android/hardware/media/omx/1.0/IOmx.h>
#include <android/hardware/media/omx/1.0/IOmxNode.h>
@@ -371,6 +373,31 @@ TEST_P(StoreHidlTest, ListRoles) {
    }
}

static int getFirstApiLevel() {
    return android::base::GetIntProperty("ro.product.first_api_level", __ANDROID_API_T__);
}

// list components and roles.
TEST_P(StoreHidlTest, OmxCodecAllowedTest) {
    hidl_vec<IOmx::ComponentInfo> componentInfos = getComponentInfoList(omx);
    for (IOmx::ComponentInfo info : componentInfos) {
        for (std::string role : info.mRoles) {
            if (role.find("video_decoder") != std::string::npos ||
                role.find("video_encoder") != std::string::npos) {
                ASSERT_LT(getFirstApiLevel(), __ANDROID_API_S__)
                        << " Component: " << info.mName.c_str() << " Role: " << role.c_str()
                        << " not allowed for devices launching with Android S and above";
            }
            if (role.find("audio_decoder") != std::string::npos ||
                role.find("audio_encoder") != std::string::npos) {
                ASSERT_LT(getFirstApiLevel(), __ANDROID_API_T__)
                        << " Component: " << info.mName.c_str() << " Role: " << role.c_str()
                        << " not allowed for devices launching with Android T and above";
            }
        }
    }
}

// list components and roles.
TEST_P(StoreHidlTest, ListNodes) {
    description("enumerate component and roles");