4611 Commits

Author SHA1 Message Date
Cody Robibero
da3f3b09d9
Use existing userData (#14703) 2025-08-26 16:09:17 -06:00
Cody Robibero
beca405ad4 Refactor to pull item counts in a single query 2025-08-11 21:06:04 -06:00
Evan
5eef85f027 move new TaggedItemCounts to its own file 2025-08-11 20:49:06 +08:00
Evan
0a4ff3f3c0 Fix GetBaseItemDto to return related item counts via SQL count
For API call /Items/{item id} GetBaseItemDto will return the counts of related items e.g. artists, albums, songs.  GetBaseItemDto currently does this by calling GetTaggedItems which retrieves the objects into memory to count them.  Replace with SQL count.

Fixes:
This should be an improvement for any large libraries, but especially large music libraries.  Example:

Request Library -> Genres -> any very popular genre in your large library, e.g. Classical
Number of albums = 1552, songs = 23515, ...

- Before change: Try to retrieve 1552 albums, 23515 songs, ... in memory, API never returns, database on fire
- After change: API returns in 367ms and Genre view opens with 200 albums in 2 seconds

I verified the numbers returned are correct but note that there is a bug somewhere else in Jellyfin that is setting TopParentId to NULL for a large portion of my MusicArtists, which causes them to not be counted by the existing GetCount().  This is not related to this change, also happens with the existing code, and does not seem to affect the Web UI.

Includes Cory's changes in:
- https://github.com/jellyfin/jellyfin/pull/14610#issuecomment-3172211468
- https://github.com/jellyfin/jellyfin/pull/14610#issuecomment-3172239154
2025-08-10 18:02:17 +08:00
Bond_009
c7c7b30d28 Revert "Merge pull request #13604 from Jxiced/master"
This reverts commit ce78af2ed4f203690a0f9ef87b08b27a6bd43f63, reversing
changes made to db7465e83d9cc07134a0bffad7ed17b1c7b873da.
2025-08-06 15:49:40 +02:00
Joshua M. Boniface
4b6fb6c4bb
Merge branch 'master' into master 2025-08-03 17:27:17 -04:00
evan314159
6f49782b7b
fix file modification date comparisons (#14503) 2025-07-27 20:08:06 -06:00
theguymadmax
536437bbe3
Fix allow and block queries (#14482) 2025-07-27 19:28:04 -06:00
JPVenson
7ba77804c4
Added advanced parallel process calculation (#14437) 2025-07-11 23:27:13 -06:00
Nyanmisaka
db55d983f8
Only enable VAAPI MJPEG encoder on Intel iHD driver (#14433) 2025-07-07 18:05:14 -06:00
Bond-009
5c36b44484
Fix seasons random (#13224) (#14335)
Sorting was always enabled so removed the `enableSorting` parameter
in QueryResult method.

Co-authored-by: Maxime <>
2025-07-04 19:18:38 +02:00
Tim Eisele
c6e568692e
Fix modification checks and make sure to use UTC (#14347) 2025-06-26 17:50:37 -06:00
Nyanmisaka
ebdc756547
Fix -fps_mode option being applied on input (#14379) 2025-06-26 17:48:43 -06:00
Bond-009
a537c66da1
Merge pull request #14322 from gnattu/disable-hdr-non-hdr-clients
Don't check dynamic metadata removal for static HDR formats
2025-06-19 11:27:23 +02:00
Maxime
e83b992eef Fix seasons random (#13224)
Sorting was always enabled so removed the `enableSorting` parameter
in QueryResult method.
2025-06-18 00:41:09 +02:00
Nyanmisaka
e8291fc856
Fix QSV "static surface pool size exceeded" on Windows
d3d11va doesn't support dynamic pool size, use vpp filter ctx to relay to prevent encoder async and bframes from exhausting the decoder pool.
2025-06-17 15:02:13 +08:00
gnattu
368808eba4 Don't check dynamic metadata removal for static HDR formats
Those videos have no metadata to be removed at all, just force transcoding when the client does not support it.
2025-06-17 02:29:16 +08:00
JPVenson
0e1be6ce30
Use proper scheduler that honors the parallel task limit (#14281) 2025-06-15 15:21:11 -06:00
JPVenson
4cd0a2ed8d
Always set update action when item does not exist (#14304) 2025-06-15 15:19:57 -06:00
Tim Eisele
aa05185917
Only remove image file if it exists (#14302) 2025-06-15 15:19:30 -06:00
ThunderClapLP
6b5ce934b3
Fix existing media segments not being handled on scan (#14218) 2025-06-10 07:45:09 -06:00
gnattu
bdb3adeb30
Don't attempt to do metadata removal for dovi without fallback (#14240) 2025-06-08 07:29:17 -06:00
Niels van Velzen
547b8cafb1
Merge pull request #13307 from qiqian/master
always sort season by index number
2025-06-07 21:52:01 +02:00
JPVenson
d5672ce407
Add declarative backups for migrations (#14135) 2025-06-03 16:49:41 -06:00
Shane Powell
08b2ffeaab
fixes #14193 (#14203) 2025-06-03 15:21:35 -06:00
nyanmisaka
1ee705f3e1 Fix RKRGA 2pass scaling issue caused by auto AR reduction
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2025-05-26 23:49:04 +08:00
nyanmisaka
0e0c7c5c59 Offload 1080p+ subtitle scaling to RKRGA
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2025-05-26 23:49:04 +08:00
theguymadmax
c3762186da
Fix collection behavior when sorting by rating or runtime (#14148)
Co-authored-by: Max <no@example.com>
2025-05-22 07:05:14 -06:00
nyanmisaka
56231222df Enable OpenCL deinterlacer for AMF on Windows when available
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2025-05-20 22:07:00 +08:00
JPVenson
fe2596dc0e
Add Full system backup feature (#13945) 2025-05-18 18:39:04 -06:00
Tim Eisele
49c6a99e00
Cleanup external item data cleanup (#14072) 2025-05-09 08:35:29 -06:00
Nyanmisaka
07093c84c8
Use VBR and MBBRC in QSV encoders for better quality (#14079) 2025-05-08 14:43:13 -06:00
Tim Eisele
d976f13970
Recognize file changes and remove data on change (#13839) 2025-05-04 21:21:44 -06:00
Nyanmisaka
4199f7acc2
Fix the transparency issue of ASS subtitle rendering in HWA (#14024) 2025-05-03 08:21:08 -06:00
Tim Eisele
f576783ae1
Fix distinction queries (#14007) 2025-04-26 18:49:30 -06:00
JPVenson
8ee358de2c
Check for path overlaps (#12832) 2025-04-26 09:30:25 -06:00
Tim Eisele
df5671263f
Merge pull request #13847 from Shadowghost/rework-chapter-management
Rework chapter management
2025-04-26 14:01:12 +02:00
JPVenson
a0931baa8e
Add Api and startup check for sufficient storage capacity (#13888) 2025-04-20 20:06:50 -06:00
Niels van Velzen
5e4bd744c0
Return SyncPlay group info after creation, add GET group endpoint (#13935) 2025-04-20 19:40:23 -06:00
Niels van Velzen
269508be9f
Fix SyncPlay WebSocket OpenAPI schemas (#13946) 2025-04-19 13:08:15 -06:00
Tim Eisele
6e9e2f500f
Fix Genre cleanup (#13916) 2025-04-14 20:43:38 -06:00
Nyanmisaka
8be8ea60f1
Add DoVi Profile 5 support for Rockchip RKMPP (#13911) 2025-04-13 07:43:58 -06:00
Tim Eisele
cad8de9701
Add Genre cleanup and fix cleanup filter queries (#13891) 2025-04-09 18:40:16 -06:00
Nyanmisaka
98697e75ca
Fix seeking beyond EOF again (#13871) 2025-04-08 14:58:55 -06: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
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
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