video: relax fps tolerance for encoder perf test

Bug: 232333126
Test: atest android.video.cts.CodecEncoderPerformanceTest
Change-Id: I75165fe94a4432cce58667bed687bfd02ca45281
diff --git a/tests/video/src/android/video/cts/CodecEncoderPerformanceTest.java b/tests/video/src/android/video/cts/CodecEncoderPerformanceTest.java
index 973e2dd..aa4c8a7 100644
--- a/tests/video/src/android/video/cts/CodecEncoderPerformanceTest.java
+++ b/tests/video/src/android/video/cts/CodecEncoderPerformanceTest.java
@@ -16,7 +16,10 @@
 
 package android.video.cts;
 
+import static org.junit.Assert.assertTrue;
+
 import android.media.MediaFormat;
+import android.os.Build;
 import android.util.Log;
 
 import androidx.test.filters.LargeTest;
@@ -31,8 +34,6 @@
 import java.util.Collection;
 import java.util.List;
 
-import static org.junit.Assert.assertTrue;
-
 /**
  * Operating rate is expected to be met by encoder only in surface mode and not in byte buffer mode.
  * As camera has limited frame rates and resolutions, it is not possible to test encoder
@@ -113,8 +114,12 @@
                 " Encoder: %s, Key-priority: %d :: ", mDecoderMime, mDecoderName, mHeight,
                 mEncoderMime, mEncoderName, mKeyPriority);
         int maxExpectedFps = getMaxExpectedFps(mWidth, mHeight);
+        double fpsToleranceFactor = FPS_TOLERANCE_FACTOR;
+        if (VNDK_VERSION <= Build.VERSION_CODES.TIRAMISU) {
+            fpsToleranceFactor = Math.min(0.9, fpsToleranceFactor);
+        }
         double expectedFps =
-                Math.min(mOperatingRateExpected * FPS_TOLERANCE_FACTOR, maxExpectedFps);
+                Math.min(mOperatingRateExpected * fpsToleranceFactor, maxExpectedFps);
         Log.d(LOG_TAG, log + "act/exp fps: " + mAchievedFps + "/" + expectedFps);
         assertTrue("Unable to achieve the expected rate. " + log + "act/exp fps: " + mAchievedFps
                 + "/" + expectedFps, mAchievedFps >= expectedFps);