mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Remove unused playback diff setting
This commit is contained in:
parent
730b9d36a8
commit
6172c00c3c
2 changed files with 17 additions and 29 deletions
|
@ -538,9 +538,6 @@ class PlaybackCore {
|
||||||
// Diff might be caused by the player internally starting the playback.
|
// Diff might be caused by the player internally starting the playback.
|
||||||
const diffMillis = (serverPositionTicks - currentPositionTicks) / Helper.TicksPerMillisecond;
|
const diffMillis = (serverPositionTicks - currentPositionTicks) / Helper.TicksPerMillisecond;
|
||||||
|
|
||||||
// Adapt playback diff to selected device for time syncing.
|
|
||||||
const targetPlaybackDiff = diffMillis - this.timeSyncCore.getPlaybackDiff();
|
|
||||||
|
|
||||||
// Notify update for playback sync.
|
// Notify update for playback sync.
|
||||||
this.playbackDiffMillis = diffMillis;
|
this.playbackDiffMillis = diffMillis;
|
||||||
Events.trigger(this.manager, 'playback-diff', [this.playbackDiffMillis]);
|
Events.trigger(this.manager, 'playback-diff', [this.playbackDiffMillis]);
|
||||||
|
@ -553,22 +550,22 @@ class PlaybackCore {
|
||||||
const playerWrapper = this.manager.getPlayerWrapper();
|
const playerWrapper = this.manager.getPlayerWrapper();
|
||||||
|
|
||||||
if (this.syncEnabled && this.enableSyncCorrection) {
|
if (this.syncEnabled && this.enableSyncCorrection) {
|
||||||
const absDiffMillis = Math.abs(targetPlaybackDiff);
|
const absDiffMillis = Math.abs(diffMillis);
|
||||||
// TODO: SpeedToSync sounds bad on songs.
|
// TODO: SpeedToSync sounds bad on songs.
|
||||||
// TODO: SpeedToSync is failing on Safari (Mojave); even if playbackRate is supported, some delay seems to exist.
|
// TODO: SpeedToSync is failing on Safari (Mojave); even if playbackRate is supported, some delay seems to exist.
|
||||||
// TODO: both SpeedToSync and SpeedToSync seem to have a hard time keeping up on Android Chrome as well.
|
// TODO: both SpeedToSync and SpeedToSync seem to have a hard time keeping up on Android Chrome as well.
|
||||||
if (playerWrapper.hasPlaybackRate() && this.useSpeedToSync && absDiffMillis >= this.minDelaySpeedToSync && absDiffMillis < this.maxDelaySpeedToSync) {
|
if (playerWrapper.hasPlaybackRate() && this.useSpeedToSync && absDiffMillis >= this.minDelaySpeedToSync && absDiffMillis < this.maxDelaySpeedToSync) {
|
||||||
// Fix negative speed when client is ahead of time more than speedToSyncTime.
|
// Fix negative speed when client is ahead of time more than speedToSyncTime.
|
||||||
const MinSpeed = 0.2;
|
const MinSpeed = 0.2;
|
||||||
if (targetPlaybackDiff <= -speedToSyncTime * MinSpeed) {
|
if (diffMillis <= -speedToSyncTime * MinSpeed) {
|
||||||
speedToSyncTime = Math.abs(targetPlaybackDiff) / (1.0 - MinSpeed);
|
speedToSyncTime = Math.abs(diffMillis) / (1.0 - MinSpeed);
|
||||||
}
|
}
|
||||||
|
|
||||||
// SpeedToSync strategy.
|
// SpeedToSync strategy.
|
||||||
const speed = 1 + targetPlaybackDiff / speedToSyncTime;
|
const speed = 1 + diffMillis / speedToSyncTime;
|
||||||
|
|
||||||
if (speed <= 0) {
|
if (speed <= 0) {
|
||||||
console.error('SyncPlay error: speed should not be negative!', speed, targetPlaybackDiff, speedToSyncTime);
|
console.error('SyncPlay error: speed should not be negative!', speed, diffMillis, speedToSyncTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
playerWrapper.setPlaybackRate(speed);
|
playerWrapper.setPlaybackRate(speed);
|
||||||
|
|
|
@ -7,6 +7,16 @@ import { Events } from 'jellyfin-apiclient';
|
||||||
import Settings from '../Settings';
|
import Settings from '../Settings';
|
||||||
import TimeSyncServer from './TimeSyncServer';
|
import TimeSyncServer from './TimeSyncServer';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Utility function to offset a given date by a given amount of milliseconds.
|
||||||
|
* @param {Date} date The date.
|
||||||
|
* @param {number} offset The offset, in milliseconds.
|
||||||
|
* @returns {Date} The offset date.
|
||||||
|
*/
|
||||||
|
function offsetDate(date, offset) {
|
||||||
|
return new Date(date.getTime() + offset);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class that manages time syncing with several devices.
|
* Class that manages time syncing with several devices.
|
||||||
*/
|
*/
|
||||||
|
@ -89,7 +99,7 @@ class TimeSyncCore {
|
||||||
*/
|
*/
|
||||||
remoteDateToLocal(remote) {
|
remoteDateToLocal(remote) {
|
||||||
const date = this.timeSyncServer.remoteDateToLocal(remote);
|
const date = this.timeSyncServer.remoteDateToLocal(remote);
|
||||||
return this.offsetDate(date, -this.extraTimeOffset);
|
return offsetDate(date, -this.extraTimeOffset);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -99,7 +109,7 @@ class TimeSyncCore {
|
||||||
*/
|
*/
|
||||||
localDateToRemote(local) {
|
localDateToRemote(local) {
|
||||||
const date = this.timeSyncServer.localDateToRemote(local);
|
const date = this.timeSyncServer.localDateToRemote(local);
|
||||||
return this.offsetDate(date, this.extraTimeOffset);
|
return offsetDate(date, this.extraTimeOffset);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -109,25 +119,6 @@ class TimeSyncCore {
|
||||||
getTimeOffset() {
|
getTimeOffset() {
|
||||||
return this.timeSyncServer.getTimeOffset() + this.extraTimeOffset;
|
return this.timeSyncServer.getTimeOffset() + this.extraTimeOffset;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the playback diff that should be used to offset local playback, in milliseconds.
|
|
||||||
* @returns {number} The time offset.
|
|
||||||
*/
|
|
||||||
getPlaybackDiff() {
|
|
||||||
// TODO: this will use playback data from WebRTC peers.
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Offsets a given date by a given ammount of milliseconds.
|
|
||||||
* @param {Date} date The date.
|
|
||||||
* @param {number} offset The offset, in milliseconds.
|
|
||||||
* @returns {Date} The offset date.
|
|
||||||
*/
|
|
||||||
offsetDate(date, offset) {
|
|
||||||
return new Date(date.getTime() + offset);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export default TimeSyncCore;
|
export default TimeSyncCore;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue