<feed xmlns='http://www.w3.org/2005/Atom'>
<title>jellyfin/Jellyfin.Api/Controllers/DynamicHlsController.cs, branch v10.11.0-rc3</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://git.lodewillems.com/jellyfin/atom?h=v10.11.0-rc3</id>
<link rel='self' href='https://git.lodewillems.com/jellyfin/atom?h=v10.11.0-rc3'/>
<link rel='alternate' type='text/html' href='https://git.lodewillems.com/jellyfin/'/>
<updated>2025-04-05T18:44:19Z</updated>
<entry>
<title>Merge commit from fork</title>
<updated>2025-04-05T18:44:19Z</updated>
<author>
<name>Joshua M. Boniface</name>
<email>joshua@boniface.me</email>
</author>
<published>2025-04-05T18:44:19Z</published>
<link rel='alternate' type='text/html' href='https://git.lodewillems.com/jellyfin/commit/?id=7d705249cac50ab878f41b180b822488158c5900'/>
<id>urn:sha1:7d705249cac50ab878f41b180b822488158c5900</id>
<content type='text'>
Fix validation of API parameters passed to FFmpeg</content>
</entry>
<entry>
<title>Fix ArgumentNullException on playlist creation (#13837)</title>
<updated>2025-04-03T23:44:47Z</updated>
<author>
<name>Bond-009</name>
<email>bond.009@outlook.com</email>
</author>
<published>2025-04-03T23:44:47Z</published>
<link rel='alternate' type='text/html' href='https://git.lodewillems.com/jellyfin/commit/?id=1c2b48182a5f555be7dcf260139e118f0e716fbd'/>
<id>urn:sha1:1c2b48182a5f555be7dcf260139e118f0e716fbd</id>
<content type='text'>
mediaSourceId can be null, the IDE doesn't know this as nullable is disabled for BaseEncodingJobOptions</content>
</entry>
<entry>
<title>Import Keyframes into database (#13771)</title>
<updated>2025-04-03T00:06:40Z</updated>
<author>
<name>Tim Eisele</name>
<email>Ghost_of_Stone@web.de</email>
</author>
<published>2025-04-03T00:06:40Z</published>
<link rel='alternate' type='text/html' href='https://git.lodewillems.com/jellyfin/commit/?id=0573999d5ef7526a3bb3e24523ba0e5599816155'/>
<id>urn:sha1:0573999d5ef7526a3bb3e24523ba0e5599816155</id>
<content type='text'>
* Migrate keyframe data into database

* Clear database table before import to handle failed migrations</content>
</entry>
<entry>
<title>Improve dynamic HDR metadata handling (#13277)</title>
<updated>2025-04-03T00:06:02Z</updated>
<author>
<name>gnattu</name>
<email>gnattu@users.noreply.github.com</email>
</author>
<published>2025-04-03T00:06:02Z</published>
<link rel='alternate' type='text/html' href='https://git.lodewillems.com/jellyfin/commit/?id=49ac705867234c48e79ceb1cd84bc4394c65313d'/>
<id>urn:sha1:49ac705867234c48e79ceb1cd84bc4394c65313d</id>
<content type='text'>
* 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</content>
</entry>
<entry>
<title>Use pattern matching for null checks (#13793)</title>
<updated>2025-03-31T23:38:25Z</updated>
<author>
<name>Bond-009</name>
<email>bond.009@outlook.com</email>
</author>
<published>2025-03-31T23:38:25Z</published>
<link rel='alternate' type='text/html' href='https://git.lodewillems.com/jellyfin/commit/?id=e9729a536f26a92ccd30cfff4e698e66dbda1adc'/>
<id>urn:sha1:e9729a536f26a92ccd30cfff4e698e66dbda1adc</id>
<content type='text'>
Fix the few that slipped through</content>
</entry>
<entry>
<title>Add validation for level input</title>
<updated>2025-03-28T07:21:37Z</updated>
<author>
<name>Shadowghost</name>
<email>Ghost_of_Stone@web.de</email>
</author>
<published>2025-03-27T15:13:07Z</published>
<link rel='alternate' type='text/html' href='https://git.lodewillems.com/jellyfin/commit/?id=3df7d7a809d14e3ab89001d4c98203e20cad9082'/>
<id>urn:sha1:3df7d7a809d14e3ab89001d4c98203e20cad9082</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rename ValidationRegex to ContainerValidationRegex</title>
<updated>2025-03-28T07:21:37Z</updated>
<author>
<name>Shadowghost</name>
<email>Ghost_of_Stone@web.de</email>
</author>
<published>2025-03-27T15:11:24Z</published>
<link rel='alternate' type='text/html' href='https://git.lodewillems.com/jellyfin/commit/?id=1fcc79316dc236e0b070c3d695477d6e87f4c229'/>
<id>urn:sha1:1fcc79316dc236e0b070c3d695477d6e87f4c229</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix container parameter validation</title>
<updated>2025-03-28T07:21:37Z</updated>
<author>
<name>Shadowghost</name>
<email>Ghost_of_Stone@web.de</email>
</author>
<published>2025-03-27T15:10:20Z</published>
<link rel='alternate' type='text/html' href='https://git.lodewillems.com/jellyfin/commit/?id=6d7950bddc3733b02e8ba8968c8264cf115a52dc'/>
<id>urn:sha1:6d7950bddc3733b02e8ba8968c8264cf115a52dc</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge pull request #12925 from Bond-009/await</title>
<updated>2025-01-28T10:29:46Z</updated>
<author>
<name>Bond-009</name>
<email>bond.009@outlook.com</email>
</author>
<published>2025-01-28T10:29:46Z</published>
<link rel='alternate' type='text/html' href='https://git.lodewillems.com/jellyfin/commit/?id=973489232205755abe16762c1e3446f2236349f2'/>
<id>urn:sha1:973489232205755abe16762c1e3446f2236349f2</id>
<content type='text'>
Always await instead of directly returning Task</content>
</entry>
<entry>
<title>Remove useless checks and dead code (#13405)</title>
<updated>2025-01-28T10:29:22Z</updated>
<author>
<name>Bond-009</name>
<email>bond.009@outlook.com</email>
</author>
<published>2025-01-28T10:29:22Z</published>
<link rel='alternate' type='text/html' href='https://git.lodewillems.com/jellyfin/commit/?id=bcdffa74a80972f8493837fa911c9628598f7fa3'/>
<id>urn:sha1:bcdffa74a80972f8493837fa911c9628598f7fa3</id>
<content type='text'>
* Remove useless checks and dead code

* Enable adaptive bitrate streaming again

* Disable adaptive bitrate streaming by default</content>
</entry>
</feed>
