|
|
|
@ -1,10 +1,12 @@
|
|
|
|
|
using MediaBrowser.Controller.Entities;
|
|
|
|
|
using MediaBrowser.Controller;
|
|
|
|
|
using MediaBrowser.Controller.Entities;
|
|
|
|
|
using MediaBrowser.Controller.Library;
|
|
|
|
|
using MediaBrowser.Controller.LiveTv;
|
|
|
|
|
using MediaBrowser.Controller.MediaEncoding;
|
|
|
|
|
using MediaBrowser.Model.Dlna;
|
|
|
|
|
using MediaBrowser.Model.Dto;
|
|
|
|
|
using MediaBrowser.Model.Logging;
|
|
|
|
|
using MediaBrowser.Model.MediaInfo;
|
|
|
|
|
using MediaBrowser.Model.Serialization;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
@ -21,13 +23,15 @@ namespace MediaBrowser.Server.Implementations.LiveTv
|
|
|
|
|
private readonly ILogger _logger;
|
|
|
|
|
private readonly IMediaSourceManager _mediaSourceManager;
|
|
|
|
|
private readonly IMediaEncoder _mediaEncoder;
|
|
|
|
|
private readonly IServerApplicationHost _appHost;
|
|
|
|
|
|
|
|
|
|
public LiveTvMediaSourceProvider(ILiveTvManager liveTvManager, IJsonSerializer jsonSerializer, ILogManager logManager, IMediaSourceManager mediaSourceManager, IMediaEncoder mediaEncoder)
|
|
|
|
|
public LiveTvMediaSourceProvider(ILiveTvManager liveTvManager, IJsonSerializer jsonSerializer, ILogManager logManager, IMediaSourceManager mediaSourceManager, IMediaEncoder mediaEncoder, IServerApplicationHost appHost)
|
|
|
|
|
{
|
|
|
|
|
_liveTvManager = liveTvManager;
|
|
|
|
|
_jsonSerializer = jsonSerializer;
|
|
|
|
|
_mediaSourceManager = mediaSourceManager;
|
|
|
|
|
_mediaEncoder = mediaEncoder;
|
|
|
|
|
_appHost = appHost;
|
|
|
|
|
_logger = logManager.GetLogger(GetType().Name);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -74,6 +78,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var list = sources.ToList();
|
|
|
|
|
var serverUrl = _appHost.LocalApiUrl;
|
|
|
|
|
|
|
|
|
|
foreach (var source in list)
|
|
|
|
|
{
|
|
|
|
@ -86,6 +91,12 @@ namespace MediaBrowser.Server.Implementations.LiveTv
|
|
|
|
|
openKeys.Add(item.Id.ToString("N"));
|
|
|
|
|
openKeys.Add(source.Id ?? string.Empty);
|
|
|
|
|
source.OpenToken = string.Join("|", openKeys.ToArray());
|
|
|
|
|
|
|
|
|
|
// Dummy this up so that direct play checks can still run
|
|
|
|
|
if (string.IsNullOrEmpty(source.Path) && source.Protocol == MediaProtocol.Http)
|
|
|
|
|
{
|
|
|
|
|
source.Path = serverUrl;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_logger.Debug("MediaSources: {0}", _jsonSerializer.SerializeToString(list));
|
|
|
|
@ -187,7 +198,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Try to estimate this
|
|
|
|
|
if (!mediaSource.Bitrate.HasValue)
|
|
|
|
|
{
|
|
|
|
|