Clamp AIDL stream latency to [1, 3000] ms
Bug: 295055755
Test: atest CtsMediaAudioTestCases
Change-Id: I9fc8c5f9897f0588238b3a405eb645e3471f6c21
diff --git a/media/libaudiohal/impl/StreamHalAidl.cpp b/media/libaudiohal/impl/StreamHalAidl.cpp
index 80e19a0..f9aea37 100644
--- a/media/libaudiohal/impl/StreamHalAidl.cpp
+++ b/media/libaudiohal/impl/StreamHalAidl.cpp
@@ -267,7 +267,11 @@
if (status_t status = updateCountersIfNeeded(&reply); status != OK) {
return status;
}
- *latency = std::max<int32_t>(0, reply.latencyMs);
+
+ *latency = std::clamp(std::max<int32_t>(0, reply.latencyMs), 1, 3000);
+ ALOGW_IF(reply.latencyMs != static_cast<int32_t>(*latency),
+ "Suspicious latency value reported by HAL: %d, clamped to %u", reply.latencyMs,
+ *latency);
return OK;
}