1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

Merge branch 'jellyfin:master' into audio-normalization

This commit is contained in:
TelepathicWalrus 2023-05-07 21:34:40 +01:00 committed by GitHub
commit 91210408f0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
203 changed files with 2214 additions and 3733 deletions

View file

@ -33,9 +33,9 @@ function onOpen() {
const playerId = localStorage.getItem('autocastPlayerId');
playbackManager.getTargets().then(function (targets) {
for (let i = 0; i < targets.length; i++) {
if (targets[i].id == playerId) {
playbackManager.trySetActivePlayer(targets[i].playerName, targets[i]);
for (const target of targets) {
if (target.id == playerId) {
playbackManager.trySetActivePlayer(target.playerName, target);
break;
}
}

View file

@ -167,8 +167,8 @@ function supportsCssAnimation(allowPrefix) {
}
if (animation === false && allowPrefix) {
for (let i = 0; i < domPrefixes.length; i++) {
if (elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) {
for (const domPrefix of domPrefixes) {
if (elm.style[domPrefix + 'AnimationName'] !== undefined) {
animation = true;
break;
}

View file

@ -686,30 +686,6 @@ export default function (options) {
});
});
if (canPlayMkv && !browser.tizen && options.enableMkvProgressive !== false) {
profile.TranscodingProfiles.push({
Container: 'mkv',
Type: 'Video',
AudioCodec: videoAudioCodecs.join(','),
VideoCodec: mp4VideoCodecs.join(','),
Context: 'Streaming',
MaxAudioChannels: physicalAudioChannels.toString(),
CopyTimestamps: true
});
}
if (canPlayMkv) {
profile.TranscodingProfiles.push({
Container: 'mkv',
Type: 'Video',
AudioCodec: videoAudioCodecs.join(','),
VideoCodec: mp4VideoCodecs.join(','),
Context: 'Static',
MaxAudioChannels: physicalAudioChannels.toString(),
CopyTimestamps: true
});
}
if (canPlayHls() && options.enableHls !== false) {
if (hlsInFmp4VideoCodecs.length && hlsInFmp4VideoAudioCodecs.length && userSettings.preferFmp4HlsContainer() && (browser.safari || browser.tizen || browser.web0s)) {
profile.TranscodingProfiles.push({
@ -740,28 +716,6 @@ export default function (options) {
}
}
// Progressive mp4 transcoding
if (mp4VideoCodecs.length && videoAudioCodecs.length) {
profile.TranscodingProfiles.push({
Container: 'mp4',
Type: 'Video',
AudioCodec: videoAudioCodecs.join(','),
VideoCodec: mp4VideoCodecs.join(','),
Context: 'Streaming',
Protocol: 'http',
MaxAudioChannels: physicalAudioChannels.toString()
});
}
profile.TranscodingProfiles.push({
Container: 'mp4',
Type: 'Video',
AudioCodec: videoAudioCodecs.join(','),
VideoCodec: 'h264',
Context: 'Static',
Protocol: 'http'
});
profile.ContainerProfiles = [];
profile.CodecProfiles = [];

View file

@ -114,6 +114,7 @@ export function getDisplayRunningTime(ticks) {
const toLocaleTimeStringSupportsLocales = function () {
try {
// eslint-disable-next-line sonarjs/no-ignored-return
new Date().toLocaleTimeString('i');
} catch (e) {
return e.name === 'RangeError';

View file

@ -1,6 +1,6 @@
import confirm from '../components/confirm/confirm';
import { appRouter } from '../components/appRouter';
import { appRouter } from '../components/router/appRouter';
import globalize from './globalize';
import ServerConnections from '../components/ServerConnections';
import alert from '../components/alert';

View file

@ -87,9 +87,9 @@ export function parentWithClass(elem, classNames) {
let supportsCaptureOption = false;
try {
const opts = Object.defineProperty({}, 'capture', {
// eslint-disable-next-line getter-return
get: function () {
supportsCaptureOption = true;
return null;
}
});
window.addEventListener('test', null, opts);

View file

@ -300,7 +300,6 @@ let selectedNodeId;
$(document).on('itemsaved', '.metadataEditorPage', function (e, item) {
updateEditorNode(this, item);
}).on('pagebeforeshow', '.metadataEditorPage', function () {
/* eslint-disable-next-line @babel/no-unused-expressions */
import('../styles/metadataeditor.scss');
}).on('pagebeforeshow', '.metadataEditorPage', function () {
const page = this;

View file

@ -1,5 +1,6 @@
const BASE_DEVICE_IMAGE_URL = 'assets/img/devices/';
// audit note: this module is expected to return safe text for use in HTML
function getWebDeviceIcon(browser) {
switch (browser) {
case 'Opera':

View file

@ -1,6 +1,6 @@
import { playbackManager } from '../components/playback/playbackmanager';
import focusManager from '../components/focusManager';
import { appRouter } from '../components/appRouter';
import { appRouter } from '../components/router/appRouter';
import dom from './dom';
import { appHost } from '../components/apphost';

View file

@ -202,7 +202,6 @@ export function enable() {
function attachGamepadScript() {
console.log('Gamepad connected! Attaching gamepadtokey.js script');
window.removeEventListener('gamepadconnected', attachGamepadScript);
/* eslint-disable-next-line @babel/no-unused-expressions */
import('./gamepadtokey');
}

View file

@ -5,7 +5,7 @@ import dom from './dom';
import layoutManager from '../components/layoutManager';
import inputManager from './inputManager';
import viewManager from '../components/viewManager/viewManager';
import { appRouter } from '../components/appRouter';
import { appRouter } from '../components/router/appRouter';
import { appHost } from '../components/apphost';
import { playbackManager } from '../components/playback/playbackmanager';
import { pluginManager } from '../components/pluginManager';
@ -591,13 +591,10 @@ function getToolsLinkHtml(item) {
function getToolsMenuHtml(apiClient) {
return getToolsMenuLinks(apiClient).then(function (items) {
let item;
let menuHtml = '';
menuHtml += '<div class="drawerContent">';
for (let i = 0; i < items.length; i++) {
item = items[i];
for (const item of items) {
if (item.href) {
menuHtml += getToolsLinkHtml(item);
} else if (item.name) {

View file

@ -2,7 +2,7 @@ import { playbackManager } from '../components/playback/playbackmanager';
import { pluginManager } from '../components/pluginManager';
import inputManager from '../scripts/inputManager';
import focusManager from '../components/focusManager';
import { appRouter } from '../components/appRouter';
import { appRouter } from '../components/router/appRouter';
import ServerConnections from '../components/ServerConnections';
import toast from '../components/toast/toast';
import alert from '../components/alert';