Trace render window state using a counter.
This makes it show up as an individual track in perfetto
allowing rendering to be more easily inspected.
https://screenshot.googleplex.com/3eyicjpxdKaG3oE
Bug: b/217863437
Change-Id: I2710a8709141fda50ec613390161ab9c6526b931
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/328381
Auto-Submit: Linus Nilsson <lnilsson@webrtc.org>
Commit-Queue: Linus Nilsson <lnilsson@webrtc.org>
Reviewed-by: ZoƩ Lepaul <xalep@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41222}
diff --git a/sdk/android/api/org/webrtc/RenderSynchronizer.java b/sdk/android/api/org/webrtc/RenderSynchronizer.java
index b1ade84..c89f798 100644
--- a/sdk/android/api/org/webrtc/RenderSynchronizer.java
+++ b/sdk/android/api/org/webrtc/RenderSynchronizer.java
@@ -10,8 +10,11 @@
package org.webrtc;
+import android.os.Build.VERSION;
+import android.os.Build.VERSION_CODES;
import android.os.Handler;
import android.os.Looper;
+import android.os.Trace;
import android.view.Choreographer;
import androidx.annotation.GuardedBy;
import java.util.List;
@@ -100,8 +103,15 @@
}
}
+ private void traceRenderWindowChange() {
+ if (VERSION.SDK_INT >= VERSION_CODES.Q) {
+ Trace.setCounter("RenderWindow", renderWindowOpen ? 1 : 0);
+ }
+ }
+
private void openRenderWindow() {
renderWindowOpen = true;
+ traceRenderWindowChange();
for (Listener listener : listeners) {
listener.onRenderWindowOpen();
}
@@ -109,6 +119,7 @@
private void closeRenderWindow() {
renderWindowOpen = false;
+ traceRenderWindowChange();
for (Listener listener : listeners) {
listener.onRenderWindowClose();
}