Merge "media: use proper input timestamp in VideoEncoderDecoderTest"
diff --git a/suite/cts/deviceTests/videoperf/src/com/android/cts/videoperf/VideoEncoderDecoderTest.java b/suite/cts/deviceTests/videoperf/src/com/android/cts/videoperf/VideoEncoderDecoderTest.java
index 397b0c6..fe28a96 100644
--- a/suite/cts/deviceTests/videoperf/src/com/android/cts/videoperf/VideoEncoderDecoderTest.java
+++ b/suite/cts/deviceTests/videoperf/src/com/android/cts/videoperf/VideoEncoderDecoderTest.java
@@ -68,6 +68,7 @@
     private int mBufferHeight;
     private int mVideoWidth;
     private int mVideoHeight;
+    private int mFrameRate;
 
     private Vector<ByteBuffer> mEncodedOutputBuffer;
     // check this many pixels per each decoded frame
@@ -155,6 +156,7 @@
                     infoEnc.mSupportSemiPlanar ? CodecCapabilities.COLOR_FormatYUV420SemiPlanar :
                         CodecCapabilities.COLOR_FormatYUV420Planar);
             format.setInteger(MediaFormat.KEY_FRAME_RATE, infoEnc.mFps);
+            mFrameRate = infoEnc.mFps;
             format.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, KEY_I_FRAME_INTERVAL);
             double encodingTime = runEncoder(VIDEO_AVC, format, TOTAL_FRAMES);
             // re-initialize format for decoder
@@ -312,8 +314,9 @@
             }
         }
         int size = mVideoHeight * mVideoWidth * 3 /2;
+        long ptsUsec = computePresentationTime(frameCount);
 
-        codec.queueInputBuffer(index, 0 /* offset */, size, 0 /* timeUs */, flags);
+        codec.queueInputBuffer(index, 0 /* offset */, size, ptsUsec /* timeUs */, flags);
         if (VERBOSE && (frameCount == 0)) {
             printByteArray("Y ", mYBuffer.array(), 0, 20);
             printByteArray("UV ", mUVBuffer.array(), 0, 20);
@@ -602,4 +605,11 @@
         builder.deleteCharAt(builder.length() - 1);
         Log.i(TAG, builder.toString());
     }
+
+    /**
+     * Generates the presentation time for frame N, in microseconds.
+     */
+    private long computePresentationTime(int frameIndex) {
+        return 132 + frameIndex * 1000000L / mFrameRate;
+    }
 }