Index: talk/app/webrtc/androidtests/src/org/webrtc/RendererCommonTest.java |
diff --git a/talk/app/webrtc/androidtests/src/org/webrtc/RendererCommonTest.java b/talk/app/webrtc/androidtests/src/org/webrtc/RendererCommonTest.java |
index cd8bfcb48c7b4ae623e94a24ecafe38bf096bbb7..cc73fa5f98950de99398d6ab5e183646944334e0 100644 |
--- a/talk/app/webrtc/androidtests/src/org/webrtc/RendererCommonTest.java |
+++ b/talk/app/webrtc/androidtests/src/org/webrtc/RendererCommonTest.java |
@@ -36,64 +36,64 @@ import android.graphics.Point; |
import static org.webrtc.RendererCommon.ScalingType.*; |
import static org.webrtc.RendererCommon.getDisplaySize; |
import static org.webrtc.RendererCommon.getLayoutMatrix; |
-import static org.webrtc.RendererCommon.getSamplingMatrix; |
+import static org.webrtc.RendererCommon.rotateTextureMatrix; |
-public class RendererCommonTest extends ActivityTestCase { |
+public final class RendererCommonTest extends ActivityTestCase { |
@SmallTest |
static public void testDisplaySizeNoFrame() { |
- assertEquals(getDisplaySize(SCALE_ASPECT_FIT, 0.0f, 0, 0), new Point(0, 0)); |
- assertEquals(getDisplaySize(SCALE_ASPECT_FILL, 0.0f, 0, 0), new Point(0, 0)); |
- assertEquals(getDisplaySize(SCALE_ASPECT_BALANCED, 0.0f, 0, 0), new Point(0, 0)); |
+ assertEquals(new Point(0, 0), getDisplaySize(SCALE_ASPECT_FIT, 0.0f, 0, 0)); |
+ assertEquals(new Point(0, 0), getDisplaySize(SCALE_ASPECT_FILL, 0.0f, 0, 0)); |
+ assertEquals(new Point(0, 0), getDisplaySize(SCALE_ASPECT_BALANCED, 0.0f, 0, 0)); |
} |
@SmallTest |
- static public void testDisplaySizeDegenerateAspectRatio() { |
- assertEquals(getDisplaySize(SCALE_ASPECT_FIT, 0.0f, 1280, 720), new Point(1280, 720)); |
- assertEquals(getDisplaySize(SCALE_ASPECT_FILL, 0.0f, 1280, 720), new Point(1280, 720)); |
- assertEquals(getDisplaySize(SCALE_ASPECT_BALANCED, 0.0f, 1280, 720), new Point(1280, 720)); |
+ public static void testDisplaySizeDegenerateAspectRatio() { |
+ assertEquals(new Point(1280, 720), getDisplaySize(SCALE_ASPECT_FIT, 0.0f, 1280, 720)); |
+ assertEquals(new Point(1280, 720), getDisplaySize(SCALE_ASPECT_FILL, 0.0f, 1280, 720)); |
+ assertEquals(new Point(1280, 720), getDisplaySize(SCALE_ASPECT_BALANCED, 0.0f, 1280, 720)); |
} |
@SmallTest |
- static public void testZeroDisplaySize() { |
- assertEquals(getDisplaySize(SCALE_ASPECT_FIT, 16.0f / 9, 0, 0), new Point(0, 0)); |
- assertEquals(getDisplaySize(SCALE_ASPECT_FILL, 16.0f / 9, 0, 0), new Point(0, 0)); |
- assertEquals(getDisplaySize(SCALE_ASPECT_BALANCED, 16.0f / 9, 0, 0), new Point(0, 0)); |
+ public static void testZeroDisplaySize() { |
+ assertEquals(new Point(0, 0), getDisplaySize(SCALE_ASPECT_FIT, 16.0f / 9, 0, 0)); |
+ assertEquals(new Point(0, 0), getDisplaySize(SCALE_ASPECT_FILL, 16.0f / 9, 0, 0)); |
+ assertEquals(new Point(0, 0), getDisplaySize(SCALE_ASPECT_BALANCED, 16.0f / 9, 0, 0)); |
} |
@SmallTest |
- static public void testDisplaySizePerfectFit() { |
- assertEquals(getDisplaySize(SCALE_ASPECT_FIT, 16.0f / 9, 1280, 720), new Point(1280, 720)); |
- assertEquals(getDisplaySize(SCALE_ASPECT_FILL, 16.0f / 9, 1280, 720), new Point(1280, 720)); |
- assertEquals(getDisplaySize(SCALE_ASPECT_BALANCED, 16.0f / 9, 1280, 720), new Point(1280, 720)); |
- assertEquals(getDisplaySize(SCALE_ASPECT_FIT, 9.0f / 16, 720, 1280), new Point(720, 1280)); |
- assertEquals(getDisplaySize(SCALE_ASPECT_FILL, 9.0f / 16, 720, 1280), new Point(720, 1280)); |
- assertEquals(getDisplaySize(SCALE_ASPECT_BALANCED, 9.0f / 16, 720, 1280), new Point(720, 1280)); |
+ public static void testDisplaySizePerfectFit() { |
+ assertEquals(new Point(1280, 720), getDisplaySize(SCALE_ASPECT_FIT, 16.0f / 9, 1280, 720)); |
+ assertEquals(new Point(1280, 720), getDisplaySize(SCALE_ASPECT_FILL, 16.0f / 9, 1280, 720)); |
+ assertEquals(new Point(1280, 720), getDisplaySize(SCALE_ASPECT_BALANCED, 16.0f / 9, 1280, 720)); |
+ assertEquals(new Point(720, 1280), getDisplaySize(SCALE_ASPECT_FIT, 9.0f / 16, 720, 1280)); |
+ assertEquals(new Point(720, 1280), getDisplaySize(SCALE_ASPECT_FILL, 9.0f / 16, 720, 1280)); |
+ assertEquals(new Point(720, 1280), getDisplaySize(SCALE_ASPECT_BALANCED, 9.0f / 16, 720, 1280)); |
} |
@SmallTest |
- static public void testLandscapeVideoInPortraitDisplay() { |
- assertEquals(getDisplaySize(SCALE_ASPECT_FIT, 16.0f / 9, 720, 1280), new Point(720, 405)); |
- assertEquals(getDisplaySize(SCALE_ASPECT_FILL, 16.0f / 9, 720, 1280), new Point(720, 1280)); |
- assertEquals(getDisplaySize(SCALE_ASPECT_BALANCED, 16.0f / 9, 720, 1280), new Point(720, 720)); |
+ public static void testLandscapeVideoInPortraitDisplay() { |
+ assertEquals(new Point(720, 405), getDisplaySize(SCALE_ASPECT_FIT, 16.0f / 9, 720, 1280)); |
+ assertEquals(new Point(720, 1280), getDisplaySize(SCALE_ASPECT_FILL, 16.0f / 9, 720, 1280)); |
+ assertEquals(new Point(720, 720), getDisplaySize(SCALE_ASPECT_BALANCED, 16.0f / 9, 720, 1280)); |
} |
@SmallTest |
- static public void testPortraitVideoInLandscapeDisplay() { |
- assertEquals(getDisplaySize(SCALE_ASPECT_FIT, 9.0f / 16, 1280, 720), new Point(405, 720)); |
- assertEquals(getDisplaySize(SCALE_ASPECT_FILL, 9.0f / 16, 1280, 720), new Point(1280, 720)); |
- assertEquals(getDisplaySize(SCALE_ASPECT_BALANCED, 9.0f / 16, 1280, 720), new Point(720, 720)); |
+ public static void testPortraitVideoInLandscapeDisplay() { |
+ assertEquals(new Point(405, 720), getDisplaySize(SCALE_ASPECT_FIT, 9.0f / 16, 1280, 720)); |
+ assertEquals(new Point(1280, 720), getDisplaySize(SCALE_ASPECT_FILL, 9.0f / 16, 1280, 720)); |
+ assertEquals(new Point(720, 720), getDisplaySize(SCALE_ASPECT_BALANCED, 9.0f / 16, 1280, 720)); |
} |
@SmallTest |
- static public void testFourToThreeVideoInSixteenToNineDisplay() { |
- assertEquals(getDisplaySize(SCALE_ASPECT_FIT, 4.0f / 3, 1280, 720), new Point(960, 720)); |
- assertEquals(getDisplaySize(SCALE_ASPECT_FILL, 4.0f / 3, 1280, 720), new Point(1280, 720)); |
- assertEquals(getDisplaySize(SCALE_ASPECT_BALANCED, 4.0f / 3, 1280, 720), new Point(1280, 720)); |
+ public static void testFourToThreeVideoInSixteenToNineDisplay() { |
+ assertEquals(new Point(960, 720), getDisplaySize(SCALE_ASPECT_FIT, 4.0f / 3, 1280, 720)); |
+ assertEquals(new Point(1280, 720), getDisplaySize(SCALE_ASPECT_FILL, 4.0f / 3, 1280, 720)); |
+ assertEquals(new Point(1280, 720), getDisplaySize(SCALE_ASPECT_BALANCED, 4.0f / 3, 1280, 720)); |
} |
// Only keep 2 rounded decimals to make float comparison robust. |
- static private double[] round(float[] array) { |
- assertEquals(array.length, 16); |
+ private static double[] round(float[] array) { |
+ assertEquals(16, array.length); |
final double[] doubleArray = new double[16]; |
for (int i = 0; i < 16; ++i) { |
doubleArray[i] = Math.round(100 * array[i]) / 100.0; |
@@ -108,69 +108,82 @@ public class RendererCommonTest extends ActivityTestCase { |
// v' = u * m[1] + v * m[5] + m[13]. |
@SmallTest |
- static public void testLayoutMatrixDefault() { |
+ public static void testLayoutMatrixDefault() { |
final float layoutMatrix[] = getLayoutMatrix(false, 1.0f, 1.0f); |
// Assert: |
// u' = u. |
// v' = v. |
- MoreAsserts.assertEquals(round(layoutMatrix), new double[] |
- {1, 0, 0, 0, |
- 0, 1, 0, 0, |
- 0, 0, 1, 0, |
- 0, 0, 0, 1}); |
+ MoreAsserts.assertEquals(new double[] { |
+ 1, 0, 0, 0, |
+ 0, 1, 0, 0, |
+ 0, 0, 1, 0, |
+ 0, 0, 0, 1}, round(layoutMatrix)); |
} |
@SmallTest |
- static public void testLayoutMatrixMirror() { |
+ public static void testLayoutMatrixMirror() { |
final float layoutMatrix[] = getLayoutMatrix(true, 1.0f, 1.0f); |
// Assert: |
// u' = 1 - u. |
// v' = v. |
- MoreAsserts.assertEquals(round(layoutMatrix), new double[] |
- {-1, 0, 0, 0, |
- 0, 1, 0, 0, |
- 0, 0, 1, 0, |
- 1, 0, 0, 1}); |
+ MoreAsserts.assertEquals(new double[] { |
+ -1, 0, 0, 0, |
+ 0, 1, 0, 0, |
+ 0, 0, 1, 0, |
+ 1, 0, 0, 1}, round(layoutMatrix)); |
} |
@SmallTest |
- static public void testLayoutMatrixScale() { |
+ public static void testLayoutMatrixScale() { |
// Video has aspect ratio 2, but layout is square. This will cause only the center part of the |
// video to be visible, i.e. the u coordinate will go from 0.25 to 0.75 instead of from 0 to 1. |
final float layoutMatrix[] = getLayoutMatrix(false, 2.0f, 1.0f); |
// Assert: |
// u' = 0.25 + 0.5 u. |
// v' = v. |
- MoreAsserts.assertEquals(round(layoutMatrix), new double[] |
- { 0.5, 0, 0, 0, |
- 0, 1, 0, 0, |
- 0, 0, 1, 0, |
- 0.25, 0, 0, 1}); |
+ MoreAsserts.assertEquals(new double[] { |
+ 0.5, 0, 0, 0, |
+ 0, 1, 0, 0, |
+ 0, 0, 1, 0, |
+ 0.25, 0, 0, 1}, round(layoutMatrix)); |
} |
@SmallTest |
- static public void testSamplingMatrixDefault() { |
- final float samplingMatrix[] = getSamplingMatrix(null, 0); |
+ public static void testRotateTextureMatrixDefault() { |
+ // Test that rotation with 0 degrees returns an identical matrix. |
+ final float[] matrix = new float[] { |
+ 1, 2, 3, 4, |
+ 5, 6, 7, 8, |
+ 9, 0, 1, 2, |
+ 3, 4, 5, 6 |
+ }; |
+ final float rotatedMatrix[] = rotateTextureMatrix(matrix, 0); |
+ MoreAsserts.assertEquals(round(matrix), round(rotatedMatrix)); |
+ } |
+ |
+ @SmallTest |
+ public static void testRotateTextureMatrix90Deg() { |
+ final float samplingMatrix[] = rotateTextureMatrix(RendererCommon.identityMatrix(), 90); |
// Assert: |
- // u' = u. |
- // v' = 1 - v. |
- MoreAsserts.assertEquals(round(samplingMatrix), new double[] |
- {1, 0, 0, 0, |
- 0, -1, 0, 0, |
- 0, 0, 1, 0, |
- 0, 1, 0, 1}); |
+ // u' = 1 - v. |
+ // v' = u. |
+ MoreAsserts.assertEquals(new double[] { |
+ 0, 1, 0, 0, |
+ -1, 0, 0, 0, |
+ 0, 0, 1, 0, |
+ 1, 0, 0, 1}, round(samplingMatrix)); |
} |
@SmallTest |
- static public void testSamplingMatrixRotation90Deg() { |
- final float samplingMatrix[] = getSamplingMatrix(null, 90); |
+ public static void testRotateTextureMatrix180Deg() { |
+ final float samplingMatrix[] = rotateTextureMatrix(RendererCommon.identityMatrix(), 180); |
// Assert: |
// u' = 1 - u. |
// v' = 1 - v. |
- MoreAsserts.assertEquals(round(samplingMatrix), new double[] |
- { 0, -1, 0, 0, |
- -1, 0, 0, 0, |
- 0, 0, 1, 0, |
- 1, 1, 0, 1}); |
+ MoreAsserts.assertEquals(new double[] { |
+ -1, 0, 0, 0, |
+ 0, -1, 0, 0, |
+ 0, 0, 1, 0, |
+ 1, 1, 0, 1}, round(samplingMatrix)); |
} |
} |