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