Skip to content

Commit 084a5a9

Browse files
authored
feat(connectivity) Adds stats based video freeze detection.
* feat(connectivity) Adds stats based video freeze detection. MediaStreamTrack 'mute' events are no longer fired because of Chrome bug - https://issues.chromium.org/issues/489023910. This introduces logic to track decoded frames stats per SSRC and marks the track as frozen when framesDecoded counter stops incrementing. * fix: Start stall detection when inbound-rtp stats are missing for a remote track.
1 parent 0c6afe8 commit 084a5a9

4 files changed

Lines changed: 852 additions & 7 deletions

File tree

modules/browser/BrowserCapabilities.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -153,10 +153,14 @@ export default class BrowserCapabilities extends BrowserDetection {
153153
* Checks if the current browser triggers 'onmute'/'onunmute' events when
154154
* user's connection is interrupted and the video stops playback.
155155
*
156-
* @returns {*|boolean} 'true' if the event is supported or 'false' otherwise.
156+
* Chrome M144+ regression: mute/unmute events no longer fire for video tracks
157+
* when frames stop flowing. See: https://issues.chromium.org/issues/489023910
158+
*
159+
* @returns {boolean} 'true' if the event is supported or 'false' otherwise.
157160
*/
158-
supportsVideoMuteOnConnInterrupted(): any | boolean {
159-
return this.isChromiumBased() || this.isReactNative();
161+
supportsVideoMuteOnConnInterrupted(): boolean {
162+
return (this.isChromiumBased() && this.isVersionLessThan(144))
163+
|| this.isReactNative();
160164
}
161165

162166
/**

0 commit comments

Comments
 (0)