From 8dd085f78e4bcfbc89ede104108cd03053183865 Mon Sep 17 00:00:00 2001
From: xuxiuxi <xuxiuxi@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期二, 01 八月 2017 15:37:00 +0800
Subject: [PATCH]
---
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