aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/utils/video/InputSurface.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/pixart/messenger/utils/video/InputSurface.java')
-rw-r--r--src/main/java/de/pixart/messenger/utils/video/InputSurface.java136
1 files changed, 0 insertions, 136 deletions
diff --git a/src/main/java/de/pixart/messenger/utils/video/InputSurface.java b/src/main/java/de/pixart/messenger/utils/video/InputSurface.java
deleted file mode 100644
index 3376b4b87..000000000
--- a/src/main/java/de/pixart/messenger/utils/video/InputSurface.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package de.pixart.messenger.utils.video;
-
-import android.annotation.TargetApi;
-import android.opengl.EGL14;
-import android.opengl.EGLConfig;
-import android.opengl.EGLContext;
-import android.opengl.EGLDisplay;
-import android.opengl.EGLExt;
-import android.opengl.EGLSurface;
-import android.os.Build;
-import android.view.Surface;
-
-@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
-public class InputSurface {
- private static final boolean VERBOSE = false;
- private static final int EGL_RECORDABLE_ANDROID = 0x3142;
- private static final int EGL_OPENGL_ES2_BIT = 4;
- private EGLDisplay mEGLDisplay;
- private EGLContext mEGLContext;
- private EGLSurface mEGLSurface;
- private Surface mSurface;
-
- public InputSurface(Surface surface) {
- if (surface == null) {
- throw new NullPointerException();
- }
- mSurface = surface;
- eglSetup();
- }
-
- private void eglSetup() {
- mEGLDisplay = EGL14.eglGetDisplay(EGL14.EGL_DEFAULT_DISPLAY);
- if (mEGLDisplay == EGL14.EGL_NO_DISPLAY) {
- throw new RuntimeException("unable to get EGL14 display");
- }
- int[] version = new int[2];
- if (!EGL14.eglInitialize(mEGLDisplay, version, 0, version, 1)) {
- mEGLDisplay = null;
- throw new RuntimeException("unable to initialize EGL14");
- }
-
- int[] attribList = {
- EGL14.EGL_RED_SIZE, 8,
- EGL14.EGL_GREEN_SIZE, 8,
- EGL14.EGL_BLUE_SIZE, 8,
- EGL14.EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
- EGL_RECORDABLE_ANDROID, 1,
- EGL14.EGL_NONE
- };
- EGLConfig[] configs = new EGLConfig[1];
- int[] numConfigs = new int[1];
- if (!EGL14.eglChooseConfig(mEGLDisplay, attribList, 0, configs, 0, configs.length,
- numConfigs, 0)) {
- throw new RuntimeException("unable to find RGB888+recordable ES2 EGL config");
- }
-
- int[] attrib_list = {
- EGL14.EGL_CONTEXT_CLIENT_VERSION, 2,
- EGL14.EGL_NONE
- };
-
- mEGLContext = EGL14.eglCreateContext(mEGLDisplay, configs[0], EGL14.EGL_NO_CONTEXT, attrib_list, 0);
- checkEglError("eglCreateContext");
- if (mEGLContext == null) {
- throw new RuntimeException("null context");
- }
-
- int[] surfaceAttribs = {
- EGL14.EGL_NONE
- };
- mEGLSurface = EGL14.eglCreateWindowSurface(mEGLDisplay, configs[0], mSurface,
- surfaceAttribs, 0);
- checkEglError("eglCreateWindowSurface");
- if (mEGLSurface == null) {
- throw new RuntimeException("surface was null");
- }
- }
-
- public void release() {
- if (EGL14.eglGetCurrentContext().equals(mEGLContext)) {
- EGL14.eglMakeCurrent(mEGLDisplay, EGL14.EGL_NO_SURFACE, EGL14.EGL_NO_SURFACE, EGL14.EGL_NO_CONTEXT);
- }
- EGL14.eglDestroySurface(mEGLDisplay, mEGLSurface);
- EGL14.eglDestroyContext(mEGLDisplay, mEGLContext);
- mSurface.release();
- mEGLDisplay = null;
- mEGLContext = null;
- mEGLSurface = null;
- mSurface = null;
- }
-
- public void makeCurrent() {
- if (!EGL14.eglMakeCurrent(mEGLDisplay, mEGLSurface, mEGLSurface, mEGLContext)) {
- throw new RuntimeException("eglMakeCurrent failed");
- }
- }
-
- public boolean swapBuffers() {
- return EGL14.eglSwapBuffers(mEGLDisplay, mEGLSurface);
- }
-
- public Surface getSurface() {
- return mSurface;
- }
-
- public void setPresentationTime(long nsecs) {
- EGLExt.eglPresentationTimeANDROID(mEGLDisplay, mEGLSurface, nsecs);
- }
-
- private void checkEglError(String msg) {
- boolean failed = false;
- int error;
- while ((error = EGL14.eglGetError()) != EGL14.EGL_SUCCESS) {
- failed = true;
- }
- if (failed) {
- throw new RuntimeException("EGL error encountered (see log)");
- }
- }
-}