Add support for RGB frames in MediaCodecVideoEncoder.
BUG=webrtc:7749
Review-Url: https://codereview.webrtc.org/3002263002
Cr-Original-Commit-Position: refs/heads/master@{#19554}
Cr-Mirrored-From: https://chromium.googlesource.com/external/webrtc
Cr-Mirrored-Commit: 160e32c34f629be1fc7e634a085d9dc70a77b908
diff --git a/sdk/android/api/org/webrtc/MediaCodecVideoEncoder.java b/sdk/android/api/org/webrtc/MediaCodecVideoEncoder.java
index 808b43d..5ccf640 100644
--- a/sdk/android/api/org/webrtc/MediaCodecVideoEncoder.java
+++ b/sdk/android/api/org/webrtc/MediaCodecVideoEncoder.java
@@ -616,10 +616,8 @@
// TODO(perkj): glClear() shouldn't be necessary since every pixel is covered anyway,
// but it's a workaround for bug webrtc:5147.
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
- drawer.drawOes(textureBuffer.getTextureId(),
- RendererCommon.convertMatrixFromAndroidGraphicsMatrix(
- textureBuffer.getTransformMatrix()),
- width, height, 0, 0, width, height);
+ drawer.drawTexture(textureBuffer, new Matrix() /* renderMatrix */, width, height,
+ 0 /* viewportX */, 0 /* viewportY */, width, height);
eglBase.swapBuffers(frame.getTimestampNs());
} else {
VideoFrame.I420Buffer i420Buffer = buffer.toI420();
diff --git a/sdk/android/api/org/webrtc/RendererCommon.java b/sdk/android/api/org/webrtc/RendererCommon.java
index ac71d9f..8f8d9fe 100644
--- a/sdk/android/api/org/webrtc/RendererCommon.java
+++ b/sdk/android/api/org/webrtc/RendererCommon.java
@@ -48,6 +48,12 @@
void drawYuv(int[] yuvTextures, float[] texMatrix, int frameWidth, int frameHeight,
int viewportX, int viewportY, int viewportWidth, int viewportHeight);
+ /**
+ * Draws a VideoFrame.TextureBuffer. Default implementation calls either drawOes or drawRgb
+ * depending on the type of the buffer. You can supply an additional render matrix. This is
+ * used multiplied together with the transformation matrix of the frame. (M = renderMatrix *
+ * transformationMatrix)
+ */
default void
drawTexture(VideoFrame.TextureBuffer buffer, android.graphics.Matrix renderMatrix,
int frameWidth, int frameHeight, int viewportX, int viewportY, int viewportWidth,