Chromium Code Reviews| Index: talk/app/webrtc/java/android/org/webrtc/EglBase.java |
| diff --git a/talk/app/webrtc/java/android/org/webrtc/EglBase.java b/talk/app/webrtc/java/android/org/webrtc/EglBase.java |
| index 2ee36882e8eb9b6e78d7cd77370dc8db3587256d..9ba3050c768ac88f2b36ba0cf6ac3c40ac0a4a5c 100644 |
| --- a/talk/app/webrtc/java/android/org/webrtc/EglBase.java |
| +++ b/talk/app/webrtc/java/android/org/webrtc/EglBase.java |
| @@ -27,7 +27,11 @@ |
| package org.webrtc; |
| +import android.graphics.Canvas; |
| import android.graphics.SurfaceTexture; |
| +import android.graphics.Rect; |
|
magjed_webrtc
2015/11/18 13:12:52
Revert these changes.
|
| +import android.opengl.EGLExt; |
| +import android.view.Surface; |
| import android.view.SurfaceHolder; |
| import org.webrtc.Logging; |
| @@ -86,9 +90,71 @@ public final class EglBase { |
| eglContext = createEglContext(sharedContext, eglDisplay, eglConfig); |
| } |
| - // Create EGLSurface from the Android SurfaceHolder. |
| - public void createSurface(SurfaceHolder surfaceHolder) { |
| - createSurfaceInternal(surfaceHolder); |
| + // Create EGLSurface from the Android Surface. |
| + public void createSurface(Surface surface) { |
| + /** |
| + * We have to wrap Surface in a SurfaceHolder because for some reason eglCreateWindowSurface |
|
magjed_webrtc
2015/11/18 13:12:52
Rebase, I have landed this change already in a sep
perkj_webrtc
2015/11/18 14:51:20
I will rebase and revert all this once the decoder
|
| + * couldn't actually take a Surface object until API 17. Older versions fortunately just call |
| + * SurfaceHolder.getSurface(), so we'll do that. No other methods are relevant. |
| + */ |
| + class FakeSurfaceHolder implements SurfaceHolder { |
| + private final Surface surface; |
| + |
| + FakeSurfaceHolder(Surface surface) { |
| + this.surface = surface; |
| + } |
| + |
| + @Override |
| + public void addCallback(Callback callback) {} |
| + |
| + @Override |
| + public void removeCallback(Callback callback) {} |
| + |
| + @Override |
| + public boolean isCreating() { |
| + return false; |
| + } |
| + |
| + @Override |
| + public void setType(int i) {} |
| + |
| + @Override |
| + public void setFixedSize(int i, int i2) {} |
| + |
| + @Override |
| + public void setSizeFromLayout() {} |
| + |
| + @Override |
| + public void setFormat(int i) {} |
| + |
| + @Override |
| + public void setKeepScreenOn(boolean b) {} |
| + |
| + @Override |
| + public Canvas lockCanvas() { |
| + return null; |
| + } |
| + |
| + @Override |
| + public Canvas lockCanvas(Rect rect) { |
| + return null; |
| + } |
| + |
| + @Override |
| + public void unlockCanvasAndPost(Canvas canvas) {} |
| + |
| + @Override |
| + public Rect getSurfaceFrame() { |
| + return null; |
| + } |
| + |
| + @Override |
| + public Surface getSurface() { |
| + return surface; |
| + } |
| + } |
| + |
| + createSurfaceInternal(new FakeSurfaceHolder(surface)); |
| } |
| // Create EGLSurface from the Android SurfaceTexture. |