Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(178)

Side by Side Diff: talk/app/webrtc/java/android/org/webrtc/SurfaceViewRenderer.java

Issue 1461083002: Use EGL14 if supported on Android (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Changed VideoRendererGui to return an EglBase.Context. Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * libjingle 2 * libjingle
3 * Copyright 2015 Google Inc. 3 * Copyright 2015 Google Inc.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met: 6 * modification, are permitted provided that the following conditions are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright notice, 8 * 1. Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer. 9 * this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright notice, 10 * 2. Redistributions in binary form must reproduce the above copyright notice,
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 public SurfaceViewRenderer(Context context, AttributeSet attrs) { 146 public SurfaceViewRenderer(Context context, AttributeSet attrs) {
147 super(context, attrs); 147 super(context, attrs);
148 getHolder().addCallback(this); 148 getHolder().addCallback(this);
149 } 149 }
150 150
151 /** 151 /**
152 * Initialize this class, sharing resources with |sharedContext|. It is allowe d to call init() to 152 * Initialize this class, sharing resources with |sharedContext|. It is allowe d to call init() to
153 * reinitialize the renderer after a previous init()/release() cycle. 153 * reinitialize the renderer after a previous init()/release() cycle.
154 */ 154 */
155 public void init( 155 public void init(
156 EGLContext sharedContext, RendererCommon.RendererEvents rendererEvents) { 156 EglBase.Context sharedContext, RendererCommon.RendererEvents rendererEvent s) {
157 synchronized (handlerLock) { 157 synchronized (handlerLock) {
158 if (renderThreadHandler != null) { 158 if (renderThreadHandler != null) {
159 throw new IllegalStateException(getResourceName() + "Already initialized "); 159 throw new IllegalStateException(getResourceName() + "Already initialized ");
160 } 160 }
161 Logging.d(TAG, getResourceName() + "Initializing."); 161 Logging.d(TAG, getResourceName() + "Initializing.");
162 this.rendererEvents = rendererEvents; 162 this.rendererEvents = rendererEvents;
163 renderThread = new HandlerThread(TAG); 163 renderThread = new HandlerThread(TAG);
164 renderThread.start(); 164 renderThread.start();
165 drawer = new GlRectDrawer(); 165 drawer = new GlRectDrawer();
166 eglBase = new EglBase(sharedContext, EglBase.ConfigType.PLAIN); 166 eglBase = EglBase.create(sharedContext, EglBase.ConfigType.PLAIN);
167 renderThreadHandler = new Handler(renderThread.getLooper()); 167 renderThreadHandler = new Handler(renderThread.getLooper());
168 } 168 }
169 tryCreateEglSurface(); 169 tryCreateEglSurface();
170 } 170 }
171 171
172 @Deprecated
173 // TODO(perkj): Remove when applications has been updated.
174 public void init(
175 EGLContext sharedContext, RendererCommon.RendererEvents rendererEvents) {
176 init(sharedContext != null ? new EglBase.Context(sharedContext) : null, rend ererEvents);
177 }
178
172 /** 179 /**
173 * Create and make an EGLSurface current if both init() and surfaceCreated() h ave been called. 180 * Create and make an EGLSurface current if both init() and surfaceCreated() h ave been called.
174 */ 181 */
175 public void tryCreateEglSurface() { 182 public void tryCreateEglSurface() {
176 // |renderThreadHandler| is only created after |eglBase| is created in init( ), so the 183 // |renderThreadHandler| is only created after |eglBase| is created in init( ), so the
177 // following code will only execute if eglBase != null. 184 // following code will only execute if eglBase != null.
178 runOnRenderThread(new Runnable() { 185 runOnRenderThread(new Runnable() {
179 @Override public void run() { 186 @Override public void run() {
180 synchronized (layoutLock) { 187 synchronized (layoutLock) {
181 if (isSurfaceCreated && !eglBase.hasSurface()) { 188 if (isSurfaceCreated && !eglBase.hasSurface()) {
(...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after
553 } 560 }
554 } 561 }
555 562
556 private void logStatistics() { 563 private void logStatistics() {
557 synchronized (statisticsLock) { 564 synchronized (statisticsLock) {
558 Logging.d(TAG, getResourceName() + "Frames received: " 565 Logging.d(TAG, getResourceName() + "Frames received: "
559 + framesReceived + ". Dropped: " + framesDropped + ". Rendered: " + fr amesRendered); 566 + framesReceived + ". Dropped: " + framesDropped + ". Rendered: " + fr amesRendered);
560 if (framesReceived > 0 && framesRendered > 0) { 567 if (framesReceived > 0 && framesRendered > 0) {
561 final long timeSinceFirstFrameNs = System.nanoTime() - firstFrameTimeNs; 568 final long timeSinceFirstFrameNs = System.nanoTime() - firstFrameTimeNs;
562 Logging.d(TAG, getResourceName() + "Duration: " + (int) (timeSinceFirstF rameNs / 1e6) + 569 Logging.d(TAG, getResourceName() + "Duration: " + (int) (timeSinceFirstF rameNs / 1e6) +
563 " ms. FPS: " + (float) framesRendered * 1e9 / timeSinceFirstFrameNs) ; 570 " ms. FPS: " + framesRendered * 1e9 / timeSinceFirstFrameNs);
564 Logging.d(TAG, getResourceName() + "Average render time: " 571 Logging.d(TAG, getResourceName() + "Average render time: "
565 + (int) (renderTimeNs / (1000 * framesRendered)) + " us."); 572 + (int) (renderTimeNs / (1000 * framesRendered)) + " us.");
566 } 573 }
567 } 574 }
568 } 575 }
569 } 576 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698