| Index: webrtc/sdk/android/api/org/webrtc/RendererCommon.java
|
| diff --git a/webrtc/sdk/android/api/org/webrtc/RendererCommon.java b/webrtc/sdk/android/api/org/webrtc/RendererCommon.java
|
| index 0708d262c05f4a608afb1b6b2961bfacd4b6af2c..b5ac7501d7bf6b9838477377abdb8207c0bcc9b2 100644
|
| --- a/webrtc/sdk/android/api/org/webrtc/RendererCommon.java
|
| +++ b/webrtc/sdk/android/api/org/webrtc/RendererCommon.java
|
| @@ -273,6 +273,36 @@ public class RendererCommon {
|
| return matrix;
|
| }
|
|
|
| + /** Converts android.graphics.Matrix to a float[16] matrix array. */
|
| + public static float[] convertMatrixFromAndroidGraphicsMatrix(android.graphics.Matrix matrix) {
|
| + float[] values = new float[9];
|
| + matrix.getValues(values);
|
| +
|
| + // The android.graphics.Matrix looks like this:
|
| + // [x1 y1 w1]
|
| + // [x2 y2 w2]
|
| + // [x3 y3 w3]
|
| + // We want to contruct a matrix that looks like this:
|
| + // [x1 y1 0 w1]
|
| + // [x2 y2 0 w2]
|
| + // [ 0 0 1 0]
|
| + // [x3 y3 0 w3]
|
| + // Since it is stored in column-major order, it looks like this:
|
| + // [x1 x2 0 x3
|
| + // y1 y2 0 y3
|
| + // 0 0 1 0
|
| + // w1 w2 0 w3]
|
| + // clang-format off
|
| + float[] matrix4x4 = {
|
| + values[0 * 3 + 0], values[1 * 3 + 0], 0, values[2 * 3 + 0],
|
| + values[0 * 3 + 1], values[1 * 3 + 1], 0, values[2 * 3 + 1],
|
| + 0, 0, 1, 0,
|
| + values[0 * 3 + 2], values[1 * 3 + 2], 0, values[2 * 3 + 2],
|
| + };
|
| + // clang-format on
|
| + return matrix4x4;
|
| + }
|
| +
|
| /**
|
| * Calculate display size based on scaling type, video aspect ratio, and maximum display size.
|
| */
|
|
|