From b3266a2ef37c376a78dd7662d7a35bf2d60f0093 Mon Sep 17 00:00:00 2001 From: SirStendec Date: Fri, 24 Apr 2020 11:20:05 -0400 Subject: [PATCH] 4.19.11 * Fixed: Add support for a player experiment that renames internal state, breaking certain FrankerFaceZ features that interact with the player. --- package.json | 2 +- src/modules/metadata.jsx | 6 +++--- src/sites/twitch-twilight/modules/player.jsx | 21 +++++++++++--------- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index 0826a040..7400d916 100755 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "frankerfacez", "author": "Dan Salvato LLC", - "version": "4.19.10", + "version": "4.19.11", "description": "FrankerFaceZ is a Twitch enhancement suite.", "license": "Apache-2.0", "scripts": { diff --git a/src/modules/metadata.jsx b/src/modules/metadata.jsx index d9bcd748..5cfde0fc 100644 --- a/src/modules/metadata.jsx +++ b/src/modules/metadata.jsx @@ -220,7 +220,7 @@ export default class Metadata extends Module { skippedFrames: temp.dropped_frames, videoResolution: `${temp.vid_width}x${temp.vid_height}` } - } else if ( player.stats ) { + } else if ( player.stats || player.core?.stats ) { const videoHeight = maybe_call(player.getVideoHeight, player) || 0, videoWidth = maybe_call(player.getVideoWidth, player) || 0, displayHeight = maybe_call(player.getDisplayHeight, player) || 0, @@ -237,8 +237,8 @@ export default class Metadata extends Module { displayWidth, rate: maybe_call(player.getPlaybackRate, player), fps: Math.floor(maybe_call(player.getVideoFrameRate, player) || 0), - hlsLatencyBroadcaster: player.stats?.broadcasterLatency, - hlsLatencyEncoder: player.stats?.transcoderLatency, + hlsLatencyBroadcaster: player.stats?.broadcasterLatency || player.core?.stats?.broadcasterLatency, + hlsLatencyEncoder: player.stats?.transcoderLatency || player.core?.stats?.transcoderLatency, playbackRate: Math.floor((maybe_call(player.getVideoBitRate, player) || 0) / 1000), skippedFrames: maybe_call(player.getDroppedFrames, player), } diff --git a/src/sites/twitch-twilight/modules/player.jsx b/src/sites/twitch-twilight/modules/player.jsx index 74ce894f..834ffac4 100644 --- a/src/sites/twitch-twilight/modules/player.jsx +++ b/src/sites/twitch-twilight/modules/player.jsx @@ -715,7 +715,7 @@ export default class Player extends Module { const delta = event.wheelDelta || -(event.deltaY || event.detail || 0), player = this.props?.mediaPlayerInstance, - video = player?.mediaSinkManager?.video; + video = player?.mediaSinkManager?.video || player?.core?.mediaSinkManager?.video; if ( ! player?.getVolume ) return; @@ -960,7 +960,7 @@ export default class Player extends Module { addCompressorButton(inst, visible_only, tries = 0) { const outer = inst.props.containerRef || this.fine.getChildNode(inst), - video = inst.props.mediaPlayerInstance?.mediaSinkManager?.video, + video = inst.props.mediaPlayerInstance?.mediaSinkManager?.video || inst.props.mediaPlayerInstance?.core?.mediaSinkManager?.video, container = outer && outer.querySelector('.player-controls__left-control-group'), has_comp = HAS_COMPRESSOR && video != null && this.settings.get('player.compressor.enable'); @@ -1032,7 +1032,8 @@ export default class Player extends Module { } compressPlayer(inst, e) { - const video = inst.props.mediaPlayerInstance?.mediaSinkManager?.video; + const video = inst.props.mediaPlayerInstance?.mediaSinkManager?.video || + inst.props.mediaPlayerInstance?.core?.mediaSinkManager?.video; if ( ! video || ! HAS_COMPRESSOR ) return; @@ -1088,7 +1089,7 @@ export default class Player extends Module { if ( player == null ) return false; - const video = player.mediaSinkManager?.video; + const video = player.mediaSinkManager?.video || player.core?.mediaSinkManager?.video; if ( ! video ) return false; @@ -1133,7 +1134,8 @@ export default class Player extends Module { updateCompressor(inst, comp) { if ( comp == null ) { - const video = inst.props.mediaPlayerInstance?.mediaSinkManager?.video; + const video = inst.props.mediaPlayerInstance?.mediaSinkManager?.video || + inst.props.mediaPlayerInstance?.core?.mediaSinkManager?.video; comp = video?._ffz_compressor; } @@ -1150,7 +1152,7 @@ export default class Player extends Module { addPiPButton(inst, tries = 0) { const outer = inst.props.containerRef || this.fine.getChildNode(inst), - video = inst.props.mediaPlayerInstance?.mediaSinkManager?.video, + video = inst.props.mediaPlayerInstance?.mediaSinkManager?.video || inst.props.mediaPlayerInstance?.core?.mediaSinkManager?.video, is_fs = video && document.fullscreenElement && document.fullscreenElement.contains(video), container = outer && outer.querySelector('.player-controls__right-control-group'), has_pip = document.pictureInPictureEnabled && this.settings.get('player.button.pip'); @@ -1223,7 +1225,8 @@ export default class Player extends Module { pipPlayer(inst, e) { - const video = inst.props.mediaPlayerInstance?.mediaSinkManager?.video; + const video = inst.props.mediaPlayerInstance?.mediaSinkManager?.video || + inst.props.mediaPlayerInstance?.core?.mediaSinkManager?.video; if ( ! video || ! document.pictureInPictureEnabled ) return; @@ -1382,7 +1385,7 @@ export default class Player extends Module { resetPlayer(inst, e) { - const player = inst ? (inst.mediaSinkManager ? inst : inst?.props?.mediaPlayerInstance) : null; + const player = inst ? ((inst.mediaSinkManager || inst.core?.mediaSinkManager) ? inst : inst?.props?.mediaPlayerInstance) : null; if ( e ) { e.preventDefault(); @@ -1404,7 +1407,7 @@ export default class Player extends Module { } } - const video = player.mediaSinkManager?.video; + const video = player.mediaSinkManager?.video || player.core?.mediaSinkManager?.video; if ( video?._ffz_compressor && player.attachHTMLVideoElement ) { const new_vid = createElement('video'), vol = player.getVolume(),