<feed xmlns='http://www.w3.org/2005/Atom'>
<title>jellyfin/MediaBrowser.Model/Dlna, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://git.b0n.dev/jellyfin/atom?h=master</id>
<link rel='self' href='https://git.b0n.dev/jellyfin/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/'/>
<updated>2026-06-15T07:29:24Z</updated>
<entry>
<title>Extend TranscodingReason reporting</title>
<updated>2026-06-15T07:29:24Z</updated>
<author>
<name>Shadowghost</name>
<email>Ghost_of_Stone@web.de</email>
</author>
<published>2026-06-15T07:29:24Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=1dd5a850807bc4269fce66d2d4191e67027285c8'/>
<id>urn:sha1:1dd5a850807bc4269fce66d2d4191e67027285c8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add support for VobSub subtitle streams (#16552)</title>
<updated>2026-05-31T15:18:25Z</updated>
<author>
<name>Neptune</name>
<email>al@altqx.com</email>
</author>
<published>2026-05-31T15:18:25Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=6f0ff89bdcc1961ec630f43f012528ab79022a9f'/>
<id>urn:sha1:6f0ff89bdcc1961ec630f43f012528ab79022a9f</id>
<content type='text'>
* Add support for VobSub subtitle streams

* update logic to determine separate extraction for VobSub subtitles

* simplify VobSub extraction logic and fix ffmpeg command

* Match `ExtractAllExtractableSubtitlesMKS` with `ExtractAllExtractableSubtitlesInternal` Matroska's VobSub option

* Add a comments clarify why MKS was used, and remove the redundant VobSub extension branch

* remove redundant VobSub format check

* fix type errors</content>
</entry>
<entry>
<title>Embed external subtitles into MKV when transcoding</title>
<updated>2026-05-19T11:03:07Z</updated>
<author>
<name>Piotr Niełacny</name>
<email>piotr.nielacny@gmail.com</email>
</author>
<published>2026-03-21T20:57:58Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=2a689f268bc88ee7ab7e25121a6d43f71c1f8a5f'/>
<id>urn:sha1:2a689f268bc88ee7ab7e25121a6d43f71c1f8a5f</id>
<content type='text'>
Allow external subtitle files (SRT, ASS, PGS, etc.) to be muxed into
MKV output containers when the device profile requests Embed delivery.

Previously, the IsExternal guard in GetSubtitleProfile excluded external
subtitles from Embed consideration entirely, forcing them to be served
as separate sidecar files even when the output container supports
embedding.

Changes:
- Extract CanConsiderEmbedSubtitle in StreamBuilder to allow external
  subs through when transcoding to MKV
- Add external subtitle file as FFmpeg input (-i) for Embed delivery
- Map external embedded subs from the correct FFmpeg input index
- Fix external audio map index to account for the new subtitle input
- Extract NeedsExternalSubtitleMuxing in EncodingHelper to deduplicate
  the external subtitle input check

Fixes #16403
</content>
</entry>
<entry>
<title>Add videoRotation profile condition</title>
<updated>2026-05-09T07:20:29Z</updated>
<author>
<name>nyanmisaka</name>
<email>nst799610810@gmail.com</email>
</author>
<published>2026-05-08T07:36:01Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=5cb6ac521a213ab13cef5e28ffa07e43dd073913'/>
<id>urn:sha1:5cb6ac521a213ab13cef5e28ffa07e43dd073913</id>
<content type='text'>
Signed-off-by: nyanmisaka &lt;nst799610810@gmail.com&gt;
</content>
</entry>
<entry>
<title>Merge pull request #16380 from LTe/fix-subtitle-extraction-setting</title>
<updated>2026-04-11T09:37:17Z</updated>
<author>
<name>Bond-009</name>
<email>bond.009@outlook.com</email>
</author>
<published>2026-04-11T09:37:17Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=046023b9ddbfa3cec30acded1cb547ee7a0628af'/>
<id>urn:sha1:046023b9ddbfa3cec30acded1cb547ee7a0628af</id>
<content type='text'>
Respect EnableSubtitleExtraction setting in subtitle delivery</content>
</entry>
<entry>
<title>Respect EnableSubtitleExtraction setting in subtitle delivery</title>
<updated>2026-03-13T15:34:44Z</updated>
<author>
<name>Piotr Niełacny</name>
<email>piotr.nielacny@gmail.com</email>
</author>
<published>2026-03-13T15:34:44Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=37983c943a7f65850cc2bd4854f22dbe2ae92c28'/>
<id>urn:sha1:37983c943a7f65850cc2bd4854f22dbe2ae92c28</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Use generic Enum overloads to resolve CA2263 warnings</title>
<updated>2026-03-11T14:57:30Z</updated>
<author>
<name>jaxx2104</name>
<email>jaxx2104@gmail.com</email>
</author>
<published>2026-03-11T14:57:30Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=e4eba084dd0e852e90c7677f9a8b594ecd3f7669'/>
<id>urn:sha1:e4eba084dd0e852e90c7677f9a8b594ecd3f7669</id>
<content type='text'>
Replace Enum.Parse(typeof(T), ...) and Enum.GetNames(typeof(T)) with
their generic counterparts Enum.Parse&lt;T&gt;() and Enum.GetNames&lt;T&gt;() in
MediaBrowser.Model/Dlna for improved type safety.

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Fix malformed query string in StreamInfo.ToUrl() causing 500 error via proxies</title>
<updated>2026-02-18T20:08:35Z</updated>
<author>
<name>Cosmin Dumitru</name>
<email>cosu@cosu.ro</email>
</author>
<published>2026-02-18T20:08:35Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=37b50fe13c689e8fb89288da12f79bf7164e1194'/>
<id>urn:sha1:37b50fe13c689e8fb89288da12f79bf7164e1194</id>
<content type='text'>
StreamInfo.ToUrl() generated URLs like `/master.m3u8?&amp;DeviceId=...` (note `?&amp;`)
because `?` was appended to the path and all parameters started with `&amp;`. 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 `?&amp;`),
but when accessed through a reverse proxy that parses and re-serializes the URL
(e.g. Home Assistant ingress via aiohttp/yarl), `?&amp;` becomes `?=&amp;` — 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 `&amp;` with
  `?` after all parameters are appended, producing valid query strings
- ParseStreamOptions: Guard against empty query parameter keys
- Tests: Remove .Replace("?&amp;", "?") workaround that masked the bug

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Merge pull request #14809 from lostb1t/fix/subtitleencoder</title>
<updated>2026-01-26T11:00:14Z</updated>
<author>
<name>Niels van Velzen</name>
<email>nielsvanvelzen@users.noreply.github.com</email>
</author>
<published>2026-01-26T11:00:14Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=360b6bcce1fc3f353ec23fa82ca415c3035b5710'/>
<id>urn:sha1:360b6bcce1fc3f353ec23fa82ca415c3035b5710</id>
<content type='text'>
fix: prevent premature disposal of HTTP subtitle streams</content>
</entry>
<entry>
<title>Merge pull request #15926 from abitofevrything/feat/accurate_hls_seeking</title>
<updated>2026-01-18T11:17:06Z</updated>
<author>
<name>Abitofevrything</name>
<email>54505189+abitofevrything@users.noreply.github.com</email>
</author>
<published>2026-01-18T11:17:06Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=8d052a6cb17421e6c7774bafc6957029f3c9d4ae'/>
<id>urn:sha1:8d052a6cb17421e6c7774bafc6957029f3c9d4ae</id>
<content type='text'>
Refactor HLS transcode seeking</content>
</entry>
</feed>
