| Index: webrtc/sdk/android/api/org/webrtc/SurfaceViewRenderer.java
|
| diff --git a/webrtc/sdk/android/api/org/webrtc/SurfaceViewRenderer.java b/webrtc/sdk/android/api/org/webrtc/SurfaceViewRenderer.java
|
| index 2a9d04f0460bbf5fdbeff16b157780ffdefc0186..ccfb9d0641e7fe35ea5a079cbd8b7691283cc303 100644
|
| --- a/webrtc/sdk/android/api/org/webrtc/SurfaceViewRenderer.java
|
| +++ b/webrtc/sdk/android/api/org/webrtc/SurfaceViewRenderer.java
|
| @@ -41,6 +41,7 @@ public class SurfaceViewRenderer
|
| private RendererCommon.RendererEvents rendererEvents;
|
|
|
| private final Object layoutLock = new Object();
|
| + private boolean isRenderingPaused = false;
|
| private boolean isFirstFrameRendered;
|
| private int rotatedFrameWidth;
|
| private int rotatedFrameHeight;
|
| @@ -177,14 +178,23 @@ public class SurfaceViewRenderer
|
| * reduction.
|
| */
|
| public void setFpsReduction(float fps) {
|
| + synchronized (layoutLock) {
|
| + isRenderingPaused = fps == 0f;
|
| + }
|
| eglRenderer.setFpsReduction(fps);
|
| }
|
|
|
| public void disableFpsReduction() {
|
| + synchronized (layoutLock) {
|
| + isRenderingPaused = false;
|
| + }
|
| eglRenderer.disableFpsReduction();
|
| }
|
|
|
| public void pauseVideo() {
|
| + synchronized (layoutLock) {
|
| + isRenderingPaused = true;
|
| + }
|
| eglRenderer.pauseVideo();
|
| }
|
|
|
| @@ -295,6 +305,9 @@ public class SurfaceViewRenderer
|
| // Update frame dimensions and report any changes to |rendererEvents|.
|
| private void updateFrameDimensionsAndReportEvents(VideoRenderer.I420Frame frame) {
|
| synchronized (layoutLock) {
|
| + if (isRenderingPaused) {
|
| + return;
|
| + }
|
| if (!isFirstFrameRendered) {
|
| isFirstFrameRendered = true;
|
| logD("Reporting first rendered frame.");
|
|
|