Pause changing surface size when rendering is paused.

BUG=b/31895311

Review-Url: https://codereview.webrtc.org/2837563002
Cr-Commit-Position: refs/heads/master@{#17886}
This commit is contained in:
sakal 2017-04-26 06:05:18 -07:00 committed by Commit bot
parent c376fd1573
commit 521dffab5d

View File

@ -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.");