diff options
9 files changed, 131 insertions, 15 deletions
diff --git a/Emby.Server.Implementations/Localization/Core/de.json b/Emby.Server.Implementations/Localization/Core/de.json index d8b2f828f..68a0180eb 100644 --- a/Emby.Server.Implementations/Localization/Core/de.json +++ b/Emby.Server.Implementations/Localization/Core/de.json @@ -128,5 +128,7 @@ "TaskRefreshTrickplayImages": "Trickplay-Bilder generieren", "TaskRefreshTrickplayImagesDescription": "Erstellt eine Trickplay-Vorschau für Videos in aktivierten Bibliotheken.", "TaskCleanCollectionsAndPlaylists": "Sammlungen und Playlisten aufräumen", - "TaskCleanCollectionsAndPlaylistsDescription": "Lösche nicht mehr vorhandene Einträge aus den Sammlungen und Playlisten." + "TaskCleanCollectionsAndPlaylistsDescription": "Lösche nicht mehr vorhandene Einträge aus den Sammlungen und Playlisten.", + "TaskAudioNormalization": "Audio Normalisierung", + "TaskAudioNormalizationDescription": "Durchsucht Dateien nach Audionormalisierungsdaten." } diff --git a/Emby.Server.Implementations/Localization/Core/es.json b/Emby.Server.Implementations/Localization/Core/es.json index c2a4baf0e..f9d62d54e 100644 --- a/Emby.Server.Implementations/Localization/Core/es.json +++ b/Emby.Server.Implementations/Localization/Core/es.json @@ -128,5 +128,7 @@ "TaskRefreshTrickplayImages": "Generar miniaturas de línea de tiempo", "TaskRefreshTrickplayImagesDescription": "Crear miniaturas de tiempo para videos en las librerías habilitadas.", "TaskCleanCollectionsAndPlaylists": "Limpiar colecciones y listas de reproducción", - "TaskCleanCollectionsAndPlaylistsDescription": "Elimina elementos de colecciones y listas de reproducción que ya no existen." + "TaskCleanCollectionsAndPlaylistsDescription": "Elimina elementos de colecciones y listas de reproducción que ya no existen.", + "TaskAudioNormalization": "Normalización de audio", + "TaskAudioNormalizationDescription": "Escanear archivos para obtener datos de normalización." } diff --git a/Emby.Server.Implementations/Localization/Core/it.json b/Emby.Server.Implementations/Localization/Core/it.json index 8d8311557..da8d38e40 100644 --- a/Emby.Server.Implementations/Localization/Core/it.json +++ b/Emby.Server.Implementations/Localization/Core/it.json @@ -128,5 +128,7 @@ "TaskRefreshTrickplayImages": "Genera immagini Trickplay", "TaskRefreshTrickplayImagesDescription": "Crea anteprime trickplay per i video nelle librerie abilitate.", "TaskCleanCollectionsAndPlaylists": "Ripulire le raccolte e le playlist", - "TaskCleanCollectionsAndPlaylistsDescription": "Rimuove gli elementi dalle raccolte e dalle playlist che non esistono più." + "TaskCleanCollectionsAndPlaylistsDescription": "Rimuove gli elementi dalle raccolte e dalle playlist che non esistono più.", + "TaskAudioNormalization": "Normalizzazione Audio", + "TaskAudioNormalizationDescription": "Scansione files per normalizzazione audio." } diff --git a/Emby.Server.Implementations/Localization/Core/mt.json b/Emby.Server.Implementations/Localization/Core/mt.json index 8a4a391e8..c9e11165d 100644 --- a/Emby.Server.Implementations/Localization/Core/mt.json +++ b/Emby.Server.Implementations/Localization/Core/mt.json @@ -12,16 +12,122 @@ "DeviceOfflineWithName": "{0} inqatgħa", "DeviceOnlineWithName": "{0} qabad", "External": "Estern", - "FailedLoginAttemptWithUserName": "Attentat t'aċċess fallut minn {0}", + "FailedLoginAttemptWithUserName": "Tentattiv t'aċċess fallut minn {0}", "Favorites": "Favoriti", - "Forced": "Furzat", + "Forced": "Sfurzat", "Genres": "Ġeneri", "HeaderAlbumArtists": "Artisti tal-album", "HeaderContinueWatching": "Kompli Segwi", "HeaderFavoriteAlbums": "Albums Favoriti", "HeaderFavoriteArtists": "Artisti Favoriti", "HeaderFavoriteEpisodes": "Episodji Favoriti", - "HeaderFavoriteShows": "Xows Favoriti", + "HeaderFavoriteShows": "Programmi Favoriti", "HeaderFavoriteSongs": "Kanzunetti Favoriti", - "HeaderNextUp": "Li Jmiss" + "HeaderNextUp": "Li Jmiss", + "SubtitleDownloadFailureFromForItem": "Is-sottotitli naqsu milli jitniżżlu minn {0} għal {1}", + "UserPasswordChangedWithName": "Il-password inbidel għall-utent {0}", + "TaskUpdatePluginsDescription": "Iniżżel u jinstalla aġġornamenti għal plugins li huma kkonfigurati biex jaġġornaw awtomatikament.", + "TaskDownloadMissingSubtitlesDescription": "Ifittex fuq l-internet għal sottotitli neqsin abbażi tal-konfigurazzjoni tal-metadata.", + "TaskOptimizeDatabaseDescription": "Jikkompatti d-database u jaqta' l-ispazju ħieles. It-tħaddim ta' dan il-kompitu wara li tiskennja l-librerija jew tagħmel bidliet oħra li jimplikaw modifiki fid-database jistgħu jtejbu l-prestazzjoni.", + "Default": "Standard", + "Folders": "Folders", + "HeaderLiveTV": "TV Dirett", + "HeaderRecordingGroups": "Gruppi ta' Reġistrazzjoni", + "HearingImpaired": "Nuqqas ta' Smigħ", + "HomeVideos": "Vidjows Personali", + "Inherit": "Jiret", + "ItemAddedWithName": "{0} ġie miżjud mal-librerija", + "ItemRemovedWithName": "{0} tneħħa mil-librerija", + "LabelIpAddressValue": "Indirizz IP: {0}", + "Latest": "Tal-Aħħar", + "MessageApplicationUpdated": "Jellyfin Server ġie aġġornat", + "MessageApplicationUpdatedTo": "JellyFin Server ġie aġġornat għal {0}", + "MessageNamedServerConfigurationUpdatedWithValue": "Is-sezzjoni {0} tal-konfigurazzjoni tas-server ġiet aġġornata", + "MessageServerConfigurationUpdated": "Il-konfigurazzjoni tas-server ġiet aġġornata", + "MixedContent": "Kontenut imħallat", + "Movies": "Films", + "Music": "Mużika", + "MusicVideos": "Vidjows tal-Mużika", + "NameInstallFailed": "L-installazzjoni ta' {0} falliet", + "NameSeasonNumber": "Staġun {0}", + "NameSeasonUnknown": "Staġun Mhux Magħruf", + "NewVersionIsAvailable": "Verżjoni ġdida ta' Jellyfin Server hija disponibbli biex titniżżel.", + "NotificationOptionApplicationUpdateAvailable": "Aġġornament tal-applikazzjoni disponibbli", + "NotificationOptionCameraImageUploaded": "Immaġini tal-kamera mtella'", + "LabelRunningTimeValue": "Tul: {0}", + "NotificationOptionApplicationUpdateInstalled": "Aġġornament tal-applikazzjoni ġie installat", + "NotificationOptionAudioPlayback": "Il-playback tal-awdjo beda", + "NotificationOptionAudioPlaybackStopped": "Il-playback tal-awdjo twaqqaf", + "NotificationOptionInstallationFailed": "Installazzjoni falliet", + "NotificationOptionNewLibraryContent": "Kontenut ġdid miżjud", + "NotificationOptionPluginError": "Ħsara fil-plugin", + "NotificationOptionPluginInstalled": "Plugin installat", + "NotificationOptionPluginUninstalled": "Plugin tneħħa", + "NotificationOptionServerRestartRequired": "Meħtieġ l-istartjar mill-ġdid tas-server", + "NotificationOptionTaskFailed": "Falliment tal-kompitu skedat", + "NotificationOptionUserLockedOut": "Utent imsakkar", + "Photos": "Ritratti", + "Playlists": "Playlists", + "Plugin": "Plugin", + "PluginInstalledWithName": "{0} ġie installat", + "PluginUninstalledWithName": "{0} ġie mneħħi", + "PluginUpdatedWithName": "{0} ġie aġġornat", + "ProviderValue": "Fornitur: {0}", + "ScheduledTaskFailedWithName": "{0} falla", + "ScheduledTaskStartedWithName": "{0} beda", + "ServerNameNeedsToBeRestarted": "{0} jeħtieġ li jerġa' jinbeda", + "Songs": "Kanzunetti", + "StartupEmbyServerIsLoading": "Jellyfin Server qed jixgħel. Jekk jogħġbok erġa' pprova dalwaqt.", + "Sync": "Sinkronizza", + "System": "Sistema", + "Undefined": "Mhux Definit", + "User": "Utent", + "UserCreatedWithName": "L-utent {0} inħoloq", + "UserDeletedWithName": "L-utent {0} tħassar", + "UserDownloadingItemWithValues": "{0} qed iniżżel {1}", + "UserLockedOutWithName": "L-utent {0} ġie msakkar", + "UserOfflineFromDevice": "{0} skonnettja minn {1}", + "UserOnlineFromDevice": "{0} huwa online minn {1}", + "NotificationOptionPluginUpdateInstalled": "Aġġornament ta' plugin ġie installat", + "NotificationOptionVideoPlayback": "Il-playback tal-vidjow beda", + "NotificationOptionVideoPlaybackStopped": "Il-playback tal-vidjow waqaf", + "Shows": "Programmi", + "TvShows": "Programmi tat-TV", + "UserPolicyUpdatedWithName": "Il-policy tal-utent ġiet aġġornata għal {0}", + "UserStartedPlayingItemWithValues": "{0} qed iħaddem {1} fuq {2}", + "UserStoppedPlayingItemWithValues": "{0} waqaf iħaddem {1} fuq {2}", + "ValueHasBeenAddedToLibrary": "{0} ġie miżjud mal-librerija tal-midja tiegħek", + "ValueSpecialEpisodeName": "Speċjali - {0}", + "VersionNumber": "Verżjoni {0}", + "TasksMaintenanceCategory": "Manutenzjoni", + "TasksLibraryCategory": "Librerija", + "TasksApplicationCategory": "Applikazzjoni", + "TasksChannelsCategory": "Kanali tal-Internet", + "TaskCleanActivityLog": "Naddaf il-Logg tal-Attività", + "TaskCleanActivityLogDescription": "Iħassar l-entrati tar-reġistru tal-attività eqdem mill-età kkonfigurata.", + "TaskCleanCache": "Naddaf id-Direttorju tal-Cache", + "TaskCleanCacheDescription": "Iħassar il-fajls tal-cache li m'għadhomx meħtieġa mis-sistema.", + "TaskRefreshChapterImages": "Oħroġ l-Immaġini tal-Kapitolu", + "TaskRefreshChapterImagesDescription": "Joħloq thumbnails għal vidjows li għandhom kapitli.", + "TaskAudioNormalization": "Normalizzazzjoni Awdjo", + "TaskAudioNormalizationDescription": "Skennja fajls għal data ta' normalizzazzjoni awdjo.", + "TaskRefreshLibrary": "Skennja l-Librerija tal-Midja", + "TaskRefreshLibraryDescription": "Jiskennja l-librerija tal-midja tiegħek għal fajls ġodda u jġedded il-metadejta.", + "TaskCleanLogs": "Naddaf id-Direttorju tal-Logg", + "TaskCleanLogsDescription": "Iħassar fajls tal-logg eqdem minn {0} ijiem.", + "TaskRefreshPeople": "Aġġorna Persuni", + "TaskRefreshPeopleDescription": "Jaġġorna l-metadejta għall-atturi u d-diretturi fil-librerija tal-midja tiegħek.", + "TaskRefreshTrickplayImages": "Iġġenera Stampi Trickplay", + "TaskRefreshTrickplayImagesDescription": "Joħloq previews trickplay għal vidjows fil-libreriji attivati.", + "TaskUpdatePlugins": "Aġġorna il-Plugins", + "TaskCleanTranscode": "Naddaf id-Direttorju tat-Transcode", + "TaskCleanTranscodeDescription": "Iħassar fajls transcode eqdem minn ġurnata.", + "TaskRefreshChannels": "Aġġorna l-Kanali", + "TaskRefreshChannelsDescription": "Aġġorna l-informazzjoni tal-kanali tal-internet.", + "TaskDownloadMissingSubtitles": "Niżżel is-sottotitli nieqsa", + "TaskOptimizeDatabase": "Ottimizza d-database", + "TaskKeyframeExtractor": "Estrattur ta' Keyframes", + "TaskKeyframeExtractorDescription": "Jiġbed il-keyframes mill-fajls tal-vidjow biex joħloq playlists HLS aktar preċiżi. Dan il-kompitu jista' jdum għal żmien twil.", + "TaskCleanCollectionsAndPlaylists": "Naddaf il-kollezzjonijiet u l-playlists", + "TaskCleanCollectionsAndPlaylistsDescription": "Ineħħi oġġetti minn kollezzjonijiet u playlists li m'għadhomx jeżistu." } diff --git a/Emby.Server.Implementations/Localization/Core/pt-BR.json b/Emby.Server.Implementations/Localization/Core/pt-BR.json index 16e4cdb0b..8959df0b6 100644 --- a/Emby.Server.Implementations/Localization/Core/pt-BR.json +++ b/Emby.Server.Implementations/Localization/Core/pt-BR.json @@ -111,7 +111,7 @@ "TaskCleanCacheDescription": "Deletar arquivos temporários que não são mais necessários para o sistema.", "TaskCleanCache": "Limpar Arquivos Temporários", "TasksChannelsCategory": "Canais da Internet", - "TasksApplicationCategory": "Aplicativo", + "TasksApplicationCategory": "Aplicação", "TasksLibraryCategory": "Biblioteca", "TasksMaintenanceCategory": "Manutenção", "TaskCleanActivityLogDescription": "Apaga o registro de atividades mais antigo que a idade configurada.", @@ -128,5 +128,7 @@ "TaskRefreshTrickplayImages": "Gerar imagens Trickplay", "TaskRefreshTrickplayImagesDescription": "Cria prévias Trickplay para vídeos em bibliotecas em que o recurso está habilitado.", "TaskCleanCollectionsAndPlaylists": "Limpe coleções e playlists", - "TaskCleanCollectionsAndPlaylistsDescription": "Remove itens de coleções e playlists que não existem mais." + "TaskCleanCollectionsAndPlaylistsDescription": "Remove itens de coleções e playlists que não existem mais.", + "TaskAudioNormalization": "Normalização de áudio", + "TaskAudioNormalizationDescription": "Verifica arquivos em busca de dados de normalização de áudio." } diff --git a/Jellyfin.Api/Controllers/PlaystateController.cs b/Jellyfin.Api/Controllers/PlaystateController.cs index 9d6d75681..88aa0178f 100644 --- a/Jellyfin.Api/Controllers/PlaystateController.cs +++ b/Jellyfin.Api/Controllers/PlaystateController.cs @@ -90,7 +90,7 @@ public class PlaystateController : BaseJellyfinApiController return NotFound(); } - var session = await RequestHelpers.GetSession(_sessionManager, _userManager, HttpContext).ConfigureAwait(false); + var session = await RequestHelpers.GetSession(_sessionManager, _userManager, HttpContext, userId).ConfigureAwait(false); var dto = UpdatePlayedStatus(user, item, true, datePlayed); foreach (var additionalUserInfo in session.AdditionalUsers) @@ -155,7 +155,7 @@ public class PlaystateController : BaseJellyfinApiController return NotFound(); } - var session = await RequestHelpers.GetSession(_sessionManager, _userManager, HttpContext).ConfigureAwait(false); + var session = await RequestHelpers.GetSession(_sessionManager, _userManager, HttpContext, userId).ConfigureAwait(false); var dto = UpdatePlayedStatus(user, item, false, null); foreach (var additionalUserInfo in session.AdditionalUsers) diff --git a/Jellyfin.Api/Helpers/RequestHelpers.cs b/Jellyfin.Api/Helpers/RequestHelpers.cs index 429e97213..b607e9104 100644 --- a/Jellyfin.Api/Helpers/RequestHelpers.cs +++ b/Jellyfin.Api/Helpers/RequestHelpers.cs @@ -117,10 +117,10 @@ public static class RequestHelpers return user.EnableUserPreferenceAccess; } - internal static async Task<SessionInfo> GetSession(ISessionManager sessionManager, IUserManager userManager, HttpContext httpContext) + internal static async Task<SessionInfo> GetSession(ISessionManager sessionManager, IUserManager userManager, HttpContext httpContext, Guid? userId = null) { - var userId = httpContext.User.GetUserId(); - var user = userManager.GetUserById(userId); + userId ??= httpContext.User.GetUserId(); + var user = userManager.GetUserById(userId.Value); var session = await sessionManager.LogSessionActivity( httpContext.User.GetClient(), httpContext.User.GetVersion(), diff --git a/MediaBrowser.MediaEncoding/Encoder/EncoderValidator.cs b/MediaBrowser.MediaEncoding/Encoder/EncoderValidator.cs index 5f0779dc7..ec39f159e 100644 --- a/MediaBrowser.MediaEncoding/Encoder/EncoderValidator.cs +++ b/MediaBrowser.MediaEncoding/Encoder/EncoderValidator.cs @@ -82,6 +82,7 @@ namespace MediaBrowser.MediaEncoding.Encoder "av1_amf", "h264_qsv", "hevc_qsv", + "mjpeg_qsv", "av1_qsv", "h264_nvenc", "hevc_nvenc", @@ -89,6 +90,7 @@ namespace MediaBrowser.MediaEncoding.Encoder "h264_vaapi", "hevc_vaapi", "av1_vaapi", + "mjpeg_vaapi", "h264_v4l2m2m", "h264_videotoolbox", "hevc_videotoolbox", diff --git a/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs b/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs index 807678025..39431a9fc 100644 --- a/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs +++ b/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs @@ -848,7 +848,7 @@ namespace MediaBrowser.MediaEncoding.Encoder inputArg = "-threads " + threads + " " + inputArg; // HW accel args set a different input thread count, only set if disabled } - var filterParam = encodingHelper.GetVideoProcessingFilterParam(jobState, options, jobState.OutputVideoCodec).Trim(); + var filterParam = encodingHelper.GetVideoProcessingFilterParam(jobState, options, vidEncoder).Trim(); if (string.IsNullOrWhiteSpace(filterParam)) { throw new InvalidOperationException("EncodingHelper returned empty or invalid filter parameters."); |
