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