emby-toolbox/EmbyToolbox/Models/MediaStreamInfo.cs
2026-05-16 11:45:33 +05:00

43 lines
1.9 KiB
C#

namespace EmbyToolbox.Models;
/// <summary>Одна встроенная дорожка из ffprobe (streams[]).</summary>
public sealed class MediaStreamInfo
{
public int Index { get; init; }
public MediaStreamKind Kind { get; init; }
public string CodecName { get; init; } = string.Empty;
public string? Language { get; init; }
public string? Title { get; init; }
public bool IsDefault { get; init; }
public long? BitRateBps { get; init; }
public string? Profile { get; init; }
public string? Encoder { get; init; }
public int? Channels { get; init; }
public int? SampleRateHz { get; init; }
public int? Width { get; init; }
public int? Height { get; init; }
public double? AverageFrameRate { get; init; }
public double? FrameRate { get; init; }
public string? PixelFormat { get; init; }
/// <summary>Цветметаданные из ffprobe (video): color_space, color_primaries, color_transfer.</summary>
public string? ColorSpace { get; init; }
public string? ColorPrimaries { get; init; }
public string? ColorTransfer { get; init; }
public bool IsAttachedPicture { get; init; }
public string? SubtitleFormat { get; init; }
public string? FileNameTag { get; init; }
public bool IsForcedByDisposition { get; init; }
public bool IsForced { get; init; }
public string? ForcedDetectionReason { get; init; }
public int? SubtitleEventCount { get; init; }
public double? SubtitleCoverage { get; init; }
/// <summary>Длительность дорожки (сек) из ffprobe, если задана.</summary>
public double? DurationSeconds { get; init; }
/// <summary>Для потоков-вложений matroska: тег ffprobe tags.filename.</summary>
public string? AttachmentDeclaredFileName { get; init; }
/// <summary>Для потоков-вложений: tags.mimetype.</summary>
public string? AttachmentDeclaredMimeType { get; init; }
}