diff --git a/cadmium-playercore-shim.js b/cadmium-playercore-shim.js index a6e9fcc..9dbf41b 100644 --- a/cadmium-playercore-shim.js +++ b/cadmium-playercore-shim.js @@ -100,11 +100,27 @@ function get_profile_list(original_profiles) { profiles = profiles.filter(val => !val.includes("av1-")); } - if (globalOptions.use6Channels) { - profiles = profiles.concat([ - "heaac-5.1-dash", - ]); - } + if (globalOptions.useDDPlus && MediaSource.isTypeSupported('audio/mp4; codecs="ec-3"')) { + // Dolby Digital + profiles = profiles.concat([ + "ddplus-2.0-dash", + ]); + + if (globalOptions.use6Channels) { + profiles = profiles.concat([ + "ddplus-5.1-dash", + "ddplus-5.1hq-dash", + "ddplus-atmos-dash", + ]); + } + } else { + // No Dolby Digital + if (globalOptions.use6Channels) { + profiles = profiles.concat([ + "heaac-5.1-dash", + ]); + } + } profiles = [...new Set(profiles)].sort(); return profiles; @@ -129,7 +145,7 @@ do_patch( ); do_patch( - "Re-enable Ctrl+Shift+Alt+B menu", + "Re-enable Ctrl+Shift+Alt+S menu", /this\...\....\s*&&\s*this\.toggle\(\);/, "this.toggle();" ); @@ -153,5 +169,19 @@ do_patch( "preferredTextLocale: globalOptions.preferredTextLocale" ); +if(globalOptions.useDDPlus && MediaSource.isTypeSupported('audio/mp4; codecs="ec-3"')) { + do_patch( + "Select highest audio bitrate 1", + /(indexOf\(.\))(\?[^?]+)(\?[0-9]:)/, + "$1)$3" + ); + + do_patch( + "Select highest audio bitrate 2", + /(var\sx;if\(this\.[^\)]+)/, + "$1 && !globalOptions.useDDPlus" + ); +} + // run our patched copy of playercore in a non-privileged context on the page window.Function(cadmium_src)(); diff --git a/manifest.json b/manifest.json index 183255f..03a43a2 100644 --- a/manifest.json +++ b/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 2, "name": "Netflix International", "description": "Displays all available Netflix audio and subtitle tracks.", - "version": "2.0.21", + "version": "2.0.20", "author": "shirt", "browser_action": { "default_icon": "img/icon128.png", diff --git a/netflix_max_bitrate.js b/netflix_max_bitrate.js index 654c4b7..9707a43 100644 --- a/netflix_max_bitrate.js +++ b/netflix_max_bitrate.js @@ -26,7 +26,7 @@ let fn = function () { } window.dispatchEvent(new KeyboardEvent('keydown', { - keyCode: 66, + keyCode: 83, ctrlKey: true, altKey: true, shiftKey: true, diff --git a/pages/options.html b/pages/options.html index ca16bd9..f51e58a 100644 --- a/pages/options.html +++ b/pages/options.html @@ -24,6 +24,8 @@

+ +

diff --git a/pages/options.js b/pages/options.js index 386a052..1992ee0 100644 --- a/pages/options.js +++ b/pages/options.js @@ -6,6 +6,7 @@ function save_options() { const disableVP9 = document.getElementById("disableVP9").checked; const disableAV1 = document.getElementById("disableAV1").checked; const disableHPL = document.getElementById("disableHPL").checked; + const useDDPlus = document.getElementById("useDDPlus").checked; const preferredLocale = document.getElementById("preferredLocale").value; const preferredTextLocale = document.getElementById("preferredTextLocale").value; @@ -16,6 +17,7 @@ function save_options() { disableVP9: disableVP9, disableAV1: disableAV1, disableHPL: disableHPL, + useDDPlus: useDDPlus, preferredLocale: preferredLocale, preferredTextLocale: preferredTextLocale, }, function() { @@ -34,6 +36,7 @@ function reset_options() { document.getElementById("disableVP9").checked = false; document.getElementById("disableAV1").checked = true; document.getElementById("disableHPL").checked = false; + document.getElementById("useDDPlus").checked = false; document.getElementById("preferredLocale").value = null; document.getElementById("preferredTextLocale").value = null; @@ -44,6 +47,7 @@ function reset_options() { disableVP9: false, disableAV1: true, disableHPL: false, + useDDPlus: false, preferredLocale: null, preferredTextLocale: null, }, function() { @@ -63,6 +67,7 @@ function restore_options() { disableVP9: false, disableAV1: true, disableHPL: false, + useDDPlus: false, preferredLocale: null, preferredTextLocale: null, }, function(items) { @@ -72,6 +77,7 @@ function restore_options() { document.getElementById("disableVP9").checked = items.disableVP9; document.getElementById("disableAV1").checked = items.disableAV1; document.getElementById("disableHPL").checked = items.disableHPL; + document.getElementById("useDDPlus").checked = items.useDDPlus; document.getElementById("preferredLocale").value = items.preferredLocale; document.getElementById("preferredTextLocale").value = items.preferredTextLocale; });