mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update audio transcoding bitrate
This commit is contained in:
parent
2032762b30
commit
6902732194
9 changed files with 116 additions and 64 deletions
|
@ -284,9 +284,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media all and (min-width: 700px) {
|
||||||
@media all and (min-width: 640px) {
|
|
||||||
|
|
||||||
.backdropCard {
|
.backdropCard {
|
||||||
width: 33.3%;
|
width: 33.3%;
|
||||||
}
|
}
|
||||||
|
@ -296,7 +294,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@media all and (min-width: 800px) {
|
@media all and (min-width: 800px) {
|
||||||
|
|
||||||
.squareCard {
|
.squareCard {
|
||||||
|
@ -319,10 +316,6 @@
|
||||||
width: 20%;
|
width: 20%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.backdropCard {
|
|
||||||
width: 25%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.smallBackdropCard {
|
.smallBackdropCard {
|
||||||
width: 20%;
|
width: 20%;
|
||||||
}
|
}
|
||||||
|
@ -331,6 +324,10 @@
|
||||||
|
|
||||||
@media all and (min-width: 1200px) {
|
@media all and (min-width: 1200px) {
|
||||||
|
|
||||||
|
.backdropCard {
|
||||||
|
width: 25%;
|
||||||
|
}
|
||||||
|
|
||||||
.squareCard {
|
.squareCard {
|
||||||
width: 16.666666666666666666666666666667%;
|
width: 16.666666666666666666666666666667%;
|
||||||
}
|
}
|
||||||
|
@ -483,15 +480,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@media all and (min-width: 600px) {
|
|
||||||
|
|
||||||
.detailPageSquareCard {
|
|
||||||
width: 20%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/** homePageSmallBackdropCard */
|
/** homePageSmallBackdropCard */
|
||||||
.homePageSmallBackdropCard .cardPadder {
|
.homePageSmallBackdropCard .cardPadder {
|
||||||
padding-bottom: 56.25%;
|
padding-bottom: 56.25%;
|
||||||
|
|
|
@ -384,7 +384,7 @@ span.itemCommunityRating:not(:empty) + .userDataIcons {
|
||||||
|
|
||||||
.noBackdrop {
|
.noBackdrop {
|
||||||
height: auto;
|
height: auto;
|
||||||
margin: 2.5em 0 0;
|
margin: 3em 0 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.noBackdrop .itemBackdropContent {
|
.noBackdrop .itemBackdropContent {
|
||||||
|
@ -633,7 +633,7 @@ span.itemCommunityRating:not(:empty) + .userDataIcons {
|
||||||
|
|
||||||
.detailSection {
|
.detailSection {
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
margin-bottom: 2em;
|
margin-bottom: 2.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.detailCollapsibleSection:not(.hide) + .detailCollapsibleSection {
|
.detailCollapsibleSection:not(.hide) + .detailCollapsibleSection {
|
||||||
|
@ -664,7 +664,7 @@ span.itemCommunityRating:not(:empty) + .userDataIcons {
|
||||||
}
|
}
|
||||||
|
|
||||||
.detailSectionHeader, .detailSectionHeader h3 {
|
.detailSectionHeader, .detailSectionHeader h3 {
|
||||||
font-size: 16px;
|
font-size: 17px;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -754,13 +754,37 @@ span.itemCommunityRating:not(:empty) + .userDataIcons {
|
||||||
|
|
||||||
@media all and (max-width: 800px) {
|
@media all and (max-width: 800px) {
|
||||||
|
|
||||||
.editorMenuLink {
|
.itemBackdrop:not(.noBackdrop) {
|
||||||
display: none;
|
height: 500px;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media all and (max-height: 800px), (max-width: 700px) {
|
||||||
|
|
||||||
|
.itemBackdrop:not(.noBackdrop) {
|
||||||
|
height: 400px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media all and (max-height: 700px) {
|
||||||
|
|
||||||
|
.itemBackdrop:not(.noBackdrop) {
|
||||||
|
height: 340px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media all and (max-height: 600px), (max-width: 600px) {
|
||||||
|
|
||||||
.itemBackdrop:not(.noBackdrop) {
|
.itemBackdrop:not(.noBackdrop) {
|
||||||
height: 280px;
|
height: 280px;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media all and (max-width: 800px) {
|
||||||
|
|
||||||
|
.editorMenuLink {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
.itemDetailImage {
|
.itemDetailImage {
|
||||||
max-height: 240px;
|
max-height: 240px;
|
||||||
|
|
|
@ -12,6 +12,10 @@
|
||||||
margin: .5em 0;
|
margin: .5em 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.headerBackButton {
|
||||||
|
padding-right: 0!important;
|
||||||
|
}
|
||||||
|
|
||||||
.viewMenuBar, .barsMenuButton, .libraryMenuButtonText, .btnCast {
|
.viewMenuBar, .barsMenuButton, .libraryMenuButtonText, .btnCast {
|
||||||
height: 50px;
|
height: 50px;
|
||||||
}
|
}
|
||||||
|
@ -50,7 +54,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.headerButtonLeft {
|
.headerButtonLeft {
|
||||||
float: left;
|
|
||||||
padding: 0 15px;
|
padding: 0 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -155,49 +155,49 @@
|
||||||
if (item.MovieCount) {
|
if (item.MovieCount) {
|
||||||
|
|
||||||
html += '<input type="radio" name="ibnItems" id="radioMovies" class="context-movies" value="on">';
|
html += '<input type="radio" name="ibnItems" id="radioMovies" class="context-movies" value="on">';
|
||||||
html += '<label for="radioMovies">'+Globalize.translate('TabMovies')+'</label>';
|
html += '<label for="radioMovies">' + Globalize.translate('TabMovies') + '</label>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.SeriesCount) {
|
if (item.SeriesCount) {
|
||||||
|
|
||||||
html += '<input type="radio" name="ibnItems" id="radioShows" class="context-tv" value="on">';
|
html += '<input type="radio" name="ibnItems" id="radioShows" class="context-tv" value="on">';
|
||||||
html += '<label for="radioShows">'+Globalize.translate('TabSeries')+'</label>';
|
html += '<label for="radioShows">' + Globalize.translate('TabSeries') + '</label>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.EpisodeCount) {
|
if (item.EpisodeCount) {
|
||||||
|
|
||||||
html += '<input type="radio" name="ibnItems" id="radioEpisodes" class="context-tv" value="on">';
|
html += '<input type="radio" name="ibnItems" id="radioEpisodes" class="context-tv" value="on">';
|
||||||
html += '<label for="radioEpisodes">'+Globalize.translate('TabEpisodes')+'</label>';
|
html += '<label for="radioEpisodes">' + Globalize.translate('TabEpisodes') + '</label>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.TrailerCount) {
|
if (item.TrailerCount) {
|
||||||
|
|
||||||
html += '<input type="radio" name="ibnItems" id="radioTrailers" class="context-movies" value="on">';
|
html += '<input type="radio" name="ibnItems" id="radioTrailers" class="context-movies" value="on">';
|
||||||
html += '<label for="radioTrailers">'+Globalize.translate('TabTrailers')+'</label>';
|
html += '<label for="radioTrailers">' + Globalize.translate('TabTrailers') + '</label>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.GameCount) {
|
if (item.GameCount) {
|
||||||
|
|
||||||
html += '<input type="radio" name="ibnItems" id="radioGames" class="context-games" value="on">';
|
html += '<input type="radio" name="ibnItems" id="radioGames" class="context-games" value="on">';
|
||||||
html += '<label for="radioGames">'+Globalize.translate('TabGames')+'</label>';
|
html += '<label for="radioGames">' + Globalize.translate('TabGames') + '</label>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.AlbumCount) {
|
if (item.AlbumCount) {
|
||||||
|
|
||||||
html += '<input type="radio" name="ibnItems" id="radioAlbums" class="context-music" value="on">';
|
html += '<input type="radio" name="ibnItems" id="radioAlbums" class="context-music" value="on">';
|
||||||
html += '<label for="radioAlbums">'+Globalize.translate('TabAlbums')+'</label>';
|
html += '<label for="radioAlbums">' + Globalize.translate('TabAlbums') + '</label>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.SongCount) {
|
if (item.SongCount) {
|
||||||
|
|
||||||
html += '<input type="radio" name="ibnItems" id="radioSongs" class="context-music" value="on">';
|
html += '<input type="radio" name="ibnItems" id="radioSongs" class="context-music" value="on">';
|
||||||
html += '<label for="radioSongs">'+Globalize.translate('TabSongs')+'</label>';
|
html += '<label for="radioSongs">' + Globalize.translate('TabSongs') + '</label>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.MusicVideoCount) {
|
if (item.MusicVideoCount) {
|
||||||
|
|
||||||
html += '<input type="radio" name="ibnItems" id="radioMusicVideos" class="context-music" value="on">';
|
html += '<input type="radio" name="ibnItems" id="radioMusicVideos" class="context-music" value="on">';
|
||||||
html += '<label for="radioMusicVideos">'+Globalize.translate('TabMusicVideos')+'</label>';
|
html += '<label for="radioMusicVideos">' + Globalize.translate('TabMusicVideos') + '</label>';
|
||||||
}
|
}
|
||||||
|
|
||||||
html += '</fieldset>';
|
html += '</fieldset>';
|
||||||
|
@ -385,7 +385,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getItemsFunction(options) {
|
function getQuery(options) {
|
||||||
|
|
||||||
var query = {
|
var query = {
|
||||||
|
|
||||||
|
@ -407,6 +407,13 @@
|
||||||
|
|
||||||
addCurrentItemToQuery(query);
|
addCurrentItemToQuery(query);
|
||||||
|
|
||||||
|
return query;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getItemsFunction(options) {
|
||||||
|
|
||||||
|
var query = getQuery(options);
|
||||||
|
|
||||||
return function (index, limit, fields) {
|
return function (index, limit, fields) {
|
||||||
|
|
||||||
query.StartIndex = index;
|
query.StartIndex = index;
|
||||||
|
@ -424,27 +431,10 @@
|
||||||
Dashboard.showLoadingMsg();
|
Dashboard.showLoadingMsg();
|
||||||
|
|
||||||
_childrenItemsFunction = getItemsFunction(options);
|
_childrenItemsFunction = getItemsFunction(options);
|
||||||
var query = {
|
|
||||||
|
|
||||||
SortBy: "SortName",
|
var query = getQuery(options);
|
||||||
SortOrder: "Ascending",
|
|
||||||
IncludeItemTypes: "",
|
|
||||||
Recursive: true,
|
|
||||||
Fields: "AudioInfo,SeriesInfo,ParentId,PrimaryImageAspectRatio,SyncInfo",
|
|
||||||
Limit: LibraryBrowser.getDefaultPageSize(),
|
|
||||||
StartIndex: 0,
|
|
||||||
CollapseBoxSetItems: false
|
|
||||||
};
|
|
||||||
|
|
||||||
query = $.extend(query, options || {});
|
getItemsFunction(options)(options.StartIndex, options.Limit, options.Fields).done(function (result) {
|
||||||
|
|
||||||
if (query.IncludeItemTypes == "Audio") {
|
|
||||||
query.SortBy = "AlbumArtist,Album,SortName";
|
|
||||||
}
|
|
||||||
|
|
||||||
addCurrentItemToQuery(query);
|
|
||||||
|
|
||||||
ApiClient.getItems(Dashboard.getCurrentUserId(), query).done(function (result) {
|
|
||||||
|
|
||||||
var html = '';
|
var html = '';
|
||||||
|
|
||||||
|
|
|
@ -630,6 +630,7 @@
|
||||||
promise = ApiClient.getSimilarTrailers(item.Id, options);
|
promise = ApiClient.getSimilarTrailers(item.Id, options);
|
||||||
}
|
}
|
||||||
else if (item.Type == "MusicAlbum") {
|
else if (item.Type == "MusicAlbum") {
|
||||||
|
options.limit = 4;
|
||||||
promise = ApiClient.getSimilarAlbums(item.Id, options);
|
promise = ApiClient.getSimilarAlbums(item.Id, options);
|
||||||
}
|
}
|
||||||
else if (item.Type == "Series") {
|
else if (item.Type == "Series") {
|
||||||
|
|
|
@ -4,6 +4,10 @@
|
||||||
|
|
||||||
var html = '<div class="viewMenuBar ui-bar-b">';
|
var html = '<div class="viewMenuBar ui-bar-b">';
|
||||||
|
|
||||||
|
if ($.browser.safari && $.browser.mobile && window.navigator.standalone) {
|
||||||
|
html += '<a data-rel="back" data-role="none" href="#" class="headerButton headerButtonLeft headerBackButton"><div class="fa fa-arrow-circle-o-left"></div></a>';
|
||||||
|
}
|
||||||
|
|
||||||
html += '<button type="button" data-role="none" title="Menu" class="headerButton dashboardMenuButton barsMenuButton headerButtonLeft">';
|
html += '<button type="button" data-role="none" title="Menu" class="headerButton dashboardMenuButton barsMenuButton headerButtonLeft">';
|
||||||
html += '<div class="barMenuInner fa fa-bars">';
|
html += '<div class="barMenuInner fa fa-bars">';
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
|
@ -68,10 +72,25 @@
|
||||||
$('.viewMenuBar').trigger('create');
|
$('.viewMenuBar').trigger('create');
|
||||||
|
|
||||||
$(document).trigger('headercreated');
|
$(document).trigger('headercreated');
|
||||||
|
bindMenuEvents();
|
||||||
|
}
|
||||||
|
|
||||||
|
function bindMenuEvents() {
|
||||||
|
|
||||||
|
if ($.browser.mobile) {
|
||||||
|
|
||||||
|
$('.libraryMenuButton').on('mousedown', function() {
|
||||||
|
showLibraryMenu(false);
|
||||||
|
});
|
||||||
|
$('.dashboardMenuButton').on('mousedown', function () {
|
||||||
|
showDashboardMenu(false);
|
||||||
|
});
|
||||||
|
|
||||||
|
} else {
|
||||||
$('.libraryMenuButton').createHoverTouch().on('hovertouch', showLibraryMenu);
|
$('.libraryMenuButton').createHoverTouch().on('hovertouch', showLibraryMenu);
|
||||||
$('.dashboardMenuButton').createHoverTouch().on('hovertouch', showDashboardMenu);
|
$('.dashboardMenuButton').createHoverTouch().on('hovertouch', showDashboardMenu);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function getItemHref(item, context) {
|
function getItemHref(item, context) {
|
||||||
|
|
||||||
|
|
|
@ -211,17 +211,19 @@
|
||||||
var videoAudioAacConditions = [];
|
var videoAudioAacConditions = [];
|
||||||
var videoAudioMp3Conditions = [];
|
var videoAudioMp3Conditions = [];
|
||||||
|
|
||||||
if ($.browser.msie) {
|
var maxAudioChannels = $.browser.msie || $.browser.safari ?
|
||||||
|
'2' :
|
||||||
|
'6';
|
||||||
|
|
||||||
var channelCondition = {
|
var channelCondition = {
|
||||||
Condition: 'LessThanEqual',
|
Condition: 'LessThanEqual',
|
||||||
Property: 'AudioChannels',
|
Property: 'AudioChannels',
|
||||||
Value: '2'
|
Value: maxAudioChannels
|
||||||
};
|
};
|
||||||
|
|
||||||
audioConditions.push(channelCondition);
|
audioConditions.push(channelCondition);
|
||||||
videoAudioAacConditions.push(channelCondition);
|
videoAudioAacConditions.push(channelCondition);
|
||||||
videoAudioMp3Conditions.push(channelCondition);
|
videoAudioMp3Conditions.push(channelCondition);
|
||||||
}
|
|
||||||
|
|
||||||
profile.CodecProfiles = [];
|
profile.CodecProfiles = [];
|
||||||
profile.CodecProfiles.push({
|
profile.CodecProfiles.push({
|
||||||
|
|
|
@ -1385,6 +1385,27 @@ var Dashboard = {
|
||||||
|
|
||||||
if (window.ApiClient) {
|
if (window.ApiClient) {
|
||||||
Dashboard.importCss(ApiClient.getUrl('Branding/Css'));
|
Dashboard.importCss(ApiClient.getUrl('Branding/Css'));
|
||||||
|
|
||||||
|
ApiClient.getDefaultImageQuality = function (imageType) {
|
||||||
|
|
||||||
|
var quality = 90;
|
||||||
|
var isBackdrop = imageType.toLowerCase() == 'backdrop';
|
||||||
|
|
||||||
|
if (isBackdrop) {
|
||||||
|
quality -= 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($.browser.safari && $.browser.mobile) {
|
||||||
|
|
||||||
|
quality -= 10;
|
||||||
|
|
||||||
|
if (isBackdrop) {
|
||||||
|
quality -= 10;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return quality;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
})();
|
})();
|
||||||
|
|
|
@ -2305,6 +2305,10 @@
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
self.getDefaultImageQuality = function (imageType) {
|
||||||
|
return imageType.toLowerCase() == 'backdrop' ? 80 : 90;
|
||||||
|
};
|
||||||
|
|
||||||
function normalizeImageOptions(options) {
|
function normalizeImageOptions(options) {
|
||||||
|
|
||||||
var ratio = devicePixelRatio || 1;
|
var ratio = devicePixelRatio || 1;
|
||||||
|
@ -2329,7 +2333,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
options.quality = options.quality || (options.type.toLowerCase() == 'backdrop' ? 80 : 90);
|
options.quality = options.quality || self.getDefaultImageQuality(options.type);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue