Commit graph

622 commits

Author SHA1 Message Date
Tim Eisele
cad8de9701
Add Genre cleanup and fix cleanup filter queries (#13891) 2025-04-09 18:40:16 -06:00
JPVenson
070abcd8ff
Fix InheritedParentalRatingSubValue not set (#13880) 2025-04-08 19:19:01 -06:00
baka0815
5fc1b1c862
Translate the ISO-639-2/B codes to ISO-639-2/T. (#13068)
* Translate the ISO-639-2/B codes to ISO-639-2/T.

This enables 19 additional languages to be displayed correctly.

* Convert the 2-dimensional array to a dictionary

* Added the French language to the list of ISO-639-2/B codes

* Don't change the property, use a local variable instead.

* When creating the MediaStream in the MediaStreamRepository ensure that the ISO 639-2/T (f.e. deu) code is used for the language as that is the one the .NET culture info knows.
The other code is most likely the ISO 639-2/B code (f.e. ger) which is unknown to the .NET culture info and will result in just displaying the code instead of the display name.

* Move the substitution of ISO 639-2/B to /T to the localization manager.
Some language (like Chinese) have multiple entries in the iso6392.txt file (f.e. zho|chi|zh|..., zho|chi|zh-tw|...) but the conversation between /T and /B is the same so use .TryAdd.

* Change the method definition from GetISO6392TFromB to TryGetISO6392TFromB and return true if a case was found.

* Add unit tests for TryGetISO6392TFromB.
2025-04-07 21:29:12 -06:00
Tim Eisele
b65e03da9a
Fix Genre type (#13862) 2025-04-07 06:11:05 -06: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
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
Tim Eisele
3fc3b04daf
Rework parental ratings (#12615) 2025-03-30 21:51:54 -06:00
Cody Robibero
6c46b06c75 Fix merged namespace error 2025-03-27 19:46:45 -06:00
Jacob Warren
07f07ba6bc
Fix Sort by Year Bug (#12101) (#13733) 2025-03-27 18:05:03 -06:00
JQ
d06ce1f1e0
Fix only returning one item from /Item/Latest api. (#12492)
* Updated to EFcore

* Remove unused using

* Dont use DateCreated not from episode type or music type

* use TranslateQuery to filter out instead and then do the grouping and retrival of min and max datecreated instead

* Album also
2025-03-26 20:26:47 -06:00
Cody Robibero
d848faeb75
Merge pull request #13589 from JPVenson/feature/DatabaseRefactor
[Feature] Database code refactor
2025-03-25 21:34:26 -06:00
JPVenson
42bdb22bfb Fixed namespaces 2025-03-25 16:45:00 +01:00
JPVenson
160020c551 WIP fixed namespaces 2025-03-25 15:30:22 +00:00
JPVenson
850f1c79f1 Merge branch 'master' into feature/DatabaseRefactor 2025-03-25 15:12:48 +00:00
Niels van Velzen
8680170706
Merge pull request #13616 from Lampan-git/fix_people_role
Include PeopleBaseItemMap in GetPeople to inlcude Role and SortOrder
2025-03-24 15:29:28 +01:00
JPVenson
8e9b57aea9 Fixed naming scheme 2025-03-24 10:14:16 +00:00
JPVenson
ea8f1ffb7c renamed SqLite to Sqlite 2025-03-24 10:07:52 +00:00
JPVenson
671d801d9f
#13540 Fixed (#13757)
#13508 Partially fixed

Co-authored-by: JPVenson <github@jpb.software>
2025-03-23 19:52:34 -06:00
Tim Eisele
8db6a39e92
Remove all DB data on item removal, delete internal trickplay files (#13753) 2025-03-23 10:05:13 -06:00
Cody Robibero
85b5bebda4
Add fast-path to getting just the SeriesPresentationUniqueKey for NextUp (#13687)
* Add more optimized query to calculate series that should be processed for next up

* Filter series based on last watched date
2025-03-18 17:37:04 -06:00
Bond-009
6331de2e13
Merge pull request #13406 from Shadowghost/extract-trickplay-master
Extract trickplay files into own subdirectory
2025-03-10 11:00:12 +01:00
Lampan-git
7abb94d8a2 Move mapping assignment to Map 2025-03-05 22:37:18 +01:00
Lampan-git
e137a06362 Change PeopleBaseItemMap query from GroupJoin to Include 2025-03-05 16:59:49 +01:00
Lampan-git
4e3d7383f5 Change GetPeople PeopleBaseItemMap code to query 2025-03-05 16:59:31 +01:00
JPVenson
feea5af2f3 Merge remote-tracking branch 'jellyfinorigin/master' into feature/DatabaseRefactor 2025-03-01 14:16:49 +00:00
Bond-009
04f7cd6011
Merge pull request #13492 from gnattu/dont-use-returning-clause
Don't use RETURNING clause with EFCore
2025-03-01 14:54:51 +01:00
Lampan-git
d28ee96f06 Include PeopleBaseItemMap in GetPeople 2025-02-25 18:10:50 +01:00
Bond-009
51e0ce7ea4
Merge pull request #13556 from Jxiced/master
Don't allow usernames to have leading or trailing spaces
2025-02-20 12:04:43 +01:00
JPVenson
44dfe554a8 Moved Database projects under /src
removed old pgsql references
2025-02-20 09:55:02 +00:00
JPVenson
d8030147ff Merge remote-tracking branch 'jellyfinorigin/master' into feature/DatabaseRefactor 2025-02-19 18:25:00 +00:00
JPVenson
ddc20b74bf Removed pgsql from refactor 2025-02-19 18:21:23 +00:00
Cody Robibero
712908d53c
Revert nullability of MediaStream.IsHearingImpaired (#13573) 2025-02-17 19:20:18 -07:00
Cody Robibero
06527fae6e
Disallow incremental updates to JellyfinDbModelSnapshot (#13564) 2025-02-15 18:33:45 -07:00
Bond-009
66e571cd97
Merge pull request #13553 from crobibero/efcore-livetv-epg
Change BaseItemEntity ChannelId to nullable Guid
2025-02-15 19:21:16 +01:00
Jxiced
84450bb297
Update Jellyfin.Server.Implementations/Users/UserManager.cs
Co-authored-by: gnattu <gnattu@users.noreply.github.com>
2025-02-14 18:13:05 +00:00
Jxiced
237c1d9b97 Update regex and revert previous changes to ThrowIfInvalidUsername. 2025-02-14 17:46:23 +00:00
Jxiced
a0ab0eb875 Update ThrowIfInvalidUsername to include whitespaces. 2025-02-14 17:01:01 +00:00
gnattu
fa97e8e183
Write only for query columns to EFCore db (#13542)
* Write only for query columns to EFCore db.

We currently don't write the columns that do not exist on the BaseItem class definition in db. However, columns like `CleanName` is still useful and being used by internal queries and current behavior would cause such query to return nothing.

The only exception is the UserDataKey which is not even being used for internal query that can be omitted.

* Update comment
2025-02-13 20:19:24 -07:00
Cody Robibero
debc499711 Change BaseItemEntity ChannelId to nullable Guid 2025-02-13 20:17:25 -07:00
Bond-009
17e78c0d40
Merge pull request #13539 from gnattu/mimic-old-get-item-value-names
Simulate old GetItemValueNames behavior
2025-02-13 13:37:05 +01:00
gnattu
d2e7ab1c1a Simulate old GetItemValueNames behavior
The GetItemValueNames function in the old implementation was intended to retrieve the original value rather than the cleaned value. The old implementation lacked a clear specification regarding which value to return for the non-cleaned value in a group and relied on an undefined behavior of SQLite, and this implementation assumes the first one is the desired one.
2025-02-11 11:45:53 +08:00
Tobias Kloy
83f0f3d629 Optimise string handling in PeopleRepository filtering. 2025-02-07 22:20:35 +01:00
Tobias Kloy
3a4d67319a Disable Warnings similar as in BaseItemRepository 2025-02-07 20:37:35 +01:00
tkloy24
7f41cc53ca
Update Jellyfin.Server.Implementations/Item/PeopleRepository.cs
Co-authored-by: JPVenson <ger-delta-07@hotmail.de>
2025-02-07 19:46:38 +01:00
Tobias Kloy
0a4ca33d4f Fix Search results are case-sensitive for people 2025-02-07 14:38:33 +01:00
gnattu
341bb02422
Order MediaStream query by StreamIndex (#13506)
Our stream index calculation logic implemented in #7529, assumes an in-order array. However, our current query may return out-of-order items, leading the server to pass an incorrect index to ffmpeg, causing the transcoding to crash.
2025-02-06 07:15:29 -07:00
JPVenson
dfdef511a5 Merge remote-tracking branch 'jellyfinorigin/master' into feature/pgsql_provider 2025-02-05 18:32:13 +00:00
Bond-009
00b66a06ea
Enable nullable for AuthorizationInfo (#13485) 2025-02-04 17:10:39 -07:00