From d896a726a901f9e2a4db5d92d8cb0d3f4d1d5085 Mon Sep 17 00:00:00 2001 From: Ian Walton Date: Sat, 1 May 2021 17:47:45 -0400 Subject: [PATCH] Add unexpected exception handling to AutoSet. --- src/components/playback/playbackmanager.js | 38 ++++++++++++---------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/src/components/playback/playbackmanager.js b/src/components/playback/playbackmanager.js index 98e7794a35..4112153f13 100644 --- a/src/components/playback/playbackmanager.js +++ b/src/components/playback/playbackmanager.js @@ -2294,25 +2294,29 @@ class PlaybackManager { } function autoSetNextTracks(prevSource, mediaSource) { - if (!prevSource) return; + try { + if (!prevSource) return; - if (!mediaSource) { - console.warn('AutoSet - No mediaSource'); - return; + if (!mediaSource) { + console.warn('AutoSet - No mediaSource'); + return; + } + + if (typeof prevSource.DefaultAudioStreamIndex != 'number' + || typeof prevSource.DefaultSubtitleStreamIndex != 'number') + 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'); + rankStreamType(prevSource.DefaultSubtitleStreamIndex, prevSource, mediaSource, 'Subtitle'); + } catch (e) { + console.error(`AutoSet - Caught unexpected error: ${e}`); } - - if (typeof prevSource.DefaultAudioStreamIndex != 'number' - || typeof prevSource.DefaultSubtitleStreamIndex != 'number') - 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'); - rankStreamType(prevSource.DefaultSubtitleStreamIndex, prevSource, mediaSource, 'Subtitle'); } function playAfterBitrateDetect(maxBitrate, item, playOptions, onPlaybackStartedFn, prevSource) {