Videos with DV and HDR10+ are still reported as DOVIWithHDR10 #7724

Closed
opened 2026-02-07 05:21:36 +03:00 by OVERLORD · 3 comments
Owner

Originally created by @RyuzakiKK on GitHub (Nov 9, 2025).

Description of the bug

MKV files that have both Dolby Vision 8.1 (non EL) and HDR10+, are still reported as DOVIWithHDR10 instead of the expected DOVIWithHDR10Plus.

Having a reliable information about the availability of HDR10+ is vital to the correct playback on the Fire Stick 4K, because that device can't reproduce files when both DV and HDR10+ are present.

Reproduction steps

  1. Download this sample file: sample_DV_HDR10p_1s.zip
  2. Extract it
  3. Add the mkv to Jellyfin
  4. Re-scan all libraries
  5. In Jellyfin web UI, press the three dots on this file and select "Media Info"

What is the current bug behavior?

In the Media Info we get Video range type DOVIWithHDR10

What is the expected correct behavior?

That file should be reported as DOVIWithHDR10Plus.

Jellyfin Server version

10.11.0+

Specify commit id

No response

Specify unstable release number

No response

Specify version number

No response

Specify the build version

10.11.2

Environment

- OS: Debian 13
- Virtualization: Docker
- Clients: Browser and Fire Stick 4K
- Browser: Firefox
- FFmpeg Version: the one included in the docker container

Jellyfin logs

N/A, when scanning for new media Jellyfin doesn't seem to log anything relevant.

FFmpeg logs


Client / Browser logs

No response

Relevant screenshots or videos

No response

Additional information

The mediainfo of the mkv file is:

❯ mediainfo sample_DV_HDR10p_1s.mkv
General
Unique ID                                : 99809431782231130204518736740681921638 (0x4B1698EB49039332FD55299A603A3466)
Complete name                            : sample_DV_HDR10p_1s.mkv
Format                                   : Matroska
Format version                           : Version 4
File size                                : 113 KiB
Duration                                 : 1 s 209 ms
Overall bit rate                         : 767 kb/s
Frame rate                               : 57 751.861 FPS
Writing application                      : Lavf62.3.100
Writing library                          : Lavf62.3.100
ErrorDetectionType                       : Per level 1

Video
ID                                       : 1
Format                                   : HEVC
Format/Info                              : High Efficiency Video Coding
Format profile                           : Main 10@L5@High
HDR format                               : Dolby Vision, Version 1.0, Profile 8.1, dvhe.08.06, BL+RPU, no metadata compression, HDR10 compatible / SMPTE ST 2094 App 4, Version HDR10+ Profile B, HDR10+ Profile B compatible
Codec ID                                 : V_MPEGH/ISO/HEVC
Duration                                 : 1 s 209 ms
Bit rate                                 : 24.1 Mb/s
Width                                    : 3 840 pixels
Height                                   : 1 920 pixels
Display aspect ratio                     : 2.000
Frame rate mode                          : Variable
Frame rate                               : 57 751.861 FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0 (Type 2)
Bit depth                                : 10 bits
Bits/(Pixel*Frame)                       : 0.000
Stream size                              : 8.17 GiB
Default                                  : Yes
Forced                                   : No
Color range                              : Limited
Color primaries                          : BT.2020
Transfer characteristics                 : PQ
Matrix coefficients                      : BT.2020 non-constant
Mastering display color primaries        : Display P3
Mastering display luminance              : min: 0.0050 cd/m2, max: 1000 cd/m2
Maximum Content Light Level              : 933 cd/m2
Maximum Frame-Average Light Level        : 97 cd/m2

And Jellyfin checks for HDR10+ by looking at the type HDR Dynamic Metadata SMPTE2094-40 (HDR10+)

0598c6eaf6/MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs (L945-L950)

Which seems to be present in the sample mkv though:

