| Age | Commit message (Collapse) | Author |
|
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.
|
|
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>
|
|
Refactor HLS transcode seeking
|
|
* Fix Tizen H264 profiles
* Add Dolby Vision tests for Tizen
* Allow Dolby Vision fallback layer on Tizen 3+
|
|
Fix the few that slipped through
|
|
|
|
StreamInfo.ToUrl (#9369)
* Rework PR 6168
* Fix test
|
|
|
|
|
|
|
|
|
|
Signed-off-by: gnattu <gnattuoc@me.com>
|
|
Signed-off-by: gnattu <gnattuoc@me.com>
|
|
Signed-off-by: gnattu <gnattuoc@me.com>
|
|
Signed-off-by: gnattu <gnattuoc@me.com>
|
|
Signed-off-by: gnattu <gnattuoc@me.com>
|
|
Signed-off-by: gnattu <gnattuoc@me.com>
|
|
|
|
* Check MaxAudioChannels for directAudioStream candidates
The current stream builder logic does not check the channel limit when determining if the audio stream can be directly used, and this can cause some undesired effects:
- A high channel count surround sound stream might be picked even if a stereo one exists when the user requires stereo audio.
- The user's preferred audio codec might not be respected during the downmix because the requested codec is now forced to be the same as the original source.
Signed-off-by: gnattu <gnattuoc@me.com>
* Fix unit test
Signed-off-by: gnattu <gnattuoc@me.com>
* Set correct transcode reason and target channels for unit test
Signed-off-by: gnattu <gnattuoc@me.com>
* Match old stream selection behavior
Signed-off-by: gnattu <gnattuoc@me.com>
* Fix reason matching
Signed-off-by: gnattu <gnattuoc@me.com>
---------
Signed-off-by: gnattu <gnattuoc@me.com>
|
|
|
|
* Add MediaStreamProtocol enum
* Add default handling for enum during deserialization
---------
Co-authored-by: Cody Robibero <cody@robibe.ro>
|
|
To test more general situation.
Add another HEVC test file with old logic.
|
|
To be consistent with the logic of StreamBuilder.
|
|
To comply 39088b5ad29cf098729c31f0be90a387df5debf6, ba877283a17f9f1ef32569669989e6d72cc571c5
|
|
|
|
|
|
This partially reverts commit 2d8f7b46f11ee458fe0b31d8e1473aaaea9cf296
|
|
|
|
Co-authored-by: John Doe <john@doe>
Co-authored-by: Lehonti Ramos <lehonti@ramos>
|
|
|
|
|
|
|
|
Fix transcode reasons
Original-merge: 1dea309ae4a1eb00f7f5a7d4c91a235963fd069e
Merged-by: Joshua M. Boniface <joshua@boniface.me>
Backported-by: Joshua M. Boniface <joshua@boniface.me>
|
|
|
|
|
|
|
|
|
|
|
|
(cherry picked from commit b46d61dfdf5e068a9feb26d8b41377a9fdb2cba6)
Signed-off-by: crobibero <cody@robibe.ro>
|
|
(cherry picked from commit 5833c707259247338c27b1a75a175c5aba925c29)
Signed-off-by: Joshua Boniface <joshua@boniface.me>
|
|
Allow media without streams to playback
(cherry picked from commit 577325b7888c5769c9d9c329ebd40e5f388242ad)
Signed-off-by: crobibero <cody@robibe.ro>
|
|
|
|
|