From 1659e9776755c411dbe43a3d1dcca1fdfc6922d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sami=20Kalliom=C3=A4ki?= Date: Mon, 4 Jun 2018 14:07:58 +0200 Subject: [PATCH] Use DecimalFormat instead of String.format. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Speculative fix to a problem where String.format crashes with "java.lang.NullPointerException at Formatter$FormatSpecifier.addZeros : Attempt to get length of null array" on some devices. Bug: b/80240768 Change-Id: I8e67b7107a37ad7d6f978b9de368f14d37efecb2 Reviewed-on: https://webrtc-review.googlesource.com/80883 Reviewed-by: Magnus Jedvert Commit-Queue: Sami Kalliomäki Cr-Commit-Position: refs/heads/master@{#23523} --- sdk/android/api/org/webrtc/EglRenderer.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sdk/android/api/org/webrtc/EglRenderer.java b/sdk/android/api/org/webrtc/EglRenderer.java index dccd11105b..fc29aa1a41 100644 --- a/sdk/android/api/org/webrtc/EglRenderer.java +++ b/sdk/android/api/org/webrtc/EglRenderer.java @@ -19,9 +19,9 @@ import android.os.HandlerThread; import android.os.Looper; import android.view.Surface; import java.nio.ByteBuffer; +import java.text.DecimalFormat; import java.util.ArrayList; import java.util.Iterator; -import java.util.Locale; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import javax.annotation.Nullable; @@ -665,6 +665,7 @@ public class EglRenderer implements VideoRenderer.Callbacks, VideoSink { } private void logStatistics() { + final DecimalFormat fpsFormat = new DecimalFormat("#.0"); final long currentTimeNs = System.nanoTime(); synchronized (statisticsLock) { final long elapsedTimeNs = currentTimeNs - statisticsStartTimeNs; @@ -676,7 +677,7 @@ public class EglRenderer implements VideoRenderer.Callbacks, VideoSink { + " Frames received: " + framesReceived + "." + " Dropped: " + framesDropped + "." + " Rendered: " + framesRendered + "." - + " Render fps: " + String.format(Locale.US, "%.1f", renderFps) + "." + + " Render fps: " + fpsFormat.format(renderFps) + "." + " Average render time: " + averageTimeAsString(renderTimeNs, framesRendered) + "." + " Average swapBuffer time: " + averageTimeAsString(renderSwapBufferTimeNs, framesRendered) + ".");