Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(352)

Unified Diff: webrtc/examples/androidtests/src/org/appspot/apprtc/test/VideoFileRendererTest.java

Issue 2415563002: Testing of VideoFileRenderer with byte frames (Closed)
Patch Set: Re-design of VideoFileRendererTest Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/examples/BUILD.gn ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/examples/androidtests/src/org/appspot/apprtc/test/VideoFileRendererTest.java
diff --git a/webrtc/examples/androidtests/src/org/appspot/apprtc/test/VideoFileRendererTest.java b/webrtc/examples/androidtests/src/org/appspot/apprtc/test/VideoFileRendererTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..5cf3e9f6f07bd124f41007b51de18b034bb33acf
--- /dev/null
+++ b/webrtc/examples/androidtests/src/org/appspot/apprtc/test/VideoFileRendererTest.java
@@ -0,0 +1,78 @@
+/*
+ * Copyright 2016 The WebRTC Project Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree. An additional intellectual property rights grant can be found
+ * in the file PATENTS. All contributing project authors may
+ * be found in the AUTHORS file in the root of the source tree.
+ */
+
+package org.webrtc;
+
+import android.test.InstrumentationTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.RandomAccessFile;
+import java.lang.Thread;
+import java.nio.charset.StandardCharsets;
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.Random;
+
+public class VideoFileRendererTest extends InstrumentationTestCase {
+ @SmallTest
+ public void testYuvRenderingToFile() throws InterruptedException, IOException {
+ EglBase eglBase = EglBase.create();
+ final String videoOutPath = "/sdcard/chromium_tests_root/testvideoout.y4m";
+ int frameWidth = 4;
+ int frameHeight = 4;
+ VideoFileRenderer videoFileRenderer =
+ new VideoFileRenderer(videoOutPath, frameWidth, frameHeight, eglBase.getEglBaseContext());
+
+ String[] frames = {
+ "THIS IS JUST SOME TEXT x", "THE SECOND FRAME qwerty.", "HERE IS THE THRID FRAME!"};
+
+ for (String frameStr : frames) {
+ int[] planeSizes = {
+ frameWidth * frameWidth, frameWidth * frameHeight / 4, frameWidth * frameHeight / 4};
+
+ byte[] frameBytes = frameStr.getBytes(StandardCharsets.US_ASCII);
+ ByteBuffer[] yuvPlanes = new ByteBuffer[3];
+ int pos = 0;
+ for (int i = 0; i < 3; i++) {
+ yuvPlanes[i] = ByteBuffer.allocateDirect(planeSizes[i]);
+ yuvPlanes[i].put(frameBytes, pos, planeSizes[i]);
+ pos += planeSizes[i];
+ }
+
+ int[] yuvStrides = {frameWidth, frameWidth / 2, frameWidth / 2};
+
+ VideoRenderer.I420Frame frame =
+ new VideoRenderer.I420Frame(frameWidth, frameHeight, 0, yuvStrides, yuvPlanes, 0);
+
+ videoFileRenderer.renderFrame(frame);
+ }
+ videoFileRenderer.release();
+
+ RandomAccessFile writtenFile = new RandomAccessFile(videoOutPath, "r");
+ try {
+ int length = (int) writtenFile.length();
+ byte[] data = new byte[length];
+ writtenFile.readFully(data);
+ String fileContent = new String(data, StandardCharsets.US_ASCII);
+ String expected = "YUV4MPEG2 C420 W4 H4 Ip F30:1 A1:1\n"
+ + "FRAME\n"
+ + "THIS IS JUST SOME TEXT xFRAME\n"
+ + "THE SECOND FRAME qwerty.FRAME\n"
+ + "HERE IS THE THRID FRAME!";
+ assertEquals(expected, fileContent);
+ } finally {
+ writtenFile.close();
+ }
+
+ new File(videoOutPath).delete();
+ }
+}
« no previous file with comments | « webrtc/examples/BUILD.gn ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698