diff --git a/src/components/apphost.js b/src/components/apphost.js index 742476195d..40c616ca38 100644 --- a/src/components/apphost.js +++ b/src/components/apphost.js @@ -70,6 +70,21 @@ function getDeviceProfile(item) { }); } + const preferredTranscodeVideoAudioCodec = appSettings.preferredTranscodeVideoAudioCodec(); + if (preferredTranscodeVideoAudioCodec) { + profile.TranscodingProfiles.forEach((transcodingProfile) => { + if (transcodingProfile.Type === 'Video') { + const audioCodecs = transcodingProfile.AudioCodec.split(','); + const index = audioCodecs.indexOf(preferredTranscodeVideoAudioCodec); + if (index !== -1) { + audioCodecs.splice(index, 1); + audioCodecs.unshift(preferredTranscodeVideoAudioCodec); + transcodingProfile.AudioCodec = audioCodecs.join(','); + } + } + }); + } + resolve(profile); }); } diff --git a/src/components/playbackSettings/playbackSettings.js b/src/components/playbackSettings/playbackSettings.js index 6717c66613..eec2cd4c78 100644 --- a/src/components/playbackSettings/playbackSettings.js +++ b/src/components/playbackSettings/playbackSettings.js @@ -182,6 +182,7 @@ function loadForm(context, user, userSettings, systemInfo, apiClient) { context.querySelector('.chkRememberSubtitleSelections').checked = user.Configuration.RememberSubtitleSelections || false; context.querySelector('.chkExternalVideoPlayer').checked = appSettings.enableSystemExternalPlayers(); context.querySelector('.chkLimitSupportedVideoResolution').checked = appSettings.limitSupportedVideoResolution(); + context.querySelector('#selectPreferredTranscodeVideoAudioCodec').value = appSettings.preferredTranscodeVideoAudioCodec(); setMaxBitrateIntoField(context.querySelector('.selectVideoInNetworkQuality'), true, 'Video'); setMaxBitrateIntoField(context.querySelector('.selectVideoInternetQuality'), false, 'Video'); @@ -217,6 +218,7 @@ function saveUser(context, user, userSettingsInstance, apiClient) { appSettings.maxChromecastBitrate(context.querySelector('.selectChromecastVideoQuality').value); appSettings.maxVideoWidth(context.querySelector('.selectMaxVideoWidth').value); appSettings.limitSupportedVideoResolution(context.querySelector('.chkLimitSupportedVideoResolution').checked); + appSettings.preferredTranscodeVideoAudioCodec(context.querySelector('#selectPreferredTranscodeVideoAudioCodec').value); appSettings.enableDts(context.querySelector('.chkEnableDts').checked); appSettings.enableTrueHd(context.querySelector('.chkEnableTrueHd').checked); diff --git a/src/components/playbackSettings/playbackSettings.template.html b/src/components/playbackSettings/playbackSettings.template.html index eb416687d7..a6ba42ef09 100644 --- a/src/components/playbackSettings/playbackSettings.template.html +++ b/src/components/playbackSettings/playbackSettings.template.html @@ -179,6 +179,19 @@