Piotr Niełacny
37983c943a
Respect EnableSubtitleExtraction setting in subtitle delivery
...
Wire up EnableSubtitleExtraction config to MediaEncoder.CanExtractSubtitles
so the setting is actually respected. Gate subtitle extraction check behind
PlayMethod.Transcode since DirectPlay has no competing ffmpeg process.
Add parameterized tests for StreamBuilder.GetSubtitleProfile covering
text and graphical codecs, profile format matching, and extraction
setting behavior. Remove misplaced SubtitleEncoder extraction test.
2026-03-13 16:34:44 +01:00
NoFear0411
d87fe973f3
Fix StyleCop and xUnit analyzer errors
...
- Add missing param and returns XML doc tags (SA1611, SA1615)
- Remove trailing alignment whitespace in test attributes (SA1025)
- Use nullable string parameter for null test case (xUnit1012)
2026-03-01 18:51:27 +04:00
NoFear0411
bc316b3dc8
Fix near-1:1 SAR values falsely flagged as anamorphic
...
Encoders sometimes produce sample aspect ratios like 3201:3200
(0.03% off square) for content that has effectively square pixels.
The exact string comparison against "1:1" marks these as anamorphic,
which triggers unnecessary transcoding on clients that require
non-anamorphic video.
Parse the SAR ratio numerically and treat values within 1% of 1:1
as square pixels. This threshold is well clear of the nearest real
anamorphic SAR (PAL 4:3 at 16:15 = 6.67% off).
2026-03-01 00:00:05 +04:00
Cosmin Dumitru
37b50fe13c
Fix malformed query string in StreamInfo.ToUrl() causing 500 error via proxies
...
StreamInfo.ToUrl() generated URLs like `/master.m3u8?&DeviceId=...` (note `?&`)
because `?` was appended to the path and all parameters started with `&`. When
the first optional parameter (DeviceProfileId) was null, the result was a
malformed query string.
This is harmless when clients hit Jellyfin directly (ASP.NET Core tolerates `?&`),
but when accessed through a reverse proxy that parses and re-serializes the URL
(e.g. Home Assistant ingress via aiohttp/yarl), `?&` becomes `?=&` — introducing
an empty-key query parameter. ParseStreamOptions then crashes on `param.Key[0]`
with IndexOutOfRangeException.
Changes:
- StreamInfo.ToUrl(): Track query start position and replace the first `&` with
`?` after all parameters are appended, producing valid query strings
- ParseStreamOptions: Guard against empty query parameter keys
- Tests: Remove .Replace("?&", "?") workaround that masked the bug
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-18 21:08:35 +01:00
Bond-009
909e2142d6
Merge pull request #14927 from nileshp87/patch-1
...
CodeQL / Analyze (csharp) (push) Has been cancelled
OpenAPI / OpenAPI - BASE (push) Has been cancelled
OpenAPI / OpenAPI - HEAD (push) Has been cancelled
OpenAPI / OpenAPI - Difference (push) Has been cancelled
OpenAPI / OpenAPI - Publish Unstable Spec (push) Has been cancelled
OpenAPI / OpenAPI - Publish Stable Spec (push) Has been cancelled
Tests / run-tests (macos-latest) (push) Has been cancelled
Tests / run-tests (ubuntu-latest) (push) Has been cancelled
Tests / run-tests (windows-latest) (push) Has been cancelled
Project Automation / Project board (push) Has been cancelled
Merge Conflict Labeler / Labeling (push) Has been cancelled
Stale PR Check / Check PRs with merge conflicts (push) Has been cancelled
Stale Issue Labeler / Check for stale issues (push) Has been cancelled
Add curly brace and parentheses support for parsing attribute values
2026-02-02 20:54:06 +01:00
Bond-009
8083ab78b5
Fix tests
2026-02-02 20:46:28 +01:00
theguymadmax
0c274af72c
Backport pull request #16077 from jellyfin/release-10.11.z
...
Revert hidden directory ignore pattern
Original-merge: 644327eb76
Merged-by: crobibero <cody@robibe.ro >
Backported-by: Bond_009 <bond.009@outlook.com >
2026-01-28 12:11:28 -05:00
theguymadmax
c9b7c5bb56
Backport pull request #16029 from jellyfin/release-10.11.z
...
Skip hidden directories and .ignore paths in library monitoring
Original-merge: 2cb7fb52d2
Merged-by: crobibero <cody@robibe.ro >
Backported-by: Bond_009 <bond.009@outlook.com >
2026-01-18 11:30:43 -05:00
Bond-009
226da3b371
Fix zh-CN subtitle language display ( #15947 )
...
The DisplayTitle property was using .NET's CultureInfo.GetCultures(NeutralCultures)
to resolve language display names. Since zh-CN is a specific culture (not neutral),
it would fall back to the base 'zh' code, resulting in generic 'Chinese' instead
of 'Chinese (Simplified)'.
This change adds a LocalizedLanguage property to MediaStream that gets populated
via LocalizationManager.FindLanguageInfo() when streams are retrieved from the
database. This leverages Jellyfin's existing iso6392.txt mappings which correctly
map zh-CN to 'Chinese (Simplified)'.
The same pattern is already used for other localized strings like LocalizedDefault
and LocalizedExternal.
2026-01-18 12:19:31 +01:00
Abitofevrything
8d052a6cb1
Merge pull request #15926 from abitofevrything/feat/accurate_hls_seeking
...
Refactor HLS transcode seeking
2026-01-18 12:17:06 +01:00
Bond_009
098e8c6fed
Replace AlphanumericComparator with new CompareOptions.NumericOrdering
2026-01-14 18:55:47 +01:00
Bond_009
1ba8e2c93c
Fix tests
2026-01-14 18:55:47 +01:00
Bond_009
9e480f6efb
Update to .NET 10.0
2026-01-14 18:55:47 +01:00
Bond-009
185849b68a
Merge pull request #15956 from ZeusCraft10/fix/issue-15945-unknown-type-deserialization
...
CodeQL / Analyze (csharp) (push) Has been cancelled
OpenAPI / OpenAPI - HEAD (push) Has been cancelled
OpenAPI / OpenAPI - BASE (push) Has been cancelled
OpenAPI / OpenAPI - Difference (push) Has been cancelled
OpenAPI / OpenAPI - Publish Unstable Spec (push) Has been cancelled
OpenAPI / OpenAPI - Publish Stable Spec (push) Has been cancelled
Tests / run-tests (macos-latest) (push) Has been cancelled
Tests / run-tests (ubuntu-latest) (push) Has been cancelled
Tests / run-tests (windows-latest) (push) Has been cancelled
Project Automation / Project board (push) Has been cancelled
Merge Conflict Labeler / Labeling (push) Has been cancelled
Stale PR Check / Check PRs with merge conflicts (push) Has been cancelled
Stale Issue Labeler / Check for stale issues (push) Has been cancelled
fix: Handle unknown item types gracefully in DeserializeBaseItem
2026-01-09 18:40:59 +01:00
ZeusCraft10
244757c92c
Fix KeyNotFoundException in CryptographyProvider.Verify
...
When a password hash is missing the 'iterations' parameter, Verify now
throws a descriptive FormatException instead of KeyNotFoundException.
- Extract GetIterationsParameter() helper method to avoid code duplication
- Provide distinct error messages for missing vs invalid parameters
- Add comprehensive unit tests for CryptographyProvider
2026-01-05 23:03:22 -05:00
ZeusCraft10
0ff869dfcd
fix: Handle unknown item types gracefully in DeserializeBaseItem
...
When querying items with recursive=true, items with types from removed
plugins would cause a 500 error. Now these items are skipped with a
warning log instead of throwing an exception.
Fixes #15945
2026-01-05 21:08:26 -05:00
ZeusCraft10
9039077286
Fix zh-CN subtitle language display
...
The DisplayTitle property was using .NET's CultureInfo.GetCultures(NeutralCultures)
to resolve language display names. Since zh-CN is a specific culture (not neutral),
it would fall back to the base 'zh' code, resulting in generic 'Chinese' instead
of 'Chinese (Simplified)'.
This change adds a LocalizedLanguage property to MediaStream that gets populated
via LocalizationManager.FindLanguageInfo() when streams are retrieved from the
database. This leverages Jellyfin's existing iso6392.txt mappings which correctly
map zh-CN to 'Chinese (Simplified)'.
The same pattern is already used for other localized strings like LocalizedDefault
and LocalizedExternal.
2026-01-05 06:22:44 -05:00
gnattu
88acd51ee2
Backport pull request #15807 from jellyfin/release-10.11.z
...
Enforce more strict webm check
Original-merge: 8379b4634a
Merged-by: crobibero <cody@robibe.ro >
Backported-by: Bond_009 <bond.009@outlook.com >
2025-12-28 07:22:31 -05:00
Shadowghost
3c802a7505
Backport pull request #15793 from jellyfin/release-10.11.z
...
Prefer US rating on fallback
Original-merge: 156761405e
Merged-by: crobibero <cody@robibe.ro >
Backported-by: Bond_009 <bond.009@outlook.com >
2025-12-28 07:22:30 -05:00
Shadowghost
b9cf26db2f
Backport pull request #15746 from jellyfin/release-10.11.z
...
Skip invalid ignore rules
Original-merge: 6e60634c9f
Merged-by: crobibero <cody@robibe.ro >
Backported-by: Bond_009 <bond.009@outlook.com >
2025-12-28 07:22:20 -05:00
Nilesh Patel
acb9da6f93
Add curly brace and parentheses support for parsing attribute values from paths
2025-12-10 12:23:05 -08:00
audrey-inglish
8fd59d6f33
Merge pull request #14879 from audrey-inglish/master
...
CodeQL / Analyze (csharp) (push) Has been cancelled
OpenAPI / OpenAPI - BASE (push) Has been cancelled
OpenAPI / OpenAPI - HEAD (push) Has been cancelled
OpenAPI / OpenAPI - Difference (push) Has been cancelled
OpenAPI / OpenAPI - Publish Unstable Spec (push) Has been cancelled
OpenAPI / OpenAPI - Publish Stable Spec (push) Has been cancelled
Tests / run-tests (macos-latest) (push) Has been cancelled
Tests / run-tests (ubuntu-latest) (push) Has been cancelled
Tests / run-tests (windows-latest) (push) Has been cancelled
Project Automation / Project board (push) Has been cancelled
Merge Conflict Labeler / Labeling (push) Has been cancelled
Stale PR Check / Check PRs with merge conflicts (push) Has been cancelled
Stale Issue Labeler / Check for stale issues (push) Has been cancelled
Fix: normalize punctuation when computing CleanName so searches without punctuation match (closes #1674 )
2025-12-08 18:43:37 +01:00
Niels van Velzen
8c02c3be93
Merge pull request #14824 from CodyEngel/fix-numeric-titles
...
Fix TV Series parsing containing only numbers.
2025-11-27 16:32:11 +01:00
Niels van Velzen
19c232809e
Merge pull request #14950 from nielsvanvelzen/security-remove-has-password
...
Deprecate HasPassword property on UserDto
2025-11-27 16:31:05 +01:00
JPVenson
74c9629372
Backport pull request #15413 from jellyfin/release-10.11.z
...
Fixed missing sort argument
Original-merge: 91c3b1617e
Merged-by: crobibero <cody@robibe.ro >
Backported-by: Bond_009 <bond.009@outlook.com >
2025-11-17 14:08:55 -05:00
theguymadmax
6c5f448787
Backport pull request #15404 from jellyfin/release-10.11.z
...
Improve season folder parsing
Original-merge: 2e5ced5098
Merged-by: crobibero <cody@robibe.ro >
Backported-by: Bond_009 <bond.009@outlook.com >
2025-11-17 14:08:54 -05:00
Shadowghost
87b02b1316
Backport pull request #15326 from jellyfin/release-10.11.z
...
Skip too large extracted season numbers
Original-merge: e7dbb3afec
Merged-by: crobibero <cody@robibe.ro >
Backported-by: Joshua M. Boniface <joshua@boniface.me >
2025-11-02 21:58:45 -05:00
theguymadmax
3c4dc16003
Backport pull request #15102 from jellyfin/release-10.11.z
...
Make season paths case-insensitive
Original-merge: 305b0fdca3
Merged-by: crobibero <cody@robibe.ro >
Backported-by: Bond_009 <bond.009@outlook.com >
2025-10-27 15:43:12 -04:00
Niels van Velzen
d43db230fa
Add back UpdateUserPassword_Empty_RemoveSetPassword test
2025-10-19 09:45:55 +02:00
KGT1
e28d547006
add test for new uniqueid nfo key normalisation
2025-10-08 15:32:30 +00:00
Niels van Velzen
0fb6d930e1
Deprecate HasPassword property on UserDto
2025-10-05 11:10:36 +02:00
Cody Robibero
ff0a1b999f
Handle xx as TMDb no language for backdrops ( #14941 )
2025-10-04 21:04:35 +02:00
Cody Engel
bd9a44ce7d
remove explicit ‘-‘ support in series name
2025-09-20 18:00:44 -06:00
Cody Engel
da31d0c6a6
support series that are numeric only
...
updates SeriesResolver to handle series names that only contain numbers such as 1923.
2025-09-20 14:04:00 -06:00
JPVenson
a0b3e2b071
Optimize internal querying of UserData, other fixes ( #14795 )
2025-09-16 13:08:04 -06:00
theguymadmax
e043f93a72
Preserve 3D format on metadata refresh ( #14742 )
CodeQL / Analyze (csharp) (push) Has been cancelled
OpenAPI / OpenAPI - HEAD (push) Has been cancelled
OpenAPI / OpenAPI - BASE (push) Has been cancelled
OpenAPI / OpenAPI - Difference (push) Has been cancelled
OpenAPI / OpenAPI - Publish Unstable Spec (push) Has been cancelled
OpenAPI / OpenAPI - Publish Stable Spec (push) Has been cancelled
Tests / run-tests (macos-latest) (push) Has been cancelled
Tests / run-tests (ubuntu-latest) (push) Has been cancelled
Tests / run-tests (windows-latest) (push) Has been cancelled
Project Automation / Project board (push) Has been cancelled
Merge Conflict Labeler / Labeling (push) Has been cancelled
Stale PR Check / Check PRs with merge conflicts (push) Has been cancelled
Stale Issue Labeler / Check for stale issues (push) Has been cancelled
2025-09-06 11:38:00 -06:00
Joshua M. Boniface
1262ac31dc
Merge pull request #14410 from dyphire/language
...
Further refinement of BCP 47 language labeling support
2025-08-03 17:29:40 -04:00
dyphire
2007815fa6
Further refinement of BCP 47 language labeling support
2025-07-30 22:15:37 +08:00
Sven Cazier
7785b51f57
Enhance extra rules for video and audio file naming; update tests for new naming conventions
2025-07-26 23:24:58 +02:00
Tim Eisele
c6e568692e
Fix modification checks and make sure to use UTC ( #14347 )
OpenAPI / OpenAPI - HEAD (push) Waiting to run
CodeQL / Analyze (csharp) (push) Waiting to run
OpenAPI / OpenAPI - BASE (push) Waiting to run
OpenAPI / OpenAPI - Difference (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
2025-06-26 17:50:37 -06:00
Max Rumpf
9b8c12d433
Adapt LrcLyricParser to new LrcParser version ( #14263 )
2025-06-24 16:59:09 -06:00
JPVenson
1e9e4ffda9
Rework startup topic handling and reenable output to logging framework ( #14243 )
2025-06-08 19:52:39 -06:00
JPVenson
88332e89c4
Feature/version check in library migration ( #14105 )
2025-06-05 08:59:11 -06:00
JPVenson
d5672ce407
Add declarative backups for migrations ( #14135 )
2025-06-03 16:49:41 -06:00
James
0c46431cbb
Update XmlTv tests to use UTC date formats. ( #14163 )
2025-06-03 15:30:08 -06:00
jade
44b5de1568
Fix missing logging of connections by disallowed IPs ( #14011 )
2025-06-03 15:22:30 -06:00
Shane Powell
3330465337
Fix failing unit tests on machines where the local timezone offset is far enough away from the test data day to be off by a day.
...
Change the test startdate to specifically be utc instead of local machine timezone.
2025-05-31 10:41:26 +12:00
JPVenson
fe2596dc0e
Add Full system backup feature ( #13945 )
2025-05-18 18:39:04 -06:00
Bond-009
28e2f5bb08
Add tests for ManagedFileSystem.MoveDirectory ( #14065 )
CodeQL / Analyze (csharp) (push) Waiting to run
OpenAPI / OpenAPI - HEAD (push) Waiting to run
OpenAPI / OpenAPI - BASE (push) Waiting to run
OpenAPI / OpenAPI - Difference (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
2025-05-05 15:39:06 -06:00
Tim Eisele
d976f13970
Recognize file changes and remove data on change ( #13839 )
CodeQL / Analyze (csharp) (push) Waiting to run
OpenAPI / OpenAPI - HEAD (push) Waiting to run
OpenAPI / OpenAPI - BASE (push) Waiting to run
OpenAPI / OpenAPI - Difference (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
2025-05-04 21:21:44 -06:00