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:
commit
91210408f0
203 changed files with 2214 additions and 3733 deletions
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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 = [];
|
||||
|
|
|
@ -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';
|
||||
|
|
|
@ -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';
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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':
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -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');
|
||||
}
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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';
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue