<feed xmlns='http://www.w3.org/2005/Atom'>
<title>jellyfin/MediaBrowser.MediaEncoding/Probing/InternalMediaInfoResult.cs, branch v12.0-rc2</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://git.b0n.dev/jellyfin/atom?h=v12.0-rc2</id>
<link rel='self' href='https://git.b0n.dev/jellyfin/atom?h=v12.0-rc2'/>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/'/>
<updated>2025-04-03T00:06:02Z</updated>
<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.b0n.dev/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>Enable nullable reference types for MediaBrowser.MediaEncoding.Subtitles</title>
<updated>2021-05-20T20:10:19Z</updated>
<author>
<name>Bond_009</name>
<email>bond.009@outlook.com</email>
</author>
<published>2021-05-20T20:10:19Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=26d7fc828075dbaa3068ac9c323ebef3370fd023'/>
<id>urn:sha1:26d7fc828075dbaa3068ac9c323ebef3370fd023</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix exceptions while scanning</title>
<updated>2019-12-22T21:09:09Z</updated>
<author>
<name>Bond_009</name>
<email>bond.009@outlook.com</email>
</author>
<published>2019-12-22T20:39:26Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=cf2e2a3f309d59c3c31696fc7f3ef2b6668c89dd'/>
<id>urn:sha1:cf2e2a3f309d59c3c31696fc7f3ef2b6668c89dd</id>
<content type='text'>
Fixes these exceptions:
```
[2019-12-22 20:48:14.779 +01:00] [ERR] Error in WaitForExit
System.InvalidOperationException: No process is associated with this object.
   at System.Diagnostics.Process.EnsureState(State state)
   at System.Diagnostics.Process.EnsureState(State state)
   at System.Diagnostics.Process.GetWaitState()
   at System.Diagnostics.Process.WaitForExitCore(Int32 milliseconds)
   at System.Diagnostics.Process.WaitForExit(Int32 milliseconds)
   at Emby.Server.Implementations.Diagnostics.CommonProcess.WaitForExit(Int32 timeMs) in /home/pi/dev/jellyfin/Emby.Server.Implementations/Diagnostics/CommonProcess.cs:line 100
   at MediaBrowser.MediaEncoding.Encoder.MediaEncoder.StopProcess(ProcessWrapper process, Int32 waitTimeMs) in /home/pi/dev/jellyfin/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs:line 785
[2019-12-22 20:48:14.790 +01:00] [INF] Killing ffmpeg process
[2019-12-22 20:48:14.795 +01:00] [ERR] Error killing process
System.InvalidOperationException: No process is associated with this object.
   at System.Diagnostics.Process.EnsureState(State state)
   at System.Diagnostics.Process.EnsureState(State state)
   at System.Diagnostics.Process.Kill()
   at Emby.Server.Implementations.Diagnostics.CommonProcess.Kill() in /home/pi/dev/jellyfin/Emby.Server.Implementations/Diagnostics/CommonProcess.cs:line 95
   at MediaBrowser.MediaEncoding.Encoder.MediaEncoder.StopProcess(ProcessWrapper process, Int32 waitTimeMs) in /home/pi/dev/jellyfin/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs:line 799
[2019-12-22 20:48:14.808 +01:00] [ERR] Error in "ffprobe"
System.Text.Json.JsonException: The JSON value could not be converted to System.String. Path: $.streams[0].start_pts | LineNumber: 32 | BytePositionInLine: 26.
 ---&gt; System.InvalidOperationException: Cannot get the value of a token type 'Number' as a string.
   at System.Text.Json.Utf8JsonReader.GetString()
   at System.Text.Json.Serialization.Converters.JsonConverterString.Read(Utf8JsonReader&amp; reader, Type typeToConvert, JsonSerializerOptions options)
   at System.Text.Json.JsonPropertyInfoNotNullable`4.OnRead(JsonTokenType tokenType, ReadStack&amp; state, Utf8JsonReader&amp; reader)
   at System.Text.Json.JsonPropertyInfo.Read(JsonTokenType tokenType, ReadStack&amp; state, Utf8JsonReader&amp; reader)
   at System.Text.Json.JsonSerializer.HandleValue(JsonTokenType tokenType, JsonSerializerOptions options, Utf8JsonReader&amp; reader, ReadStack&amp; state)
   at System.Text.Json.JsonSerializer.ReadCore(JsonSerializerOptions options, Utf8JsonReader&amp; reader, ReadStack&amp; readStack)
   --- End of inner exception stack trace ---
   at System.Text.Json.ThrowHelper.ReThrowWithPath(ReadStack&amp; readStack, Utf8JsonReader&amp; reader, Exception ex)
   at System.Text.Json.JsonSerializer.ReadCore(JsonSerializerOptions options, Utf8JsonReader&amp; reader, ReadStack&amp; readStack)
   at System.Text.Json.JsonSerializer.ReadCore(JsonReaderState&amp; readerState, Boolean isFinalBlock, ReadOnlySpan`1 buffer, JsonSerializerOptions options, ReadStack&amp; readStack)
   at System.Text.Json.JsonSerializer.ReadAsync[TValue](Stream utf8Json, Type returnType, JsonSerializerOptions options, CancellationToken cancellationToken)
   at MediaBrowser.MediaEncoding.Encoder.MediaEncoder.GetMediaInfoInternal(String inputPath, String primaryPath, MediaProtocol protocol, Boolean extractChapters, String probeSizeArgument, Boolean isAudio, Nullable`1 videoType, Boolean forceEnableLogging, CancellationToken cancellationToken) in /home/pi/dev/jellyfin/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs:line 399
   at MediaBrowser.Providers.MediaInfo.FFProbeVideoInfo.ProbeVideo[T](T item, MetadataRefreshOptions options, CancellationToken cancellationToken) in /home/pi/dev/jellyfin/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs:line 122
   at MediaBrowser.Providers.Manager.MetadataService`2.RunCustomProvider(ICustomMetadataProvider`1 provider, TItemType item, String logName, MetadataRefreshOptions options, RefreshResult refreshResult, CancellationToken cancellationToken) in /home/pi/dev/jellyfin/MediaBrowser.Providers/Manager/MetadataService.cs:line 815
