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:
parent
c376fd1573
commit
521dffab5d
@ -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.");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user