Commit Graph

27220 Commits

Author SHA1 Message Date
JQ fe79384cd5 Returns album artists apart from artist names when doing a lyrics search (#13852) 2025-04-06 14:18:39 -06:00
Joshua M. Boniface 2c9c9f591d Merge commit from fork
Fix not trusting all sources for forward headers if none are configured
2025-04-05 14:44:42 -04:00
Joshua M. Boniface 7d705249ca Merge commit from fork
Fix validation of API parameters passed to FFmpeg
2025-04-05 14:44:19 -04:00
Tim Eisele de3d1445c0 Fix ancestors (#13827) 2025-04-05 10:49:29 -06:00
Tim Eisele 0e7ae0e9a4 Fix indices and update of ItemValues (#13843) 2025-04-05 09:57:58 -06:00
Tim Eisele 2264d58ae7 Use subdirectories to organize extracted data (#13838)
* Use subdirectories to organize extracted data

* Apply suggestions from code review
2025-04-05 07:53:17 -06:00
HigherLevel f7021d04eb Translated using Weblate (Afrikaans)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/af/
2025-04-04 13:01:03 +00:00
Bond-009 1c2b48182a Fix ArgumentNullException on playlist creation (#13837)
mediaSourceId can be null, the IDE doesn't know this as nullable is disabled for BaseEncodingJobOptions
2025-04-03 17:44:47 -06:00
Tim Eisele d0c1ef8002 Update MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs
Co-authored-by: Cody Robibero <cody@robibe.ro>
2025-04-03 20:42:33 +02:00
timminator d1ed6593ad Make ReadInputAtNativeFramerate configurable for M3U tuner (#13773) 2025-04-03 09:18:00 -06:00
Tim Eisele 596b635511 Cleanup extracted files (#13760)
* Cleanup extracted files

* Pagination and fixes

* Add migration for attachments to MigrateLibraryDb

* Unify attachment handling

* Don't extract again if files were already extracted

* Fix MKS attachment extraction

* Always run full extraction on mks

* Don't try to extract mjpeg streams as attachments

* Fallback to check if attachments were extracted to cache folder

* Fixup
2025-04-03 09:17:14 -06:00
Tim Eisele 0bde7bae05 Only remove keyframe cache dir if it exists (#13834) 2025-04-03 08:47:31 -06:00
JPVenson a18d60d2de Trim library names (#13828) 2025-04-02 18:19:31 -06:00
Tim Eisele 0573999d5e Import Keyframes into database (#13771)
* Migrate keyframe data into database

* Clear database table before import to handle failed migrations
2025-04-02 18:06:40 -06:00
gnattu 49ac705867 Improve dynamic HDR metadata handling (#13277)
* Add support for bitstream filter to remove dynamic hdr metadata

* Add support for ffprobe's only_first_vframe for HDR10+ detection

* Add BitStreamFilterOptionType for metadata removal check

* Map HDR10+ metadata to VideoRangeType.cs

Current implementation uses a hack that abuses the EL flag to avoid database schema changes. Should add proper field once EFCore migration is merged.

* Add more Dolby Vision Range types

Out of spec ones are problematic and should be marked as a dedicated invalid type and handled by the server to not crash the player.

Profile 7 videos should not be treated as normal HDR10 videos at all and should remove the metadata before serving.

* Remove dynamic hdr metadata when necessary

* Allow direct playback of HDR10+ videos on HDR10 clients

* Only use dovi codec tag when dovi metadata is not removed

* Handle DV Profile 7 Videos better

* Fix HDR10+ with new bitmask

* Indicate the presence of HDR10+ in HLS SUPPLEMENTAL-CODECS

* Fix Dovi 8.4 not labeled as HLG in HLS

* Fallback to dovi_rpu bsf for av1 when possible

* Fix dovi_rpu cli for av1

* Use correct EFCore db column for HDR10+

* Undo outdated migration

* Add proper hdr10+ migration

* Remove outdated migration

* Rebase to new db code

* Add migrations for Hdr10PlusPresentFlag

* Directly use bsf enum

* Add xmldocs for SupportsBitStreamFilterWithOption

* Make `VideoRangeType.Unknown` explicitly default on api models.

* Unset default for non-api model class

* Use tuples for bsf dictionary for now
2025-04-02 18:06:02 -06:00
KGT1 9c7cf808aa allow admin users to get Splashscreen even when disabled (#13825)
refactor
2025-04-02 16:32:53 -06:00
Niels van Velzen 767ee2b5c4 Merge pull request #13822 from thornbill/missing-system-info
Add missing public properties to SystemInfo response
2025-04-01 20:04:50 +02:00
Tim Eisele 086fbd49cf Cleanup ItemFields (#13818)
* Cleanup ItemFields

* Update MediaBrowser.Model/Querying/ItemFields.cs
2025-03-31 17:46:21 -06:00
KGT1 14b785d188 Preserve SplashscreenLocation when updating branding config (#13756)
* add BrandingOptionsDto and add branding endpoints

* refactor new HttpGet Configuration Branding into existing API calls

* Add BrandingOptions to _ignoredConfigurations for openAPI

* rename BrandOptionsDto to BrandingOptionsDto
2025-03-31 17:46:01 -06:00
Dmitry Lyzo 940c4e8ba8 Add Dolby Vision tests for Tizen (#12670)
* Fix Tizen H264 profiles

* Add Dolby Vision tests for Tizen

* Allow Dolby Vision fallback layer on Tizen 3+
2025-03-31 17:45:14 -06:00
Fernando Fernández 2b742a5966 Reduce SKImage to SKBitmap conversion, high quality canvas (#5366) 2025-03-31 17:45:03 -06:00
Tim Eisele 5769c398c6 Fix Tmdb external URL generation (#13817)
* Fix Tmdb external URL generation

* Update MediaBrowser.Providers/Plugins/Tmdb/TmdbExternalUrlProvider.cs
2025-03-31 17:44:06 -06:00
gnattu 4a4fef830e Explicitly set default value for enums used in API models (#13821)
Enums in response model with no nullability or default value will make the API very fragile as each extension to the enum will break the API for some clients, but a lot of enums actually do have an unknown value which should be used as a default. This set all model properties that are non-nullable using an enum that has an Unknown member in 10.10, except MediaStream.VideoRangeType which is refactored in #13277
2025-03-31 17:43:31 -06:00
Bond-009 e9729a536f Use pattern matching for null checks (#13793)
Fix the few that slipped through
2025-03-31 17:38:25 -06:00
Bill Thornton d9a79b5eef Add missing public properties to SystemInfo response 2025-03-31 18:26:34 -04:00
Tim Eisele 3fc3b04daf Rework parental ratings (#12615) 2025-03-30 21:51:54 -06:00
Quyet Vu 2ace880345 Fix playlist order (#13730)
* Fix playlist order move

* Remove extra space

* Added more test cases

* Change namespace to file-scoped
2025-03-30 21:39:51 -06:00
Tim Eisele d7b786e777 Fix MoveTrickplayFiles migration (#13807) 2025-03-30 21:38:50 -06:00
renovate[bot] 150094e3a4 Update dependency z440.atl.core to 6.20.0 (#13811)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-30 21:38:36 -06:00
Tim Eisele 824bafc32d Fix StreamInfo.ToUrl (#13808) 2025-03-30 21:37:58 -06:00
JPVenson 90a6cca92b Library.db migration impovements (#13809)
* Fixes cleanup of wrong table in migration

* use dedicated context for each step

* Use prepared Context

* Fix measurement of UserData migration time

* Update logging and combine cleanup to its own stage

* fix people map not logging
migrate only readonly database

* Add id blacklisting in migration to avoid duplicated log entires
2025-03-30 21:36:27 -06:00
Bond-009 476a0d6932 Merge pull request #13194 from gnattu/av1-videotoolbox
Enable VideoToolbox AV1 decode
2025-03-30 23:12:53 +02:00
JPVenson d75216cf3a Fixes cleanup of wrong table in migration (#13796) 2025-03-29 10:00:19 -06:00
gnattu c69e9d8f2c Gate the macOS only functions 2025-03-28 21:30:39 +08:00
gnattu 384134fd25 Use string literal 2025-03-28 21:22:00 +08:00
Johannes Heuel 2c499d1e86 feat: allow grouping shows into collections (#13236)
* feat: allow grouping shows into collections

* add pre-startup routine to rename EnableGroupingIntoCollections

* Update Jellyfin.Server/Migrations/PreStartupRoutines/RenameEnableGroupingIntoCollections.cs
2025-03-28 06:54:12 -06:00
Tim Eisele 9657708b38 Reduce allocations, simplifed code, faster implementation, included tests - StreamInfo.ToUrl (#9369)
* Rework PR 6168

* Fix test
2025-03-28 06:51:44 -06:00
Dmitry Lyzo cb931e0062 Add profile condition to limit the number of streams (#13583) 2025-03-28 06:51:22 -06:00
Shadowghost 3df7d7a809 Add validation for level input 2025-03-28 08:21:37 +01:00
Shadowghost 1fcc79316d Rename ValidationRegex to ContainerValidationRegex 2025-03-28 08:21:37 +01:00
Shadowghost 6d7950bddc Fix container parameter validation 2025-03-28 08:21:37 +01:00
JPVenson a2ef0e4abe Fix trusting all sources for forward headers if none are configured 2025-03-28 08:08:18 +01:00
Niels van Velzen 7f5cc544df Merge pull request #13790 from crobibero/fix-build
Fix build and tests
2025-03-28 07:21:59 +01:00
Cody Robibero 15465afd8e Revert changes to DirectoryService 2025-03-27 21:13:27 -06:00
Cody Robibero 6c46b06c75 Fix merged namespace error 2025-03-27 19:46:45 -06:00
Michael McElroy f02190c394 Fix for Issue #12142: Fix ExtraRuleResolver filtering out top level folders (#12170)
* Fix ExtraRuleResolver to stop filtering out libraries where the name of the base folder matches an 'videos extras' rule with an ExtraRuleType of DirectoryName

Currently the ExtraRuleResolver code doesn't know anything about the root folder of the current library. As a result, when we're attempting to add items in a library where the root folder has a name with a match in Emby.Naming.Common.NamingOptions.VideoExtraRules, the entire library is being ignored as a Video Extras folder.

Need to pass in the root folder of the current library to compare to the path of the current item being evaluated, and if we match the current item's folder to the root folder, then we ignore the ExtraRules with a type of DirectoryName and we continue to scan deeper in the library. Filters still apply to subfolders within the library itself.

* Update CONTRIBUTORS.md

* Update Emby.Naming/Video/ExtraRuleResolver.cs

* Update ExtraTests.cs

Add tests for this fix.

Also add missing tests in TestKodiExtras, TestExpandedExtras, and TestSample, and expanded TestDirectories into TestDirectoriesAudioExtras and TestDirectoriesVideoExtras. There were no checks for the theme-music folder name previously.

* Update ExtraTests.cs

Removed unnecessary "using System"

* In MediaBrowser.Model, upgrade System.Text.Json from 8.0.3 (vulnerable - high risk) to 8.0.4

* Update ExtraTests.cs

Remove empty lines in usings

* Revert "In MediaBrowser.Model, upgrade System.Text.Json from 8.0.3 (vulnerable - high risk) to 8.0.4"
2025-03-27 18:18:19 -06:00
Cody Robibero 88ceaa39b0 Implement limiting caches (#13605)
* Implement basic expiring cache for LibraryManager

* Add expiring cache to more places

* Rider why

* Make DirectoryService caches static

* Use FastConcurrentLru

* Reduce default cache size

* Simplify DirectoryService caches

* Make directory service cache size at least 128
2025-03-27 18:16:54 -06:00
gnattu e9331fe9d7 Improve SkiaEncoder's font handling (#13231)
* Improve SkiaEncoder's font handling

Our previous approach didn’t work with some complex library names, even when the required fonts were present, because the font handling logic was too simplistic. Modern Unicode and the fonts have become quite complex, making it challenging to implement it correctly. This improved implementation still isn’t the most correct way, but it’s better than it used to be. It now falls back to multiple fonts to find the best one and also handles extended grapheme clusters that were incorrectly processed before.

* Fix space

* Remove redundant comment

* Make _typefaces an array

* Make Measure and Draw text function name clear

* Fix rename
2025-03-27 18:07:54 -06:00
Kevin Jilissen 9f70578997 Add channel queries to series (#13356)
Currently, the IChannel interface can deliver channel result folders which are interpreted as series and seasons. However, Jellyfin does not query for the contents of these folders when viewing said serie of season. This results in empty series in the API.
2025-03-27 18:06:10 -06:00
Jacob Warren 07f07ba6bc Fix Sort by Year Bug (#12101) (#13733) 2025-03-27 18:05:03 -06:00