From 17f60d967f45436edec4654f8514c623e562155a Mon Sep 17 00:00:00 2001 From: Jonathan Lennox Date: Mon, 12 Feb 2024 17:53:03 -0500 Subject: [PATCH] Improve debug output of VP9 and AV1 quality filters. --- .../org/jitsi/videobridge/cc/av1/Av1DDQualityFilter.kt | 2 ++ .../org/jitsi/videobridge/cc/vp9/Vp9QualityFilter.kt | 7 +++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/jvb/src/main/kotlin/org/jitsi/videobridge/cc/av1/Av1DDQualityFilter.kt b/jvb/src/main/kotlin/org/jitsi/videobridge/cc/av1/Av1DDQualityFilter.kt index 331a80faa9..01808bd5a2 100644 --- a/jvb/src/main/kotlin/org/jitsi/videobridge/cc/av1/Av1DDQualityFilter.kt +++ b/jvb/src/main/kotlin/org/jitsi/videobridge/cc/av1/Av1DDQualityFilter.kt @@ -416,6 +416,7 @@ internal class Av1DDQualityFilter( internal fun addDiagnosticContext(pt: DiagnosticContext.TimeSeriesPoint) { pt.addField("qf.currentIndex", Av1DDRtpLayerDesc.indexString(currentIndex)) .addField("qf.internalTargetEncoding", internalTargetEncoding) + .addField("qf.internalTargetDt", internalTargetDt) .addField("qf.needsKeyframe", needsKeyframe) .addField( "qf.mostRecentKeyframeGroupArrivalTimeMs", @@ -439,6 +440,7 @@ internal class Av1DDQualityFilter( mostRecentKeyframeGroupArrivalTime?.toEpochMilli() ?: -1 debugState["needsKeyframe"] = needsKeyframe debugState["internalTargetEncoding"] = internalTargetEncoding + debugState["internalTargetDt"] = internalTargetDt debugState["currentIndex"] = Av1DDRtpLayerDesc.indexString(currentIndex) return debugState } diff --git a/jvb/src/main/kotlin/org/jitsi/videobridge/cc/vp9/Vp9QualityFilter.kt b/jvb/src/main/kotlin/org/jitsi/videobridge/cc/vp9/Vp9QualityFilter.kt index 863b4c8786..2111eda04d 100644 --- a/jvb/src/main/kotlin/org/jitsi/videobridge/cc/vp9/Vp9QualityFilter.kt +++ b/jvb/src/main/kotlin/org/jitsi/videobridge/cc/vp9/Vp9QualityFilter.kt @@ -80,7 +80,7 @@ internal class Vp9QualityFilter(parentLogger: Logger) { /** * Which spatial layers are currently being forwarded. */ - private val layers: Array = Array(MAX_VP9_LAYERS) { false } + private val layers = BooleanArray(MAX_VP9_LAYERS) /** * Determines whether to accept or drop a VP9 frame. @@ -428,6 +428,7 @@ internal class Vp9QualityFilter(parentLogger: Logger) { internal fun addDiagnosticContext(pt: DiagnosticContext.TimeSeriesPoint) { pt.addField("qf.currentIndex", indexString(currentIndex)) .addField("qf.internalTargetEncoding", internalTargetEncoding) + .addField("qf.internalTargetSpatialId", internalTargetSpatialId) .addField("qf.needsKeyframe", needsKeyframe) .addField( "qf.mostRecentKeyframeGroupArrivalTimeMs", @@ -452,8 +453,10 @@ internal class Vp9QualityFilter(parentLogger: Logger) { debugState["mostRecentKeyframeGroupArrivalTimeMs"] = mostRecentKeyframeGroupArrivalTime?.toEpochMilli() ?: -1 debugState["needsKeyframe"] = needsKeyframe - debugState["internalTargetIndex"] = internalTargetEncoding + debugState["internalTargetEncoding"] = internalTargetEncoding + debugState["internalTargetSpatialId"] = internalTargetSpatialId debugState["currentIndex"] = indexString(currentIndex) + debugState["layersForwarded"] = layers.map { toString().first() }.joinToString(separator = "") return debugState }