Track buffering events as errors differently in playback metrics
This commit is contained in:
@@ -238,7 +238,7 @@ class OwncastPlayer {
|
||||
const latency = now - segmentTime;
|
||||
this.playbackMetrics.trackLatency(latency);
|
||||
} catch (err) {
|
||||
console.warn(err);
|
||||
// console.warn(err);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -261,12 +261,12 @@ class OwncastPlayer {
|
||||
}
|
||||
|
||||
handleWaiting(e) {
|
||||
// this.playbackMetrics.incrementErrorCount(1);
|
||||
this.playbackMetrics.isBuffering = true;
|
||||
this.playbackMetrics.incrementErrorCount(1);
|
||||
this.playbackMetrics.setIsBuffering(true);
|
||||
}
|
||||
|
||||
handleNoLongerBuffering() {
|
||||
this.playbackMetrics.isBuffering = false;
|
||||
this.playbackMetrics.setIsBuffering(false);
|
||||
}
|
||||
|
||||
log(message) {
|
||||
|
||||
@@ -11,6 +11,7 @@ class PlaybackMetrics {
|
||||
this.errors = 0;
|
||||
this.qualityVariantChanges = 0;
|
||||
this.isBuffering = false;
|
||||
this.bufferingDurationTimer = 0;
|
||||
|
||||
setInterval(() => {
|
||||
this.send();
|
||||
@@ -31,6 +32,19 @@ class PlaybackMetrics {
|
||||
this.qualityVariantChanges++;
|
||||
}
|
||||
|
||||
setIsBuffering(isBuffering) {
|
||||
this.isBuffering = isBuffering;
|
||||
|
||||
if (!isBuffering) {
|
||||
clearTimeout(this.bufferingDurationTimer);
|
||||
return;
|
||||
}
|
||||
|
||||
this.bufferingDurationTimer = setTimeout(() => {
|
||||
this.incrementErrorCount(1);
|
||||
}, 500);
|
||||
}
|
||||
|
||||
trackSegmentDownloadTime(seconds) {
|
||||
this.segmentDownloadTime.push(seconds);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user