adjustments

This commit is contained in:
Drew Hill 2017-10-19 16:24:07 -04:00
parent feff4d3e02
commit 84afad0748

View File

@ -44,10 +44,10 @@ public final class VideoFrameReleaseTimeHelper {
private DisplayManager.DisplayListener displayListener = null; private DisplayManager.DisplayListener displayListener = null;
private Context context = null; private Context context = null;
private VSyncSampler vsyncSampler; private VSyncSampler vsyncSampler = null;
private boolean useDefaultDisplayVsync; private final boolean useDefaultDisplayVsync;
private long vsyncDurationNs; private long vsyncDurationNs = -1; // Value unused.
private long vsyncOffsetNs; private long vsyncOffsetNs = -1; // Value unused.
private long lastFramePresentationTimeUs; private long lastFramePresentationTimeUs;
private long adjustedLastFrameTimeNs; private long adjustedLastFrameTimeNs;
@ -75,11 +75,10 @@ public final class VideoFrameReleaseTimeHelper {
public VideoFrameReleaseTimeHelper(Context context) { public VideoFrameReleaseTimeHelper(Context context) {
this(getDefaultDisplayRefreshRate(context)); this(getDefaultDisplayRefreshRate(context));
this.context = context.getApplicationContext(); this.context = context.getApplicationContext();
registerDisplayListener();
} }
private VideoFrameReleaseTimeHelper(double defaultDisplayRefreshRate) { private VideoFrameReleaseTimeHelper(double defaultDisplayRefreshRate) {
setSync(defaultDisplayRefreshRate); useDefaultDisplayVsync = defaultDisplayRefreshRate != DISPLAY_REFRESH_RATE_UNKNOWN;
} }
/** /**
@ -100,8 +99,8 @@ public final class VideoFrameReleaseTimeHelper {
public void disable() { public void disable() {
if (useDefaultDisplayVsync) { if (useDefaultDisplayVsync) {
vsyncSampler.removeObserver(); vsyncSampler.removeObserver();
unregisterDisplayListener();
} }
unregisterDisplayListener();
} }
private void registerDisplayListener() { private void registerDisplayListener() {
@ -128,15 +127,10 @@ public final class VideoFrameReleaseTimeHelper {
private void setSync(double defaultDisplayRefreshRate) { private void setSync(double defaultDisplayRefreshRate) {
useDefaultDisplayVsync = defaultDisplayRefreshRate != DISPLAY_REFRESH_RATE_UNKNOWN;
if (useDefaultDisplayVsync) { if (useDefaultDisplayVsync) {
vsyncSampler = VSyncSampler.getInstance(); vsyncSampler = VSyncSampler.getInstance();
vsyncDurationNs = (long) (C.NANOS_PER_SECOND / defaultDisplayRefreshRate); vsyncDurationNs = (long) (C.NANOS_PER_SECOND / defaultDisplayRefreshRate);
vsyncOffsetNs = (vsyncDurationNs * VSYNC_OFFSET_PERCENTAGE) / 100; vsyncOffsetNs = (vsyncDurationNs * VSYNC_OFFSET_PERCENTAGE) / 100;
} else {
vsyncSampler = null;
vsyncDurationNs = -1; // Value unused.
vsyncOffsetNs = -1; // Value unused.
} }
} }