Merge "vts: Disable checking md5 checksum and timestamps for tunneled decoders" into android14-tests-dev am: 8d43abd037 am: 149a78dff9
Original change: https://android-review.googlesource.com/c/platform/frameworks/av/+/3222363
Change-Id: Ib419a3ce483fba73223cbdf5fb9c9d39adba02e8
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/media/codec2/hal/hidl/1.0/vts/functional/video/VtsHalMediaC2V1_0TargetVideoDecTest.cpp b/media/codec2/hal/hidl/1.0/vts/functional/video/VtsHalMediaC2V1_0TargetVideoDecTest.cpp
index 386e81b..fd56b13 100644
--- a/media/codec2/hal/hidl/1.0/vts/functional/video/VtsHalMediaC2V1_0TargetVideoDecTest.cpp
+++ b/media/codec2/hal/hidl/1.0/vts/functional/video/VtsHalMediaC2V1_0TargetVideoDecTest.cpp
@@ -136,6 +136,20 @@
mReorderDepth = -1;
mTimestampDevTest = false;
mMd5Offset = 0;
+ mIsTunneledCodec = false;
+
+ // For C2 codecs that support tunneling by default, the default value of
+ // C2PortTunneledModeTuning::mode should (!= NONE). Otherwise VTS
+ // can assume that the codec can support regular (non-tunneled decode)
+ queried.clear();
+ c2err = mComponent->query(
+ {}, {C2PortTunneledModeTuning::output::PARAM_TYPE}, C2_MAY_BLOCK, &queried);
+ if (c2err == C2_OK && !queried.empty() && queried.front() != nullptr) {
+ C2TunneledModeStruct::mode_t tunneledMode =
+ ((C2PortTunneledModeTuning::output*)queried.front().get())->m.mode;
+ mIsTunneledCodec = (tunneledMode != C2TunneledModeStruct::NONE);
+ }
+
mMd5Enable = false;
mRefMd5 = nullptr;
@@ -305,6 +319,7 @@
bool mEos;
bool mDisableTest;
+ bool mIsTunneledCodec;
bool mMd5Enable;
bool mTimestampDevTest;
uint64_t mTimestampUs;
@@ -591,11 +606,14 @@
bool signalEOS = std::get<3>(GetParam());
surfaceMode_t surfMode = std::get<4>(GetParam());
- mTimestampDevTest = true;
+ // Disable checking timestamp as tunneled codecs doesn't populate
+ // output buffers in C2Work.
+ mTimestampDevTest = !mIsTunneledCodec;
android::Vector<FrameInfo> Info;
- mMd5Enable = true;
+ // Disable md5 checks as tunneled codecs doesn't populate output buffers in C2Work
+ mMd5Enable = !mIsTunneledCodec;
if (!mChksumFile.compare(sResourceDir)) mMd5Enable = false;
uint32_t format = HAL_PIXEL_FORMAT_YCBCR_420_888;
@@ -691,7 +709,9 @@
typedef std::unique_lock<std::mutex> ULock;
ASSERT_EQ(mComponent->start(), C2_OK);
- mTimestampDevTest = true;
+ // Disable checking timestamp as tunneled codecs doesn't populate
+ // output buffers in C2Work.
+ mTimestampDevTest = !mIsTunneledCodec;
uint32_t timestampOffset = 0;
uint32_t offset = 0;
android::Vector<FrameInfo> Info;