Index: webrtc/sdk/android/api/org/webrtc/VideoRenderer.java |
diff --git a/webrtc/sdk/android/api/org/webrtc/VideoRenderer.java b/webrtc/sdk/android/api/org/webrtc/VideoRenderer.java |
index d247f21821556728e3b17029ad8b5b637e870ac4..a118efe5feb4e0b7a4018ceb7f9807cd6cbebdd2 100644 |
--- a/webrtc/sdk/android/api/org/webrtc/VideoRenderer.java |
+++ b/webrtc/sdk/android/api/org/webrtc/VideoRenderer.java |
@@ -135,6 +135,21 @@ public class VideoRenderer { |
: "Texture: " + textureId; |
return width + "x" + height + ", " + type; |
} |
+ |
+ VideoFrame toVideoFrame() { |
+ final VideoFrame.Buffer buffer; |
+ if (yuvFrame) { |
+ buffer = new I420BufferImpl(width, height, yuvPlanes[0], yuvStrides[0], yuvPlanes[1], |
+ yuvStrides[1], yuvPlanes[2], yuvStrides[2], |
+ () -> { VideoRenderer.renderFrameDone(this); }); |
+ } else { |
+ // Note: surfaceTextureHelper being null means calling toI420 will crash. |
+ buffer = new TextureBufferImpl(width, height, VideoFrame.TextureBuffer.Type.OES, textureId, |
+ RendererCommon.convertMatrixToAndroidGraphicsMatrix(samplingMatrix), |
+ null /* surfaceTextureHelper */, () -> { VideoRenderer.renderFrameDone(this); }); |
+ } |
+ return new VideoFrame(buffer, rotationDegree, 0 /* timestampNs */); |
+ } |
} |
// Helper native function to do a video frame plane copying. |