aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Model/MediaInfo/LiveStreamRequest.cs
blob: 94eab8d37337bd024495c86bd1f8390896d66cd6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#pragma warning disable CS1591
#pragma warning disable SA1600

using System;
using MediaBrowser.Model.Dlna;

namespace MediaBrowser.Model.MediaInfo
{
    public class LiveStreamRequest
    {
        public string OpenToken { get; set; }
        public Guid UserId { get; set; }
        public string PlaySessionId { get; set; }
        public long? MaxStreamingBitrate { get; set; }
        public long? StartTimeTicks { get; set; }
        public int? AudioStreamIndex { get; set; }
        public int? SubtitleStreamIndex { get; set; }
        public int? MaxAudioChannels { get; set; }
        public Guid ItemId { get; set; }
        public DeviceProfile DeviceProfile { get; set; }

        public bool EnableDirectPlay { get; set; }
        public bool EnableDirectStream { get; set; }
        public MediaProtocol[] DirectPlayProtocols { get; set; }

        public LiveStreamRequest()
        {
            EnableDirectPlay = true;
            EnableDirectStream = true;
            DirectPlayProtocols = new MediaProtocol[] { MediaProtocol.Http };
        }

        public LiveStreamRequest(AudioOptions options)
        {
            MaxStreamingBitrate = options.MaxBitrate;
            ItemId = options.ItemId;
            DeviceProfile = options.Profile;
            MaxAudioChannels = options.MaxAudioChannels;

            DirectPlayProtocols = new MediaProtocol[] { MediaProtocol.Http };

            var videoOptions = options as VideoOptions;
            if (videoOptions != null)
            {
                AudioStreamIndex = videoOptions.AudioStreamIndex;
                SubtitleStreamIndex = videoOptions.SubtitleStreamIndex;
            }
        }
    }
}