check if defaultRefreshRate is reasonable

We found getDefaultDisplay has a very small chance returns null
This commit is contained in:
michalliu 2017-06-13 15:17:32 +08:00
parent c980eae9c4
commit dbfbcd6312

View File

@ -72,7 +72,7 @@ public final class VideoFrameReleaseTimeHelper {
private VideoFrameReleaseTimeHelper(double defaultDisplayRefreshRate,
boolean useDefaultDisplayVsync) {
this.useDefaultDisplayVsync = useDefaultDisplayVsync;
if (useDefaultDisplayVsync) {
if (useDefaultDisplayVsync && defaultDisplayRefreshRate > 0f) {
vsyncSampler = VSyncSampler.getInstance();
vsyncDurationNs = (long) (C.NANOS_PER_SECOND / defaultDisplayRefreshRate);
vsyncOffsetNs = (vsyncDurationNs * VSYNC_OFFSET_PERCENTAGE) / 100;
@ -202,7 +202,7 @@ public final class VideoFrameReleaseTimeHelper {
private static float getDefaultDisplayRefreshRate(Context context) {
WindowManager manager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
return manager.getDefaultDisplay().getRefreshRate();
return manager.getDefaultDisplay() != null ? manager.getDefaultDisplay().getRefreshRate() : 0f;
}
/**