Merge pull request #3721 from Shadowghost/fix-stream-autoselect
(cherry picked from commit d967ce860c1d7ef3ac97a9c1f3c45b4b02e38a06) Signed-off-by: Bill Thornton <billt2006@gmail.com>
This commit is contained in:
parent
2669be3f27
commit
5312358f91
5 changed files with 29 additions and 36 deletions
|
@ -2281,7 +2281,7 @@ class PlaybackManager {
|
||||||
score += 1;
|
score += 1;
|
||||||
if (prevRelIndex == newRelIndex)
|
if (prevRelIndex == newRelIndex)
|
||||||
score += 1;
|
score += 1;
|
||||||
if (prevStream.Title && prevStream.Title == stream.Title)
|
if (prevStream.DisplayTitle && prevStream.DisplayTitle == stream.DisplayTitle)
|
||||||
score += 2;
|
score += 2;
|
||||||
if (prevStream.Language && prevStream.Language != 'und' && prevStream.Language == stream.Language)
|
if (prevStream.Language && prevStream.Language != 'und' && prevStream.Language == stream.Language)
|
||||||
score += 2;
|
score += 2;
|
||||||
|
@ -2306,7 +2306,7 @@ class PlaybackManager {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function autoSetNextTracks(prevSource, mediaSource) {
|
function autoSetNextTracks(prevSource, mediaSource, audio, subtitle) {
|
||||||
try {
|
try {
|
||||||
if (!prevSource) return;
|
if (!prevSource) return;
|
||||||
|
|
||||||
|
@ -2315,18 +2315,13 @@ class PlaybackManager {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof prevSource.DefaultAudioStreamIndex != 'number'
|
if (audio && typeof prevSource.DefaultAudioStreamIndex == 'number') {
|
||||||
|| typeof prevSource.DefaultSubtitleStreamIndex != 'number')
|
rankStreamType(prevSource.DefaultAudioStreamIndex, prevSource, mediaSource, 'Audio');
|
||||||
return;
|
|
||||||
|
|
||||||
if (typeof mediaSource.DefaultAudioStreamIndex != 'number'
|
|
||||||
|| typeof mediaSource.DefaultSubtitleStreamIndex != 'number') {
|
|
||||||
console.warn('AutoSet - No stream indexes (but prevSource has them)');
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
rankStreamType(prevSource.DefaultAudioStreamIndex, prevSource, mediaSource, 'Audio');
|
if (subtitle && typeof prevSource.DefaultSubtitleStreamIndex == 'number') {
|
||||||
rankStreamType(prevSource.DefaultSubtitleStreamIndex, prevSource, mediaSource, 'Subtitle');
|
rankStreamType(prevSource.DefaultSubtitleStreamIndex, prevSource, mediaSource, 'Subtitle');
|
||||||
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(`AutoSet - Caught unexpected error: ${e}`);
|
console.error(`AutoSet - Caught unexpected error: ${e}`);
|
||||||
}
|
}
|
||||||
|
@ -2390,9 +2385,9 @@ class PlaybackManager {
|
||||||
// this reference was only needed by sendPlaybackListToPlayer
|
// this reference was only needed by sendPlaybackListToPlayer
|
||||||
playOptions.items = null;
|
playOptions.items = null;
|
||||||
|
|
||||||
return getPlaybackMediaSource(player, apiClient, deviceProfile, maxBitrate, item, startPosition, mediaSourceId, audioStreamIndex, subtitleStreamIndex).then(function (mediaSource) {
|
return getPlaybackMediaSource(player, apiClient, deviceProfile, maxBitrate, item, startPosition, mediaSourceId, audioStreamIndex, subtitleStreamIndex).then(async (mediaSource) => {
|
||||||
if (userSettings.enableSetUsingLastTracks())
|
const user = await apiClient.getCurrentUser();
|
||||||
autoSetNextTracks(prevSource, mediaSource);
|
autoSetNextTracks(prevSource, mediaSource, user.Configuration.RememberAudioSelections, user.Configuration.RememberSubtitleSelections);
|
||||||
|
|
||||||
const streamInfo = createStreamInfo(apiClient, item.MediaType, item, mediaSource, startPosition, player);
|
const streamInfo = createStreamInfo(apiClient, item.MediaType, item, mediaSource, startPosition, player);
|
||||||
|
|
||||||
|
|
|
@ -186,7 +186,8 @@ import template from './playbackSettings.template.html';
|
||||||
context.querySelector('.chkPreferFmp4HlsContainer').checked = userSettings.preferFmp4HlsContainer();
|
context.querySelector('.chkPreferFmp4HlsContainer').checked = userSettings.preferFmp4HlsContainer();
|
||||||
context.querySelector('.chkEnableCinemaMode').checked = userSettings.enableCinemaMode();
|
context.querySelector('.chkEnableCinemaMode').checked = userSettings.enableCinemaMode();
|
||||||
context.querySelector('.chkEnableNextVideoOverlay').checked = userSettings.enableNextVideoInfoOverlay();
|
context.querySelector('.chkEnableNextVideoOverlay').checked = userSettings.enableNextVideoInfoOverlay();
|
||||||
context.querySelector('.chkSetUsingLastTracks').checked = userSettings.enableSetUsingLastTracks();
|
context.querySelector('.chkRememberAudioSelections').checked = user.Configuration.RememberAudioSelections || false;
|
||||||
|
context.querySelector('.chkRememberSubtitleSelections').checked = user.Configuration.RememberSubtitleSelections || false;
|
||||||
context.querySelector('.chkExternalVideoPlayer').checked = appSettings.enableSystemExternalPlayers();
|
context.querySelector('.chkExternalVideoPlayer').checked = appSettings.enableSystemExternalPlayers();
|
||||||
|
|
||||||
setMaxBitrateIntoField(context.querySelector('.selectVideoInNetworkQuality'), true, 'Video');
|
setMaxBitrateIntoField(context.querySelector('.selectVideoInNetworkQuality'), true, 'Video');
|
||||||
|
@ -232,7 +233,8 @@ import template from './playbackSettings.template.html';
|
||||||
userSettingsInstance.enableCinemaMode(context.querySelector('.chkEnableCinemaMode').checked);
|
userSettingsInstance.enableCinemaMode(context.querySelector('.chkEnableCinemaMode').checked);
|
||||||
|
|
||||||
userSettingsInstance.enableNextVideoInfoOverlay(context.querySelector('.chkEnableNextVideoOverlay').checked);
|
userSettingsInstance.enableNextVideoInfoOverlay(context.querySelector('.chkEnableNextVideoOverlay').checked);
|
||||||
userSettingsInstance.enableSetUsingLastTracks(context.querySelector('.chkSetUsingLastTracks').checked);
|
user.Configuration.RememberAudioSelections = context.querySelector('.chkRememberAudioSelections').checked;
|
||||||
|
user.Configuration.RememberSubtitleSelections = context.querySelector('.chkRememberSubtitleSelections').checked;
|
||||||
userSettingsInstance.chromecastVersion(context.querySelector('.selectChromecastVersion').value);
|
userSettingsInstance.chromecastVersion(context.querySelector('.selectChromecastVersion').value);
|
||||||
userSettingsInstance.skipForwardLength(context.querySelector('.selectSkipForwardLength').value);
|
userSettingsInstance.skipForwardLength(context.querySelector('.selectSkipForwardLength').value);
|
||||||
userSettingsInstance.skipBackLength(context.querySelector('.selectSkipBackLength').value);
|
userSettingsInstance.skipBackLength(context.querySelector('.selectSkipBackLength').value);
|
||||||
|
|
|
@ -97,10 +97,18 @@
|
||||||
|
|
||||||
<div class="checkboxContainer checkboxContainer-withDescription">
|
<div class="checkboxContainer checkboxContainer-withDescription">
|
||||||
<label>
|
<label>
|
||||||
<input type="checkbox" is="emby-checkbox" class="chkSetUsingLastTracks" />
|
<input type="checkbox" is="emby-checkbox" class="chkRememberAudioSelections" />
|
||||||
<span>${SetUsingLastTracks}</span>
|
<span>${RememberAudioSelections}</span>
|
||||||
</label>
|
</label>
|
||||||
<div class="fieldDescription checkboxFieldDescription">${SetUsingLastTracksHelp}</div>
|
<div class="fieldDescription checkboxFieldDescription">${RememberAudioSelectionsHelp}</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="checkboxContainer checkboxContainer-withDescription">
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" is="emby-checkbox" class="chkRememberSubtitleSelections" />
|
||||||
|
<span>${RememberSubtitleSelections}</span>
|
||||||
|
</label>
|
||||||
|
<div class="fieldDescription checkboxFieldDescription">${RememberSubtitleSelectionsHelp}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="checkboxContainer checkboxContainer-withDescription fldEnableNextVideoOverlay">
|
<div class="checkboxContainer checkboxContainer-withDescription fldEnableNextVideoOverlay">
|
||||||
|
|
|
@ -164,19 +164,6 @@ export class UserSettings {
|
||||||
return toBoolean(this.get('enableNextVideoInfoOverlay', false), true);
|
return toBoolean(this.get('enableNextVideoInfoOverlay', false), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get or set 'SetUsingLastTracks' state.
|
|
||||||
* @param {boolean|undefined} val - Flag to enable 'SetUsingLastTracks' or undefined.
|
|
||||||
* @return {boolean} 'SetUsingLastTracks' state.
|
|
||||||
*/
|
|
||||||
enableSetUsingLastTracks(val) {
|
|
||||||
if (val !== undefined) {
|
|
||||||
return this.set('enableSetUsingLastTracks', val.toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
return toBoolean(this.get('enableSetUsingLastTracks', false), true);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get or set 'Theme Songs' state.
|
* Get or set 'Theme Songs' state.
|
||||||
* @param {boolean|undefined} val - Flag to enable 'Theme Songs' or undefined.
|
* @param {boolean|undefined} val - Flag to enable 'Theme Songs' or undefined.
|
||||||
|
@ -561,7 +548,6 @@ export const allowedAudioChannels = currentSettings.allowedAudioChannels.bind(cu
|
||||||
export const preferFmp4HlsContainer = currentSettings.preferFmp4HlsContainer.bind(currentSettings);
|
export const preferFmp4HlsContainer = currentSettings.preferFmp4HlsContainer.bind(currentSettings);
|
||||||
export const enableCinemaMode = currentSettings.enableCinemaMode.bind(currentSettings);
|
export const enableCinemaMode = currentSettings.enableCinemaMode.bind(currentSettings);
|
||||||
export const enableNextVideoInfoOverlay = currentSettings.enableNextVideoInfoOverlay.bind(currentSettings);
|
export const enableNextVideoInfoOverlay = currentSettings.enableNextVideoInfoOverlay.bind(currentSettings);
|
||||||
export const enableSetUsingLastTracks = currentSettings.enableSetUsingLastTracks.bind(currentSettings);
|
|
||||||
export const enableThemeSongs = currentSettings.enableThemeSongs.bind(currentSettings);
|
export const enableThemeSongs = currentSettings.enableThemeSongs.bind(currentSettings);
|
||||||
export const enableThemeVideos = currentSettings.enableThemeVideos.bind(currentSettings);
|
export const enableThemeVideos = currentSettings.enableThemeVideos.bind(currentSettings);
|
||||||
export const enableFastFadein = currentSettings.enableFastFadein.bind(currentSettings);
|
export const enableFastFadein = currentSettings.enableFastFadein.bind(currentSettings);
|
||||||
|
|
|
@ -1355,7 +1355,11 @@
|
||||||
"RefreshQueued": "Refresh queued.",
|
"RefreshQueued": "Refresh queued.",
|
||||||
"ReleaseDate": "Release date",
|
"ReleaseDate": "Release date",
|
||||||
"ReleaseGroup": "Release Group",
|
"ReleaseGroup": "Release Group",
|
||||||
|
"RememberAudioSelections": "Set audio track based on previous item",
|
||||||
|
"RememberAudioSelectionsHelp": "Try to set the audio track to the closest match to the last video.",
|
||||||
"RememberMe": "Remember Me",
|
"RememberMe": "Remember Me",
|
||||||
|
"RememberSubtitleSelections": "Set subtitle track based on previous item",
|
||||||
|
"RememberSubtitleSelectionsHelp": "Try to set the subtitle track to the closest match to the last video.",
|
||||||
"Remixer": "Remixer",
|
"Remixer": "Remixer",
|
||||||
"RemoveFromCollection": "Remove from collection",
|
"RemoveFromCollection": "Remove from collection",
|
||||||
"RemoveFromPlaylist": "Remove from playlist",
|
"RemoveFromPlaylist": "Remove from playlist",
|
||||||
|
@ -1402,8 +1406,6 @@
|
||||||
"Settings": "Settings",
|
"Settings": "Settings",
|
||||||
"SettingsSaved": "Settings saved.",
|
"SettingsSaved": "Settings saved.",
|
||||||
"SettingsWarning": "Changing these values may cause instability or connectivity failures. If you experience any problems, we recommend changing them back to default.",
|
"SettingsWarning": "Changing these values may cause instability or connectivity failures. If you experience any problems, we recommend changing them back to default.",
|
||||||
"SetUsingLastTracks": "Set Subtitle/Audio Tracks with Previous Item",
|
|
||||||
"SetUsingLastTracksHelp": "Try to set the Subtitle/Audio track to the closest match to the last video.",
|
|
||||||
"Share": "Share",
|
"Share": "Share",
|
||||||
"ShowAdvancedSettings": "Show advanced settings",
|
"ShowAdvancedSettings": "Show advanced settings",
|
||||||
"ShowIndicatorsFor": "Show indicators for:",
|
"ShowIndicatorsFor": "Show indicators for:",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue