From 61fd77beb5f02d1ce8dcd458317dbca7a5d4246b Mon Sep 17 00:00:00 2001 From: houxiao <houxiao@454eff88-639b-444f-9e54-f578c98de674> Date: 星期四, 11 五月 2017 12:13:10 +0800 Subject: [PATCH] optimize --- VisitFace/RtspNativeCodec/app/src/main/java/com/example/nativecodec/OutputSurface.java | 22 ++++++++++++++++++---- 1 files changed, 18 insertions(+), 4 deletions(-) diff --git a/VisitFace/RtspNativeCodec/app/src/main/java/com/example/nativecodec/OutputSurface.java b/VisitFace/RtspNativeCodec/app/src/main/java/com/example/nativecodec/OutputSurface.java index 515adab..4f0da58 100644 --- a/VisitFace/RtspNativeCodec/app/src/main/java/com/example/nativecodec/OutputSurface.java +++ b/VisitFace/RtspNativeCodec/app/src/main/java/com/example/nativecodec/OutputSurface.java @@ -22,6 +22,8 @@ import android.opengl.Matrix; import android.util.Log; import android.view.Surface; + +import java.nio.Buffer; import java.nio.ByteBuffer; import javax.microedition.khronos.egl.EGL10; import javax.microedition.khronos.egl.EGLConfig; @@ -189,7 +191,7 @@ } checkEglError("before makeCurrent"); if (!mEGL.eglMakeCurrent(mEGLDisplay, mEGLSurface, mEGLSurface, mEGLContext)) { - throw new RuntimeException("eglMakeCurrent failed"); + //throw new RuntimeException("eglMakeCurrent failed"); } } /** @@ -219,7 +221,8 @@ mFrameSyncObject.wait(TIMEOUT_MS); if (!mFrameAvailable) { // TODO: if "spurious wakeup", continue while loop - throw new RuntimeException("Surface frame wait timed out"); + //throw new RuntimeException("Surface frame wait timed out"); + return; } } catch (InterruptedException ie) { // shouldn't happen @@ -240,7 +243,8 @@ } @Override public void onFrameAvailable(SurfaceTexture st) { - if (VERBOSE) Log.d(TAG, "new frame available"); + //if (VERBOSE) + Log.d(TAG, "new frame available"); synchronized (mFrameSyncObject) { if (mFrameAvailable) { throw new RuntimeException("mFrameAvailable already set, frame could be dropped"); @@ -248,6 +252,7 @@ mFrameAvailable = true; mFrameSyncObject.notifyAll(); } + } /** * Checks for EGL errors. @@ -260,7 +265,16 @@ failed = true; } if (failed) { - throw new RuntimeException("EGL error encountered (see log)"); + //throw new RuntimeException("EGL error encountered (see log)"); } } + + public byte[] readPixels() + { + ByteBuffer buf = ByteBuffer.allocateDirect( 640 * 480 * 4); + mTextureRender.readPixels(buf); + byte[] newbuf = new byte[640 * 480 * 4]; + buf.get(newbuf); + return newbuf; + } } \ No newline at end of file -- Gitblit v1.8.0