jellyfish-web/src/bower_components/emby-webcomponents/qualityoptions.js

214 lines
7.4 KiB
JavaScript
Raw Normal View History

2018-10-23 01:05:09 +03:00
define(["globalize"], function(globalize) {
"use strict";
function getVideoQualityOptions(options) {
var maxStreamingBitrate = options.currentMaxBitrate,
videoWidth = options.videoWidth,
maxAllowedWidth = videoWidth || 4096,
qualityOptions = [];
maxAllowedWidth >= 3800 && (qualityOptions.push({
name: "4K - 120 Mbps",
maxHeight: 2160,
bitrate: 12e7
}), qualityOptions.push({
name: "4K - 100 Mbps",
maxHeight: 2160,
bitrate: 1e8
}), qualityOptions.push({
name: "4K - 80 Mbps",
maxHeight: 2160,
bitrate: 8e7
})), maxAllowedWidth >= 1900 ? (qualityOptions.push({
name: "1080p - 60 Mbps",
maxHeight: 1080,
bitrate: 6e7
}), qualityOptions.push({
name: "1080p - 50 Mbps",
maxHeight: 1080,
bitrate: 5e7
}), qualityOptions.push({
name: "1080p - 40 Mbps",
maxHeight: 1080,
bitrate: 4e7
}), qualityOptions.push({
name: "1080p - 30 Mbps",
maxHeight: 1080,
bitrate: 3e7
}), qualityOptions.push({
name: "1080p - 25 Mbps",
maxHeight: 1080,
bitrate: 25e6
}), qualityOptions.push({
name: "1080p - 20 Mbps",
maxHeight: 1080,
bitrate: 2e7
}), qualityOptions.push({
name: "1080p - 15 Mbps",
maxHeight: 1080,
bitrate: 15e6
}), qualityOptions.push({
name: "1080p - 10 Mbps",
maxHeight: 1080,
bitrate: 10000001
}), qualityOptions.push({
name: "1080p - 8 Mbps",
maxHeight: 1080,
bitrate: 8000001
}), qualityOptions.push({
name: "1080p - 6 Mbps",
maxHeight: 1080,
bitrate: 6000001
}), qualityOptions.push({
name: "1080p - 5 Mbps",
maxHeight: 1080,
bitrate: 5000001
}), qualityOptions.push({
name: "1080p - 4 Mbps",
maxHeight: 1080,
bitrate: 4000002
})) : maxAllowedWidth >= 1260 ? (qualityOptions.push({
name: "720p - 10 Mbps",
maxHeight: 720,
bitrate: 1e7
}), qualityOptions.push({
name: "720p - 8 Mbps",
maxHeight: 720,
bitrate: 8e6
}), qualityOptions.push({
name: "720p - 6 Mbps",
maxHeight: 720,
bitrate: 6e6
}), qualityOptions.push({
name: "720p - 5 Mbps",
maxHeight: 720,
bitrate: 5e6
})) : maxAllowedWidth >= 620 && (qualityOptions.push({
name: "480p - 4 Mbps",
maxHeight: 480,
bitrate: 4000001
}), qualityOptions.push({
name: "480p - 3 Mbps",
maxHeight: 480,
bitrate: 3000001
}), qualityOptions.push({
name: "480p - 2.5 Mbps",
maxHeight: 480,
bitrate: 25e5
}), qualityOptions.push({
name: "480p - 2 Mbps",
maxHeight: 480,
bitrate: 2000001
}), qualityOptions.push({
name: "480p - 1.5 Mbps",
maxHeight: 480,
bitrate: 1500001
})), maxAllowedWidth >= 1260 && (qualityOptions.push({
name: "720p - 4 Mbps",
maxHeight: 720,
bitrate: 4e6
}), qualityOptions.push({
name: "720p - 3 Mbps",
maxHeight: 720,
bitrate: 3e6
}), qualityOptions.push({
name: "720p - 2 Mbps",
maxHeight: 720,
bitrate: 2e6
}), qualityOptions.push({
name: "720p - 1.5 Mbps",
maxHeight: 720,
bitrate: 15e5
}), qualityOptions.push({
name: "720p - 1 Mbps",
maxHeight: 720,
bitrate: 1000001
})), qualityOptions.push({
name: "480p - 1 Mbps",
maxHeight: 480,
bitrate: 1e6
}), qualityOptions.push({
name: "480p - 720 kbps",
maxHeight: 480,
bitrate: 72e4
}), qualityOptions.push({
name: "480p - 420 kbps",
maxHeight: 480,
bitrate: 42e4
}), qualityOptions.push({
name: "360p",
maxHeight: 360,
bitrate: 4e5
}), qualityOptions.push({
name: "240p",
maxHeight: 240,
bitrate: 32e4
}), qualityOptions.push({
name: "144p",
maxHeight: 144,
bitrate: 192e3
});
var autoQualityOption = {
name: globalize.translate("sharedcomponents#Auto"),
bitrate: 0,
selected: options.isAutomaticBitrateEnabled
};
if (options.enableAuto && qualityOptions.push(autoQualityOption), maxStreamingBitrate) {
for (var selectedIndex = -1, i = 0, length = qualityOptions.length; i < length; i++) {
var option = qualityOptions[i]; - 1 === selectedIndex && option.bitrate <= maxStreamingBitrate && (selectedIndex = i)
} - 1 === selectedIndex && (selectedIndex = qualityOptions.length - 1);
var currentQualityOption = qualityOptions[selectedIndex];
options.isAutomaticBitrateEnabled ? autoQualityOption.autoText = currentQualityOption.name : currentQualityOption.selected = !0
}
return qualityOptions
}
function getAudioQualityOptions(options) {
var maxStreamingBitrate = options.currentMaxBitrate,
qualityOptions = [];
qualityOptions.push({
name: "2 Mbps",
bitrate: 2e6
}), qualityOptions.push({
name: "1.5 Mbps",
bitrate: 15e5
}), qualityOptions.push({
name: "1 Mbps",
bitrate: 1e6
}), qualityOptions.push({
name: "320 kbps",
bitrate: 32e4
}), qualityOptions.push({
name: "256 kbps",
bitrate: 256e3
}), qualityOptions.push({
name: "192 kbps",
bitrate: 192e3
}), qualityOptions.push({
name: "128 kbps",
bitrate: 128e3
}), qualityOptions.push({
name: "96 kbps",
bitrate: 96e3
}), qualityOptions.push({
name: "64 kbps",
bitrate: 64e3
});
var autoQualityOption = {
name: globalize.translate("sharedcomponents#Auto"),
bitrate: 0,
selected: options.isAutomaticBitrateEnabled
};
if (options.enableAuto && qualityOptions.push(autoQualityOption), maxStreamingBitrate) {
for (var selectedIndex = -1, i = 0, length = qualityOptions.length; i < length; i++) {
var option = qualityOptions[i]; - 1 === selectedIndex && option.bitrate <= maxStreamingBitrate && (selectedIndex = i)
} - 1 === selectedIndex && (selectedIndex = qualityOptions.length - 1);
var currentQualityOption = qualityOptions[selectedIndex];
options.isAutomaticBitrateEnabled ? autoQualityOption.autoText = currentQualityOption.name : currentQualityOption.selected = !0
}
return qualityOptions
}
return {
getVideoQualityOptions: getVideoQualityOptions,
getAudioQualityOptions: getAudioQualityOptions
}
});