/* * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ package org.webrtc.videoengine; import android.content.Context; import android.view.SurfaceHolder; import android.view.SurfaceView; public class ViERenderer { // View used for local rendering that Cameras can use for Video Overlay. private static SurfaceHolder g_localRenderer; public static SurfaceView CreateRenderer(Context context) { return CreateRenderer(context,false); } public static SurfaceView CreateRenderer(Context context, boolean useOpenGLES2) { if(useOpenGLES2 == true && ViEAndroidGLES20.IsSupported(context)) return new ViEAndroidGLES20(context); else return new SurfaceView(context); } // Creates a SurfaceView to be used by Android Camera // service to display a local preview. // This needs to be used on Android prior to version 2.1 // in order to run the camera. // Call this function before ViECapture::StartCapture. // The created view needs to be added to a visible layout // after a camera has been allocated // (with the call ViECapture::AllocateCaptureDevice). // IE. // CreateLocalRenderer // ViECapture::AllocateCaptureDevice // LinearLayout.addview // ViECapture::StartCapture public static SurfaceView CreateLocalRenderer(Context context) { SurfaceView localRender = new SurfaceView(context); g_localRenderer = localRender.getHolder(); g_localRenderer.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); return localRender; } public static SurfaceHolder GetLocalRenderer() { return g_localRenderer; } }