```
</content>
</entry>
<entry>
<title>Find+Sed BOM removal *.cs: MediaBrowser.LocalMetadata-MediaBrowser.Model</title>
<updated>2019-01-13T20:02:23Z</updated>
<author>
<name>Erwin de Haan</name>
<email>EraYaN@users.noreply.github.com</email>
</author>
<published>2019-01-13T20:02:23Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=8f41ba4d3aa0a7001748c0282e39baf50f0af13f'/>
<id>urn:sha1:8f41ba4d3aa0a7001748c0282e39baf50f0af13f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>remove trailing whitespace</title>
<updated>2019-01-07T23:27:46Z</updated>
<author>
<name>hawken</name>
<email>hawken@thehawken.org</email>
</author>
<published>2019-01-07T23:27:46Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=bd169e4fd4f5586ab8dad323a520cbcc10de54fe'/>
<id>urn:sha1:bd169e4fd4f5586ab8dad323a520cbcc10de54fe</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Port MediaEncoding and Api.Playback from 10e57ce8d21b4516733894075001819f3cd6db6b</title>
<updated>2018-12-14T16:32:54Z</updated>
<author>
<name>Mathieu Velten</name>
<email>matmaul@gmail.com</email>
</author>
<published>2018-12-14T09:40:55Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=1d7d52ff9e42c3efb4bb2c65e82a4a82faf9decb'/>
<id>urn:sha1:1d7d52ff9e42c3efb4bb2c65e82a4a82faf9decb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>consolidate emby.server.core into emby.server.implementations</title>
<updated>2017-08-09T19:56:38Z</updated>
<author>
<name>Luke Pulverenti</name>
<email>luke.pulverenti@gmail.com</email>
</author>
<published>2017-08-09T19:56:38Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=40442f887ba717ae47620b152315f21b252fe049'/>
<id>urn:sha1:40442f887ba717ae47620b152315f21b252fe049</id>
<content type='text'>
</content>
</entry>
<entry>
<title>determine interlaced from ffprobe data</title>
<updated>2017-03-26T04:20:00Z</updated>
<author>
<name>Luke Pulverenti</name>
<email>luke.pulverenti@gmail.com</email>
</author>
<published>2017-03-26T04:20:00Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=abc54d1ea336f1d836c2a1664ea12995b0ea3562'/>
<id>urn:sha1:abc54d1ea336f1d836c2a1664ea12995b0ea3562</id>
<content type='text'>
</content>
</entry>
<entry>
<title>update bit depth probe</title>
<updated>2015-12-27T06:05:37Z</updated>
<author>
<name>Luke Pulverenti</name>
<email>luke.pulverenti@gmail.com</email>
</author>
<published>2015-12-27T06:05:37Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=d59e4ff3577c95c372173cd68005abcc2baf217e'/>
<id>urn:sha1:d59e4ff3577c95c372173cd68005abcc2baf217e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>extract ref frame count using ffprobe</title>
<updated>2015-10-30T15:26:36Z</updated>
<author>
<name>Luke Pulverenti</name>
<email>luke.pulverenti@gmail.com</email>
</author>
<published>2015-10-30T15:26:36Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=a050f20ac5ce37ce501d399346a5be40054da7f4'/>
<id>urn:sha1:a050f20ac5ce37ce501d399346a5be40054da7f4</id>
<content type='text'>
</content>
</entry>
</feed>