❯ ffprobe -hide_banner -loglevel warning -select_streams v -print_format json -show_frames -read_intervals "%+#1" -show_entries "frame=side_data_list" -i sample_DV_HDR10p_1s.mkv
{
    "frames": [
        {
            "side_data_list": [
                {
                    "side_data_type": "Mastering display metadata",
                    "red_x": "34000/50000",
                    "red_y": "16000/50000",
                    "green_x": "13250/50000",
                    "green_y": "34500/50000",
                    "blue_x": "7500/50000",
                    "blue_y": "3000/50000",
                    "white_point_x": "15635/50000",
                    "white_point_y": "16450/50000",
                    "min_luminance": "50/10000",
                    "max_luminance": "10000000/10000"
                },
                {
                    "side_data_type": "Content light level metadata",
                    "max_content": 933,
                    "max_average": 97
                },
                {
                    "side_data_type": "HDR Dynamic Metadata SMPTE2094-40 (HDR10+)",
                    "application version": 1,
                    "num_windows": 1,
                    "targeted_system_display_maximum_luminance": "500/1",
[...]
Originally created by @RyuzakiKK on GitHub (Nov 9, 2025). ### Description of the bug MKV files that have both Dolby Vision 8.1 (non EL) and HDR10+, are still reported as `DOVIWithHDR10` instead of the expected `DOVIWithHDR10Plus`. Having a reliable information about the availability of HDR10+ is vital to the correct playback on the Fire Stick 4K, because that device can't reproduce files when both DV and HDR10+ are present. ### Reproduction steps 1. Download this sample file: [sample_DV_HDR10p_1s.zip](https://github.com/user-attachments/files/23439810/sample_DV_HDR10p_1s.zip) 2. Extract it 3. Add the mkv to Jellyfin 4. Re-scan all libraries 5. In Jellyfin web UI, press the three dots on this file and select "Media Info" ### What is the current _bug_ behavior? In the Media Info we get `Video range type DOVIWithHDR10` ### What is the expected _correct_ behavior? That file should be reported as `DOVIWithHDR10Plus`. ### Jellyfin Server version 10.11.0+ ### Specify commit id _No response_ ### Specify unstable release number _No response_ ### Specify version number _No response_ ### Specify the build version 10.11.2 ### Environment ```markdown - OS: Debian 13 - Virtualization: Docker - Clients: Browser and Fire Stick 4K - Browser: Firefox - FFmpeg Version: the one included in the docker container ``` ### Jellyfin logs ```shell N/A, when scanning for new media Jellyfin doesn't seem to log anything relevant. ``` ### FFmpeg logs ```shell ``` ### Client / Browser logs _No response_ ### Relevant screenshots or videos _No response_ ### Additional information The mediainfo of the mkv file is: ``` ❯ mediainfo sample_DV_HDR10p_1s.mkv General Unique ID : 99809431782231130204518736740681921638 (0x4B1698EB49039332FD55299A603A3466) Complete name : sample_DV_HDR10p_1s.mkv Format : Matroska Format version : Version 4 File size : 113 KiB Duration : 1 s 209 ms Overall bit rate : 767 kb/s Frame rate : 57 751.861 FPS Writing application : Lavf62.3.100 Writing library : Lavf62.3.100 ErrorDetectionType : Per level 1 Video ID : 1 Format : HEVC Format/Info : High Efficiency Video Coding Format profile : Main 10@L5@High HDR format : Dolby Vision, Version 1.0, Profile 8.1, dvhe.08.06, BL+RPU, no metadata compression, HDR10 compatible / SMPTE ST 2094 App 4, Version HDR10+ Profile B, HDR10+ Profile B compatible Codec ID : V_MPEGH/ISO/HEVC Duration : 1 s 209 ms Bit rate : 24.1 Mb/s Width : 3 840 pixels Height : 1 920 pixels Display aspect ratio : 2.000 Frame rate mode : Variable Frame rate : 57 751.861 FPS Color space : YUV Chroma subsampling : 4:2:0 (Type 2) Bit depth : 10 bits Bits/(Pixel*Frame) : 0.000 Stream size : 8.17 GiB Default : Yes Forced : No Color range : Limited Color primaries : BT.2020 Transfer characteristics : PQ Matrix coefficients : BT.2020 non-constant Mastering display color primaries : Display P3 Mastering display luminance : min: 0.0050 cd/m2, max: 1000 cd/m2 Maximum Content Light Level : 933 cd/m2 Maximum Frame-Average Light Level : 97 cd/m2 ``` And Jellyfin checks for HDR10+ by looking at the type `HDR Dynamic Metadata SMPTE2094-40 (HDR10+)` https://github.com/jellyfin/jellyfin/blob/0598c6eaf6c7bdafaaf6c6f6518a50f3444dbc69/MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs#L945-L950 Which seems to be present in the sample mkv though: ``` ❯ ffprobe -hide_banner -loglevel warning -select_streams v -print_format json -show_frames -read_intervals "%+#1" -show_entries "frame=side_data_list" -i sample_DV_HDR10p_1s.mkv { "frames": [ { "side_data_list": [ { "side_data_type": "Mastering display metadata", "red_x": "34000/50000", "red_y": "16000/50000", "green_x": "13250/50000", "green_y": "34500/50000", "blue_x": "7500/50000", "blue_y": "3000/50000", "white_point_x": "15635/50000", "white_point_y": "16450/50000", "min_luminance": "50/10000", "max_luminance": "10000000/10000" }, { "side_data_type": "Content light level metadata", "max_content": 933, "max_average": 97 }, { "side_data_type": "HDR Dynamic Metadata SMPTE2094-40 (HDR10+)", "application version": 1, "num_windows": 1, "targeted_system_display_maximum_luminance": "500/1", [...] ```
OVERLORD added the bug label 2026-02-07 05:21:36 +03:00
Author
Owner

@nyanmisaka commented on GitHub (Nov 9, 2025):

Image
@nyanmisaka commented on GitHub (Nov 9, 2025): <img width="732" height="755" alt="Image" src="https://github.com/user-attachments/assets/3714d2ae-cb9b-4536-bba7-bc9bd67b1b40" />
Author
Owner

@RyuzakiKK commented on GitHub (Nov 9, 2025):

Actually, this seems to be an issue with stale metadata that doesn't get refreshed with the "Scan all libraries" button.

Sorry about the noise. It seems I need to flush the cache and force a metadata refresh of all files.

@RyuzakiKK commented on GitHub (Nov 9, 2025): Actually, this seems to be an issue with stale metadata that doesn't get refreshed with the "Scan all libraries" button. Sorry about the noise. It seems I need to flush the cache and force a metadata refresh of all files.
Author
Owner

@RyuzakiKK commented on GitHub (Nov 9, 2025):

For future reference, to fix this I had to:

  • Go to Dashboard->Libraries
  • Press the three dots next to one library
  • Select "Scan library"
  • In the "Refresh mode" dropdown select "Replace all metadata"
  • Repeat this for all libraries
@RyuzakiKK commented on GitHub (Nov 9, 2025): For future reference, to fix this I had to: - Go to Dashboard->Libraries - Press the three dots next to one library - Select "Scan library" - In the "Refresh mode" dropdown select "Replace all metadata" - Repeat this for all libraries
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/jellyfin#7724