| Age | Commit message (Collapse) | Author |
|
Fix fMP4 HLS subtitle timestamp map offset
|
|
* Return the created API key from POST /Auth/Keys
* Keep the other API key fields in the DTO
|
|
Use hvc1 for Dolby Vision profile 8
Original-merge: 173ee6947286d36cdb0ba86bbe9676770c57e27b
Merged-by: crobibero <cody@robibe.ro>
Backported-by: Cody Robibero <cody@robibe.ro>
|
|
Only propagate a changed rating to children that follow it
Original-merge: 1d5590d02ac04d857e73a4e4406b0801589d3368
Merged-by: crobibero <cody@robibe.ro>
Backported-by: Cody Robibero <cody@robibe.ro>
|
|
Update episode season name after editing the season name
Original-merge: 22594525a453e48d6b410aaa5c7623a3d1244df1
Merged-by: crobibero <cody@robibe.ro>
Backported-by: Cody Robibero <cody@robibe.ro>
|
|
Fix user preferences when renaming libraries
Original-merge: 9203258175c32b44052d2a0fc5bae9815697c80b
Merged-by: crobibero <cody@robibe.ro>
Backported-by: Cody Robibero <cody@robibe.ro>
|
|
Fix segment cleaner deleting segments ahead of playback when remuxing MKV
Original-merge: 3acc9c8443d7ee445c4fe015f2977a47d4ea57ac
Merged-by: crobibero <cody@robibe.ro>
Backported-by: Cody Robibero <cody@robibe.ro>
|
|
Serve graphical subtitles as raw files with range support
Original-merge: 4acfd6eb2e19cb8d258b240b01c766229cb1314c
Merged-by: crobibero <cody@robibe.ro>
Backported-by: Cody Robibero <cody@robibe.ro>
|
|
Preserve active scans when requesting a background library refresh
Original-merge: 949e0585a65a91f90644a2475c1e1009e5d51e90
Merged-by: crobibero <cody@robibe.ro>
Backported-by: Cody Robibero <cody@robibe.ro>
|
|
Populate missing tags array in Filters2
Original-merge: 3d52fbe84e78d6447465bb831039dabb6142ca67
Merged-by: crobibero <cody@robibe.ro>
Backported-by: Cody Robibero <cody@robibe.ro>
|
|
Fix /UserViews exhausting memory and reporting random child counts
Original-merge: a838a06aa51eac388a76e9e6421f1a80873c417b
Merged-by: crobibero <cody@robibe.ro>
Backported-by: Cody Robibero <cody@robibe.ro>
|
|
Better handle timeouts on plugin operations
|
|
Fix items being lost from the refresh queue and bound the directory service caches
|
|
|
|
|
|
|
|
|
|
Co-Authored-By: Cody Robibero <cody@robibe.ro>
|
|
GetFallbackFont() called .First() on the font file sequence, which throws
System.InvalidOperationException when no file matched the requested name,
causing HTTP 500. Change to .FirstOrDefault() so a missing font falls
through to the existing null guard and returns HTTP 200 OK (the empty
response is intentional to avoid breaking SubtitlesOctopus).
Fixes #17683.
Prepared with AI assistance (Claude Code, Anthropic), reviewed for correctness before submission.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Fix item counts on the by-name endpoints
|
|
Fix broken access control in session management
|
|
Secure library paths
|
|
|
|
|
|
|
|
|
|
Safeguard against invalid provider ids
|
|
Co-Authored-By: Cody Robibero <cody@robibe.ro>
|
|
|
|
|
|
Fix concurrent ffmpeg segment racing
|
|
This is a nasty one. The failure mode is:
1. Request A started FFmpeg and waited for a segment.
2. Request B requested an earlier or far away segment.
3. Jellyfin thought FFmpeg should to restart at a different position.
4. Request B killed the existing transcoding job.
5. Killing that job cancelled the same token request A was using.
6. The cancellation produced http 500 to request A.
To fix this:
we lock transcoding job state changes and segment handling per playlist, and use a thread safe counter to track how many http responses are still using each job’s segments. A job is only stopped or replaced once that counter reaches zero.
|
|
|
|
Fix Live TV returning unreachable "server-local" streaming URLs to clients.
|
|
# Conflicts:
# src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/Migrations/JellyfinDbModelSnapshot.cs
|
|
Skip SIDX in fMP4 HLS segments
|
|
Prevent FFmpeg's SIDX path from rewriting open-GOP boundary packet timestamps. HLS uses the media playlist for segment indexing and does not require the SIDX box.
|
|
user can access
|
|
ItemCounts
|
|
TheMelmacian/feature/library_specific_language_filter_values
Improve language filters to only fetch language codes that match the requested items/libraries (follow up to #9787)
|
|
fix: don't throw ArgumentNullException on partial UpdateItem payloads (#17366)
|
|
Prevent unauthenticated re-run of the startup wizard on misconfiguration
|
|
Addresses review feedback from @Bond-009 on PR #17370: the test helper
InvokeUpdateItem was invoking the private UpdateItem(BaseItemDto, BaseItem)
method via reflection. Jellyfin.Api.csproj already grants
InternalsVisibleTo("Jellyfin.Api.Tests"), so the method is changed to
internal and the test now calls it directly, removing the
GetMethod/Invoke boilerplate.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
|
security-path-traversal-fixes
# Conflicts:
# Jellyfin.Api/Controllers/HlsSegmentController.cs
# Jellyfin.Api/Controllers/PluginsController.cs
|
|
Make RequestHelpers.GetOrderBy generic and reuse it in ActivityLogController
|
|
|
|
Update season and episode SeriesName when renaming a series
|
|
Remove episode image override hack
|
|
Fix path transversal exposure in Plugins
|
|
BaseItemDto.Genres, .Tags, and .ProviderIds are plain auto-properties with
no default initializer, so they deserialize to null when a client omits
them from a partial POST /Items/{itemId} body. The OpenAPI spec documents
every BaseItemDto field as optional, but ItemUpdateController.UpdateItem
fed these three properties straight into Distinct()/Select()/ToList()
without a null check, so a request that (for example) only sets Tags
throws ArgumentNullException("source") once it reaches the unguarded
Genres line, before Tags is even processed.
Guard all three assignments with the same "if (request.X is not null)"
pattern already used for the neighboring Studios/Taglines/ProductionLocations
fields in this method, so omitted fields are left unchanged instead of
crashing the request.
Adds ItemUpdateControllerTests covering the reported repro (only Tags
supplied) and a companion case asserting existing Genres/ProviderIds are
preserved when omitted from the payload.
Signed-off-by: zerafachris <christopher.zerafa@blocklabs.io>
|