// <copyright file="VideoStreamDetails.cs" company="PlaceholderCompany">
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>

namespace Jellyfin.Database.Implementations.Entities;

#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
#pragma warning disable SA1600

using System;

public class VideoStreamDetails
{
    public required Guid ItemId { get; set; }

    public required int StreamIndex { get; set; }

    public string? AspectRatio { get; set; }

    public bool? IsInterlaced { get; set; }

    public int? Height { get; set; }

    public int? Width { get; set; }

    public float? AverageFrameRate { get; set; }

    public float? RealFrameRate { get; set; }

    public string? PixelFormat { get; set; }

    public int? BitDepth { get; set; }

    public bool? IsAnamorphic { get; set; }

    public int? RefFrames { get; set; }

    public string? NalLengthSize { get; set; }

    public string? ColorPrimaries { get; set; }

    public string? ColorSpace { get; set; }

    public string? ColorTransfer { get; set; }

    public int? DvVersionMajor { get; set; }

    public int? DvVersionMinor { get; set; }

    public int? DvProfile { get; set; }

    public int? DvLevel { get; set; }

    public int? RpuPresentFlag { get; set; }

    public int? ElPresentFlag { get; set; }

    public int? BlPresentFlag { get; set; }

    public int? DvBlSignalCompatibilityId { get; set; }

    public int? Rotation { get; set; }

    public string? KeyFrames { get; set; }

    public bool? Hdr10PlusPresentFlag { get; set; }

    public MediaStreamInfo Stream { get; set; } = null!;
}
