mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-05-23 17:52:29 -04:00
* 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
74 lines
1.6 KiB
C#
74 lines
1.6 KiB
C#
namespace Jellyfin.Data.Enums;
|
|
|
|
/// <summary>
|
|
/// An enum representing types of video ranges.
|
|
/// </summary>
|
|
public enum VideoRangeType
|
|
{
|
|
/// <summary>
|
|
/// Unknown video range type.
|
|
/// </summary>
|
|
Unknown,
|
|
|
|
/// <summary>
|
|
/// SDR video range type (8bit).
|
|
/// </summary>
|
|
SDR,
|
|
|
|
/// <summary>
|
|
/// HDR10 video range type (10bit).
|
|
/// </summary>
|
|
HDR10,
|
|
|
|
/// <summary>
|
|
/// HLG video range type (10bit).
|
|
/// </summary>
|
|
HLG,
|
|
|
|
/// <summary>
|
|
/// Dolby Vision video range type (10bit encoded / 12bit remapped).
|
|
/// </summary>
|
|
DOVI,
|
|
|
|
/// <summary>
|
|
/// Dolby Vision with HDR10 video range fallback (10bit).
|
|
/// </summary>
|
|
DOVIWithHDR10,
|
|
|
|
/// <summary>
|
|
/// Dolby Vision with HLG video range fallback (10bit).
|
|
/// </summary>
|
|
DOVIWithHLG,
|
|
|
|
/// <summary>
|
|
/// Dolby Vision with SDR video range fallback (8bit / 10bit).
|
|
/// </summary>
|
|
DOVIWithSDR,
|
|
|
|
/// <summary>
|
|
/// Dolby Vision with Enhancment Layer (Profile 7).
|
|
/// </summary>
|
|
DOVIWithEL,
|
|
|
|
/// <summary>
|
|
/// Dolby Vision and HDR10+ Metadata coexists.
|
|
/// </summary>
|
|
DOVIWithHDR10Plus,
|
|
|
|
/// <summary>
|
|
/// Dolby Vision with Enhancment Layer (Profile 7) and HDR10+ Metadata coexists.
|
|
/// </summary>
|
|
DOVIWithELHDR10Plus,
|
|
|
|
/// <summary>
|
|
/// Dolby Vision with invalid configuration. e.g. Profile 8 compat id 6.
|
|
/// When using this range, the server would assume the video is still HDR10 after removing the Dolby Vision metadata.
|
|
/// </summary>
|
|
DOVIInvalid,
|
|
|
|
/// <summary>
|
|
/// HDR10+ video range type (10bit to 16bit).
|
|
/// </summary>
|
|
HDR10Plus
|
|
}
|