Added support for 'preservesPitch'.

This commit is contained in:
Windows81 2023-10-12 07:37:11 +00:00
parent 069e91d2a6
commit 4affef6eb0
14 changed files with 3469 additions and 3433 deletions

View File

@ -221,6 +221,9 @@ if (video_data.params.video_start > 0 || video_data.params.video_end > 0) {
player.volume(video_data.params.volume / 100);
player.playbackRate(video_data.params.speed);
// Dirty hack to set a property in <video/> element that Video.js doesn't currently native support.
player.tech_.el_.preservesPitch = video_data.params.preserves_pitch;
/**
* Method for getting the contents of a cookie
*

View File

@ -761,6 +761,14 @@ default_user_preferences:
##
#video_loop: false
##
## Detether payback speed from pitch.
##
## Accepted values: true, false
## Default: true
##
#preserves_pitch: true
# -----------------------------
# Video playback settings

View File

@ -47,6 +47,7 @@
"Preferences": "Einstellungen",
"preferences_category_player": "Wiedergabeeinstellungen",
"preferences_video_loop_label": "Immer wiederholen: ",
"preferences_preserves_pitch_label": "Tonhöhe erhalten: ",
"preferences_autoplay_label": "Automatisch abspielen: ",
"preferences_continue_label": "Immer automatisch nächstes Video abspielen: ",
"preferences_continue_autoplay_label": "Nächstes Video automatisch abspielen: ",

View File

@ -65,6 +65,7 @@
"Preferences": "Preferences",
"preferences_category_player": "Player preferences",
"preferences_video_loop_label": "Always loop: ",
"preferences_preserves_pitch_label": "Preserve pitch: ",
"preferences_autoplay_label": "Autoplay: ",
"preferences_continue_label": "Play next by default: ",
"preferences_continue_autoplay_label": "Autoplay next video: ",

View File

@ -47,6 +47,7 @@
"Preferences": "Preferencias",
"preferences_category_player": "Preferencias del reproductor",
"preferences_video_loop_label": "Repetir siempre: ",
"preferences_preserves_pitch_label": "Preservar tono: ",
"preferences_autoplay_label": "Reproducción automática: ",
"preferences_continue_label": "Reproducir siguiente por defecto: ",
"preferences_continue_autoplay_label": "Reproducir automáticamente el video siguiente: ",

View File

@ -47,6 +47,7 @@
"Preferences": "Preferências",
"preferences_category_player": "Preferências do reprodutor",
"preferences_video_loop_label": "Repetir sempre: ",
"preferences_preserves_pitch_label": "Preservar tom: ",
"preferences_autoplay_label": "Reprodução automática: ",
"preferences_continue_label": "Sempre reproduzir próximo: ",
"preferences_continue_autoplay_label": "Reproduzir próximo vídeo automaticamente: ",

View File

@ -47,6 +47,7 @@
"Preferences": "Preferências",
"preferences_category_player": "Preferências do reprodutor",
"preferences_video_loop_label": "Repetir sempre: ",
"preferences_preserves_pitch_label": "Preservar tom: ",
"preferences_autoplay_label": "Reprodução automática: ",
"preferences_continue_label": "Reproduzir sempre o próximo: ",
"preferences_continue_autoplay_label": "Reproduzir próximo vídeo automaticamente: ",

View File

@ -224,6 +224,7 @@
"preferences_continue_autoplay_label": "Reproduzir próximo vídeo automaticamente: ",
"preferences_autoplay_label": "Reprodução automática: ",
"preferences_video_loop_label": "Repetir sempre: ",
"preferences_preserves_pitch_label": "Preservar tom: ",
"preferences_category_player": "Preferências do reprodutor",
"Preferences": "Preferências",
"E-mail": "E-mail",

View File

@ -47,6 +47,7 @@
"Preferences": "Настройки",
"preferences_category_player": "Настройки проигрывателя",
"preferences_video_loop_label": "Всегда повторять: ",
"preferences_preserves_pitch_label": "Сохранять тональность: ",
"preferences_autoplay_label": "Автовоспроизведение: ",
"preferences_continue_label": "Переходить к следующему видео? ",
"preferences_continue_autoplay_label": "Автопроигрывание следующего видео: ",

View File

@ -39,6 +39,7 @@ struct ConfigPreferences
property thin_mode : Bool = false
property unseen_only : Bool = false
property video_loop : Bool = false
property preserves_pitch : Bool = true
property extend_desc : Bool = false
property volume : Int32 = 100
property vr_mode : Bool = true

View File

@ -19,6 +19,10 @@ module Invidious::Routes::PreferencesRoute
video_loop ||= "off"
video_loop = video_loop == "on"
preserves_pitch = env.params.body["preserves_pitch"]?.try &.as(String)
preserves_pitch ||= "off"
preserves_pitch = preserves_pitch == "on"
annotations = env.params.body["annotations"]?.try &.as(String)
annotations ||= "off"
annotations = annotations == "on"
@ -170,6 +174,7 @@ module Invidious::Routes::PreferencesRoute
thin_mode: thin_mode,
unseen_only: unseen_only,
video_loop: video_loop,
preserves_pitch: preserves_pitch,
volume: volume,
extend_desc: extend_desc,
vr_mode: vr_mode,

View File

@ -52,6 +52,7 @@ struct Preferences
property thin_mode : Bool = CONFIG.default_user_preferences.thin_mode
property unseen_only : Bool = CONFIG.default_user_preferences.unseen_only
property video_loop : Bool = CONFIG.default_user_preferences.video_loop
property preserves_pitch : Bool = CONFIG.default_user_preferences.preserves_pitch
property extend_desc : Bool = CONFIG.default_user_preferences.extend_desc
property volume : Int32 = CONFIG.default_user_preferences.volume
property save_player_pos : Bool = CONFIG.default_user_preferences.save_player_pos

View File

@ -19,6 +19,7 @@ struct VideoPreferences
property speed : Float32 | Float64
property video_end : Float64 | Int32
property video_loop : Bool
property preserves_pitch : Bool
property extend_desc : Bool
property video_start : Float64 | Int32
property volume : Int32
@ -42,6 +43,7 @@ def process_video_params(query, preferences)
related_videos = query["related_videos"]?.try { |q| (q == "true" || q == "1").to_unsafe }
speed = query["speed"]?.try &.rchop("x").to_f?
video_loop = query["loop"]?.try { |q| (q == "true" || q == "1").to_unsafe }
preserves_pitch = query["preserves_pitch"]?.try { |q| (q == "true" || q == "1").to_unsafe }
extend_desc = query["extend_desc"]?.try { |q| (q == "true" || q == "1").to_unsafe }
volume = query["volume"]?.try &.to_i?
vr_mode = query["vr_mode"]?.try { |q| (q == "true" || q == "1").to_unsafe }
@ -63,6 +65,7 @@ def process_video_params(query, preferences)
related_videos ||= preferences.related_videos.to_unsafe
speed ||= preferences.speed
video_loop ||= preferences.video_loop.to_unsafe
preserves_pitch ||= preferences.preserves_pitch.to_unsafe
extend_desc ||= preferences.extend_desc.to_unsafe
volume ||= preferences.volume
vr_mode ||= preferences.vr_mode.to_unsafe
@ -83,6 +86,7 @@ def process_video_params(query, preferences)
related_videos ||= CONFIG.default_user_preferences.related_videos.to_unsafe
speed ||= CONFIG.default_user_preferences.speed
video_loop ||= CONFIG.default_user_preferences.video_loop.to_unsafe
preserves_pitch ||= CONFIG.default_user_preferences.preserves_pitch.to_unsafe
extend_desc ||= CONFIG.default_user_preferences.extend_desc.to_unsafe
volume ||= CONFIG.default_user_preferences.volume
vr_mode ||= CONFIG.default_user_preferences.vr_mode.to_unsafe
@ -96,6 +100,7 @@ def process_video_params(query, preferences)
local = local == 1
related_videos = related_videos == 1
video_loop = video_loop == 1
preserves_pitch = preserves_pitch == 1
extend_desc = extend_desc == 1
vr_mode = vr_mode == 1
save_player_pos = save_player_pos == 1
@ -145,6 +150,7 @@ def process_video_params(query, preferences)
speed: speed,
video_end: video_end,
video_loop: video_loop,
preserves_pitch: preserves_pitch,
extend_desc: extend_desc,
video_start: video_start,
volume: volume,

View File

@ -12,6 +12,11 @@
<input name="video_loop" id="video_loop" type="checkbox" <% if preferences.video_loop %>checked<% end %>>
</div>
<div class="pure-control-group">
<label for="preserves_pitch"><%= translate(locale, "preferences_preserves_pitch_label") %></label>
<input name="preserves_pitch" id="preserves_pitch" type="checkbox" <% if preferences.preserves_pitch %>checked<% end %>>
</div>
<div class="pure-control-group">
<label for="autoplay"><%= translate(locale, "preferences_autoplay_label") %></label>
<input name="autoplay" id="autoplay" type="checkbox" <% if preferences.autoplay %>checked<% end %>>