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 | 19 ++++++++++++------- 1 files changed, 12 insertions(+), 7 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 8fabeb9..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 @@ -191,7 +191,7 @@ } checkEglError("before makeCurrent"); if (!mEGL.eglMakeCurrent(mEGLDisplay, mEGLSurface, mEGLSurface, mEGLContext)) { - throw new RuntimeException("eglMakeCurrent failed"); + //throw new RuntimeException("eglMakeCurrent failed"); } } /** @@ -221,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 @@ -242,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"); @@ -250,6 +252,7 @@ mFrameAvailable = true; mFrameSyncObject.notifyAll(); } + } /** * Checks for EGL errors. @@ -262,14 +265,16 @@ failed = true; } if (failed) { - throw new RuntimeException("EGL error encountered (see log)"); + //throw new RuntimeException("EGL error encountered (see log)"); } } - public Buffer readPixels() + public byte[] readPixels() { - Buffer buf = ByteBuffer.allocateDirect( 640 * 480 * 4); + ByteBuffer buf = ByteBuffer.allocateDirect( 640 * 480 * 4); mTextureRender.readPixels(buf); - return buf; + byte[] newbuf = new byte[640 * 480 * 4]; + buf.get(newbuf); + return newbuf; } } \ No newline at end of file -- Gitblit v1.8.0