using System;
using System.Collections.Generic;
using MediaBrowser.Model.Dlna;
using MediaBrowser.Model.MediaInfo;
namespace Jellyfin.Api.Models.MediaInfoDtos;
/// 
/// Open live stream dto.
/// 
public class OpenLiveStreamDto
{
    /// 
    /// Gets or sets the open token.
    /// 
    public string? OpenToken { get; set; }
    /// 
    /// Gets or sets the user id.
    /// 
    public Guid? UserId { get; set; }
    /// 
    /// Gets or sets the play session id.
    /// 
    public string? PlaySessionId { get; set; }
    /// 
    /// Gets or sets the max streaming bitrate.
    /// 
    public int? MaxStreamingBitrate { get; set; }
    /// 
    /// Gets or sets the start time in ticks.
    /// 
    public long? StartTimeTicks { get; set; }
    /// 
    /// Gets or sets the audio stream index.
    /// 
    public int? AudioStreamIndex { get; set; }
    /// 
    /// Gets or sets the subtitle stream index.
    /// 
    public int? SubtitleStreamIndex { get; set; }
    /// 
    /// Gets or sets the max audio channels.
    /// 
    public int? MaxAudioChannels { get; set; }
    /// 
    /// Gets or sets the item id.
    /// 
    public Guid? ItemId { get; set; }
    /// 
    /// Gets or sets a value indicating whether to enable direct play.
    /// 
    public bool? EnableDirectPlay { get; set; }
    /// 
    /// Gets or sets a value indicating whether to enale direct stream.
    /// 
    public bool? EnableDirectStream { get; set; }
    /// 
    /// Gets or sets a value indicating whether always burn in subtitles when transcoding.
    /// 
    public bool? AlwaysBurnInSubtitleWhenTranscoding { get; set; }
    /// 
    /// Gets or sets the device profile.
    /// 
    public DeviceProfile? DeviceProfile { get; set; }
    /// 
    /// Gets or sets the device play protocols.
    /// 
    public IReadOnlyList DirectPlayProtocols { get; set; } = Array.Empty();
}