diff --git a/webrtc/sdk/android/api/org/webrtc/VideoRenderer.java b/webrtc/sdk/android/api/org/webrtc/VideoRenderer.java index 623f6b94cc..ec732be944 100644 --- a/webrtc/sdk/android/api/org/webrtc/VideoRenderer.java +++ b/webrtc/sdk/android/api/org/webrtc/VideoRenderer.java @@ -93,7 +93,8 @@ public class VideoRenderer { if (rotationDegree % 90 != 0) { throw new IllegalArgumentException("Rotation degree not multiple of 90: " + rotationDegree); } - if (buffer instanceof VideoFrame.TextureBuffer) { + if (buffer instanceof VideoFrame.TextureBuffer + && ((VideoFrame.TextureBuffer) buffer).getType() == VideoFrame.TextureBuffer.Type.OES) { VideoFrame.TextureBuffer textureBuffer = (VideoFrame.TextureBuffer) buffer; this.yuvFrame = false; this.textureId = textureBuffer.getTextureId(); diff --git a/webrtc/sdk/android/src/java/org/webrtc/TextureBufferImpl.java b/webrtc/sdk/android/src/java/org/webrtc/TextureBufferImpl.java index c2b2010ef2..3a7da8d45c 100644 --- a/webrtc/sdk/android/src/java/org/webrtc/TextureBufferImpl.java +++ b/webrtc/sdk/android/src/java/org/webrtc/TextureBufferImpl.java @@ -67,6 +67,9 @@ class TextureBufferImpl implements VideoFrame.TextureBuffer { @Override public VideoFrame.I420Buffer toI420() { + if (type == Type.RGB) { + throw new RuntimeException("toI420 for RGB frames not implemented yet"); + } // SurfaceTextureHelper requires a stride that is divisible by 8. Round width up. // See SurfaceTextureHelper for details on the size and format. int stride = ((width + 7) / 8) * 8;