diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations/LiveTv')
219 files changed, 0 insertions, 20756 deletions
diff --git a/MediaBrowser.Server.Implementations/LiveTv/ChannelImageProvider.cs b/MediaBrowser.Server.Implementations/LiveTv/ChannelImageProvider.cs deleted file mode 100644 index 23560b1aa1..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/ChannelImageProvider.cs +++ /dev/null @@ -1,85 +0,0 @@ -using MediaBrowser.Common; -using MediaBrowser.Common.Net; -using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.LiveTv; -using MediaBrowser.Controller.Providers; -using MediaBrowser.Model.Entities; -using MediaBrowser.Model.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; - -namespace MediaBrowser.Server.Implementations.LiveTv -{ - public class ChannelImageProvider : IDynamicImageProvider, IHasItemChangeMonitor - { - private readonly ILiveTvManager _liveTvManager; - private readonly IHttpClient _httpClient; - private readonly ILogger _logger; - private readonly IApplicationHost _appHost; - - public ChannelImageProvider(ILiveTvManager liveTvManager, IHttpClient httpClient, ILogger logger, IApplicationHost appHost) - { - _liveTvManager = liveTvManager; - _httpClient = httpClient; - _logger = logger; - _appHost = appHost; - } - - public IEnumerable<ImageType> GetSupportedImages(IHasImages item) - { - return new[] { ImageType.Primary }; - } - - public async Task<DynamicImageResponse> GetImage(IHasImages item, ImageType type, CancellationToken cancellationToken) - { - var liveTvItem = (LiveTvChannel)item; - - var imageResponse = new DynamicImageResponse(); - - var service = _liveTvManager.Services.FirstOrDefault(i => string.Equals(i.Name, liveTvItem.ServiceName, StringComparison.OrdinalIgnoreCase)); - - if (service != null && !item.HasImage(ImageType.Primary)) - { - try - { - var response = await service.GetChannelImageAsync(liveTvItem.ExternalId, cancellationToken).ConfigureAwait(false); - - if (response != null) - { - imageResponse.HasImage = true; - imageResponse.Stream = response.Stream; - imageResponse.Format = response.Format; - } - } - catch (NotImplementedException) - { - } - } - - return imageResponse; - } - - public string Name - { - get { return "Live TV Service Provider"; } - } - - public bool Supports(IHasImages item) - { - return item is LiveTvChannel; - } - - public int Order - { - get { return 0; } - } - - public bool HasChanged(IHasMetadata item, IDirectoryService directoryService) - { - return GetSupportedImages(item).Any(i => !item.HasImage(i)); - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/DirectRecorder.cs b/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/DirectRecorder.cs deleted file mode 100644 index 0f8c15e719..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/DirectRecorder.cs +++ /dev/null @@ -1,106 +0,0 @@ -using System; -using System.IO; -using System.Threading; -using System.Threading.Tasks; -using CommonIO; -using MediaBrowser.Common.IO; -using MediaBrowser.Common.Net; -using MediaBrowser.Model.Dto; -using MediaBrowser.Model.Logging; - -namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV -{ - public class DirectRecorder : IRecorder - { - private readonly ILogger _logger; - private readonly IHttpClient _httpClient; - private readonly IFileSystem _fileSystem; - - public DirectRecorder(ILogger logger, IHttpClient httpClient, IFileSystem fileSystem) - { - _logger = logger; - _httpClient = httpClient; - _fileSystem = fileSystem; - } - - public string GetOutputPath(MediaSourceInfo mediaSource, string targetFile) - { - return targetFile; - } - - public async Task Record(MediaSourceInfo mediaSource, string targetFile, TimeSpan duration, Action onStarted, CancellationToken cancellationToken) - { - var httpRequestOptions = new HttpRequestOptions() - { - Url = mediaSource.Path - }; - - httpRequestOptions.BufferContent = false; - - using (var response = await _httpClient.SendAsync(httpRequestOptions, "GET").ConfigureAwait(false)) - { - _logger.Info("Opened recording stream from tuner provider"); - - using (var output = _fileSystem.GetFileStream(targetFile, FileMode.Create, FileAccess.Write, FileShare.Read)) - { - onStarted(); - - _logger.Info("Copying recording stream to file {0}", targetFile); - - // The media source if infinite so we need to handle stopping ourselves - var durationToken = new CancellationTokenSource(duration); - cancellationToken = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, durationToken.Token).Token; - - await CopyUntilCancelled(response.Content, output, cancellationToken).ConfigureAwait(false); - } - } - - _logger.Info("Recording completed to file {0}", targetFile); - } - - private const int BufferSize = 81920; - public static Task CopyUntilCancelled(Stream source, Stream target, CancellationToken cancellationToken) - { - return CopyUntilCancelled(source, target, null, cancellationToken); - } - public static async Task CopyUntilCancelled(Stream source, Stream target, Action onStarted, CancellationToken cancellationToken) - { - while (!cancellationToken.IsCancellationRequested) - { - var bytesRead = await CopyToAsyncInternal(source, target, BufferSize, onStarted, cancellationToken).ConfigureAwait(false); - - onStarted = null; - - //var position = fs.Position; - //_logger.Debug("Streamed {0} bytes to position {1} from file {2}", bytesRead, position, path); - - if (bytesRead == 0) - { - await Task.Delay(100).ConfigureAwait(false); - } - } - } - - private static async Task<int> CopyToAsyncInternal(Stream source, Stream destination, Int32 bufferSize, Action onStarted, CancellationToken cancellationToken) - { - byte[] buffer = new byte[bufferSize]; - int bytesRead; - int totalBytesRead = 0; - - while ((bytesRead = await source.ReadAsync(buffer, 0, buffer.Length, cancellationToken).ConfigureAwait(false)) != 0) - { - await destination.WriteAsync(buffer, 0, bytesRead, cancellationToken).ConfigureAwait(false); - - totalBytesRead += bytesRead; - - if (onStarted != null) - { - onStarted(); - } - onStarted = null; - } - - return totalBytesRead; - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs b/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs deleted file mode 100644 index 214bb87169..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs +++ /dev/null @@ -1,1974 +0,0 @@ -using MediaBrowser.Common; -using MediaBrowser.Common.Configuration; -using MediaBrowser.Common.Net; -using MediaBrowser.Common.Security; -using MediaBrowser.Controller.Configuration; -using MediaBrowser.Controller.Drawing; -using MediaBrowser.Controller.FileOrganization; -using MediaBrowser.Controller.Library; -using MediaBrowser.Controller.LiveTv; -using MediaBrowser.Controller.MediaEncoding; -using MediaBrowser.Controller.Providers; -using MediaBrowser.Model.Dto; -using MediaBrowser.Model.Entities; -using MediaBrowser.Model.Events; -using MediaBrowser.Model.LiveTv; -using MediaBrowser.Model.Logging; -using MediaBrowser.Model.Serialization; -using MediaBrowser.Server.Implementations.FileOrganization; -using System; -using System.Collections.Concurrent; -using System.Collections.Generic; -using System.Globalization; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading; -using System.Threading.Tasks; -using System.Xml; -using CommonIO; -using MediaBrowser.Common.Events; -using MediaBrowser.Common.Extensions; -using MediaBrowser.Controller; -using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.Entities.TV; -using MediaBrowser.Model.Configuration; -using MediaBrowser.Model.FileOrganization; -using Microsoft.Win32; - -namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV -{ - public class EmbyTV : ILiveTvService, ISupportsDirectStreamProvider, ISupportsNewTimerIds, IDisposable - { - private readonly IServerApplicationHost _appHost; - private readonly ILogger _logger; - private readonly IHttpClient _httpClient; - private readonly IServerConfigurationManager _config; - private readonly IJsonSerializer _jsonSerializer; - - private readonly ItemDataProvider<SeriesTimerInfo> _seriesTimerProvider; - private readonly TimerManager _timerProvider; - - private readonly LiveTvManager _liveTvManager; - private readonly IFileSystem _fileSystem; - - private readonly ILibraryMonitor _libraryMonitor; - private readonly ILibraryManager _libraryManager; - private readonly IProviderManager _providerManager; - private readonly IFileOrganizationService _organizationService; - private readonly IMediaEncoder _mediaEncoder; - - public static EmbyTV Current; - - public event EventHandler DataSourceChanged; - public event EventHandler<RecordingStatusChangedEventArgs> RecordingStatusChanged; - - private readonly ConcurrentDictionary<string, ActiveRecordingInfo> _activeRecordings = - new ConcurrentDictionary<string, ActiveRecordingInfo>(StringComparer.OrdinalIgnoreCase); - - public EmbyTV(IServerApplicationHost appHost, ILogger logger, IJsonSerializer jsonSerializer, IHttpClient httpClient, IServerConfigurationManager config, ILiveTvManager liveTvManager, IFileSystem fileSystem, ILibraryManager libraryManager, ILibraryMonitor libraryMonitor, IProviderManager providerManager, IFileOrganizationService organizationService, IMediaEncoder mediaEncoder) - { - Current = this; - - _appHost = appHost; - _logger = logger; - _httpClient = httpClient; - _config = config; - _fileSystem = fileSystem; - _libraryManager = libraryManager; - _libraryMonitor = libraryMonitor; - _providerManager = providerManager; - _organizationService = organizationService; - _mediaEncoder = mediaEncoder; - _liveTvManager = (LiveTvManager)liveTvManager; - _jsonSerializer = jsonSerializer; - - _seriesTimerProvider = new SeriesTimerManager(fileSystem, jsonSerializer, _logger, Path.Combine(DataPath, "seriestimers")); - _timerProvider = new TimerManager(fileSystem, jsonSerializer, _logger, Path.Combine(DataPath, "timers"), _logger); - _timerProvider.TimerFired += _timerProvider_TimerFired; - - _config.NamedConfigurationUpdated += _config_NamedConfigurationUpdated; - } - - private void _config_NamedConfigurationUpdated(object sender, ConfigurationUpdateEventArgs e) - { - if (string.Equals(e.Key, "livetv", StringComparison.OrdinalIgnoreCase)) - { - OnRecordingFoldersChanged(); - } - } - - public void Start() - { - _timerProvider.RestartTimers(); - - SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged; - CreateRecordingFolders(); - } - - private void OnRecordingFoldersChanged() - { - CreateRecordingFolders(); - } - - internal void CreateRecordingFolders() - { - try - { - CreateRecordingFoldersInternal(); - } - catch (Exception ex) - { - _logger.ErrorException("Error creating recording folders", ex); - } - } - - internal void CreateRecordingFoldersInternal() - { - var recordingFolders = GetRecordingFolders(); - - var virtualFolders = _libraryManager.GetVirtualFolders() - .ToList(); - - var allExistingPaths = virtualFolders.SelectMany(i => i.Locations).ToList(); - - var pathsAdded = new List<string>(); - - foreach (var recordingFolder in recordingFolders) - { - var pathsToCreate = recordingFolder.Locations - .Where(i => !allExistingPaths.Contains(i, StringComparer.OrdinalIgnoreCase)) - .ToList(); - - if (pathsToCreate.Count == 0) - { - continue; - } - - var mediaPathInfos = pathsToCreate.Select(i => new MediaPathInfo { Path = i }).ToArray(); - - var libraryOptions = new LibraryOptions - { - PathInfos = mediaPathInfos - }; - try - { - _libraryManager.AddVirtualFolder(recordingFolder.Name, recordingFolder.CollectionType, libraryOptions, true); - } - catch (Exception ex) - { - _logger.ErrorException("Error creating virtual folder", ex); - } - - pathsAdded.AddRange(pathsToCreate); - } - - var config = GetConfiguration(); - - var pathsToRemove = config.MediaLocationsCreated - .Except(recordingFolders.SelectMany(i => i.Locations)) - .ToList(); - - if (pathsAdded.Count > 0 || pathsToRemove.Count > 0) - { - pathsAdded.InsertRange(0, config.MediaLocationsCreated); - config.MediaLocationsCreated = pathsAdded.Except(pathsToRemove).Distinct(StringComparer.OrdinalIgnoreCase).ToArray(); - _config.SaveConfiguration("livetv", config); - } - - foreach (var path in pathsToRemove) - { - RemovePathFromLibrary(path); - } - } - - private void RemovePathFromLibrary(string path) - { - _logger.Debug("Removing path from library: {0}", path); - - var requiresRefresh = false; - var virtualFolders = _libraryManager.GetVirtualFolders() - .ToList(); - - foreach (var virtualFolder in virtualFolders) - { - if (!virtualFolder.Locations.Contains(path, StringComparer.OrdinalIgnoreCase)) - { - continue; - } - - if (virtualFolder.Locations.Count == 1) - { - // remove entire virtual folder - try - { - _libraryManager.RemoveVirtualFolder(virtualFolder.Name, true); - } - catch (Exception ex) - { - _logger.ErrorException("Error removing virtual folder", ex); - } - } - else - { - try - { - _libraryManager.RemoveMediaPath(virtualFolder.Name, path); - requiresRefresh = true; - } - catch (Exception ex) - { - _logger.ErrorException("Error removing media path", ex); - } - } - } - - if (requiresRefresh) - { - _libraryManager.ValidateMediaLibrary(new Progress<Double>(), CancellationToken.None); - } - } - - void SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e) - { - _logger.Info("Power mode changed to {0}", e.Mode); - - if (e.Mode == PowerModes.Resume) - { - _timerProvider.RestartTimers(); - } - } - - public string Name - { - get { return "Emby"; } - } - - public string DataPath - { - get { return Path.Combine(_config.CommonApplicationPaths.DataPath, "livetv"); } - } - - private string DefaultRecordingPath - { - get - { - return Path.Combine(DataPath, "recordings"); - } - } - - private string RecordingPath - { - get - { - var path = GetConfiguration().RecordingPath; - - return string.IsNullOrWhiteSpace(path) - ? DefaultRecordingPath - : path; - } - } - - public string HomePageUrl - { - get { return "http://emby.media"; } - } - - public async Task<LiveTvServiceStatusInfo> GetStatusInfoAsync(CancellationToken cancellationToken) - { - var status = new LiveTvServiceStatusInfo(); - var list = new List<LiveTvTunerInfo>(); - - foreach (var hostInstance in _liveTvManager.TunerHosts) - { - try - { - var tuners = await hostInstance.GetTunerInfos(cancellationToken).ConfigureAwait(false); - - list.AddRange(tuners); - } - catch (Exception ex) - { - _logger.ErrorException("Error getting tuners", ex); - } - } - - status.Tuners = list; - status.Status = LiveTvServiceStatus.Ok; - status.Version = _appHost.ApplicationVersion.ToString(); - status.IsVisible = false; - return status; - } - - public async Task RefreshSeriesTimers(CancellationToken cancellationToken, IProgress<double> progress) - { - var seriesTimers = await GetSeriesTimersAsync(cancellationToken).ConfigureAwait(false); - - List<ChannelInfo> channels = null; - - foreach (var timer in seriesTimers) - { - List<ProgramInfo> epgData; - - if (timer.RecordAnyChannel) - { - if (channels == null) - { - channels = (await GetChannelsAsync(true, CancellationToken.None).ConfigureAwait(false)).ToList(); - } - var channelIds = channels.Select(i => i.Id).ToList(); - epgData = GetEpgDataForChannels(channelIds); - } - else - { - epgData = GetEpgDataForChannel(timer.ChannelId); - } - await UpdateTimersForSeriesTimer(epgData, timer, true).ConfigureAwait(false); - } - - var timers = await GetTimersAsync(cancellationToken).ConfigureAwait(false); - - foreach (var timer in timers.ToList()) - { - if (DateTime.UtcNow > timer.EndDate && !_activeRecordings.ContainsKey(timer.Id)) - { - OnTimerOutOfDate(timer); - } - } - } - - private void OnTimerOutOfDate(TimerInfo timer) - { - _timerProvider.Delete(timer); - } - - private async Task<IEnumerable<ChannelInfo>> GetChannelsAsync(bool enableCache, CancellationToken cancellationToken) - { - var list = new List<ChannelInfo>(); - - foreach (var hostInstance in _liveTvManager.TunerHosts) - { - try - { - var channels = await hostInstance.GetChannels(enableCache, cancellationToken).ConfigureAwait(false); - - list.AddRange(channels); - } - catch (Exception ex) - { - _logger.ErrorException("Error getting channels", ex); - } - } - - foreach (var provider in GetListingProviders()) - { - var enabledChannels = list - .Where(i => IsListingProviderEnabledForTuner(provider.Item2, i.TunerHostId)) - .ToList(); - - if (enabledChannels.Count > 0) - { - try - { - await provider.Item1.AddMetadata(provider.Item2, enabledChannels, cancellationToken).ConfigureAwait(false); - } - catch (NotSupportedException) - { - - } - catch (Exception ex) - { - _logger.ErrorException("Error adding metadata", ex); - } - } - } - - return list; - } - - public async Task<List<ChannelInfo>> GetChannelsForListingsProvider(ListingsProviderInfo listingsProvider, CancellationToken cancellationToken) - { - var list = new List<ChannelInfo>(); - - foreach (var hostInstance in _liveTvManager.TunerHosts) - { - try - { - var channels = await hostInstance.GetChannels(false, cancellationToken).ConfigureAwait(false); - - list.AddRange(channels); - } - catch (Exception ex) - { - _logger.ErrorException("Error getting channels", ex); - } - } - - return list - .Where(i => IsListingProviderEnabledForTuner(listingsProvider, i.TunerHostId)) - .ToList(); - } - - public Task<IEnumerable<ChannelInfo>> GetChannelsAsync(CancellationToken cancellationToken) - { - return GetChannelsAsync(false, cancellationToken); - } - - public Task CancelSeriesTimerAsync(string timerId, CancellationToken cancellationToken) - { - var timers = _timerProvider - .GetAll() - .Where(i => string.Equals(i.SeriesTimerId, timerId, StringComparison.OrdinalIgnoreCase)) - .ToList(); - - foreach (var timer in timers) - { - CancelTimerInternal(timer.Id, true); - } - - var remove = _seriesTimerProvider.GetAll().FirstOrDefault(r => string.Equals(r.Id, timerId, StringComparison.OrdinalIgnoreCase)); - if (remove != null) - { - _seriesTimerProvider.Delete(remove); - } - return Task.FromResult(true); - } - - private void CancelTimerInternal(string timerId, bool isSeriesCancelled) - { - var timer = _timerProvider.GetTimer(timerId); - if (timer != null) - { - if (string.IsNullOrWhiteSpace(timer.SeriesTimerId) || isSeriesCancelled) - { - _timerProvider.Delete(timer); - } - else - { - timer.Status = RecordingStatus.Cancelled; - _timerProvider.AddOrUpdate(timer, false); - } - } - ActiveRecordingInfo activeRecordingInfo; - - if (_activeRecordings.TryGetValue(timerId, out activeRecordingInfo)) - { - activeRecordingInfo.CancellationTokenSource.Cancel(); - } - } - - public Task CancelTimerAsync(string timerId, CancellationToken cancellationToken) - { - CancelTimerInternal(timerId, false); - return Task.FromResult(true); - } - - public Task DeleteRecordingAsync(string recordingId, CancellationToken cancellationToken) - { - return Task.FromResult(true); - } - - public Task CreateSeriesTimerAsync(SeriesTimerInfo info, CancellationToken cancellationToken) - { - throw new NotImplementedException(); - } - - public Task CreateTimerAsync(TimerInfo info, CancellationToken cancellationToken) - { - throw new NotImplementedException(); - } - - public Task<string> CreateTimer(TimerInfo timer, CancellationToken cancellationToken) - { - var existingTimer = _timerProvider.GetAll() - .FirstOrDefault(i => string.Equals(timer.ProgramId, i.ProgramId, StringComparison.OrdinalIgnoreCase)); - - if (existingTimer != null) - { - if (existingTimer.Status == RecordingStatus.Cancelled || - existingTimer.Status == RecordingStatus.Completed) - { - existingTimer.Status = RecordingStatus.New; - _timerProvider.Update(existingTimer); - return Task.FromResult(existingTimer.Id); - } - else - { - throw new ArgumentException("A scheduled recording already exists for this program."); - } - } - - timer.Id = Guid.NewGuid().ToString("N"); - - ProgramInfo programInfo = null; - - if (!string.IsNullOrWhiteSpace(timer.ProgramId)) - { - programInfo = GetProgramInfoFromCache(timer.ChannelId, timer.ProgramId); - } - if (programInfo == null) - { - _logger.Info("Unable to find program with Id {0}. Will search using start date", timer.ProgramId); - programInfo = GetProgramInfoFromCache(timer.ChannelId, timer.StartDate); - } - - if (programInfo != null) - { - RecordingHelper.CopyProgramInfoToTimerInfo(programInfo, timer); - } - - _timerProvider.Add(timer); - return Task.FromResult(timer.Id); - } - - public async Task<string> CreateSeriesTimer(SeriesTimerInfo info, CancellationToken cancellationToken) - { - info.Id = Guid.NewGuid().ToString("N"); - - List<ProgramInfo> epgData; - if (info.RecordAnyChannel) - { - var channels = await GetChannelsAsync(true, CancellationToken.None).ConfigureAwait(false); - var channelIds = channels.Select(i => i.Id).ToList(); - epgData = GetEpgDataForChannels(channelIds); - } - else - { - epgData = GetEpgDataForChannel(info.ChannelId); - } - - // populate info.seriesID - var program = epgData.FirstOrDefault(i => string.Equals(i.Id, info.ProgramId, StringComparison.OrdinalIgnoreCase)); - - if (program != null) - { - info.SeriesId = program.SeriesId; - } - else - { - throw new InvalidOperationException("SeriesId for program not found"); - } - - _seriesTimerProvider.Add(info); - await UpdateTimersForSeriesTimer(epgData, info, false).ConfigureAwait(false); - - return info.Id; - } - - public async Task UpdateSeriesTimerAsync(SeriesTimerInfo info, CancellationToken cancellationToken) - { - var instance = _seriesTimerProvider.GetAll().FirstOrDefault(i => string.Equals(i.Id, info.Id, StringComparison.OrdinalIgnoreCase)); - - if (instance != null) - { - instance.ChannelId = info.ChannelId; - instance.Days = info.Days; - instance.EndDate = info.EndDate; - instance.IsPostPaddingRequired = info.IsPostPaddingRequired; - instance.IsPrePaddingRequired = info.IsPrePaddingRequired; - instance.PostPaddingSeconds = info.PostPaddingSeconds; - instance.PrePaddingSeconds = info.PrePaddingSeconds; - instance.Priority = info.Priority; - instance.RecordAnyChannel = info.RecordAnyChannel; - instance.RecordAnyTime = info.RecordAnyTime; - instance.RecordNewOnly = info.RecordNewOnly; - instance.SkipEpisodesInLibrary = info.SkipEpisodesInLibrary; - instance.KeepUpTo = info.KeepUpTo; - instance.KeepUntil = info.KeepUntil; - instance.StartDate = info.StartDate; - - _seriesTimerProvider.Update(instance); - - List<ProgramInfo> epgData; - if (instance.RecordAnyChannel) - { - var channels = await GetChannelsAsync(true, CancellationToken.None).ConfigureAwait(false); - var channelIds = channels.Select(i => i.Id).ToList(); - epgData = GetEpgDataForChannels(channelIds); - } - else - { - epgData = GetEpgDataForChannel(instance.ChannelId); - } - - await UpdateTimersForSeriesTimer(epgData, instance, true).ConfigureAwait(false); - } - } - - public Task UpdateTimerAsync(TimerInfo updatedTimer, CancellationToken cancellationToken) - { - var existingTimer = _timerProvider.GetTimer(updatedTimer.Id); - - if (existingTimer == null) - { - throw new ResourceNotFoundException(); - } - - // Only update if not currently active - ActiveRecordingInfo activeRecordingInfo; - if (!_activeRecordings.TryGetValue(updatedTimer.Id, out activeRecordingInfo)) - { - existingTimer.PrePaddingSeconds = updatedTimer.PrePaddingSeconds; - existingTimer.PostPaddingSeconds = updatedTimer.PostPaddingSeconds; - existingTimer.IsPostPaddingRequired = updatedTimer.IsPostPaddingRequired; - existingTimer.IsPrePaddingRequired = updatedTimer.IsPrePaddingRequired; - } - - return Task.FromResult(true); - } - - private void UpdateExistingTimerWithNewMetadata(TimerInfo existingTimer, TimerInfo updatedTimer) - { - // Update the program info but retain the status - existingTimer.ChannelId = updatedTimer.ChannelId; - existingTimer.CommunityRating = updatedTimer.CommunityRating; - existingTimer.EndDate = updatedTimer.EndDate; - existingTimer.EpisodeNumber = updatedTimer.EpisodeNumber; - existingTimer.EpisodeTitle = updatedTimer.EpisodeTitle; - existingTimer.Genres = updatedTimer.Genres; - existingTimer.HomePageUrl = updatedTimer.HomePageUrl; - existingTimer.IsKids = updatedTimer.IsKids; - existingTimer.IsNews = updatedTimer.IsNews; - existingTimer.IsMovie = updatedTimer.IsMovie; - existingTimer.IsProgramSeries = updatedTimer.IsProgramSeries; - existingTimer.IsRepeat = updatedTimer.IsRepeat; - existingTimer.IsSports = updatedTimer.IsSports; - existingTimer.Name = updatedTimer.Name; - existingTimer.OfficialRating = updatedTimer.OfficialRating; - existingTimer.OriginalAirDate = updatedTimer.OriginalAirDate; - existingTimer.Overview = updatedTimer.Overview; - existingTimer.ProductionYear = updatedTimer.ProductionYear; - existingTimer.ProgramId = updatedTimer.ProgramId; - existingTimer.SeasonNumber = updatedTimer.SeasonNumber; - existingTimer.ShortOverview = updatedTimer.ShortOverview; - existingTimer.StartDate = updatedTimer.StartDate; - } - - public Task<ImageStream> GetChannelImageAsync(string channelId, CancellationToken cancellationToken) - { - throw new NotImplementedException(); - } - - public Task<ImageStream> GetRecordingImageAsync(string recordingId, CancellationToken cancellationToken) - { - throw new NotImplementedException(); - } - - public Task<ImageStream> GetProgramImageAsync(string programId, string channelId, CancellationToken cancellationToken) - { - throw new NotImplementedException(); - } - - public async Task<IEnumerable<RecordingInfo>> GetRecordingsAsync(CancellationToken cancellationToken) - { - return _activeRecordings.Values.ToList().Select(GetRecordingInfo).ToList(); - } - - public string GetActiveRecordingPath(string id) - { - ActiveRecordingInfo info; - - if (_activeRecordings.TryGetValue(id, out info)) - { - return info.Path; - } - return null; - } - - private RecordingInfo GetRecordingInfo(ActiveRecordingInfo info) - { - var timer = info.Timer; - var program = info.Program; - - var result = new RecordingInfo - { - ChannelId = timer.ChannelId, - CommunityRating = timer.CommunityRating, - DateLastUpdated = DateTime.UtcNow, - EndDate = timer.EndDate, - EpisodeTitle = timer.EpisodeTitle, - Genres = timer.Genres, - Id = "recording" + timer.Id, - IsKids = timer.IsKids, - IsMovie = timer.IsMovie, - IsNews = timer.IsNews, - IsRepeat = timer.IsRepeat, - IsSeries = timer.IsProgramSeries, - IsSports = timer.IsSports, - Name = timer.Name, - OfficialRating = timer.OfficialRating, - OriginalAirDate = timer.OriginalAirDate, - Overview = timer.Overview, - ProgramId = timer.ProgramId, - SeriesTimerId = timer.SeriesTimerId, - StartDate = timer.StartDate, - Status = RecordingStatus.InProgress, - TimerId = timer.Id - }; - - if (program != null) - { - result.Audio = program.Audio; - result.ImagePath = program.ImagePath; - result.ImageUrl = program.ImageUrl; - result.IsHD = program.IsHD; - result.IsLive = program.IsLive; - result.IsPremiere = program.IsPremiere; - result.ShowId = program.ShowId; - } - - return result; - } - - public Task<IEnumerable<TimerInfo>> GetTimersAsync(CancellationToken cancellationToken) - { - var excludeStatues = new List<RecordingStatus> - { - RecordingStatus.Completed - }; - - var timers = _timerProvider.GetAll() - .Where(i => !excludeStatues.Contains(i.Status)); - - return Task.FromResult(timers); - } - - public Task<SeriesTimerInfo> GetNewTimerDefaultsAsync(CancellationToken cancellationToken, ProgramInfo program = null) - { - var config = GetConfiguration(); - - var defaults = new SeriesTimerInfo() - { - PostPaddingSeconds = Math.Max(config.PostPaddingSeconds, 0), - PrePaddingSeconds = Math.Max(config.PrePaddingSeconds, 0), - RecordAnyChannel = false, - RecordAnyTime = true, - RecordNewOnly = true, - - Days = new List<DayOfWeek> - { - DayOfWeek.Sunday, - DayOfWeek.Monday, - DayOfWeek.Tuesday, - DayOfWeek.Wednesday, - DayOfWeek.Thursday, - DayOfWeek.Friday, - DayOfWeek.Saturday - } - }; - - if (program != null) - { - defaults.SeriesId = program.SeriesId; - defaults.ProgramId = program.Id; - defaults.RecordNewOnly = !program.IsRepeat; - } - - defaults.SkipEpisodesInLibrary = defaults.RecordNewOnly; - defaults.KeepUntil = KeepUntil.UntilDeleted; - - return Task.FromResult(defaults); - } - - public Task<IEnumerable<SeriesTimerInfo>> GetSeriesTimersAsync(CancellationToken cancellationToken) - { - return Task.FromResult((IEnumerable<SeriesTimerInfo>)_seriesTimerProvider.GetAll()); - } - - public async Task<IEnumerable<ProgramInfo>> GetProgramsAsync(string channelId, DateTime startDateUtc, DateTime endDateUtc, CancellationToken cancellationToken) - { - try - { - return await GetProgramsAsyncInternal(channelId, startDateUtc, endDateUtc, cancellationToken).ConfigureAwait(false); - } - catch (OperationCanceledException) - { - throw; - } - catch (Exception ex) - { - _logger.ErrorException("Error getting programs", ex); - return GetEpgDataForChannel(channelId).Where(i => i.StartDate <= endDateUtc && i.EndDate >= startDateUtc); - } - } - - private bool IsListingProviderEnabledForTuner(ListingsProviderInfo info, string tunerHostId) - { - if (info.EnableAllTuners) - { - return true; - } - - if (string.IsNullOrWhiteSpace(tunerHostId)) - { - throw new ArgumentNullException("tunerHostId"); - } - - return info.EnabledTuners.Contains(tunerHostId, StringComparer.OrdinalIgnoreCase); - } - - private async Task<IEnumerable<ProgramInfo>> GetProgramsAsyncInternal(string channelId, DateTime startDateUtc, DateTime endDateUtc, CancellationToken cancellationToken) - { - var channels = await GetChannelsAsync(true, cancellationToken).ConfigureAwait(false); - var channel = channels.First(i => string.Equals(i.Id, channelId, StringComparison.OrdinalIgnoreCase)); - - foreach (var provider in GetListingProviders()) - { - if (!IsListingProviderEnabledForTuner(provider.Item2, channel.TunerHostId)) - { - _logger.Debug("Skipping getting programs for channel {0}-{1} from {2}-{3}, because it's not enabled for this tuner.", channel.Number, channel.Name, provider.Item1.Name, provider.Item2.ListingsId ?? string.Empty); - continue; - } - - _logger.Debug("Getting programs for channel {0}-{1} from {2}-{3}", channel.Number, channel.Name, provider.Item1.Name, provider.Item2.ListingsId ?? string.Empty); - - var channelMappings = GetChannelMappings(provider.Item2); - var channelNumber = channel.Number; - string mappedChannelNumber; - if (channelMappings.TryGetValue(channelNumber, out mappedChannelNumber)) - { - _logger.Debug("Found mapped channel on provider {0}. Tuner channel number: {1}, Mapped channel number: {2}", provider.Item1.Name, channelNumber, mappedChannelNumber); - channelNumber = mappedChannelNumber; - } - - var programs = await provider.Item1.GetProgramsAsync(provider.Item2, channelNumber, channel.Name, startDateUtc, endDateUtc, cancellationToken) - .ConfigureAwait(false); - - var list = programs.ToList(); - - // Replace the value that came from the provider with a normalized value - foreach (var program in list) - { - program.ChannelId = channelId; - } - - if (list.Count > 0) - { - SaveEpgDataForChannel(channelId, list); - - return list; - } - } - - return new List<ProgramInfo>(); - } - - private Dictionary<string, string> GetChannelMappings(ListingsProviderInfo info) - { - var dict = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); - - foreach (var mapping in info.ChannelMappings) - { - dict[mapping.Name] = mapping.Value; - } - - return dict; - } - - private List<Tuple<IListingsProvider, ListingsProviderInfo>> GetListingProviders() - { - return GetConfiguration().ListingProviders - .Select(i => - { - var provider = _liveTvManager.ListingProviders.FirstOrDefault(l => string.Equals(l.Type, i.Type, StringComparison.OrdinalIgnoreCase)); - - return provider == null ? null : new Tuple<IListingsProvider, ListingsProviderInfo>(provider, i); - }) - .Where(i => i != null) - .ToList(); - } - - public Task<MediaSourceInfo> GetRecordingStream(string recordingId, string streamId, CancellationToken cancellationToken) - { - throw new NotImplementedException(); - } - - private readonly SemaphoreSlim _liveStreamsSemaphore = new SemaphoreSlim(1, 1); - private readonly List<LiveStream> _liveStreams = new List<LiveStream>(); - - public async Task<MediaSourceInfo> GetChannelStream(string channelId, string streamId, CancellationToken cancellationToken) - { - var result = await GetChannelStreamWithDirectStreamProvider(channelId, streamId, cancellationToken).ConfigureAwait(false); - - return result.Item1; - } - - public async Task<Tuple<MediaSourceInfo, IDirectStreamProvider>> GetChannelStreamWithDirectStreamProvider(string channelId, string streamId, CancellationToken cancellationToken) - { - var result = await GetChannelStreamInternal(channelId, streamId, cancellationToken).ConfigureAwait(false); - - return new Tuple<MediaSourceInfo, IDirectStreamProvider>(result.Item2, result.Item1 as IDirectStreamProvider); - } - - private MediaSourceInfo CloneMediaSource(MediaSourceInfo mediaSource, bool enableStreamSharing) - { - var json = _jsonSerializer.SerializeToString(mediaSource); - mediaSource = _jsonSerializer.DeserializeFromString<MediaSourceInfo>(json); - - mediaSource.Id = Guid.NewGuid().ToString("N") + "_" + mediaSource.Id; - - //if (mediaSource.DateLiveStreamOpened.HasValue && enableStreamSharing) - //{ - // var ticks = (DateTime.UtcNow - mediaSource.DateLiveStreamOpened.Value).Ticks - TimeSpan.FromSeconds(10).Ticks; - // ticks = Math.Max(0, ticks); - // mediaSource.Path += "?t=" + ticks.ToString(CultureInfo.InvariantCulture) + "&s=" + mediaSource.DateLiveStreamOpened.Value.Ticks.ToString(CultureInfo.InvariantCulture); - //} - - return mediaSource; - } - - public async Task<LiveStream> GetLiveStream(string uniqueId) - { - await _liveStreamsSemaphore.WaitAsync().ConfigureAwait(false); - - try - { - return _liveStreams - .FirstOrDefault(i => string.Equals(i.UniqueId, uniqueId, StringComparison.OrdinalIgnoreCase)); - } - finally - { - _liveStreamsSemaphore.Release(); - } - - } - - private async Task<Tuple<LiveStream, MediaSourceInfo, ITunerHost>> GetChannelStreamInternal(string channelId, string streamId, CancellationToken cancellationToken) - { - _logger.Info("Streaming Channel " + channelId); - - await _liveStreamsSemaphore.WaitAsync(cancellationToken).ConfigureAwait(false); - - var result = _liveStreams.FirstOrDefault(i => string.Equals(i.OriginalStreamId, streamId, StringComparison.OrdinalIgnoreCase)); - - if (result != null && result.EnableStreamSharing) - { - var openedMediaSource = CloneMediaSource(result.OpenedMediaSource, result.EnableStreamSharing); - result.SharedStreamIds.Add(openedMediaSource.Id); - _liveStreamsSemaphore.Release(); - - _logger.Info("Live stream {0} consumer count is now {1}", streamId, result.ConsumerCount); - - return new Tuple<LiveStream, MediaSourceInfo, ITunerHost>(result, openedMediaSource, result.TunerHost); - } - - try - { - foreach (var hostInstance in _liveTvManager.TunerHosts) - { - try - { - result = await hostInstance.GetChannelStream(channelId, streamId, cancellationToken).ConfigureAwait(false); - - var openedMediaSource = CloneMediaSource(result.OpenedMediaSource, result.EnableStreamSharing); - - result.SharedStreamIds.Add(openedMediaSource.Id); - _liveStreams.Add(result); - - result.TunerHost = hostInstance; - result.OriginalStreamId = streamId; - - _logger.Info("Returning mediasource streamId {0}, mediaSource.Id {1}, mediaSource.LiveStreamId {2}", - streamId, openedMediaSource.Id, openedMediaSource.LiveStreamId); - - return new Tuple<LiveStream, MediaSourceInfo, ITunerHost>(result, openedMediaSource, hostInstance); - } - catch (FileNotFoundException) - { - } - catch (OperationCanceledException) - { - } - } - } - finally - { - _liveStreamsSemaphore.Release(); - } - - throw new ApplicationException("Tuner not found."); - } - - public async Task<List<MediaSourceInfo>> GetChannelStreamMediaSources(string channelId, CancellationToken cancellationToken) - { - foreach (var hostInstance in _liveTvManager.TunerHosts) - { - try - { - var sources = await hostInstance.GetChannelStreamMediaSources(channelId, cancellationToken).ConfigureAwait(false); - - if (sources.Count > 0) - { - return sources; - } - } - catch (NotImplementedException) - { - - } - } - - throw new NotImplementedException(); - } - - public async Task<List<MediaSourceInfo>> GetRecordingStreamMediaSources(string recordingId, CancellationToken cancellationToken) - { - ActiveRecordingInfo info; - - recordingId = recordingId.Replace("recording", string.Empty); - - if (_activeRecordings.TryGetValue(recordingId, out info)) - { - var stream = new MediaSourceInfo - { - Path = _appHost.GetLocalApiUrl("127.0.0.1") + "/LiveTv/LiveRecordings/" + recordingId + "/stream", - Id = recordingId, - SupportsDirectPlay = false, - SupportsDirectStream = true, - SupportsTranscoding = true, - IsInfiniteStream = true, - RequiresOpening = false, - RequiresClosing = false, - Protocol = Model.MediaInfo.MediaProtocol.Http, - BufferMs = 0 - }; - - var isAudio = false; - await new LiveStreamHelper(_mediaEncoder, _logger).AddMediaInfoWithProbe(stream, isAudio, cancellationToken).ConfigureAwait(false); - - return new List<MediaSourceInfo> - { - stream - }; - } - - throw new FileNotFoundException(); - } - - public async Task CloseLiveStream(string id, CancellationToken cancellationToken) - { - // Ignore the consumer id - //id = id.Substring(id.IndexOf('_') + 1); - - await _liveStreamsSemaphore.WaitAsync(cancellationToken).ConfigureAwait(false); - - try - { - var stream = _liveStreams.FirstOrDefault(i => i.SharedStreamIds.Contains(id)); - if (stream != null) - { - stream.SharedStreamIds.Remove(id); - - _logger.Info("Live stream {0} consumer count is now {1}", id, stream.ConsumerCount); - - if (stream.ConsumerCount <= 0) - { - _liveStreams.Remove(stream); - - _logger.Info("Closing live stream {0}", id); - - await stream.Close().ConfigureAwait(false); - _logger.Info("Live stream {0} closed successfully", id); - } - } - else - { - _logger.Warn("Live stream not found: {0}, unable to close", id); - } - } - catch (OperationCanceledException) - { - } - catch (Exception ex) - { - _logger.ErrorException("Error closing live stream", ex); - } - finally - { - _liveStreamsSemaphore.Release(); - } - } - - public Task RecordLiveStream(string id, CancellationToken cancellationToken) - { - return Task.FromResult(0); - } - - public Task ResetTuner(string id, CancellationToken cancellationToken) - { - return Task.FromResult(0); - } - - async void _timerProvider_TimerFired(object sender, GenericEventArgs<TimerInfo> e) - { - var timer = e.Argument; - - _logger.Info("Recording timer fired."); - - try - { - var recordingEndDate = timer.EndDate.AddSeconds(timer.PostPaddingSeconds); - - if (recordingEndDate <= DateTime.UtcNow) - { - _logger.Warn("Recording timer fired for updatedTimer {0}, Id: {1}, but the program has already ended.", timer.Name, timer.Id); - OnTimerOutOfDate(timer); - return; - } - - var activeRecordingInfo = new ActiveRecordingInfo - { - CancellationTokenSource = new CancellationTokenSource(), - Timer = timer - }; - - if (_activeRecordings.TryAdd(timer.Id, activeRecordingInfo)) - { - await RecordStream(timer, recordingEndDate, activeRecordingInfo, activeRecordingInfo.CancellationTokenSource.Token).ConfigureAwait(false); - } - else - { - _logger.Info("Skipping RecordStream because it's already in progress."); - } - } - catch (OperationCanceledException) - { - - } - catch (Exception ex) - { - _logger.ErrorException("Error recording stream", ex); - } - } - - private string GetRecordingPath(TimerInfo timer, out string seriesPath) - { - var recordPath = RecordingPath; - var config = GetConfiguration(); - seriesPath = null; - - if (timer.IsProgramSeries) - { - var customRecordingPath = config.SeriesRecordingPath; - var allowSubfolder = true; - if (!string.IsNullOrWhiteSpace(customRecordingPath)) - { - allowSubfolder = string.Equals(customRecordingPath, recordPath, StringComparison.OrdinalIgnoreCase); - recordPath = customRecordingPath; - } - - if (allowSubfolder && config.EnableRecordingSubfolders) - { - recordPath = Path.Combine(recordPath, "Series"); - } - - var folderName = _fileSystem.GetValidFilename(timer.Name).Trim(); - - // Can't use the year here in the folder name because it is the year of the episode, not the series. - recordPath = Path.Combine(recordPath, folderName); - - seriesPath = recordPath; - - if (timer.SeasonNumber.HasValue) - { - folderName = string.Format("Season {0}", timer.SeasonNumber.Value.ToString(CultureInfo.InvariantCulture)); - recordPath = Path.Combine(recordPath, folderName); - } - } - else if (timer.IsMovie) - { - var customRecordingPath = config.MovieRecordingPath; - var allowSubfolder = true; - if (!string.IsNullOrWhiteSpace(customRecordingPath)) - { - allowSubfolder = string.Equals(customRecordingPath, recordPath, StringComparison.OrdinalIgnoreCase); - recordPath = customRecordingPath; - } - - if (allowSubfolder && config.EnableRecordingSubfolders) - { - recordPath = Path.Combine(recordPath, "Movies"); - } - - var folderName = _fileSystem.GetValidFilename(timer.Name).Trim(); - if (timer.ProductionYear.HasValue) - { - folderName += " (" + timer.ProductionYear.Value.ToString(CultureInfo.InvariantCulture) + ")"; - } - recordPath = Path.Combine(recordPath, folderName); - } - else if (timer.IsKids) - { - if (config.EnableRecordingSubfolders) - { - recordPath = Path.Combine(recordPath, "Kids"); - } - - var folderName = _fileSystem.GetValidFilename(timer.Name).Trim(); - if (timer.ProductionYear.HasValue) - { - folderName += " (" + timer.ProductionYear.Value.ToString(CultureInfo.InvariantCulture) + ")"; - } - recordPath = Path.Combine(recordPath, folderName); - } - else if (timer.IsSports) - { - if (config.EnableRecordingSubfolders) - { - recordPath = Path.Combine(recordPath, "Sports"); - } - recordPath = Path.Combine(recordPath, _fileSystem.GetValidFilename(timer.Name).Trim()); - } - else - { - if (config.EnableRecordingSubfolders) - { - recordPath = Path.Combine(recordPath, "Other"); - } - recordPath = Path.Combine(recordPath, _fileSystem.GetValidFilename(timer.Name).Trim()); - } - - var recordingFileName = _fileSystem.GetValidFilename(RecordingHelper.GetRecordingName(timer)).Trim() + ".ts"; - - return Path.Combine(recordPath, recordingFileName); - } - - private async Task RecordStream(TimerInfo timer, DateTime recordingEndDate, - ActiveRecordingInfo activeRecordingInfo, CancellationToken cancellationToken) - { - if (timer == null) - { - throw new ArgumentNullException("timer"); - } - - ProgramInfo programInfo = null; - - if (!string.IsNullOrWhiteSpace(timer.ProgramId)) - { - programInfo = GetProgramInfoFromCache(timer.ChannelId, timer.ProgramId); - } - if (programInfo == null) - { - _logger.Info("Unable to find program with Id {0}. Will search using start date", timer.ProgramId); - programInfo = GetProgramInfoFromCache(timer.ChannelId, timer.StartDate); - } - - if (programInfo != null) - { - RecordingHelper.CopyProgramInfoToTimerInfo(programInfo, timer); - activeRecordingInfo.Program = programInfo; - } - - string seriesPath = null; - var recordPath = GetRecordingPath(timer, out seriesPath); - var recordingStatus = RecordingStatus.New; - - string liveStreamId = null; - - OnRecordingStatusChanged(); - - try - { - var allMediaSources = await GetChannelStreamMediaSources(timer.ChannelId, CancellationToken.None).ConfigureAwait(false); - - var liveStreamInfo = await GetChannelStreamInternal(timer.ChannelId, allMediaSources[0].Id, CancellationToken.None) - .ConfigureAwait(false); - - var mediaStreamInfo = liveStreamInfo.Item2; - liveStreamId = mediaStreamInfo.Id; - - // HDHR doesn't seem to release the tuner right away after first probing with ffmpeg - //await Task.Delay(3000, cancellationToken).ConfigureAwait(false); - - var recorder = await GetRecorder().ConfigureAwait(false); - - recordPath = recorder.GetOutputPath(mediaStreamInfo, recordPath); - recordPath = EnsureFileUnique(recordPath, timer.Id); - - _libraryManager.RegisterIgnoredPath(recordPath); - _libraryMonitor.ReportFileSystemChangeBeginning(recordPath); - _fileSystem.CreateDirectory(Path.GetDirectoryName(recordPath)); - activeRecordingInfo.Path = recordPath; - - var duration = recordingEndDate - DateTime.UtcNow; - - _logger.Info("Beginning recording. Will record for {0} minutes.", - duration.TotalMinutes.ToString(CultureInfo.InvariantCulture)); - - _logger.Info("Writing file to path: " + recordPath); - _logger.Info("Opening recording stream from tuner provider"); - - Action onStarted = () => - { - timer.Status = RecordingStatus.InProgress; - _timerProvider.AddOrUpdate(timer, false); - - SaveNfo(timer, recordPath, seriesPath); - EnforceKeepUpTo(timer); - }; - - await recorder.Record(mediaStreamInfo, recordPath, duration, onStarted, cancellationToken) - .ConfigureAwait(false); - - recordingStatus = RecordingStatus.Completed; - _logger.Info("Recording completed: {0}", recordPath); - } - catch (OperationCanceledException) - { - _logger.Info("Recording stopped: {0}", recordPath); - recordingStatus = RecordingStatus.Completed; - } - catch (Exception ex) - { - _logger.ErrorException("Error recording to {0}", ex, recordPath); - recordingStatus = RecordingStatus.Error; - } - - if (!string.IsNullOrWhiteSpace(liveStreamId)) - { - try - { - await CloseLiveStream(liveStreamId, CancellationToken.None).ConfigureAwait(false); - } - catch (Exception ex) - { - _logger.ErrorException("Error closing live stream", ex); - } - } - - _libraryManager.UnRegisterIgnoredPath(recordPath); - _libraryMonitor.ReportFileSystemChangeComplete(recordPath, true); - - ActiveRecordingInfo removed; - _activeRecordings.TryRemove(timer.Id, out removed); - - if (recordingStatus != RecordingStatus.Completed && DateTime.UtcNow < timer.EndDate) - { - const int retryIntervalSeconds = 60; - _logger.Info("Retrying recording in {0} seconds.", retryIntervalSeconds); - - timer.Status = RecordingStatus.New; - timer.StartDate = DateTime.UtcNow.AddSeconds(retryIntervalSeconds); - _timerProvider.AddOrUpdate(timer); - } - else if (File.Exists(recordPath)) - { - timer.RecordingPath = recordPath; - timer.Status = RecordingStatus.Completed; - _timerProvider.AddOrUpdate(timer, false); - OnSuccessfulRecording(timer, recordPath); - } - else - { - _timerProvider.Delete(timer); - } - - OnRecordingStatusChanged(); - } - - private void OnRecordingStatusChanged() - { - EventHelper.FireEventIfNotNull(RecordingStatusChanged, this, new RecordingStatusChangedEventArgs - { - - }, _logger); - } - - private async void EnforceKeepUpTo(TimerInfo timer) - { - if (string.IsNullOrWhiteSpace(timer.SeriesTimerId)) - { - return; - } - - var seriesTimerId = timer.SeriesTimerId; - var seriesTimer = _seriesTimerProvider.GetAll().FirstOrDefault(i => string.Equals(i.Id, seriesTimerId, StringComparison.OrdinalIgnoreCase)); - - if (seriesTimer == null || seriesTimer.KeepUpTo <= 1) - { - return; - } - - if (_disposed) - { - return; - } - - await _recordingDeleteSemaphore.WaitAsync().ConfigureAwait(false); - - try - { - if (_disposed) - { - return; - } - - var timersToDelete = _timerProvider.GetAll() - .Where(i => i.Status == RecordingStatus.Completed && !string.IsNullOrWhiteSpace(i.RecordingPath)) - .Where(i => string.Equals(i.SeriesTimerId, seriesTimerId, StringComparison.OrdinalIgnoreCase)) - .OrderByDescending(i => i.EndDate) - .Where(i => File.Exists(i.RecordingPath)) - .Skip(seriesTimer.KeepUpTo - 1) - .ToList(); - - await DeleteLibraryItemsForTimers(timersToDelete).ConfigureAwait(false); - } - finally - { - _recordingDeleteSemaphore.Release(); - } - } - - private readonly SemaphoreSlim _recordingDeleteSemaphore = new SemaphoreSlim(1, 1); - private async Task DeleteLibraryItemsForTimers(List<TimerInfo> timers) - { - foreach (var timer in timers) - { - if (_disposed) - { - return; - } - - try - { - await DeleteLibraryItemForTimer(timer).ConfigureAwait(false); - } - catch (Exception ex) - { - _logger.ErrorException("Error deleting recording", ex); - } - } - } - - private async Task DeleteLibraryItemForTimer(TimerInfo timer) - { - var libraryItem = _libraryManager.FindByPath(timer.RecordingPath, false); - - if (libraryItem != null) - { - await _libraryManager.DeleteItem(libraryItem, new DeleteOptions - { - DeleteFileLocation = true - }); - } - else - { - try - { - File.Delete(timer.RecordingPath); - } - catch (DirectoryNotFoundException) - { - - } - catch (FileNotFoundException) - { - - } - } - - _timerProvider.Delete(timer); - } - - private string EnsureFileUnique(string path, string timerId) - { - var originalPath = path; - var index = 1; - - while (FileExists(path, timerId)) - { - var parent = Path.GetDirectoryName(originalPath); - var name = Path.GetFileNameWithoutExtension(originalPath); - name += "-" + index.ToString(CultureInfo.InvariantCulture); - - path = Path.ChangeExtension(Path.Combine(parent, name), Path.GetExtension(originalPath)); - index++; - } - - return path; - } - - private bool FileExists(string path, string timerId) - { - if (_fileSystem.FileExists(path)) - { - return true; - } - - var hasRecordingAtPath = _activeRecordings - .Values - .ToList() - .Any(i => string.Equals(i.Path, path, StringComparison.OrdinalIgnoreCase) && !string.Equals(i.Timer.Id, timerId, StringComparison.OrdinalIgnoreCase)); - - if (hasRecordingAtPath) - { - return true; - } - return false; - } - - private async Task<IRecorder> GetRecorder() - { - var config = GetConfiguration(); - - if (config.EnableRecordingEncoding) - { - var regInfo = await _liveTvManager.GetRegistrationInfo("embytvrecordingconversion").ConfigureAwait(false); - - if (regInfo.IsValid) - { - return new EncodedRecorder(_logger, _fileSystem, _mediaEncoder, _config.ApplicationPaths, _jsonSerializer, config, _httpClient); - } - } - - return new DirectRecorder(_logger, _httpClient, _fileSystem); - } - - private async void OnSuccessfulRecording(TimerInfo timer, string path) - { - if (timer.IsProgramSeries && GetConfiguration().EnableAutoOrganize) - { - try - { - // this is to account for the library monitor holding a lock for additional time after the change is complete. - // ideally this shouldn't be hard-coded - await Task.Delay(30000).ConfigureAwait(false); - - var organize = new EpisodeFileOrganizer(_organizationService, _config, _fileSystem, _logger, _libraryManager, _libraryMonitor, _providerManager); - - var result = await organize.OrganizeEpisodeFile(path, _config.GetAutoOrganizeOptions(), false, CancellationToken.None).ConfigureAwait(false); - - if (result.Status == FileSortingStatus.Success) - { - return; - } - } - catch (Exception ex) - { - _logger.ErrorException("Error processing new recording", ex); - } - } - } - - private void SaveNfo(TimerInfo timer, string recordingPath, string seriesPath) - { - try - { - if (timer.IsProgramSeries) - { - SaveSeriesNfo(timer, recordingPath, seriesPath); - } - else if (!timer.IsMovie || timer.IsSports || timer.IsNews) - { - SaveVideoNfo(timer, recordingPath); - } - } - catch (Exception ex) - { - _logger.ErrorException("Error saving nfo", ex); - } - } - - private void SaveSeriesNfo(TimerInfo timer, string recordingPath, string seriesPath) - { - var nfoPath = Path.Combine(seriesPath, "tvshow.nfo"); - - if (File.Exists(nfoPath)) - { - return; - } - - using (var stream = _fileSystem.GetFileStream(nfoPath, FileMode.Create, FileAccess.Write, FileShare.Read)) - { - var settings = new XmlWriterSettings - { - Indent = true, - Encoding = Encoding.UTF8, - CloseOutput = false - }; - - using (XmlWriter writer = XmlWriter.Create(stream, settings)) - { - writer.WriteStartDocument(true); - writer.WriteStartElement("tvshow"); - - if (!string.IsNullOrWhiteSpace(timer.Name)) - { - writer.WriteElementString("title", timer.Name); - } - - writer.WriteEndElement(); - writer.WriteEndDocument(); - } - } - } - - public const string DateAddedFormat = "yyyy-MM-dd HH:mm:ss"; - private void SaveVideoNfo(TimerInfo timer, string recordingPath) - { - var nfoPath = Path.ChangeExtension(recordingPath, ".nfo"); - - if (File.Exists(nfoPath)) - { - return; - } - - using (var stream = _fileSystem.GetFileStream(nfoPath, FileMode.Create, FileAccess.Write, FileShare.Read)) - { - var settings = new XmlWriterSettings - { - Indent = true, - Encoding = Encoding.UTF8, - CloseOutput = false - }; - - using (XmlWriter writer = XmlWriter.Create(stream, settings)) - { - writer.WriteStartDocument(true); - writer.WriteStartElement("movie"); - - if (!string.IsNullOrWhiteSpace(timer.Name)) - { - writer.WriteElementString("title", timer.Name); - } - - writer.WriteElementString("dateadded", DateTime.UtcNow.ToLocalTime().ToString(DateAddedFormat)); - - if (timer.ProductionYear.HasValue) - { - writer.WriteElementString("year", timer.ProductionYear.Value.ToString(CultureInfo.InvariantCulture)); - } - if (!string.IsNullOrEmpty(timer.OfficialRating)) - { - writer.WriteElementString("mpaa", timer.OfficialRating); - } - - var overview = (timer.Overview ?? string.Empty) - .StripHtml() - .Replace(""", "'"); - - writer.WriteElementString("plot", overview); - writer.WriteElementString("lockdata", true.ToString().ToLower()); - - if (timer.CommunityRating.HasValue) - { - writer.WriteElementString("rating", timer.CommunityRating.Value.ToString(CultureInfo.InvariantCulture)); - } - - if (timer.IsSports) - { - AddGenre(timer.Genres, "Sports"); - } - if (timer.IsKids) - { - AddGenre(timer.Genres, "Kids"); - AddGenre(timer.Genres, "Children"); - } - if (timer.IsNews) - { - AddGenre(timer.Genres, "News"); - } - - foreach (var genre in timer.Genres) - { - writer.WriteElementString("genre", genre); - } - - if (!string.IsNullOrWhiteSpace(timer.ShortOverview)) - { - writer.WriteElementString("outline", timer.ShortOverview); - } - - if (!string.IsNullOrWhiteSpace(timer.HomePageUrl)) - { - writer.WriteElementString("website", timer.HomePageUrl); - } - - writer.WriteEndElement(); - writer.WriteEndDocument(); - } - } - } - - private void AddGenre(List<string> genres, string genre) - { - if (!genres.Contains(genre, StringComparer.OrdinalIgnoreCase)) - { - genres.Add(genre); - } - } - - private ProgramInfo GetProgramInfoFromCache(string channelId, string programId) - { - var epgData = GetEpgDataForChannel(channelId); - return epgData.FirstOrDefault(p => string.Equals(p.Id, programId, StringComparison.OrdinalIgnoreCase)); - } - - private ProgramInfo GetProgramInfoFromCache(string channelId, DateTime startDateUtc) - { - var epgData = GetEpgDataForChannel(channelId); - var startDateTicks = startDateUtc.Ticks; - // Find the first program that starts within 3 minutes - return epgData.FirstOrDefault(p => Math.Abs(startDateTicks - p.StartDate.Ticks) <= TimeSpan.FromMinutes(3).Ticks); - } - - private LiveTvOptions GetConfiguration() - { - return _config.GetConfiguration<LiveTvOptions>("livetv"); - } - - private bool ShouldCancelTimerForSeriesTimer(SeriesTimerInfo seriesTimer, TimerInfo timer) - { - if (!seriesTimer.RecordAnyTime) - { - if (Math.Abs(seriesTimer.StartDate.TimeOfDay.Ticks - timer.StartDate.TimeOfDay.Ticks) >= TimeSpan.FromMinutes(5).Ticks) - { - return true; - } - - if (!seriesTimer.Days.Contains(timer.StartDate.ToLocalTime().DayOfWeek)) - { - return true; - } - } - - if (seriesTimer.RecordNewOnly && timer.IsRepeat) - { - return true; - } - - if (!seriesTimer.RecordAnyChannel && !string.Equals(timer.ChannelId, seriesTimer.ChannelId, StringComparison.OrdinalIgnoreCase)) - { - return true; - } - - return seriesTimer.SkipEpisodesInLibrary && IsProgramAlreadyInLibrary(timer); - } - - private async Task UpdateTimersForSeriesTimer(List<ProgramInfo> epgData, SeriesTimerInfo seriesTimer, bool deleteInvalidTimers) - { - var allTimers = GetTimersForSeries(seriesTimer, epgData) - .ToList(); - - var registration = await _liveTvManager.GetRegistrationInfo("seriesrecordings").ConfigureAwait(false); - - if (registration.IsValid) - { - foreach (var timer in allTimers) - { - var existingTimer = _timerProvider.GetTimer(timer.Id); - - if (existingTimer == null) - { - if (ShouldCancelTimerForSeriesTimer(seriesTimer, timer)) - { - timer.Status = RecordingStatus.Cancelled; - } - _timerProvider.Add(timer); - } - else - { - // Only update if not currently active - ActiveRecordingInfo activeRecordingInfo; - if (!_activeRecordings.TryGetValue(timer.Id, out activeRecordingInfo)) - { - UpdateExistingTimerWithNewMetadata(existingTimer, timer); - - if (ShouldCancelTimerForSeriesTimer(seriesTimer, timer)) - { - existingTimer.Status = RecordingStatus.Cancelled; - } - - existingTimer.SeriesTimerId = seriesTimer.Id; - _timerProvider.Update(existingTimer); - } - } - } - } - - if (deleteInvalidTimers) - { - var allTimerIds = allTimers - .Select(i => i.Id) - .ToList(); - - var deleteStatuses = new List<RecordingStatus> - { - RecordingStatus.New - }; - - var deletes = _timerProvider.GetAll() - .Where(i => string.Equals(i.SeriesTimerId, seriesTimer.Id, StringComparison.OrdinalIgnoreCase)) - .Where(i => !allTimerIds.Contains(i.Id, StringComparer.OrdinalIgnoreCase) && i.StartDate > DateTime.UtcNow) - .Where(i => deleteStatuses.Contains(i.Status)) - .ToList(); - - foreach (var timer in deletes) - { - CancelTimerInternal(timer.Id, false); - } - } - } - - private IEnumerable<TimerInfo> GetTimersForSeries(SeriesTimerInfo seriesTimer, - IEnumerable<ProgramInfo> allPrograms) - { - if (seriesTimer == null) - { - throw new ArgumentNullException("seriesTimer"); - } - if (allPrograms == null) - { - throw new ArgumentNullException("allPrograms"); - } - - // Exclude programs that have already ended - allPrograms = allPrograms.Where(i => i.EndDate > DateTime.UtcNow); - - allPrograms = GetProgramsForSeries(seriesTimer, allPrograms); - - return allPrograms.Select(i => RecordingHelper.CreateTimer(i, seriesTimer)); - } - - private bool IsProgramAlreadyInLibrary(TimerInfo program) - { - if ((program.EpisodeNumber.HasValue && program.SeasonNumber.HasValue) || !string.IsNullOrWhiteSpace(program.EpisodeTitle)) - { - var seriesIds = _libraryManager.GetItemIds(new InternalItemsQuery - { - IncludeItemTypes = new[] { typeof(Series).Name }, - Name = program.Name - - }).Select(i => i.ToString("N")).ToArray(); - - if (seriesIds.Length == 0) - { - return false; - } - - if (program.EpisodeNumber.HasValue && program.SeasonNumber.HasValue) - { - var result = _libraryManager.GetItemsResult(new InternalItemsQuery - { - IncludeItemTypes = new[] { typeof(Episode).Name }, - ParentIndexNumber = program.SeasonNumber.Value, - IndexNumber = program.EpisodeNumber.Value, - AncestorIds = seriesIds, - IsVirtualItem = false - }); - - if (result.TotalRecordCount > 0) - { - return true; - } - } - } - - return false; - } - - private IEnumerable<ProgramInfo> GetProgramsForSeries(SeriesTimerInfo seriesTimer, IEnumerable<ProgramInfo> allPrograms) - { - if (string.IsNullOrWhiteSpace(seriesTimer.SeriesId)) - { - _logger.Error("seriesTimer.SeriesId is null. Cannot find programs for series"); - return new List<ProgramInfo>(); - } - - return allPrograms.Where(i => string.Equals(i.SeriesId, seriesTimer.SeriesId, StringComparison.OrdinalIgnoreCase)); - } - - private string GetChannelEpgCachePath(string channelId) - { - return Path.Combine(_config.CommonApplicationPaths.CachePath, "embytvepg", channelId + ".json"); - } - - private readonly object _epgLock = new object(); - private void SaveEpgDataForChannel(string channelId, List<ProgramInfo> epgData) - { - var path = GetChannelEpgCachePath(channelId); - _fileSystem.CreateDirectory(Path.GetDirectoryName(path)); - lock (_epgLock) - { - _jsonSerializer.SerializeToFile(epgData, path); - } - } - private List<ProgramInfo> GetEpgDataForChannel(string channelId) - { - try - { - lock (_epgLock) - { - return _jsonSerializer.DeserializeFromFile<List<ProgramInfo>>(GetChannelEpgCachePath(channelId)); - } - } - catch - { - return new List<ProgramInfo>(); - } - } - private List<ProgramInfo> GetEpgDataForChannels(List<string> channelIds) - { - return channelIds.SelectMany(GetEpgDataForChannel).ToList(); - } - - private bool _disposed; - public void Dispose() - { - _disposed = true; - foreach (var pair in _activeRecordings.ToList()) - { - pair.Value.CancellationTokenSource.Cancel(); - } - } - - public List<VirtualFolderInfo> GetRecordingFolders() - { - var list = new List<VirtualFolderInfo>(); - - var defaultFolder = RecordingPath; - var defaultName = "Recordings"; - - if (Directory.Exists(defaultFolder)) - { - list.Add(new VirtualFolderInfo - { - Locations = new List<string> { defaultFolder }, - Name = defaultName - }); - } - - var customPath = GetConfiguration().MovieRecordingPath; - if ((!string.IsNullOrWhiteSpace(customPath) && !string.Equals(customPath, defaultFolder, StringComparison.OrdinalIgnoreCase)) && Directory.Exists(customPath)) - { - list.Add(new VirtualFolderInfo - { - Locations = new List<string> { customPath }, - Name = "Recorded Movies", - CollectionType = CollectionType.Movies - }); - } - - customPath = GetConfiguration().SeriesRecordingPath; - if ((!string.IsNullOrWhiteSpace(customPath) && !string.Equals(customPath, defaultFolder, StringComparison.OrdinalIgnoreCase)) && Directory.Exists(customPath)) - { - list.Add(new VirtualFolderInfo - { - Locations = new List<string> { customPath }, - Name = "Recorded Series", - CollectionType = CollectionType.TvShows - }); - } - - return list; - } - - class ActiveRecordingInfo - { - public string Path { get; set; } - public TimerInfo Timer { get; set; } - public ProgramInfo Program { get; set; } - public CancellationTokenSource CancellationTokenSource { get; set; } - } - } -}
\ No newline at end of file diff --git a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EmbyTVRegistration.cs b/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EmbyTVRegistration.cs deleted file mode 100644 index 675fca3258..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EmbyTVRegistration.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Threading.Tasks; -using MediaBrowser.Common.Security; - -namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV -{ - public class EmbyTVRegistration : IRequiresRegistration - { - private readonly ISecurityManager _securityManager; - - public static EmbyTVRegistration Instance; - - public EmbyTVRegistration(ISecurityManager securityManager) - { - _securityManager = securityManager; - Instance = this; - } - - private bool? _isXmlTvEnabled; - - public Task LoadRegistrationInfoAsync() - { - _isXmlTvEnabled = null; - return Task.FromResult(true); - } - - public async Task<bool> EnableXmlTv() - { - if (!_isXmlTvEnabled.HasValue) - { - var info = await _securityManager.GetRegistrationStatus("xmltv").ConfigureAwait(false); - _isXmlTvEnabled = info.IsValid; - } - return _isXmlTvEnabled.Value; - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs b/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs deleted file mode 100644 index cdf8e75974..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs +++ /dev/null @@ -1,325 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Globalization; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading; -using System.Threading.Tasks; -using CommonIO; -using MediaBrowser.Common.IO; -using MediaBrowser.Common.Net; -using MediaBrowser.Controller; -using MediaBrowser.Controller.MediaEncoding; -using MediaBrowser.Model.Dto; -using MediaBrowser.Model.Entities; -using MediaBrowser.Model.LiveTv; -using MediaBrowser.Model.Logging; -using MediaBrowser.Model.Serialization; - -namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV -{ - public class EncodedRecorder : IRecorder - { - private readonly ILogger _logger; - private readonly IFileSystem _fileSystem; - private readonly IHttpClient _httpClient; - private readonly IMediaEncoder _mediaEncoder; - private readonly IServerApplicationPaths _appPaths; - private readonly LiveTvOptions _liveTvOptions; - private bool _hasExited; - private Stream _logFileStream; - private string _targetPath; - private Process _process; - private readonly IJsonSerializer _json; - private readonly TaskCompletionSource<bool> _taskCompletionSource = new TaskCompletionSource<bool>(); - - public EncodedRecorder(ILogger logger, IFileSystem fileSystem, IMediaEncoder mediaEncoder, IServerApplicationPaths appPaths, IJsonSerializer json, LiveTvOptions liveTvOptions, IHttpClient httpClient) - { - _logger = logger; - _fileSystem = fileSystem; - _mediaEncoder = mediaEncoder; - _appPaths = appPaths; - _json = json; - _liveTvOptions = liveTvOptions; - _httpClient = httpClient; - } - - private string OutputFormat - { - get - { - var format = _liveTvOptions.RecordingEncodingFormat; - - if (string.Equals(format, "mkv", StringComparison.OrdinalIgnoreCase) || _liveTvOptions.EnableOriginalVideoWithEncodedRecordings) - { - return "mkv"; - } - - return "mp4"; - } - } - - public string GetOutputPath(MediaSourceInfo mediaSource, string targetFile) - { - return Path.ChangeExtension(targetFile, "." + OutputFormat); - } - - public async Task Record(MediaSourceInfo mediaSource, string targetFile, TimeSpan duration, Action onStarted, CancellationToken cancellationToken) - { - var durationToken = new CancellationTokenSource(duration); - cancellationToken = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, durationToken.Token).Token; - - await RecordFromFile(mediaSource, mediaSource.Path, targetFile, duration, onStarted, cancellationToken).ConfigureAwait(false); - - _logger.Info("Recording completed to file {0}", targetFile); - } - - private Task RecordFromFile(MediaSourceInfo mediaSource, string inputFile, string targetFile, TimeSpan duration, Action onStarted, CancellationToken cancellationToken) - { - _targetPath = targetFile; - _fileSystem.CreateDirectory(Path.GetDirectoryName(targetFile)); - - var process = new Process - { - StartInfo = new ProcessStartInfo - { - CreateNoWindow = true, - UseShellExecute = false, - - // Must consume both stdout and stderr or deadlocks may occur - //RedirectStandardOutput = true, - RedirectStandardError = true, - RedirectStandardInput = true, - - FileName = _mediaEncoder.EncoderPath, - Arguments = GetCommandLineArgs(mediaSource, inputFile, targetFile, duration), - - WindowStyle = ProcessWindowStyle.Hidden, - ErrorDialog = false - }, - - EnableRaisingEvents = true - }; - - _process = process; - - var commandLineLogMessage = process.StartInfo.FileName + " " + process.StartInfo.Arguments; - _logger.Info(commandLineLogMessage); - - var logFilePath = Path.Combine(_appPaths.LogDirectoryPath, "record-transcode-" + Guid.NewGuid() + ".txt"); - _fileSystem.CreateDirectory(Path.GetDirectoryName(logFilePath)); - - // FFMpeg writes debug/error info to stderr. This is useful when debugging so let's put it in the log directory. - _logFileStream = _fileSystem.GetFileStream(logFilePath, FileMode.Create, FileAccess.Write, FileShare.Read, true); - - var commandLineLogMessageBytes = Encoding.UTF8.GetBytes(_json.SerializeToString(mediaSource) + Environment.NewLine + Environment.NewLine + commandLineLogMessage + Environment.NewLine + Environment.NewLine); - _logFileStream.Write(commandLineLogMessageBytes, 0, commandLineLogMessageBytes.Length); - - process.Exited += (sender, args) => OnFfMpegProcessExited(process, inputFile); - - process.Start(); - - cancellationToken.Register(Stop); - - // MUST read both stdout and stderr asynchronously or a deadlock may occurr - //process.BeginOutputReadLine(); - - onStarted(); - - // Important - don't await the log task or we won't be able to kill ffmpeg when the user stops playback - StartStreamingLog(process.StandardError.BaseStream, _logFileStream); - - _logger.Info("ffmpeg recording process started for {0}", _targetPath); - - return _taskCompletionSource.Task; - } - - private string GetCommandLineArgs(MediaSourceInfo mediaSource, string inputTempFile, string targetFile, TimeSpan duration) - { - string videoArgs; - if (EncodeVideo(mediaSource)) - { - var maxBitrate = 25000000; - videoArgs = string.Format( - "-codec:v:0 libx264 -force_key_frames \"expr:gte(t,n_forced*5)\" {0} -pix_fmt yuv420p -preset superfast -crf 23 -b:v {1} -maxrate {1} -bufsize ({1}*2) -vsync -1 -profile:v high -level 41", - GetOutputSizeParam(), - maxBitrate.ToString(CultureInfo.InvariantCulture)); - } - else - { - videoArgs = "-codec:v:0 copy"; - } - - var durationParam = " -t " + _mediaEncoder.GetTimeParameter(duration.Ticks); - var inputModifiers = "-fflags +genpts -async 1 -vsync -1"; - var commandLineArgs = "-i \"{0}\"{4} -sn {2} -map_metadata -1 -threads 0 {3} -y \"{1}\""; - - long startTimeTicks = 0; - //if (mediaSource.DateLiveStreamOpened.HasValue) - //{ - // var elapsed = DateTime.UtcNow - mediaSource.DateLiveStreamOpened.Value; - // elapsed -= TimeSpan.FromSeconds(10); - // if (elapsed.TotalSeconds >= 0) - // { - // startTimeTicks = elapsed.Ticks + startTimeTicks; - // } - //} - - if (mediaSource.ReadAtNativeFramerate) - { - inputModifiers += " -re"; - } - - if (startTimeTicks > 0) - { - inputModifiers = "-ss " + _mediaEncoder.GetTimeParameter(startTimeTicks) + " " + inputModifiers; - } - - commandLineArgs = string.Format(commandLineArgs, inputTempFile, targetFile, videoArgs, GetAudioArgs(mediaSource), durationParam); - - return inputModifiers + " " + commandLineArgs; - } - - private string GetAudioArgs(MediaSourceInfo mediaSource) - { - var mediaStreams = mediaSource.MediaStreams ?? new List<MediaStream>(); - var inputAudioCodec = mediaStreams.Where(i => i.Type == MediaStreamType.Audio).Select(i => i.Codec).FirstOrDefault() ?? string.Empty; - - // do not copy aac because many players have difficulty with aac_latm - if (_liveTvOptions.EnableOriginalAudioWithEncodedRecordings && !string.Equals(inputAudioCodec, "aac", StringComparison.OrdinalIgnoreCase)) - { - return "-codec:a:0 copy"; - } - - var audioChannels = 2; - var audioStream = mediaStreams.FirstOrDefault(i => i.Type == MediaStreamType.Audio); - if (audioStream != null) - { - audioChannels = audioStream.Channels ?? audioChannels; - } - return "-codec:a:0 aac -strict experimental -ab 320000"; - } - - private bool EncodeVideo(MediaSourceInfo mediaSource) - { - if (_liveTvOptions.EnableOriginalAudioWithEncodedRecordings) - { - return false; - } - - var mediaStreams = mediaSource.MediaStreams ?? new List<MediaStream>(); - return !mediaStreams.Any(i => i.Type == MediaStreamType.Video && string.Equals(i.Codec, "h264", StringComparison.OrdinalIgnoreCase) && !i.IsInterlaced); - } - - protected string GetOutputSizeParam() - { - var filters = new List<string>(); - - filters.Add("yadif=0:-1:0"); - - var output = string.Empty; - - if (filters.Count > 0) - { - output += string.Format(" -vf \"{0}\"", string.Join(",", filters.ToArray())); - } - - return output; - } - - private void Stop() - { - if (!_hasExited) - { - try - { - _logger.Info("Killing ffmpeg recording process for {0}", _targetPath); - - //process.Kill(); - _process.StandardInput.WriteLine("q"); - } - catch (Exception ex) - { - _logger.ErrorException("Error killing transcoding job for {0}", ex, _targetPath); - } - } - } - - /// <summary> - /// Processes the exited. - /// </summary> - private void OnFfMpegProcessExited(Process process, string inputFile) - { - _hasExited = true; - - DisposeLogStream(); - - try - { - var exitCode = process.ExitCode; - - _logger.Info("FFMpeg recording exited with code {0} for {1}", exitCode, _targetPath); - - if (exitCode == 0) - { - _taskCompletionSource.TrySetResult(true); - } - else - { - _taskCompletionSource.TrySetException(new Exception(string.Format("Recording for {0} failed. Exit code {1}", _targetPath, exitCode))); - } - } - catch - { - _logger.Error("FFMpeg recording exited with an error for {0}.", _targetPath); - _taskCompletionSource.TrySetException(new Exception(string.Format("Recording for {0} failed", _targetPath))); - } - } - - private void DisposeLogStream() - { - if (_logFileStream != null) - { - try - { - _logFileStream.Dispose(); - } - catch (Exception ex) - { - _logger.ErrorException("Error disposing recording log stream", ex); - } - - _logFileStream = null; - } - } - - private async void StartStreamingLog(Stream source, Stream target) - { - try - { - using (var reader = new StreamReader(source)) - { - while (!reader.EndOfStream) - { - var line = await reader.ReadLineAsync().ConfigureAwait(false); - - var bytes = Encoding.UTF8.GetBytes(Environment.NewLine + line); - - await target.WriteAsync(bytes, 0, bytes.Length).ConfigureAwait(false); - await target.FlushAsync().ConfigureAwait(false); - } - } - } - catch (ObjectDisposedException) - { - // Don't spam the log. This doesn't seem to throw in windows, but sometimes under linux - } - catch (Exception ex) - { - _logger.ErrorException("Error reading ffmpeg recording log", ex); - } - } - } -}
\ No newline at end of file diff --git a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EntryPoint.cs b/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EntryPoint.cs deleted file mode 100644 index 713cb9cd30..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EntryPoint.cs +++ /dev/null @@ -1,16 +0,0 @@ -using MediaBrowser.Controller.Plugins; - -namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV -{ - public class EntryPoint : IServerEntryPoint - { - public void Run() - { - EmbyTV.Current.Start(); - } - - public void Dispose() - { - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/IRecorder.cs b/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/IRecorder.cs deleted file mode 100644 index 5706b6ae9e..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/IRecorder.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using System.Threading; -using System.Threading.Tasks; -using MediaBrowser.Model.Dto; - -namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV -{ - public interface IRecorder - { - /// <summary> - /// Records the specified media source. - /// </summary> - /// <param name="mediaSource">The media source.</param> - /// <param name="targetFile">The target file.</param> - /// <param name="duration">The duration.</param> - /// <param name="onStarted">The on started.</param> - /// <param name="cancellationToken">The cancellation token.</param> - /// <returns>Task.</returns> - Task Record(MediaSourceInfo mediaSource, string targetFile, TimeSpan duration, Action onStarted, CancellationToken cancellationToken); - - string GetOutputPath(MediaSourceInfo mediaSource, string targetFile); - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/ItemDataProvider.cs b/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/ItemDataProvider.cs deleted file mode 100644 index 7fe271bea4..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/ItemDataProvider.cs +++ /dev/null @@ -1,147 +0,0 @@ -using MediaBrowser.Model.Logging; -using MediaBrowser.Model.Serialization; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using CommonIO; - -namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV -{ - public class ItemDataProvider<T> - where T : class - { - private readonly object _fileDataLock = new object(); - private List<T> _items; - private readonly IJsonSerializer _jsonSerializer; - protected readonly ILogger Logger; - private readonly string _dataPath; - protected readonly Func<T, T, bool> EqualityComparer; - private readonly IFileSystem _fileSystem; - - public ItemDataProvider(IFileSystem fileSystem, IJsonSerializer jsonSerializer, ILogger logger, string dataPath, Func<T, T, bool> equalityComparer) - { - Logger = logger; - _dataPath = dataPath; - EqualityComparer = equalityComparer; - _jsonSerializer = jsonSerializer; - _fileSystem = fileSystem; - } - - public IReadOnlyList<T> GetAll() - { - lock (_fileDataLock) - { - if (_items == null) - { - Logger.Info("Loading live tv data from {0}", _dataPath); - _items = GetItemsFromFile(_dataPath); - } - return _items.ToList(); - } - } - - private List<T> GetItemsFromFile(string path) - { - var jsonFile = path + ".json"; - - try - { - return _jsonSerializer.DeserializeFromFile<List<T>>(jsonFile) ?? new List<T>(); - } - catch (FileNotFoundException) - { - } - catch (DirectoryNotFoundException) - { - } - catch (IOException ex) - { - Logger.ErrorException("Error deserializing {0}", ex, jsonFile); - } - catch (Exception ex) - { - Logger.ErrorException("Error deserializing {0}", ex, jsonFile); - } - return new List<T>(); - } - - private void UpdateList(List<T> newList) - { - if (newList == null) - { - throw new ArgumentNullException("newList"); - } - - var file = _dataPath + ".json"; - _fileSystem.CreateDirectory(Path.GetDirectoryName(file)); - - lock (_fileDataLock) - { - _jsonSerializer.SerializeToFile(newList, file); - _items = newList; - } - } - - public virtual void Update(T item) - { - if (item == null) - { - throw new ArgumentNullException("item"); - } - - var list = GetAll().ToList(); - - var index = list.FindIndex(i => EqualityComparer(i, item)); - - if (index == -1) - { - throw new ArgumentException("item not found"); - } - - list[index] = item; - - UpdateList(list); - } - - public virtual void Add(T item) - { - if (item == null) - { - throw new ArgumentNullException("item"); - } - - var list = GetAll().ToList(); - - if (list.Any(i => EqualityComparer(i, item))) - { - throw new ArgumentException("item already exists"); - } - - list.Add(item); - - UpdateList(list); - } - - public void AddOrUpdate(T item) - { - var list = GetAll().ToList(); - - if (!list.Any(i => EqualityComparer(i, item))) - { - Add(item); - } - else - { - Update(item); - } - } - - public virtual void Delete(T item) - { - var list = GetAll().Where(i => !EqualityComparer(i, item)).ToList(); - - UpdateList(list); - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/RecordingHelper.cs b/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/RecordingHelper.cs deleted file mode 100644 index f7b4b3fde6..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/RecordingHelper.cs +++ /dev/null @@ -1,105 +0,0 @@ -using MediaBrowser.Common.Extensions; -using MediaBrowser.Controller.LiveTv; -using System; -using System.Globalization; -using MediaBrowser.Model.LiveTv; - -namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV -{ - internal class RecordingHelper - { - public static DateTime GetStartTime(TimerInfo timer) - { - return timer.StartDate.AddSeconds(-timer.PrePaddingSeconds); - } - - public static TimerInfo CreateTimer(ProgramInfo parent, SeriesTimerInfo seriesTimer) - { - var timer = new TimerInfo(); - - timer.ChannelId = parent.ChannelId; - timer.Id = (seriesTimer.Id + parent.Id).GetMD5().ToString("N"); - timer.StartDate = parent.StartDate; - timer.EndDate = parent.EndDate; - timer.ProgramId = parent.Id; - timer.PrePaddingSeconds = seriesTimer.PrePaddingSeconds; - timer.PostPaddingSeconds = seriesTimer.PostPaddingSeconds; - timer.IsPostPaddingRequired = seriesTimer.IsPostPaddingRequired; - timer.IsPrePaddingRequired = seriesTimer.IsPrePaddingRequired; - timer.KeepUntil = seriesTimer.KeepUntil; - timer.Priority = seriesTimer.Priority; - timer.Name = parent.Name; - timer.Overview = parent.Overview; - timer.SeriesTimerId = seriesTimer.Id; - - CopyProgramInfoToTimerInfo(parent, timer); - - return timer; - } - - public static void CopyProgramInfoToTimerInfo(ProgramInfo programInfo, TimerInfo timerInfo) - { - timerInfo.SeasonNumber = programInfo.SeasonNumber; - timerInfo.EpisodeNumber = programInfo.EpisodeNumber; - timerInfo.IsMovie = programInfo.IsMovie; - timerInfo.IsKids = programInfo.IsKids; - timerInfo.IsNews = programInfo.IsNews; - timerInfo.IsSports = programInfo.IsSports; - timerInfo.ProductionYear = programInfo.ProductionYear; - timerInfo.EpisodeTitle = programInfo.EpisodeTitle; - timerInfo.OriginalAirDate = programInfo.OriginalAirDate; - timerInfo.IsProgramSeries = programInfo.IsSeries; - - timerInfo.HomePageUrl = programInfo.HomePageUrl; - timerInfo.CommunityRating = programInfo.CommunityRating; - timerInfo.ShortOverview = programInfo.ShortOverview; - timerInfo.OfficialRating = programInfo.OfficialRating; - timerInfo.IsRepeat = programInfo.IsRepeat; - } - - public static string GetRecordingName(TimerInfo info) - { - var name = info.Name; - - if (info.IsProgramSeries) - { - var addHyphen = true; - - if (info.SeasonNumber.HasValue && info.EpisodeNumber.HasValue) - { - name += string.Format(" S{0}E{1}", info.SeasonNumber.Value.ToString("00", CultureInfo.InvariantCulture), info.EpisodeNumber.Value.ToString("00", CultureInfo.InvariantCulture)); - addHyphen = false; - } - else if (info.OriginalAirDate.HasValue) - { - name += " " + info.OriginalAirDate.Value.ToString("yyyy-MM-dd"); - } - else - { - name += " " + DateTime.Now.ToString("yyyy-MM-dd"); - } - - if (!string.IsNullOrWhiteSpace(info.EpisodeTitle)) - { - if (addHyphen) - { - name += " -"; - } - - name += " " + info.EpisodeTitle; - } - } - - else if (info.IsMovie && info.ProductionYear != null) - { - name += " (" + info.ProductionYear + ")"; - } - else - { - name += " " + info.StartDate.ToString("yyyy-MM-dd") + " " + info.Id; - } - - return name; - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/SeriesTimerManager.cs b/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/SeriesTimerManager.cs deleted file mode 100644 index 40e532c4e6..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/SeriesTimerManager.cs +++ /dev/null @@ -1,26 +0,0 @@ -using MediaBrowser.Controller.LiveTv; -using MediaBrowser.Model.Logging; -using MediaBrowser.Model.Serialization; -using System; -using CommonIO; - -namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV -{ - public class SeriesTimerManager : ItemDataProvider<SeriesTimerInfo> - { - public SeriesTimerManager(IFileSystem fileSystem, IJsonSerializer jsonSerializer, ILogger logger, string dataPath) - : base(fileSystem, jsonSerializer, logger, dataPath, (r1, r2) => string.Equals(r1.Id, r2.Id, StringComparison.OrdinalIgnoreCase)) - { - } - - public override void Add(SeriesTimerInfo item) - { - if (string.IsNullOrWhiteSpace(item.Id)) - { - throw new ArgumentException("SeriesTimerInfo.Id cannot be null or empty."); - } - - base.Add(item); - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/TimerManager.cs b/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/TimerManager.cs deleted file mode 100644 index bddce04201..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/TimerManager.cs +++ /dev/null @@ -1,165 +0,0 @@ -using MediaBrowser.Common.Events; -using MediaBrowser.Controller.LiveTv; -using MediaBrowser.Model.Events; -using MediaBrowser.Model.Logging; -using MediaBrowser.Model.Serialization; -using System; -using System.Collections.Concurrent; -using System.Globalization; -using System.Linq; -using System.Threading; -using CommonIO; -using MediaBrowser.Model.LiveTv; - -namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV -{ - public class TimerManager : ItemDataProvider<TimerInfo> - { - private readonly ConcurrentDictionary<string, Timer> _timers = new ConcurrentDictionary<string, Timer>(StringComparer.OrdinalIgnoreCase); - private readonly ILogger _logger; - - public event EventHandler<GenericEventArgs<TimerInfo>> TimerFired; - - public TimerManager(IFileSystem fileSystem, IJsonSerializer jsonSerializer, ILogger logger, string dataPath, ILogger logger1) - : base(fileSystem, jsonSerializer, logger, dataPath, (r1, r2) => string.Equals(r1.Id, r2.Id, StringComparison.OrdinalIgnoreCase)) - { - _logger = logger1; - } - - public void RestartTimers() - { - StopTimers(); - - foreach (var item in GetAll().ToList()) - { - AddOrUpdateSystemTimer(item); - } - } - - public void StopTimers() - { - foreach (var pair in _timers.ToList()) - { - pair.Value.Dispose(); - } - - _timers.Clear(); - } - - public override void Delete(TimerInfo item) - { - base.Delete(item); - StopTimer(item); - } - - public override void Update(TimerInfo item) - { - base.Update(item); - AddOrUpdateSystemTimer(item); - } - - public void AddOrUpdate(TimerInfo item, bool resetTimer) - { - if (resetTimer) - { - AddOrUpdate(item); - return; - } - - var list = GetAll().ToList(); - - if (!list.Any(i => EqualityComparer(i, item))) - { - base.Add(item); - } - else - { - base.Update(item); - } - } - - public override void Add(TimerInfo item) - { - if (string.IsNullOrWhiteSpace(item.Id)) - { - throw new ArgumentException("TimerInfo.Id cannot be null or empty."); - } - - base.Add(item); - AddOrUpdateSystemTimer(item); - } - - private bool ShouldStartTimer(TimerInfo item) - { - if (item.Status == RecordingStatus.Completed || - item.Status == RecordingStatus.Cancelled) - { - return false; - } - - return true; - } - - private void AddOrUpdateSystemTimer(TimerInfo item) - { - StopTimer(item); - - if (!ShouldStartTimer(item)) - { - return; - } - - var startDate = RecordingHelper.GetStartTime(item); - var now = DateTime.UtcNow; - - if (startDate < now) - { - EventHelper.FireEventIfNotNull(TimerFired, this, new GenericEventArgs<TimerInfo> { Argument = item }, Logger); - return; - } - - var dueTime = startDate - now; - StartTimer(item, dueTime); - } - - private void StartTimer(TimerInfo item, TimeSpan dueTime) - { - var timer = new Timer(TimerCallback, item.Id, dueTime, TimeSpan.Zero); - - if (_timers.TryAdd(item.Id, timer)) - { - _logger.Info("Creating recording timer for {0}, {1}. Timer will fire in {2} minutes", item.Id, item.Name, dueTime.TotalMinutes.ToString(CultureInfo.InvariantCulture)); - } - else - { - timer.Dispose(); - _logger.Warn("Timer already exists for item {0}", item.Id); - } - } - - private void StopTimer(TimerInfo item) - { - Timer timer; - if (_timers.TryRemove(item.Id, out timer)) - { - timer.Dispose(); - } - } - - private void TimerCallback(object state) - { - var timerId = (string)state; - - var timer = GetAll().FirstOrDefault(i => string.Equals(i.Id, timerId, StringComparison.OrdinalIgnoreCase)); - if (timer != null) - { - EventHelper.FireEventIfNotNull(TimerFired, this, new GenericEventArgs<TimerInfo> { Argument = timer }, Logger); - } - } - - public TimerInfo GetTimer(string id) - { - return GetAll().FirstOrDefault(r => string.Equals(r.Id, id, StringComparison.OrdinalIgnoreCase)); - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/Listings/XmlTvListingsProvider.cs b/MediaBrowser.Server.Implementations/LiveTv/Listings/XmlTvListingsProvider.cs deleted file mode 100644 index d3549aef55..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/Listings/XmlTvListingsProvider.cs +++ /dev/null @@ -1,233 +0,0 @@ -using MediaBrowser.Controller.LiveTv; -using MediaBrowser.Model.Dto; -using MediaBrowser.Model.LiveTv; -using System; -using System.Collections.Generic; -using System.Globalization; -using System.IO; -using System.Linq; -using System.Net; -using System.Text; -using System.Threading; -using System.Threading.Tasks; -using Emby.XmlTv.Classes; -using Emby.XmlTv.Entities; -using MediaBrowser.Common.Extensions; -using MediaBrowser.Common.Net; -using MediaBrowser.Controller.Configuration; -using MediaBrowser.Model.Logging; - -namespace MediaBrowser.Server.Implementations.LiveTv.Listings -{ - public class XmlTvListingsProvider : IListingsProvider - { - private readonly IServerConfigurationManager _config; - private readonly IHttpClient _httpClient; - private readonly ILogger _logger; - - public XmlTvListingsProvider(IServerConfigurationManager config, IHttpClient httpClient, ILogger logger) - { - _config = config; - _httpClient = httpClient; - _logger = logger; - } - - public string Name - { - get { return "XmlTV"; } - } - - public string Type - { - get { return "xmltv"; } - } - - private string GetLanguage() - { - return _config.Configuration.PreferredMetadataLanguage; - } - - private async Task<string> GetXml(string path, CancellationToken cancellationToken) - { - _logger.Info("xmltv path: {0}", path); - - if (!path.StartsWith("http", StringComparison.OrdinalIgnoreCase)) - { - return path; - } - - var cacheFilename = DateTime.UtcNow.DayOfYear.ToString(CultureInfo.InvariantCulture) + "-" + DateTime.UtcNow.Hour.ToString(CultureInfo.InvariantCulture) + ".xml"; - var cacheFile = Path.Combine(_config.ApplicationPaths.CachePath, "xmltv", cacheFilename); - if (File.Exists(cacheFile)) - { - return cacheFile; - } - - _logger.Info("Downloading xmltv listings from {0}", path); - - var tempFile = await _httpClient.GetTempFile(new HttpRequestOptions - { - CancellationToken = cancellationToken, - Url = path, - Progress = new Progress<Double>(), - DecompressionMethod = DecompressionMethods.GZip, - - // It's going to come back gzipped regardless of this value - // So we need to make sure the decompression method is set to gzip - EnableHttpCompression = true - - }).ConfigureAwait(false); - - Directory.CreateDirectory(Path.GetDirectoryName(cacheFile)); - - using (var stream = File.OpenRead(tempFile)) - { - using (var reader = new StreamReader(stream, Encoding.UTF8)) - { - using (var fileStream = File.OpenWrite(cacheFile)) - { - using (var writer = new StreamWriter(fileStream)) - { - while (!reader.EndOfStream) - { - writer.WriteLine(reader.ReadLine()); - } - } - } - } - } - - _logger.Debug("Returning xmltv path {0}", cacheFile); - return cacheFile; - } - - public async Task<IEnumerable<ProgramInfo>> GetProgramsAsync(ListingsProviderInfo info, string channelNumber, string channelName, DateTime startDateUtc, DateTime endDateUtc, CancellationToken cancellationToken) - { - if (!await EmbyTV.EmbyTVRegistration.Instance.EnableXmlTv().ConfigureAwait(false)) - { - var length = endDateUtc - startDateUtc; - if (length.TotalDays > 1) - { - endDateUtc = startDateUtc.AddDays(1); - } - } - - var path = await GetXml(info.Path, cancellationToken).ConfigureAwait(false); - var reader = new XmlTvReader(path, GetLanguage(), null); - - var results = reader.GetProgrammes(channelNumber, startDateUtc, endDateUtc, cancellationToken); - return results.Select(p => GetProgramInfo(p, info)); - } - - private ProgramInfo GetProgramInfo(XmlTvProgram p, ListingsProviderInfo info) - { - var programInfo = new ProgramInfo - { - ChannelId = p.ChannelId, - EndDate = GetDate(p.EndDate), - EpisodeNumber = p.Episode == null ? null : p.Episode.Episode, - EpisodeTitle = p.Episode == null ? null : p.Episode.Title, - Genres = p.Categories, - Id = String.Format("{0}_{1:O}", p.ChannelId, p.StartDate), // Construct an id from the channel and start date, - StartDate = GetDate(p.StartDate), - Name = p.Title, - Overview = p.Description, - ShortOverview = p.Description, - ProductionYear = !p.CopyrightDate.HasValue ? (int?)null : p.CopyrightDate.Value.Year, - SeasonNumber = p.Episode == null ? null : p.Episode.Series, - IsSeries = p.Episode != null, - IsRepeat = p.IsRepeat, - IsPremiere = p.Premiere != null, - IsKids = p.Categories.Any(c => info.KidsCategories.Contains(c, StringComparer.InvariantCultureIgnoreCase)), - IsMovie = p.Categories.Any(c => info.MovieCategories.Contains(c, StringComparer.InvariantCultureIgnoreCase)), - IsNews = p.Categories.Any(c => info.NewsCategories.Contains(c, StringComparer.InvariantCultureIgnoreCase)), - IsSports = p.Categories.Any(c => info.SportsCategories.Contains(c, StringComparer.InvariantCultureIgnoreCase)), - ImageUrl = p.Icon != null && !String.IsNullOrEmpty(p.Icon.Source) ? p.Icon.Source : null, - HasImage = p.Icon != null && !String.IsNullOrEmpty(p.Icon.Source), - OfficialRating = p.Rating != null && !String.IsNullOrEmpty(p.Rating.Value) ? p.Rating.Value : null, - CommunityRating = p.StarRating.HasValue ? p.StarRating.Value : (float?)null, - SeriesId = p.Episode != null ? p.Title.GetMD5().ToString("N") : null - }; - - if (programInfo.IsMovie) - { - programInfo.IsSeries = false; - programInfo.EpisodeNumber = null; - programInfo.EpisodeTitle = null; - } - - return programInfo; - } - - private DateTime GetDate(DateTime date) - { - if (date.Kind != DateTimeKind.Utc) - { - date = DateTime.SpecifyKind(date, DateTimeKind.Utc); - } - return date; - } - - public async Task AddMetadata(ListingsProviderInfo info, List<ChannelInfo> channels, CancellationToken cancellationToken) - { - // Add the channel image url - var path = await GetXml(info.Path, cancellationToken).ConfigureAwait(false); - var reader = new XmlTvReader(path, GetLanguage(), null); - var results = reader.GetChannels().ToList(); - - if (channels != null) - { - channels.ForEach(c => - { - var channelNumber = info.GetMappedChannel(c.Number); - var match = results.FirstOrDefault(r => string.Equals(r.Id, channelNumber, StringComparison.OrdinalIgnoreCase)); - - if (match != null && match.Icon != null && !String.IsNullOrEmpty(match.Icon.Source)) - { - c.ImageUrl = match.Icon.Source; - } - }); - } - } - - public Task Validate(ListingsProviderInfo info, bool validateLogin, bool validateListings) - { - // Assume all urls are valid. check files for existence - if (!info.Path.StartsWith("http", StringComparison.OrdinalIgnoreCase) && !File.Exists(info.Path)) - { - throw new FileNotFoundException("Could not find the XmlTv file specified:", info.Path); - } - - return Task.FromResult(true); - } - - public async Task<List<NameIdPair>> GetLineups(ListingsProviderInfo info, string country, string location) - { - // In theory this should never be called because there is always only one lineup - var path = await GetXml(info.Path, CancellationToken.None).ConfigureAwait(false); - var reader = new XmlTvReader(path, GetLanguage(), null); - var results = reader.GetChannels(); - - // Should this method be async? - return results.Select(c => new NameIdPair() { Id = c.Id, Name = c.DisplayName }).ToList(); - } - - public async Task<List<ChannelInfo>> GetChannels(ListingsProviderInfo info, CancellationToken cancellationToken) - { - // In theory this should never be called because there is always only one lineup - var path = await GetXml(info.Path, cancellationToken).ConfigureAwait(false); - var reader = new XmlTvReader(path, GetLanguage(), null); - var results = reader.GetChannels(); - - // Should this method be async? - return results.Select(c => new ChannelInfo() - { - Id = c.Id, - Name = c.DisplayName, - ImageUrl = c.Icon != null && !String.IsNullOrEmpty(c.Icon.Source) ? c.Icon.Source : null, - Number = c.Id - - }).ToList(); - } - } -}
\ No newline at end of file diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveStreamHelper.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveStreamHelper.cs deleted file mode 100644 index 336c32baef..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/LiveStreamHelper.cs +++ /dev/null @@ -1,110 +0,0 @@ -using System; -using System.Globalization; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; -using MediaBrowser.Controller.MediaEncoding; -using MediaBrowser.Model.Dlna; -using MediaBrowser.Model.Dto; -using MediaBrowser.Model.Logging; - -namespace MediaBrowser.Server.Implementations.LiveTv -{ - public class LiveStreamHelper - { - private readonly IMediaEncoder _mediaEncoder; - private readonly ILogger _logger; - - public LiveStreamHelper(IMediaEncoder mediaEncoder, ILogger logger) - { - _mediaEncoder = mediaEncoder; - _logger = logger; - } - - public async Task AddMediaInfoWithProbe(MediaSourceInfo mediaSource, bool isAudio, CancellationToken cancellationToken) - { - var originalRuntime = mediaSource.RunTimeTicks; - - var now = DateTime.UtcNow; - - var info = await _mediaEncoder.GetMediaInfo(new MediaInfoRequest - { - InputPath = mediaSource.Path, - Protocol = mediaSource.Protocol, - MediaType = isAudio ? DlnaProfileType.Audio : DlnaProfileType.Video, - ExtractChapters = false, - AnalyzeDurationSections = 2 - - }, cancellationToken).ConfigureAwait(false); - - _logger.Info("Live tv media info probe took {0} seconds", (DateTime.UtcNow - now).TotalSeconds.ToString(CultureInfo.InvariantCulture)); - - mediaSource.Bitrate = info.Bitrate; - mediaSource.Container = info.Container; - mediaSource.Formats = info.Formats; - mediaSource.MediaStreams = info.MediaStreams; - mediaSource.RunTimeTicks = info.RunTimeTicks; - mediaSource.Size = info.Size; - mediaSource.Timestamp = info.Timestamp; - mediaSource.Video3DFormat = info.Video3DFormat; - mediaSource.VideoType = info.VideoType; - - mediaSource.DefaultSubtitleStreamIndex = null; - - // Null this out so that it will be treated like a live stream - if (!originalRuntime.HasValue) - { - mediaSource.RunTimeTicks = null; - } - - var audioStream = mediaSource.MediaStreams.FirstOrDefault(i => i.Type == Model.Entities.MediaStreamType.Audio); - - if (audioStream == null || audioStream.Index == -1) - { - mediaSource.DefaultAudioStreamIndex = null; - } - else - { - mediaSource.DefaultAudioStreamIndex = audioStream.Index; - } - - var videoStream = mediaSource.MediaStreams.FirstOrDefault(i => i.Type == Model.Entities.MediaStreamType.Video); - if (videoStream != null) - { - if (!videoStream.BitRate.HasValue) - { - var width = videoStream.Width ?? 1920; - - if (width >= 1900) - { - videoStream.BitRate = 8000000; - } - - else if (width >= 1260) - { - videoStream.BitRate = 3000000; - } - - else if (width >= 700) - { - videoStream.BitRate = 1000000; - } - } - - // This is coming up false and preventing stream copy - videoStream.IsAVC = null; - } - - // Try to estimate this - if (!mediaSource.Bitrate.HasValue) - { - var total = mediaSource.MediaStreams.Select(i => i.BitRate ?? 0).Sum(); - - if (total > 0) - { - mediaSource.Bitrate = total; - } - } - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvConfigurationFactory.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvConfigurationFactory.cs deleted file mode 100644 index 57d1d79e16..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvConfigurationFactory.cs +++ /dev/null @@ -1,21 +0,0 @@ -using MediaBrowser.Common.Configuration; -using MediaBrowser.Model.LiveTv; -using System.Collections.Generic; - -namespace MediaBrowser.Server.Implementations.LiveTv -{ - public class LiveTvConfigurationFactory : IConfigurationFactory - { - public IEnumerable<ConfigurationStore> GetConfigurations() - { - return new List<ConfigurationStore> - { - new ConfigurationStore - { - ConfigurationType = typeof(LiveTvOptions), - Key = "livetv" - } - }; - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvDtoService.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvDtoService.cs deleted file mode 100644 index c7a2d295d9..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvDtoService.cs +++ /dev/null @@ -1,390 +0,0 @@ -using MediaBrowser.Common; -using MediaBrowser.Common.Extensions; -using MediaBrowser.Controller.Drawing; -using MediaBrowser.Controller.Dto; -using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.Library; -using MediaBrowser.Controller.LiveTv; -using MediaBrowser.Model.Entities; -using MediaBrowser.Model.LiveTv; -using MediaBrowser.Model.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; - -namespace MediaBrowser.Server.Implementations.LiveTv -{ - public class LiveTvDtoService - { - private readonly ILogger _logger; - private readonly IImageProcessor _imageProcessor; - - private readonly IUserDataManager _userDataManager; - private readonly IDtoService _dtoService; - private readonly IApplicationHost _appHost; - private readonly ILibraryManager _libraryManager; - - public LiveTvDtoService(IDtoService dtoService, IUserDataManager userDataManager, IImageProcessor imageProcessor, ILogger logger, IApplicationHost appHost, ILibraryManager libraryManager) - { - _dtoService = dtoService; - _userDataManager = userDataManager; - _imageProcessor = imageProcessor; - _logger = logger; - _appHost = appHost; - _libraryManager = libraryManager; - } - - public TimerInfoDto GetTimerInfoDto(TimerInfo info, ILiveTvService service, LiveTvProgram program, LiveTvChannel channel) - { - var dto = new TimerInfoDto - { - Id = GetInternalTimerId(service.Name, info.Id).ToString("N"), - Overview = info.Overview, - EndDate = info.EndDate, - Name = info.Name, - StartDate = info.StartDate, - ExternalId = info.Id, - ChannelId = GetInternalChannelId(service.Name, info.ChannelId).ToString("N"), - Status = info.Status, - SeriesTimerId = string.IsNullOrEmpty(info.SeriesTimerId) ? null : GetInternalSeriesTimerId(service.Name, info.SeriesTimerId).ToString("N"), - PrePaddingSeconds = info.PrePaddingSeconds, - PostPaddingSeconds = info.PostPaddingSeconds, - IsPostPaddingRequired = info.IsPostPaddingRequired, - IsPrePaddingRequired = info.IsPrePaddingRequired, - KeepUntil = info.KeepUntil, - ExternalChannelId = info.ChannelId, - ExternalSeriesTimerId = info.SeriesTimerId, - ServiceName = service.Name, - ExternalProgramId = info.ProgramId, - Priority = info.Priority, - RunTimeTicks = (info.EndDate - info.StartDate).Ticks, - ServerId = _appHost.SystemId - }; - - if (!string.IsNullOrEmpty(info.ProgramId)) - { - dto.ProgramId = GetInternalProgramId(service.Name, info.ProgramId).ToString("N"); - } - - if (program != null) - { - dto.ProgramInfo = _dtoService.GetBaseItemDto(program, new DtoOptions()); - - if (info.Status != RecordingStatus.Cancelled && info.Status != RecordingStatus.Error) - { - dto.ProgramInfo.TimerId = dto.Id; - dto.ProgramInfo.Status = info.Status.ToString(); - } - - dto.ProgramInfo.SeriesTimerId = dto.SeriesTimerId; - } - - if (channel != null) - { - dto.ChannelName = channel.Name; - } - - return dto; - } - - public SeriesTimerInfoDto GetSeriesTimerInfoDto(SeriesTimerInfo info, ILiveTvService service, string channelName) - { - var dto = new SeriesTimerInfoDto - { - Id = GetInternalSeriesTimerId(service.Name, info.Id).ToString("N"), - Overview = info.Overview, - EndDate = info.EndDate, - Name = info.Name, - StartDate = info.StartDate, - ExternalId = info.Id, - PrePaddingSeconds = info.PrePaddingSeconds, - PostPaddingSeconds = info.PostPaddingSeconds, - IsPostPaddingRequired = info.IsPostPaddingRequired, - IsPrePaddingRequired = info.IsPrePaddingRequired, - Days = info.Days, - Priority = info.Priority, - RecordAnyChannel = info.RecordAnyChannel, - RecordAnyTime = info.RecordAnyTime, - SkipEpisodesInLibrary = info.SkipEpisodesInLibrary, - KeepUpTo = info.KeepUpTo, - KeepUntil = info.KeepUntil, - RecordNewOnly = info.RecordNewOnly, - ExternalChannelId = info.ChannelId, - ExternalProgramId = info.ProgramId, - ServiceName = service.Name, - ChannelName = channelName, - ServerId = _appHost.SystemId - }; - - if (!string.IsNullOrEmpty(info.ChannelId)) - { - dto.ChannelId = GetInternalChannelId(service.Name, info.ChannelId).ToString("N"); - } - - if (!string.IsNullOrEmpty(info.ProgramId)) - { - dto.ProgramId = GetInternalProgramId(service.Name, info.ProgramId).ToString("N"); - } - - dto.DayPattern = info.Days == null ? null : GetDayPattern(info.Days); - - if (!string.IsNullOrWhiteSpace(info.SeriesId)) - { - var program = _libraryManager.GetItemList(new InternalItemsQuery - { - IncludeItemTypes = new string[] { typeof(LiveTvProgram).Name }, - ExternalSeriesId = info.SeriesId, - Limit = 1, - ImageTypes = new ImageType[] { ImageType.Primary } - - }).FirstOrDefault(); - - if (program != null) - { - var image = program.GetImageInfo(ImageType.Primary, 0); - if (image != null) - { - try - { - dto.ParentPrimaryImageTag = _imageProcessor.GetImageCacheTag(program, image); - dto.ParentPrimaryImageItemId = program.Id.ToString("N"); - } - catch (Exception ex) - { - } - } - } - } - - return dto; - } - - public DayPattern? GetDayPattern(List<DayOfWeek> days) - { - DayPattern? pattern = null; - - if (days.Count > 0) - { - if (days.Count == 7) - { - pattern = DayPattern.Daily; - } - else if (days.Count == 2) - { - if (days.Contains(DayOfWeek.Saturday) && days.Contains(DayOfWeek.Sunday)) - { - pattern = DayPattern.Weekends; - } - } - else if (days.Count == 5) - { - if (days.Contains(DayOfWeek.Monday) && days.Contains(DayOfWeek.Tuesday) && days.Contains(DayOfWeek.Wednesday) && days.Contains(DayOfWeek.Thursday) && days.Contains(DayOfWeek.Friday)) - { - pattern = DayPattern.Weekdays; - } - } - } - - return pattern; - } - - public LiveTvTunerInfoDto GetTunerInfoDto(string serviceName, LiveTvTunerInfo info, string channelName) - { - var dto = new LiveTvTunerInfoDto - { - Name = info.Name, - Id = info.Id, - Clients = info.Clients, - ProgramName = info.ProgramName, - SourceType = info.SourceType, - Status = info.Status, - ChannelName = channelName, - Url = info.Url, - CanReset = info.CanReset - }; - - if (!string.IsNullOrEmpty(info.ChannelId)) - { - dto.ChannelId = GetInternalChannelId(serviceName, info.ChannelId).ToString("N"); - } - - if (!string.IsNullOrEmpty(info.RecordingId)) - { - dto.RecordingId = GetInternalRecordingId(serviceName, info.RecordingId).ToString("N"); - } - - return dto; - } - - internal string GetImageTag(IHasImages info) - { - try - { - return _imageProcessor.GetImageCacheTag(info, ImageType.Primary); - } - catch (Exception ex) - { - _logger.ErrorException("Error getting image info for {0}", ex, info.Name); - } - - return null; - } - - private const string InternalVersionNumber = "4"; - - public Guid GetInternalChannelId(string serviceName, string externalId) - { - var name = serviceName + externalId + InternalVersionNumber; - - return _libraryManager.GetNewItemId(name.ToLower(), typeof(LiveTvChannel)); - } - - public Guid GetInternalTimerId(string serviceName, string externalId) - { - var name = serviceName + externalId + InternalVersionNumber; - - return name.ToLower().GetMD5(); - } - - public Guid GetInternalSeriesTimerId(string serviceName, string externalId) - { - var name = serviceName + externalId + InternalVersionNumber; - - return name.ToLower().GetMD5(); - } - - public Guid GetInternalProgramId(string serviceName, string externalId) - { - var name = serviceName + externalId + InternalVersionNumber; - - return _libraryManager.GetNewItemId(name.ToLower(), typeof(LiveTvProgram)); - } - - public Guid GetInternalRecordingId(string serviceName, string externalId) - { - var name = serviceName + externalId + InternalVersionNumber + "0"; - - return _libraryManager.GetNewItemId(name.ToLower(), typeof(ILiveTvRecording)); - } - - public async Task<TimerInfo> GetTimerInfo(TimerInfoDto dto, bool isNew, LiveTvManager liveTv, CancellationToken cancellationToken) - { - var info = new TimerInfo - { - Overview = dto.Overview, - EndDate = dto.EndDate, - Name = dto.Name, - StartDate = dto.StartDate, - Status = dto.Status, - PrePaddingSeconds = dto.PrePaddingSeconds, - PostPaddingSeconds = dto.PostPaddingSeconds, - IsPostPaddingRequired = dto.IsPostPaddingRequired, - IsPrePaddingRequired = dto.IsPrePaddingRequired, - KeepUntil = dto.KeepUntil, - Priority = dto.Priority, - SeriesTimerId = dto.ExternalSeriesTimerId, - ProgramId = dto.ExternalProgramId, - ChannelId = dto.ExternalChannelId, - Id = dto.ExternalId - }; - - // Convert internal server id's to external tv provider id's - if (!isNew && !string.IsNullOrEmpty(dto.Id) && string.IsNullOrEmpty(info.Id)) - { - var timer = await liveTv.GetSeriesTimer(dto.Id, cancellationToken).ConfigureAwait(false); - - info.Id = timer.ExternalId; - } - - if (!string.IsNullOrEmpty(dto.ChannelId) && string.IsNullOrEmpty(info.ChannelId)) - { - var channel = liveTv.GetInternalChannel(dto.ChannelId); - - if (channel != null) - { - info.ChannelId = channel.ExternalId; - } - } - - if (!string.IsNullOrEmpty(dto.ProgramId) && string.IsNullOrEmpty(info.ProgramId)) - { - var program = liveTv.GetInternalProgram(dto.ProgramId); - - if (program != null) - { - info.ProgramId = program.ExternalId; - } - } - - if (!string.IsNullOrEmpty(dto.SeriesTimerId) && string.IsNullOrEmpty(info.SeriesTimerId)) - { - var timer = await liveTv.GetSeriesTimer(dto.SeriesTimerId, cancellationToken).ConfigureAwait(false); - - if (timer != null) - { - info.SeriesTimerId = timer.ExternalId; - } - } - - return info; - } - - public async Task<SeriesTimerInfo> GetSeriesTimerInfo(SeriesTimerInfoDto dto, bool isNew, LiveTvManager liveTv, CancellationToken cancellationToken) - { - var info = new SeriesTimerInfo - { - Overview = dto.Overview, - EndDate = dto.EndDate, - Name = dto.Name, - StartDate = dto.StartDate, - PrePaddingSeconds = dto.PrePaddingSeconds, - PostPaddingSeconds = dto.PostPaddingSeconds, - IsPostPaddingRequired = dto.IsPostPaddingRequired, - IsPrePaddingRequired = dto.IsPrePaddingRequired, - Days = dto.Days, - Priority = dto.Priority, - RecordAnyChannel = dto.RecordAnyChannel, - RecordAnyTime = dto.RecordAnyTime, - SkipEpisodesInLibrary = dto.SkipEpisodesInLibrary, - KeepUpTo = dto.KeepUpTo, - KeepUntil = dto.KeepUntil, - RecordNewOnly = dto.RecordNewOnly, - ProgramId = dto.ExternalProgramId, - ChannelId = dto.ExternalChannelId, - Id = dto.ExternalId - }; - - // Convert internal server id's to external tv provider id's - if (!isNew && !string.IsNullOrEmpty(dto.Id) && string.IsNullOrEmpty(info.Id)) - { - var timer = await liveTv.GetSeriesTimer(dto.Id, cancellationToken).ConfigureAwait(false); - - info.Id = timer.ExternalId; - } - - if (!string.IsNullOrEmpty(dto.ChannelId) && string.IsNullOrEmpty(info.ChannelId)) - { - var channel = liveTv.GetInternalChannel(dto.ChannelId); - - if (channel != null) - { - info.ChannelId = channel.ExternalId; - } - } - - if (!string.IsNullOrEmpty(dto.ProgramId) && string.IsNullOrEmpty(info.ProgramId)) - { - var program = liveTv.GetInternalProgram(dto.ProgramId); - - if (program != null) - { - info.ProgramId = program.ExternalId; - } - } - - return info; - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs deleted file mode 100644 index 902afb2003..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs +++ /dev/null @@ -1,3010 +0,0 @@ -using MediaBrowser.Common; -using MediaBrowser.Common.Configuration; -using MediaBrowser.Common.Extensions; -using MediaBrowser.Common.Progress; -using MediaBrowser.Common.ScheduledTasks; -using MediaBrowser.Controller.Configuration; -using MediaBrowser.Controller.Drawing; -using MediaBrowser.Controller.Dto; -using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.Library; -using MediaBrowser.Controller.LiveTv; -using MediaBrowser.Controller.Localization; -using MediaBrowser.Controller.Persistence; -using MediaBrowser.Controller.Providers; -using MediaBrowser.Controller.Sorting; -using MediaBrowser.Model.Dto; -using MediaBrowser.Model.Entities; -using MediaBrowser.Model.LiveTv; -using MediaBrowser.Model.Logging; -using MediaBrowser.Model.Querying; -using MediaBrowser.Model.Serialization; -using MoreLinq; -using System; -using System.Collections.Concurrent; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; -using CommonIO; -using IniParser; -using IniParser.Model; -using MediaBrowser.Common.Events; -using MediaBrowser.Common.Security; -using MediaBrowser.Controller.Entities.Movies; -using MediaBrowser.Controller.Entities.TV; -using MediaBrowser.Model.Events; -using MediaBrowser.Server.Implementations.LiveTv.Listings; - -namespace MediaBrowser.Server.Implementations.LiveTv -{ - /// <summary> - /// Class LiveTvManager - /// </summary> - public class LiveTvManager : ILiveTvManager, IDisposable - { - private readonly IServerConfigurationManager _config; - private readonly ILogger _logger; - private readonly IItemRepository _itemRepo; - private readonly IUserManager _userManager; - private readonly IUserDataManager _userDataManager; - private readonly ILibraryManager _libraryManager; - private readonly ITaskManager _taskManager; - private readonly IJsonSerializer _jsonSerializer; - private readonly IProviderManager _providerManager; - private readonly ISecurityManager _security; - - private readonly IDtoService _dtoService; - private readonly ILocalizationManager _localization; - - private readonly LiveTvDtoService _tvDtoService; - - private readonly List<ILiveTvService> _services = new List<ILiveTvService>(); - - private readonly SemaphoreSlim _refreshRecordingsLock = new SemaphoreSlim(1, 1); - - private readonly List<ITunerHost> _tunerHosts = new List<ITunerHost>(); - private readonly List<IListingsProvider> _listingProviders = new List<IListingsProvider>(); - private readonly IFileSystem _fileSystem; - - public event EventHandler<GenericEventArgs<TimerEventInfo>> SeriesTimerCancelled; - public event EventHandler<GenericEventArgs<TimerEventInfo>> TimerCancelled; - public event EventHandler<GenericEventArgs<TimerEventInfo>> TimerCreated; - public event EventHandler<GenericEventArgs<TimerEventInfo>> SeriesTimerCreated; - - public LiveTvManager(IApplicationHost appHost, IServerConfigurationManager config, ILogger logger, IItemRepository itemRepo, IImageProcessor imageProcessor, IUserDataManager userDataManager, IDtoService dtoService, IUserManager userManager, ILibraryManager libraryManager, ITaskManager taskManager, ILocalizationManager localization, IJsonSerializer jsonSerializer, IProviderManager providerManager, IFileSystem fileSystem, ISecurityManager security) - { - _config = config; - _logger = logger; - _itemRepo = itemRepo; - _userManager = userManager; - _libraryManager = libraryManager; - _taskManager = taskManager; - _localization = localization; - _jsonSerializer = jsonSerializer; - _providerManager = providerManager; - _fileSystem = fileSystem; - _security = security; - _dtoService = dtoService; - _userDataManager = userDataManager; - - _tvDtoService = new LiveTvDtoService(dtoService, userDataManager, imageProcessor, logger, appHost, _libraryManager); - } - - /// <summary> - /// Gets the services. - /// </summary> - /// <value>The services.</value> - public IReadOnlyList<ILiveTvService> Services - { - get { return _services; } - } - - private LiveTvOptions GetConfiguration() - { - return _config.GetConfiguration<LiveTvOptions>("livetv"); - } - - /// <summary> - /// Adds the parts. - /// </summary> - /// <param name="services">The services.</param> - /// <param name="tunerHosts">The tuner hosts.</param> - /// <param name="listingProviders">The listing providers.</param> - public void AddParts(IEnumerable<ILiveTvService> services, IEnumerable<ITunerHost> tunerHosts, IEnumerable<IListingsProvider> listingProviders) - { - _services.AddRange(services); - _tunerHosts.AddRange(tunerHosts); - _listingProviders.AddRange(listingProviders); - - foreach (var service in _services) - { - service.DataSourceChanged += service_DataSourceChanged; - service.RecordingStatusChanged += Service_RecordingStatusChanged; - } - } - - private void Service_RecordingStatusChanged(object sender, RecordingStatusChangedEventArgs e) - { - _lastRecordingRefreshTime = DateTime.MinValue; - } - - public List<ITunerHost> TunerHosts - { - get { return _tunerHosts; } - } - - public List<IListingsProvider> ListingProviders - { - get { return _listingProviders; } - } - - void service_DataSourceChanged(object sender, EventArgs e) - { - if (!_isDisposed) - { - _taskManager.CancelIfRunningAndQueue<RefreshChannelsScheduledTask>(); - } - } - - public async Task<QueryResult<LiveTvChannel>> GetInternalChannels(LiveTvChannelQuery query, CancellationToken cancellationToken) - { - var user = string.IsNullOrEmpty(query.UserId) ? null : _userManager.GetUserById(query.UserId); - - var topFolder = await GetInternalLiveTvFolder(cancellationToken).ConfigureAwait(false); - - var internalQuery = new InternalItemsQuery(user) - { - IsMovie = query.IsMovie, - IsNews = query.IsNews, - IsKids = query.IsKids, - IsSports = query.IsSports, - IsSeries = query.IsSeries, - IncludeItemTypes = new[] { typeof(LiveTvChannel).Name }, - SortOrder = query.SortOrder ?? SortOrder.Ascending, - TopParentIds = new[] { topFolder.Id.ToString("N") }, - IsFavorite = query.IsFavorite, - IsLiked = query.IsLiked, - StartIndex = query.StartIndex, - Limit = query.Limit - }; - - internalQuery.OrderBy.AddRange(query.SortBy.Select(i => new Tuple<string, SortOrder>(i, query.SortOrder ?? SortOrder.Ascending))); - - if (query.EnableFavoriteSorting) - { - internalQuery.OrderBy.Insert(0, new Tuple<string, SortOrder>(ItemSortBy.IsFavoriteOrLiked, SortOrder.Descending)); - } - - if (!internalQuery.OrderBy.Any(i => string.Equals(i.Item1, ItemSortBy.SortName, StringComparison.OrdinalIgnoreCase))) - { - internalQuery.OrderBy.Add(new Tuple<string, SortOrder>(ItemSortBy.SortName, SortOrder.Ascending)); - } - - var channelResult = _libraryManager.GetItemsResult(internalQuery); - - var result = new QueryResult<LiveTvChannel> - { - Items = channelResult.Items.Cast<LiveTvChannel>().ToArray(), - TotalRecordCount = channelResult.TotalRecordCount - }; - - return result; - } - - public LiveTvChannel GetInternalChannel(string id) - { - return GetInternalChannel(new Guid(id)); - } - - private LiveTvChannel GetInternalChannel(Guid id) - { - return _libraryManager.GetItemById(id) as LiveTvChannel; - } - - internal LiveTvProgram GetInternalProgram(string id) - { - return _libraryManager.GetItemById(id) as LiveTvProgram; - } - - internal LiveTvProgram GetInternalProgram(Guid id) - { - return _libraryManager.GetItemById(id) as LiveTvProgram; - } - - public async Task<BaseItem> GetInternalRecording(string id, CancellationToken cancellationToken) - { - if (string.IsNullOrWhiteSpace(id)) - { - throw new ArgumentNullException("id"); - } - - var result = await GetInternalRecordings(new RecordingQuery - { - Id = id - - }, cancellationToken).ConfigureAwait(false); - - return result.Items.FirstOrDefault(); - } - - public async Task<MediaSourceInfo> GetRecordingStream(string id, CancellationToken cancellationToken) - { - var info = await GetLiveStream(id, null, false, cancellationToken).ConfigureAwait(false); - - return info.Item1; - } - - public async Task<Tuple<MediaSourceInfo, IDirectStreamProvider>> GetChannelStream(string id, string mediaSourceId, CancellationToken cancellationToken) - { - return await GetLiveStream(id, mediaSourceId, true, cancellationToken).ConfigureAwait(false); - } - - public async Task<IEnumerable<MediaSourceInfo>> GetRecordingMediaSources(IHasMediaSources item, CancellationToken cancellationToken) - { - var baseItem = (BaseItem)item; - var service = GetService(baseItem); - - return await service.GetRecordingStreamMediaSources(baseItem.ExternalId, cancellationToken).ConfigureAwait(false); - } - - public async Task<IEnumerable<MediaSourceInfo>> GetChannelMediaSources(IHasMediaSources item, CancellationToken cancellationToken) - { - var baseItem = (LiveTvChannel)item; - var service = GetService(baseItem); - - var sources = await service.GetChannelStreamMediaSources(baseItem.ExternalId, cancellationToken).ConfigureAwait(false); - - if (sources.Count == 0) - { - throw new NotImplementedException(); - } - - var list = sources.ToList(); - - foreach (var source in list) - { - Normalize(source, service, baseItem.ChannelType == ChannelType.TV); - } - - return list; - } - - private ILiveTvService GetService(ILiveTvRecording item) - { - return GetService(item.ServiceName); - } - - private ILiveTvService GetService(BaseItem item) - { - return GetService(item.ServiceName); - } - - private ILiveTvService GetService(string name) - { - return _services.FirstOrDefault(i => string.Equals(i.Name, name, StringComparison.OrdinalIgnoreCase)); - } - - private async Task<Tuple<MediaSourceInfo, IDirectStreamProvider>> GetLiveStream(string id, string mediaSourceId, bool isChannel, CancellationToken cancellationToken) - { - if (string.Equals(id, mediaSourceId, StringComparison.OrdinalIgnoreCase)) - { - mediaSourceId = null; - } - - MediaSourceInfo info; - bool isVideo; - ILiveTvService service; - IDirectStreamProvider directStreamProvider = null; - - if (isChannel) - { - var channel = GetInternalChannel(id); - isVideo = channel.ChannelType == ChannelType.TV; - service = GetService(channel); - _logger.Info("Opening channel stream from {0}, external channel Id: {1}", service.Name, channel.ExternalId); - - var supportsManagedStream = service as ISupportsDirectStreamProvider; - if (supportsManagedStream != null) - { - var streamInfo = await supportsManagedStream.GetChannelStreamWithDirectStreamProvider(channel.ExternalId, mediaSourceId, cancellationToken).ConfigureAwait(false); - info = streamInfo.Item1; - directStreamProvider = streamInfo.Item2; - } - else - { - info = await service.GetChannelStream(channel.ExternalId, mediaSourceId, cancellationToken).ConfigureAwait(false); - } - info.RequiresClosing = true; - - if (info.RequiresClosing) - { - var idPrefix = service.GetType().FullName.GetMD5().ToString("N") + "_"; - - info.LiveStreamId = idPrefix + info.Id; - } - } - else - { - var recording = await GetInternalRecording(id, cancellationToken).ConfigureAwait(false); - isVideo = !string.Equals(recording.MediaType, MediaType.Audio, StringComparison.OrdinalIgnoreCase); - service = GetService(recording); - - _logger.Info("Opening recording stream from {0}, external recording Id: {1}", service.Name, recording.ExternalId); - info = await service.GetRecordingStream(recording.ExternalId, null, cancellationToken).ConfigureAwait(false); - info.RequiresClosing = true; - - if (info.RequiresClosing) - { - var idPrefix = service.GetType().FullName.GetMD5().ToString("N") + "_"; - - info.LiveStreamId = idPrefix + info.Id; - } - } - - _logger.Info("Live stream info: {0}", _jsonSerializer.SerializeToString(info)); - Normalize(info, service, isVideo); - - return new Tuple<MediaSourceInfo, IDirectStreamProvider>(info, directStreamProvider); - } - - private void Normalize(MediaSourceInfo mediaSource, ILiveTvService service, bool isVideo) - { - if (mediaSource.MediaStreams.Count == 0) - { - if (isVideo) - { - mediaSource.MediaStreams.AddRange(new List<MediaStream> - { - new MediaStream - { - Type = MediaStreamType.Video, - // Set the index to -1 because we don't know the exact index of the video stream within the container - Index = -1, - - // Set to true if unknown to enable deinterlacing - IsInterlaced = true - }, - new MediaStream - { - Type = MediaStreamType.Audio, - // Set the index to -1 because we don't know the exact index of the audio stream within the container - Index = -1 - } - }); - } - else - { - mediaSource.MediaStreams.AddRange(new List<MediaStream> - { - new MediaStream - { - Type = MediaStreamType.Audio, - // Set the index to -1 because we don't know the exact index of the audio stream within the container - Index = -1 - } - }); - } - } - - // Clean some bad data coming from providers - foreach (var stream in mediaSource.MediaStreams) - { - if (stream.BitRate.HasValue && stream.BitRate <= 0) - { - stream.BitRate = null; - } - if (stream.Channels.HasValue && stream.Channels <= 0) - { - stream.Channels = null; - } - if (stream.AverageFrameRate.HasValue && stream.AverageFrameRate <= 0) - { - stream.AverageFrameRate = null; - } - if (stream.RealFrameRate.HasValue && stream.RealFrameRate <= 0) - { - stream.RealFrameRate = null; - } - if (stream.Width.HasValue && stream.Width <= 0) - { - stream.Width = null; - } - if (stream.Height.HasValue && stream.Height <= 0) - { - stream.Height = null; - } - if (stream.SampleRate.HasValue && stream.SampleRate <= 0) - { - stream.SampleRate = null; - } - if (stream.Level.HasValue && stream.Level <= 0) - { - stream.Level = null; - } - } - - var indexes = mediaSource.MediaStreams.Select(i => i.Index).Distinct().ToList(); - - // If there are duplicate stream indexes, set them all to unknown - if (indexes.Count != mediaSource.MediaStreams.Count) - { - foreach (var stream in mediaSource.MediaStreams) - { - stream.Index = -1; - } - } - - // Set the total bitrate if not already supplied - if (!mediaSource.Bitrate.HasValue) - { - var total = mediaSource.MediaStreams.Select(i => i.BitRate ?? 0).Sum(); - - if (total > 0) - { - mediaSource.Bitrate = total; - } - } - - if (!(service is EmbyTV.EmbyTV)) - { - // We can't trust that we'll be able to direct stream it through emby server, no matter what the provider says - mediaSource.SupportsDirectStream = false; - mediaSource.SupportsTranscoding = true; - foreach (var stream in mediaSource.MediaStreams) - { - if (stream.Type == MediaStreamType.Video && string.IsNullOrWhiteSpace(stream.NalLengthSize)) - { - stream.NalLengthSize = "0"; - } - } - } - } - - private async Task<LiveTvChannel> GetChannel(ChannelInfo channelInfo, string serviceName, Guid parentFolderId, CancellationToken cancellationToken) - { - var isNew = false; - var forceUpdate = false; - - var id = _tvDtoService.GetInternalChannelId(serviceName, channelInfo.Id); - - var item = _itemRepo.RetrieveItem(id) as LiveTvChannel; - - if (item == null) - { - item = new LiveTvChannel - { - Name = channelInfo.Name, - Id = id, - DateCreated = DateTime.UtcNow, - }; - - isNew = true; - } - - if (!string.Equals(channelInfo.Id, item.ExternalId)) - { - isNew = true; - } - item.ExternalId = channelInfo.Id; - - if (!item.ParentId.Equals(parentFolderId)) - { - isNew = true; - } - item.ParentId = parentFolderId; - - item.ChannelType = channelInfo.ChannelType; - item.ServiceName = serviceName; - item.Number = channelInfo.Number; - - //if (!string.Equals(item.ProviderImageUrl, channelInfo.ImageUrl, StringComparison.OrdinalIgnoreCase)) - //{ - // isNew = true; - // replaceImages.Add(ImageType.Primary); - //} - //if (!string.Equals(item.ProviderImagePath, channelInfo.ImagePath, StringComparison.OrdinalIgnoreCase)) - //{ - // isNew = true; - // replaceImages.Add(ImageType.Primary); - //} - - if (!item.HasImage(ImageType.Primary)) - { - if (!string.IsNullOrWhiteSpace(channelInfo.ImagePath)) - { - item.SetImagePath(ImageType.Primary, channelInfo.ImagePath); - forceUpdate = true; - } - else if (!string.IsNullOrWhiteSpace(channelInfo.ImageUrl)) - { - item.SetImagePath(ImageType.Primary, channelInfo.ImageUrl); - forceUpdate = true; - } - } - - if (string.IsNullOrEmpty(item.Name)) - { - item.Name = channelInfo.Name; - } - - if (isNew) - { - await _libraryManager.CreateItem(item, cancellationToken).ConfigureAwait(false); - } - else if (forceUpdate) - { - await _libraryManager.UpdateItem(item, ItemUpdateType.MetadataImport, cancellationToken).ConfigureAwait(false); - } - - await item.RefreshMetadata(new MetadataRefreshOptions(_fileSystem) - { - ForceSave = isNew || forceUpdate - - }, cancellationToken); - - return item; - } - - private Tuple<LiveTvProgram, bool, bool> GetProgram(ProgramInfo info, Dictionary<Guid, LiveTvProgram> allExistingPrograms, LiveTvChannel channel, ChannelType channelType, string serviceName, CancellationToken cancellationToken) - { - var id = _tvDtoService.GetInternalProgramId(serviceName, info.Id); - - LiveTvProgram item = null; - allExistingPrograms.TryGetValue(id, out item); - - var isNew = false; - var forceUpdate = false; - - if (item == null) - { - isNew = true; - item = new LiveTvProgram - { - Name = info.Name, - Id = id, - DateCreated = DateTime.UtcNow, - DateModified = DateTime.UtcNow, - ExternalEtag = info.Etag - }; - } - - var seriesId = info.SeriesId; - - if (!item.ParentId.Equals(channel.Id)) - { - forceUpdate = true; - } - item.ParentId = channel.Id; - - //item.ChannelType = channelType; - if (!string.Equals(item.ServiceName, serviceName, StringComparison.Ordinal)) - { - forceUpdate = true; - } - item.ServiceName = serviceName; - - item.Audio = info.Audio; - item.ChannelId = channel.Id.ToString("N"); - item.CommunityRating = item.CommunityRating ?? info.CommunityRating; - - item.EpisodeTitle = info.EpisodeTitle; - item.ExternalId = info.Id; - item.ExternalSeriesIdLegacy = seriesId; - - if (!string.IsNullOrWhiteSpace(seriesId) && !string.Equals(item.ExternalSeriesId, seriesId, StringComparison.Ordinal)) - { - forceUpdate = true; - } - item.ExternalSeriesId = seriesId; - - item.Genres = info.Genres; - item.IsHD = info.IsHD; - item.IsKids = info.IsKids; - item.IsLive = info.IsLive; - item.IsMovie = info.IsMovie; - item.IsNews = info.IsNews; - item.IsPremiere = info.IsPremiere; - item.IsRepeat = info.IsRepeat; - item.IsSeries = info.IsSeries; - item.IsSports = info.IsSports; - item.Name = info.Name; - item.OfficialRating = item.OfficialRating ?? info.OfficialRating; - item.Overview = item.Overview ?? info.Overview; - item.RunTimeTicks = (info.EndDate - info.StartDate).Ticks; - - if (item.StartDate != info.StartDate) - { - forceUpdate = true; - } - item.StartDate = info.StartDate; - - if (item.EndDate != info.EndDate) - { - forceUpdate = true; - } - item.EndDate = info.EndDate; - - item.HomePageUrl = info.HomePageUrl; - - item.ProductionYear = info.ProductionYear; - - if (!info.IsSeries || info.IsRepeat) - { - item.PremiereDate = info.OriginalAirDate; - } - - item.IndexNumber = info.EpisodeNumber; - item.ParentIndexNumber = info.SeasonNumber; - - if (!item.HasImage(ImageType.Primary)) - { - if (!string.IsNullOrWhiteSpace(info.ImagePath)) - { - item.SetImage(new ItemImageInfo - { - Path = info.ImagePath, - Type = ImageType.Primary, - IsPlaceholder = true - }, 0); - } - else if (!string.IsNullOrWhiteSpace(info.ImageUrl)) - { - item.SetImage(new ItemImageInfo - { - Path = info.ImageUrl, - Type = ImageType.Primary, - IsPlaceholder = true - }, 0); - } - } - - var isUpdated = false; - if (isNew) - { - } - else if (forceUpdate || string.IsNullOrWhiteSpace(info.Etag)) - { - isUpdated = true; - } - else - { - // Increment this whenver some internal change deems it necessary - var etag = info.Etag + "4"; - - if (!string.Equals(etag, item.ExternalEtag, StringComparison.OrdinalIgnoreCase)) - { - item.ExternalEtag = etag; - isUpdated = true; - } - } - - return new Tuple<LiveTvProgram, bool, bool>(item, isNew, isUpdated); - } - - private async Task<Guid> CreateRecordingRecord(RecordingInfo info, string serviceName, Guid parentFolderId, CancellationToken cancellationToken) - { - var isNew = false; - - var id = _tvDtoService.GetInternalRecordingId(serviceName, info.Id); - - var item = _itemRepo.RetrieveItem(id); - - if (item == null) - { - if (info.ChannelType == ChannelType.TV) - { - item = new LiveTvVideoRecording - { - Name = info.Name, - Id = id, - DateCreated = DateTime.UtcNow, - DateModified = DateTime.UtcNow, - VideoType = VideoType.VideoFile - }; - } - else - { - item = new LiveTvAudioRecording - { - Name = info.Name, - Id = id, - DateCreated = DateTime.UtcNow, - DateModified = DateTime.UtcNow - }; - } - - isNew = true; - } - - item.ChannelId = _tvDtoService.GetInternalChannelId(serviceName, info.ChannelId).ToString("N"); - item.CommunityRating = info.CommunityRating; - item.OfficialRating = info.OfficialRating; - item.Overview = info.Overview; - item.EndDate = info.EndDate; - item.Genres = info.Genres; - item.PremiereDate = info.OriginalAirDate; - - var recording = (ILiveTvRecording)item; - - recording.ExternalId = info.Id; - - var dataChanged = false; - - recording.Audio = info.Audio; - recording.EndDate = info.EndDate; - recording.EpisodeTitle = info.EpisodeTitle; - recording.IsHD = info.IsHD; - recording.IsKids = info.IsKids; - recording.IsLive = info.IsLive; - recording.IsMovie = info.IsMovie; - recording.IsNews = info.IsNews; - recording.IsPremiere = info.IsPremiere; - recording.IsRepeat = info.IsRepeat; - recording.IsSports = info.IsSports; - recording.SeriesTimerId = info.SeriesTimerId; - recording.TimerId = info.TimerId; - recording.StartDate = info.StartDate; - - if (!dataChanged) - { - dataChanged = recording.IsSeries != info.IsSeries; - } - recording.IsSeries = info.IsSeries; - - if (!item.ParentId.Equals(parentFolderId)) - { - dataChanged = true; - } - item.ParentId = parentFolderId; - - if (!item.HasImage(ImageType.Primary)) - { - if (!string.IsNullOrWhiteSpace(info.ImagePath)) - { - item.SetImage(new ItemImageInfo - { - Path = info.ImagePath, - Type = ImageType.Primary, - IsPlaceholder = true - }, 0); - } - else if (!string.IsNullOrWhiteSpace(info.ImageUrl)) - { - item.SetImage(new ItemImageInfo - { - Path = info.ImageUrl, - Type = ImageType.Primary, - IsPlaceholder = true - }, 0); - } - } - - var statusChanged = info.Status != recording.Status; - - recording.Status = info.Status; - - recording.ServiceName = serviceName; - - if (!string.IsNullOrEmpty(info.Path)) - { - if (!dataChanged) - { - dataChanged = !string.Equals(item.Path, info.Path); - } - var fileInfo = _fileSystem.GetFileInfo(info.Path); - - recording.DateCreated = _fileSystem.GetCreationTimeUtc(fileInfo); - recording.DateModified = _fileSystem.GetLastWriteTimeUtc(fileInfo); - item.Path = info.Path; - } - else if (!string.IsNullOrEmpty(info.Url)) - { - if (!dataChanged) - { - dataChanged = !string.Equals(item.Path, info.Url); - } - item.Path = info.Url; - } - - var metadataRefreshMode = MetadataRefreshMode.Default; - - if (isNew) - { - await _libraryManager.CreateItem(item, cancellationToken).ConfigureAwait(false); - } - else if (dataChanged || info.DateLastUpdated > recording.DateLastSaved || statusChanged) - { - metadataRefreshMode = MetadataRefreshMode.FullRefresh; - await _libraryManager.UpdateItem(item, ItemUpdateType.MetadataImport, cancellationToken).ConfigureAwait(false); - } - - if (info.Status != RecordingStatus.InProgress) - { - _providerManager.QueueRefresh(item.Id, new MetadataRefreshOptions(_fileSystem) - { - MetadataRefreshMode = metadataRefreshMode - }); - } - - return item.Id; - } - - public async Task<BaseItemDto> GetProgram(string id, CancellationToken cancellationToken, User user = null) - { - var program = GetInternalProgram(id); - - var dto = _dtoService.GetBaseItemDto(program, new DtoOptions(), user); - - var list = new List<Tuple<BaseItemDto, string, string, string>>(); - list.Add(new Tuple<BaseItemDto, string, string, string>(dto, program.ServiceName, program.ExternalId, program.ExternalSeriesIdLegacy)); - - await AddRecordingInfo(list, cancellationToken).ConfigureAwait(false); - - return dto; - } - - public async Task<QueryResult<BaseItemDto>> GetPrograms(ProgramQuery query, DtoOptions options, CancellationToken cancellationToken) - { - var user = string.IsNullOrEmpty(query.UserId) ? null : _userManager.GetUserById(query.UserId); - - var topFolder = await GetInternalLiveTvFolder(cancellationToken).ConfigureAwait(false); - - if (query.SortBy.Length == 0) - { - // Unless something else was specified, order by start date to take advantage of a specialized index - query.SortBy = new[] { ItemSortBy.StartDate }; - } - - var internalQuery = new InternalItemsQuery(user) - { - IncludeItemTypes = new[] { typeof(LiveTvProgram).Name }, - MinEndDate = query.MinEndDate, - MinStartDate = query.MinStartDate, - MaxEndDate = query.MaxEndDate, - MaxStartDate = query.MaxStartDate, - ChannelIds = query.ChannelIds, - IsMovie = query.IsMovie, - IsSeries = query.IsSeries, - IsSports = query.IsSports, - IsKids = query.IsKids, - IsNews = query.IsNews, - Genres = query.Genres, - StartIndex = query.StartIndex, - Limit = query.Limit, - SortBy = query.SortBy, - SortOrder = query.SortOrder ?? SortOrder.Ascending, - EnableTotalRecordCount = query.EnableTotalRecordCount, - TopParentIds = new[] { topFolder.Id.ToString("N") }, - Name = query.Name, - DtoOptions = options - }; - - if (!string.IsNullOrWhiteSpace(query.SeriesTimerId)) - { - var seriesTimers = await GetSeriesTimersInternal(new SeriesTimerQuery { }, cancellationToken).ConfigureAwait(false); - var seriesTimer = seriesTimers.Items.FirstOrDefault(i => string.Equals(_tvDtoService.GetInternalSeriesTimerId(i.ServiceName, i.Id).ToString("N"), query.SeriesTimerId, StringComparison.OrdinalIgnoreCase)); - if (seriesTimer != null) - { - internalQuery.ExternalSeriesId = seriesTimer.SeriesId; - - if (string.IsNullOrWhiteSpace(seriesTimer.SeriesId)) - { - // Better to return nothing than every program in the database - return new QueryResult<BaseItemDto>(); - } - } - else - { - // Better to return nothing than every program in the database - return new QueryResult<BaseItemDto>(); - } - } - - if (query.HasAired.HasValue) - { - if (query.HasAired.Value) - { - internalQuery.MaxEndDate = DateTime.UtcNow; - } - else - { - internalQuery.MinEndDate = DateTime.UtcNow; - } - } - - var queryResult = _libraryManager.QueryItems(internalQuery); - - RemoveFields(options); - - var returnArray = (await _dtoService.GetBaseItemDtos(queryResult.Items, options, user).ConfigureAwait(false)).ToArray(); - - var result = new QueryResult<BaseItemDto> - { - Items = returnArray, - TotalRecordCount = queryResult.TotalRecordCount - }; - - return result; - } - - public async Task<QueryResult<LiveTvProgram>> GetRecommendedProgramsInternal(RecommendedProgramQuery query, DtoOptions options, CancellationToken cancellationToken) - { - var user = _userManager.GetUserById(query.UserId); - - var topFolder = await GetInternalLiveTvFolder(cancellationToken).ConfigureAwait(false); - - var internalQuery = new InternalItemsQuery(user) - { - IncludeItemTypes = new[] { typeof(LiveTvProgram).Name }, - IsAiring = query.IsAiring, - IsNews = query.IsNews, - IsMovie = query.IsMovie, - IsSeries = query.IsSeries, - IsSports = query.IsSports, - IsKids = query.IsKids, - EnableTotalRecordCount = query.EnableTotalRecordCount, - SortBy = new[] { ItemSortBy.StartDate }, - TopParentIds = new[] { topFolder.Id.ToString("N") }, - DtoOptions = options - }; - - if (query.Limit.HasValue) - { - internalQuery.Limit = Math.Max(query.Limit.Value * 4, 200); - } - - if (query.HasAired.HasValue) - { - if (query.HasAired.Value) - { - internalQuery.MaxEndDate = DateTime.UtcNow; - } - else - { - internalQuery.MinEndDate = DateTime.UtcNow; - } - } - - IEnumerable<LiveTvProgram> programs = _libraryManager.QueryItems(internalQuery).Items.Cast<LiveTvProgram>(); - - var programList = programs.ToList(); - - var factorChannelWatchCount = (query.IsAiring ?? false) || (query.IsKids ?? false) || (query.IsSports ?? false) || (query.IsMovie ?? false) || (query.IsNews ?? false) || (query.IsSeries ?? false); - - programs = programList.OrderBy(i => i.StartDate.Date) - .ThenByDescending(i => GetRecommendationScore(i, user.Id, factorChannelWatchCount)) - .ThenBy(i => i.StartDate); - - if (query.Limit.HasValue) - { - programs = programs.Take(query.Limit.Value); - } - - programList = programs.ToList(); - - var returnArray = programList.ToArray(); - - var result = new QueryResult<LiveTvProgram> - { - Items = returnArray, - TotalRecordCount = returnArray.Length - }; - - return result; - } - - public async Task<QueryResult<BaseItemDto>> GetRecommendedPrograms(RecommendedProgramQuery query, DtoOptions options, CancellationToken cancellationToken) - { - var internalResult = await GetRecommendedProgramsInternal(query, options, cancellationToken).ConfigureAwait(false); - - var user = _userManager.GetUserById(query.UserId); - - RemoveFields(options); - - var returnArray = (await _dtoService.GetBaseItemDtos(internalResult.Items, options, user).ConfigureAwait(false)).ToArray(); - - var result = new QueryResult<BaseItemDto> - { - Items = returnArray, - TotalRecordCount = internalResult.TotalRecordCount - }; - - return result; - } - - private int GetRecommendationScore(LiveTvProgram program, Guid userId, bool factorChannelWatchCount) - { - var score = 0; - - if (program.IsLive) - { - score++; - } - - if (program.IsSeries && !program.IsRepeat) - { - score++; - } - - var channel = GetInternalChannel(program.ChannelId); - - var channelUserdata = _userDataManager.GetUserData(userId, channel); - - if (channelUserdata.Likes ?? false) - { - score += 2; - } - else if (!(channelUserdata.Likes ?? true)) - { - score -= 2; - } - - if (channelUserdata.IsFavorite) - { - score += 3; - } - - if (factorChannelWatchCount) - { - score += channelUserdata.PlayCount; - } - - return score; - } - - private async Task AddRecordingInfo(IEnumerable<Tuple<BaseItemDto, string, string, string>> programs, CancellationToken cancellationToken) - { - var timers = new Dictionary<string, List<TimerInfo>>(); - var seriesTimers = new Dictionary<string, List<SeriesTimerInfo>>(); - - foreach (var programTuple in programs) - { - var program = programTuple.Item1; - var serviceName = programTuple.Item2; - var externalProgramId = programTuple.Item3; - string externalSeriesId = programTuple.Item4; - - if (string.IsNullOrWhiteSpace(serviceName)) - { - continue; - } - - List<TimerInfo> timerList; - if (!timers.TryGetValue(serviceName, out timerList)) - { - try - { - var tempTimers = await GetService(serviceName).GetTimersAsync(cancellationToken).ConfigureAwait(false); - timers[serviceName] = timerList = tempTimers.ToList(); - } - catch (Exception ex) - { - _logger.ErrorException("Error getting timer infos", ex); - timers[serviceName] = timerList = new List<TimerInfo>(); - } - } - - var timer = timerList.FirstOrDefault(i => string.Equals(i.ProgramId, externalProgramId, StringComparison.OrdinalIgnoreCase)); - var foundSeriesTimer = false; - - if (timer != null) - { - if (timer.Status != RecordingStatus.Cancelled && timer.Status != RecordingStatus.Error) - { - program.TimerId = _tvDtoService.GetInternalTimerId(serviceName, timer.Id) - .ToString("N"); - - program.Status = timer.Status.ToString(); - } - - if (!string.IsNullOrEmpty(timer.SeriesTimerId)) - { - program.SeriesTimerId = _tvDtoService.GetInternalSeriesTimerId(serviceName, timer.SeriesTimerId) - .ToString("N"); - - foundSeriesTimer = true; - } - } - - if (foundSeriesTimer || string.IsNullOrWhiteSpace(externalSeriesId)) - { - continue; - } - - List<SeriesTimerInfo> seriesTimerList; - if (!seriesTimers.TryGetValue(serviceName, out seriesTimerList)) - { - try - { - var tempTimers = await GetService(serviceName).GetSeriesTimersAsync(cancellationToken).ConfigureAwait(false); - seriesTimers[serviceName] = seriesTimerList = tempTimers.ToList(); - } - catch (Exception ex) - { - _logger.ErrorException("Error getting series timer infos", ex); - seriesTimers[serviceName] = seriesTimerList = new List<SeriesTimerInfo>(); - } - } - - var seriesTimer = seriesTimerList.FirstOrDefault(i => string.Equals(i.SeriesId, externalSeriesId, StringComparison.OrdinalIgnoreCase)); - - if (seriesTimer != null) - { - program.SeriesTimerId = _tvDtoService.GetInternalSeriesTimerId(serviceName, seriesTimer.Id) - .ToString("N"); - } - } - } - - internal Task RefreshChannels(IProgress<double> progress, CancellationToken cancellationToken) - { - return RefreshChannelsInternal(progress, cancellationToken); - } - - private async Task RefreshChannelsInternal(IProgress<double> progress, CancellationToken cancellationToken) - { - EmbyTV.EmbyTV.Current.CreateRecordingFolders(); - - var numComplete = 0; - double progressPerService = _services.Count == 0 - ? 0 - : 1 / _services.Count; - - var newChannelIdList = new List<Guid>(); - var newProgramIdList = new List<Guid>(); - - foreach (var service in _services) - { - cancellationToken.ThrowIfCancellationRequested(); - - _logger.Debug("Refreshing guide from {0}", service.Name); - - try - { - var innerProgress = new ActionableProgress<double>(); - innerProgress.RegisterAction(p => progress.Report(p * progressPerService)); - - var idList = await RefreshChannelsInternal(service, innerProgress, cancellationToken).ConfigureAwait(false); - - newChannelIdList.AddRange(idList.Item1); - newProgramIdList.AddRange(idList.Item2); - } - catch (OperationCanceledException) - { - throw; - } - catch (Exception ex) - { - _logger.ErrorException("Error refreshing channels for service", ex); - } - - numComplete++; - double percent = numComplete; - percent /= _services.Count; - - progress.Report(100 * percent); - } - - await CleanDatabaseInternal(newChannelIdList, new[] { typeof(LiveTvChannel).Name }, progress, cancellationToken).ConfigureAwait(false); - await CleanDatabaseInternal(newProgramIdList, new[] { typeof(LiveTvProgram).Name }, progress, cancellationToken).ConfigureAwait(false); - - var coreService = _services.OfType<EmbyTV.EmbyTV>().FirstOrDefault(); - - if (coreService != null) - { - await coreService.RefreshSeriesTimers(cancellationToken, new Progress<double>()).ConfigureAwait(false); - } - - // Load these now which will prefetch metadata - var dtoOptions = new DtoOptions(); - dtoOptions.Fields.Remove(ItemFields.SyncInfo); - dtoOptions.Fields.Remove(ItemFields.BasicSyncInfo); - await GetRecordings(new RecordingQuery(), dtoOptions, cancellationToken).ConfigureAwait(false); - - progress.Report(100); - } - - private async Task<Tuple<List<Guid>, List<Guid>>> RefreshChannelsInternal(ILiveTvService service, IProgress<double> progress, CancellationToken cancellationToken) - { - progress.Report(10); - - var allChannels = await GetChannels(service, cancellationToken).ConfigureAwait(false); - var allChannelsList = allChannels.ToList(); - - var list = new List<LiveTvChannel>(); - - var numComplete = 0; - var parentFolder = await GetInternalLiveTvFolder(cancellationToken).ConfigureAwait(false); - var parentFolderId = parentFolder.Id; - - foreach (var channelInfo in allChannelsList) - { - cancellationToken.ThrowIfCancellationRequested(); - - try - { - var item = await GetChannel(channelInfo.Item2, channelInfo.Item1, parentFolderId, cancellationToken).ConfigureAwait(false); - - list.Add(item); - } - catch (OperationCanceledException) - { - throw; - } - catch (Exception ex) - { - _logger.ErrorException("Error getting channel information for {0}", ex, channelInfo.Item2.Name); - } - - numComplete++; - double percent = numComplete; - percent /= allChannelsList.Count; - - progress.Report(5 * percent + 10); - } - - progress.Report(15); - - numComplete = 0; - var programs = new List<Guid>(); - var channels = new List<Guid>(); - - var guideDays = GetGuideDays(); - - _logger.Info("Refreshing guide with {0} days of guide data", guideDays); - - cancellationToken.ThrowIfCancellationRequested(); - - foreach (var currentChannel in list) - { - channels.Add(currentChannel.Id); - cancellationToken.ThrowIfCancellationRequested(); - - try - { - var start = DateTime.UtcNow.AddHours(-1); - var end = start.AddDays(guideDays); - - var isMovie = false; - var isSports = false; - var isNews = false; - var isKids = false; - var iSSeries = false; - - var channelPrograms = await service.GetProgramsAsync(currentChannel.ExternalId, start, end, cancellationToken).ConfigureAwait(false); - - var existingPrograms = _libraryManager.GetItemList(new InternalItemsQuery - { - - IncludeItemTypes = new string[] { typeof(LiveTvProgram).Name }, - ChannelIds = new string[] { currentChannel.Id.ToString("N") } - - }).Cast<LiveTvProgram>().ToDictionary(i => i.Id); - - var newPrograms = new List<LiveTvProgram>(); - var updatedPrograms = new List<LiveTvProgram>(); - - foreach (var program in channelPrograms) - { - var programTuple = GetProgram(program, existingPrograms, currentChannel, currentChannel.ChannelType, service.Name, cancellationToken); - var programItem = programTuple.Item1; - - if (programTuple.Item2) - { - newPrograms.Add(programItem); - } - else if (programTuple.Item3) - { - updatedPrograms.Add(programItem); - } - - programs.Add(programItem.Id); - - if (program.IsMovie) - { - isMovie = true; - } - - if (program.IsSeries) - { - iSSeries = true; - } - - if (program.IsSports) - { - isSports = true; - } - - if (program.IsNews) - { - isNews = true; - } - - if (program.IsKids) - { - isKids = true; - } - } - - _logger.Debug("Channel {0} has {1} new programs and {2} updated programs", currentChannel.Name, newPrograms.Count, updatedPrograms.Count); - - if (newPrograms.Count > 0) - { - await _libraryManager.CreateItems(newPrograms, cancellationToken).ConfigureAwait(false); - } - - // TODO: Do this in bulk - foreach (var program in updatedPrograms) - { - await _libraryManager.UpdateItem(program, ItemUpdateType.MetadataImport, cancellationToken).ConfigureAwait(false); - } - - foreach (var program in newPrograms) - { - _providerManager.QueueRefresh(program.Id, new MetadataRefreshOptions(_fileSystem)); - } - foreach (var program in updatedPrograms) - { - _providerManager.QueueRefresh(program.Id, new MetadataRefreshOptions(_fileSystem)); - } - - currentChannel.IsMovie = isMovie; - currentChannel.IsNews = isNews; - currentChannel.IsSports = isSports; - currentChannel.IsKids = isKids; - currentChannel.IsSeries = iSSeries; - - await currentChannel.UpdateToRepository(ItemUpdateType.MetadataImport, cancellationToken).ConfigureAwait(false); - } - catch (OperationCanceledException) - { - throw; - } - catch (Exception ex) - { - _logger.ErrorException("Error getting programs for channel {0}", ex, currentChannel.Name); - } - - numComplete++; - double percent = numComplete; - percent /= allChannelsList.Count; - - progress.Report(80 * percent + 10); - } - progress.Report(100); - - return new Tuple<List<Guid>, List<Guid>>(channels, programs); - } - - private async Task CleanDatabaseInternal(List<Guid> currentIdList, string[] validTypes, IProgress<double> progress, CancellationToken cancellationToken) - { - var list = _itemRepo.GetItemIdsList(new InternalItemsQuery - { - IncludeItemTypes = validTypes - - }).ToList(); - - var numComplete = 0; - - foreach (var itemId in list) - { - cancellationToken.ThrowIfCancellationRequested(); - - if (itemId == Guid.Empty) - { - // Somehow some invalid data got into the db. It probably predates the boundary checking - continue; - } - - if (!currentIdList.Contains(itemId)) - { - var item = _libraryManager.GetItemById(itemId); - - if (item != null) - { - await _libraryManager.DeleteItem(item, new DeleteOptions - { - DeleteFileLocation = false - - }).ConfigureAwait(false); - } - } - - numComplete++; - double percent = numComplete; - percent /= list.Count; - - progress.Report(100 * percent); - } - } - - private const int MaxGuideDays = 14; - private double GetGuideDays() - { - var config = GetConfiguration(); - - if (config.GuideDays.HasValue) - { - return Math.Max(1, Math.Min(config.GuideDays.Value, MaxGuideDays)); - } - - return 7; - } - - private async Task<IEnumerable<Tuple<string, ChannelInfo>>> GetChannels(ILiveTvService service, CancellationToken cancellationToken) - { - var channels = await service.GetChannelsAsync(cancellationToken).ConfigureAwait(false); - - return channels.Select(i => new Tuple<string, ChannelInfo>(service.Name, i)); - } - - private DateTime _lastRecordingRefreshTime; - private async Task RefreshRecordings(CancellationToken cancellationToken) - { - const int cacheMinutes = 3; - - if ((DateTime.UtcNow - _lastRecordingRefreshTime).TotalMinutes < cacheMinutes) - { - return; - } - - await _refreshRecordingsLock.WaitAsync(cancellationToken).ConfigureAwait(false); - - try - { - if ((DateTime.UtcNow - _lastRecordingRefreshTime).TotalMinutes < cacheMinutes) - { - return; - } - - var tasks = _services.Select(async i => - { - try - { - var recs = await i.GetRecordingsAsync(cancellationToken).ConfigureAwait(false); - return recs.Select(r => new Tuple<RecordingInfo, ILiveTvService>(r, i)); - } - catch (Exception ex) - { - _logger.ErrorException("Error getting recordings", ex); - return new List<Tuple<RecordingInfo, ILiveTvService>>(); - } - }); - - var results = await Task.WhenAll(tasks).ConfigureAwait(false); - var folder = await GetInternalLiveTvFolder(cancellationToken).ConfigureAwait(false); - var parentFolderId = folder.Id; - - var recordingTasks = results.SelectMany(i => i.ToList()).Select(i => CreateRecordingRecord(i.Item1, i.Item2.Name, parentFolderId, cancellationToken)); - - var idList = await Task.WhenAll(recordingTasks).ConfigureAwait(false); - - await CleanDatabaseInternal(idList.ToList(), new[] { typeof(LiveTvVideoRecording).Name, typeof(LiveTvAudioRecording).Name }, new Progress<double>(), cancellationToken).ConfigureAwait(false); - - _lastRecordingRefreshTime = DateTime.UtcNow; - } - finally - { - _refreshRecordingsLock.Release(); - } - } - - private QueryResult<BaseItem> GetEmbyRecordings(RecordingQuery query, DtoOptions dtoOptions, User user) - { - if (user == null) - { - return new QueryResult<BaseItem>(); - } - - if ((query.IsInProgress ?? false)) - { - return new QueryResult<BaseItem>(); - } - - var folders = EmbyTV.EmbyTV.Current.GetRecordingFolders() - .SelectMany(i => i.Locations) - .Distinct(StringComparer.OrdinalIgnoreCase) - .Select(i => _libraryManager.FindByPath(i, true)) - .Where(i => i != null) - .Where(i => i.IsVisibleStandalone(user)) - .ToList(); - - if (folders.Count == 0) - { - return new QueryResult<BaseItem>(); - } - - var includeItemTypes = new List<string>(); - var excludeItemTypes = new List<string>(); - var genres = new List<string>(); - - if (query.IsMovie.HasValue) - { - if (query.IsMovie.Value) - { - includeItemTypes.Add(typeof(Movie).Name); - } - else - { - excludeItemTypes.Add(typeof(Movie).Name); - } - } - if (query.IsSeries.HasValue) - { - if (query.IsSeries.Value) - { - includeItemTypes.Add(typeof(Episode).Name); - } - else - { - excludeItemTypes.Add(typeof(Episode).Name); - } - } - if (query.IsSports.HasValue) - { - if (query.IsSports.Value) - { - genres.Add("Sports"); - } - } - if (query.IsKids.HasValue) - { - if (query.IsKids.Value) - { - genres.Add("Kids"); - genres.Add("Children"); - genres.Add("Family"); - } - } - - return _libraryManager.GetItemsResult(new InternalItemsQuery(user) - { - MediaTypes = new[] { MediaType.Video }, - Recursive = true, - AncestorIds = folders.Select(i => i.Id.ToString("N")).ToArray(), - IsFolder = false, - ExcludeLocationTypes = new[] { LocationType.Virtual }, - Limit = query.Limit, - SortBy = new[] { ItemSortBy.DateCreated }, - SortOrder = SortOrder.Descending, - EnableTotalRecordCount = query.EnableTotalRecordCount, - IncludeItemTypes = includeItemTypes.ToArray(), - ExcludeItemTypes = excludeItemTypes.ToArray(), - Genres = genres.ToArray(), - DtoOptions = dtoOptions - }); - } - - public async Task<QueryResult<BaseItemDto>> GetRecordingSeries(RecordingQuery query, DtoOptions options, CancellationToken cancellationToken) - { - var user = string.IsNullOrEmpty(query.UserId) ? null : _userManager.GetUserById(query.UserId); - if (user != null && !IsLiveTvEnabled(user)) - { - return new QueryResult<BaseItemDto>(); - } - - if (_services.Count > 1) - { - return new QueryResult<BaseItemDto>(); - } - - if (user == null || (query.IsInProgress ?? false)) - { - return new QueryResult<BaseItemDto>(); - } - - var folders = EmbyTV.EmbyTV.Current.GetRecordingFolders() - .SelectMany(i => i.Locations) - .Distinct(StringComparer.OrdinalIgnoreCase) - .Select(i => _libraryManager.FindByPath(i, true)) - .Where(i => i != null) - .Where(i => i.IsVisibleStandalone(user)) - .ToList(); - - if (folders.Count == 0) - { - return new QueryResult<BaseItemDto>(); - } - - var includeItemTypes = new List<string>(); - var excludeItemTypes = new List<string>(); - - includeItemTypes.Add(typeof(Series).Name); - - var internalResult = _libraryManager.GetItemsResult(new InternalItemsQuery(user) - { - Recursive = true, - AncestorIds = folders.Select(i => i.Id.ToString("N")).ToArray(), - Limit = query.Limit, - SortBy = new[] { ItemSortBy.DateCreated }, - SortOrder = SortOrder.Descending, - EnableTotalRecordCount = query.EnableTotalRecordCount, - IncludeItemTypes = includeItemTypes.ToArray(), - ExcludeItemTypes = excludeItemTypes.ToArray() - }); - - RemoveFields(options); - - var returnArray = (await _dtoService.GetBaseItemDtos(internalResult.Items, options, user).ConfigureAwait(false)).ToArray(); - - return new QueryResult<BaseItemDto> - { - Items = returnArray, - TotalRecordCount = internalResult.TotalRecordCount - }; - } - - public async Task<QueryResult<BaseItem>> GetInternalRecordings(RecordingQuery query, CancellationToken cancellationToken) - { - var user = string.IsNullOrEmpty(query.UserId) ? null : _userManager.GetUserById(query.UserId); - if (user != null && !IsLiveTvEnabled(user)) - { - return new QueryResult<BaseItem>(); - } - - if (_services.Count == 1 && !(query.IsInProgress ?? false)) - { - return GetEmbyRecordings(query, new DtoOptions(), user); - } - - await RefreshRecordings(cancellationToken).ConfigureAwait(false); - - var internalQuery = new InternalItemsQuery(user) - { - IncludeItemTypes = new[] { typeof(LiveTvVideoRecording).Name, typeof(LiveTvAudioRecording).Name } - }; - - if (!string.IsNullOrEmpty(query.ChannelId)) - { - internalQuery.ChannelIds = new[] { query.ChannelId }; - } - - var queryResult = _libraryManager.GetItemList(internalQuery); - IEnumerable<ILiveTvRecording> recordings = queryResult.Cast<ILiveTvRecording>(); - - if (!string.IsNullOrWhiteSpace(query.Id)) - { - var guid = new Guid(query.Id); - - recordings = recordings - .Where(i => i.Id == guid); - } - - if (!string.IsNullOrWhiteSpace(query.GroupId)) - { - var guid = new Guid(query.GroupId); - - recordings = recordings.Where(i => GetRecordingGroupIds(i).Contains(guid)); - } - - if (query.IsInProgress.HasValue) - { - var val = query.IsInProgress.Value; - recordings = recordings.Where(i => i.Status == RecordingStatus.InProgress == val); - } - - if (query.Status.HasValue) - { - var val = query.Status.Value; - recordings = recordings.Where(i => i.Status == val); - } - - if (query.IsMovie.HasValue) - { - var val = query.IsMovie.Value; - recordings = recordings.Where(i => i.IsMovie == val); - } - - if (query.IsNews.HasValue) - { - var val = query.IsNews.Value; - recordings = recordings.Where(i => i.IsNews == val); - } - - if (query.IsSeries.HasValue) - { - var val = query.IsSeries.Value; - recordings = recordings.Where(i => i.IsSeries == val); - } - - if (query.IsKids.HasValue) - { - var val = query.IsKids.Value; - recordings = recordings.Where(i => i.IsKids == val); - } - - if (query.IsSports.HasValue) - { - var val = query.IsSports.Value; - recordings = recordings.Where(i => i.IsSports == val); - } - - if (!string.IsNullOrEmpty(query.SeriesTimerId)) - { - var guid = new Guid(query.SeriesTimerId); - - recordings = recordings - .Where(i => _tvDtoService.GetInternalSeriesTimerId(i.ServiceName, i.SeriesTimerId) == guid); - } - - recordings = recordings.OrderByDescending(i => i.StartDate); - - var entityList = recordings.ToList(); - IEnumerable<ILiveTvRecording> entities = entityList; - - if (query.StartIndex.HasValue) - { - entities = entities.Skip(query.StartIndex.Value); - } - - if (query.Limit.HasValue) - { - entities = entities.Take(query.Limit.Value); - } - - return new QueryResult<BaseItem> - { - Items = entities.Cast<BaseItem>().ToArray(), - TotalRecordCount = entityList.Count - }; - } - - public async Task AddInfoToProgramDto(List<Tuple<BaseItem, BaseItemDto>> tuples, List<ItemFields> fields, User user = null) - { - var programTuples = new List<Tuple<BaseItemDto, string, string, string>>(); - - foreach (var tuple in tuples) - { - var program = (LiveTvProgram)tuple.Item1; - var dto = tuple.Item2; - - dto.StartDate = program.StartDate; - dto.EpisodeTitle = program.EpisodeTitle; - - if (program.IsRepeat) - { - dto.IsRepeat = program.IsRepeat; - } - if (program.IsMovie) - { - dto.IsMovie = program.IsMovie; - } - if (program.IsSeries) - { - dto.IsSeries = program.IsSeries; - } - if (program.IsSports) - { - dto.IsSports = program.IsSports; - } - if (program.IsLive) - { - dto.IsLive = program.IsLive; - } - if (program.IsNews) - { - dto.IsNews = program.IsNews; - } - if (program.IsKids) - { - dto.IsKids = program.IsKids; - } - if (program.IsPremiere) - { - dto.IsPremiere = program.IsPremiere; - } - - if (fields.Contains(ItemFields.ChannelInfo)) - { - var channel = GetInternalChannel(program.ChannelId); - - if (channel != null) - { - dto.ChannelName = channel.Name; - dto.MediaType = channel.MediaType; - dto.ChannelNumber = channel.Number; - - if (channel.HasImage(ImageType.Primary)) - { - dto.ChannelPrimaryImageTag = _tvDtoService.GetImageTag(channel); - } - } - } - - var serviceName = program.ServiceName; - - if (fields.Contains(ItemFields.ServiceName)) - { - dto.ServiceName = serviceName; - } - - programTuples.Add(new Tuple<BaseItemDto, string, string, string>(dto, serviceName, program.ExternalId, program.ExternalSeriesIdLegacy)); - } - - await AddRecordingInfo(programTuples, CancellationToken.None).ConfigureAwait(false); - } - - public void AddInfoToRecordingDto(BaseItem item, BaseItemDto dto, User user = null) - { - var recording = (ILiveTvRecording)item; - var service = GetService(recording); - - var channel = string.IsNullOrWhiteSpace(recording.ChannelId) ? null : GetInternalChannel(recording.ChannelId); - - var info = recording; - - dto.SeriesTimerId = string.IsNullOrEmpty(info.SeriesTimerId) - ? null - : _tvDtoService.GetInternalSeriesTimerId(service.Name, info.SeriesTimerId).ToString("N"); - - dto.TimerId = string.IsNullOrEmpty(info.TimerId) - ? null - : _tvDtoService.GetInternalTimerId(service.Name, info.TimerId).ToString("N"); - - dto.StartDate = info.StartDate; - dto.RecordingStatus = info.Status; - dto.IsRepeat = info.IsRepeat; - dto.EpisodeTitle = info.EpisodeTitle; - dto.IsMovie = info.IsMovie; - dto.IsSeries = info.IsSeries; - dto.IsSports = info.IsSports; - dto.IsLive = info.IsLive; - dto.IsNews = info.IsNews; - dto.IsKids = info.IsKids; - dto.IsPremiere = info.IsPremiere; - - dto.CanDelete = user == null - ? recording.CanDelete() - : recording.CanDelete(user); - - if (dto.MediaSources == null) - { - dto.MediaSources = recording.GetMediaSources(true).ToList(); - } - - if (dto.MediaStreams == null) - { - dto.MediaStreams = dto.MediaSources.SelectMany(i => i.MediaStreams).ToList(); - } - - if (info.Status == RecordingStatus.InProgress && info.EndDate.HasValue) - { - var now = DateTime.UtcNow.Ticks; - var start = info.StartDate.Ticks; - var end = info.EndDate.Value.Ticks; - - var pct = now - start; - pct /= end; - pct *= 100; - dto.CompletionPercentage = pct; - } - - if (channel != null) - { - dto.ChannelName = channel.Name; - - if (channel.HasImage(ImageType.Primary)) - { - dto.ChannelPrimaryImageTag = _tvDtoService.GetImageTag(channel); - } - } - } - - public async Task<QueryResult<BaseItemDto>> GetRecordings(RecordingQuery query, DtoOptions options, CancellationToken cancellationToken) - { - var user = string.IsNullOrEmpty(query.UserId) ? null : _userManager.GetUserById(query.UserId); - - var internalResult = await GetInternalRecordings(query, cancellationToken).ConfigureAwait(false); - - RemoveFields(options); - - var returnArray = (await _dtoService.GetBaseItemDtos(internalResult.Items, options, user).ConfigureAwait(false)).ToArray(); - - return new QueryResult<BaseItemDto> - { - Items = returnArray, - TotalRecordCount = internalResult.TotalRecordCount - }; - } - - public async Task<QueryResult<TimerInfoDto>> GetTimers(TimerQuery query, CancellationToken cancellationToken) - { - var tasks = _services.Select(async i => - { - try - { - var recs = await i.GetTimersAsync(cancellationToken).ConfigureAwait(false); - return recs.Select(r => new Tuple<TimerInfo, ILiveTvService>(r, i)); - } - catch (Exception ex) - { - _logger.ErrorException("Error getting recordings", ex); - return new List<Tuple<TimerInfo, ILiveTvService>>(); - } - }); - var results = await Task.WhenAll(tasks).ConfigureAwait(false); - var timers = results.SelectMany(i => i.ToList()); - - if (query.IsActive.HasValue) - { - if (query.IsActive.Value) - { - timers = timers.Where(i => i.Item1.Status == RecordingStatus.InProgress); - } - else - { - timers = timers.Where(i => i.Item1.Status != RecordingStatus.InProgress); - } - } - - if (query.IsScheduled.HasValue) - { - if (query.IsScheduled.Value) - { - timers = timers.Where(i => i.Item1.Status == RecordingStatus.New); - } - else - { - timers = timers.Where(i => i.Item1.Status != RecordingStatus.New); - } - } - - if (!string.IsNullOrEmpty(query.ChannelId)) - { - var guid = new Guid(query.ChannelId); - timers = timers.Where(i => guid == _tvDtoService.GetInternalChannelId(i.Item2.Name, i.Item1.ChannelId)); - } - - if (!string.IsNullOrEmpty(query.SeriesTimerId)) - { - var guid = new Guid(query.SeriesTimerId); - - timers = timers - .Where(i => _tvDtoService.GetInternalSeriesTimerId(i.Item2.Name, i.Item1.SeriesTimerId) == guid); - } - - var returnList = new List<TimerInfoDto>(); - - foreach (var i in timers) - { - var program = string.IsNullOrEmpty(i.Item1.ProgramId) ? - null : - GetInternalProgram(_tvDtoService.GetInternalProgramId(i.Item2.Name, i.Item1.ProgramId).ToString("N")); - - var channel = string.IsNullOrEmpty(i.Item1.ChannelId) ? null : GetInternalChannel(_tvDtoService.GetInternalChannelId(i.Item2.Name, i.Item1.ChannelId)); - - returnList.Add(_tvDtoService.GetTimerInfoDto(i.Item1, i.Item2, program, channel)); - } - - var returnArray = returnList - .OrderBy(i => i.StartDate) - .ToArray(); - - return new QueryResult<TimerInfoDto> - { - Items = returnArray, - TotalRecordCount = returnArray.Length - }; - } - - public Task OnRecordingFileDeleted(BaseItem recording) - { - var service = GetService(recording); - - if (service is EmbyTV.EmbyTV) - { - // We can't trust that we'll be able to direct stream it through emby server, no matter what the provider says - return service.DeleteRecordingAsync(recording.ExternalId, CancellationToken.None); - } - - return Task.FromResult(true); - } - - public async Task DeleteRecording(string recordingId) - { - var recording = await GetInternalRecording(recordingId, CancellationToken.None).ConfigureAwait(false); - - if (recording == null) - { - throw new ResourceNotFoundException(string.Format("Recording with Id {0} not found", recordingId)); - } - - await DeleteRecording((BaseItem)recording).ConfigureAwait(false); - } - - public async Task DeleteRecording(BaseItem recording) - { - var service = GetService(recording.ServiceName); - - try - { - await service.DeleteRecordingAsync(recording.ExternalId, CancellationToken.None).ConfigureAwait(false); - } - catch (ResourceNotFoundException) - { - - } - - _lastRecordingRefreshTime = DateTime.MinValue; - - // This is the responsibility of the live tv service - await _libraryManager.DeleteItem((BaseItem)recording, new DeleteOptions - { - DeleteFileLocation = false - - }).ConfigureAwait(false); - - _lastRecordingRefreshTime = DateTime.MinValue; - } - - public async Task CancelTimer(string id) - { - var timer = await GetTimer(id, CancellationToken.None).ConfigureAwait(false); - - if (timer == null) - { - throw new ResourceNotFoundException(string.Format("Timer with Id {0} not found", id)); - } - - var service = GetService(timer.ServiceName); - - await service.CancelTimerAsync(timer.ExternalId, CancellationToken.None).ConfigureAwait(false); - _lastRecordingRefreshTime = DateTime.MinValue; - - EventHelper.QueueEventIfNotNull(TimerCancelled, this, new GenericEventArgs<TimerEventInfo> - { - Argument = new TimerEventInfo - { - Id = id - } - }, _logger); - } - - public async Task CancelSeriesTimer(string id) - { - var timer = await GetSeriesTimer(id, CancellationToken.None).ConfigureAwait(false); - - if (timer == null) - { - throw new ResourceNotFoundException(string.Format("Timer with Id {0} not found", id)); - } - - var service = GetService(timer.ServiceName); - - await service.CancelSeriesTimerAsync(timer.ExternalId, CancellationToken.None).ConfigureAwait(false); - _lastRecordingRefreshTime = DateTime.MinValue; - - EventHelper.QueueEventIfNotNull(SeriesTimerCancelled, this, new GenericEventArgs<TimerEventInfo> - { - Argument = new TimerEventInfo - { - Id = id - } - }, _logger); - } - - public async Task<BaseItemDto> GetRecording(string id, DtoOptions options, CancellationToken cancellationToken, User user = null) - { - var item = await GetInternalRecording(id, cancellationToken).ConfigureAwait(false); - - if (item == null) - { - return null; - } - - return _dtoService.GetBaseItemDto((BaseItem)item, options, user); - } - - public async Task<TimerInfoDto> GetTimer(string id, CancellationToken cancellationToken) - { - var results = await GetTimers(new TimerQuery(), cancellationToken).ConfigureAwait(false); - - return results.Items.FirstOrDefault(i => string.Equals(i.Id, id, StringComparison.OrdinalIgnoreCase)); - } - - public async Task<SeriesTimerInfoDto> GetSeriesTimer(string id, CancellationToken cancellationToken) - { - var results = await GetSeriesTimers(new SeriesTimerQuery(), cancellationToken).ConfigureAwait(false); - - return results.Items.FirstOrDefault(i => string.Equals(i.Id, id, StringComparison.OrdinalIgnoreCase)); - } - - private async Task<QueryResult<SeriesTimerInfo>> GetSeriesTimersInternal(SeriesTimerQuery query, CancellationToken cancellationToken) - { - var tasks = _services.Select(async i => - { - try - { - var recs = await i.GetSeriesTimersAsync(cancellationToken).ConfigureAwait(false); - return recs.Select(r => - { - r.ServiceName = i.Name; - return new Tuple<SeriesTimerInfo, ILiveTvService>(r, i); - }); - } - catch (Exception ex) - { - _logger.ErrorException("Error getting recordings", ex); - return new List<Tuple<SeriesTimerInfo, ILiveTvService>>(); - } - }); - var results = await Task.WhenAll(tasks).ConfigureAwait(false); - var timers = results.SelectMany(i => i.ToList()); - - if (string.Equals(query.SortBy, "Priority", StringComparison.OrdinalIgnoreCase)) - { - timers = query.SortOrder == SortOrder.Descending ? - timers.OrderBy(i => i.Item1.Priority).ThenByStringDescending(i => i.Item1.Name) : - timers.OrderByDescending(i => i.Item1.Priority).ThenByString(i => i.Item1.Name); - } - else - { - timers = query.SortOrder == SortOrder.Descending ? - timers.OrderByStringDescending(i => i.Item1.Name) : - timers.OrderByString(i => i.Item1.Name); - } - - var returnArray = timers - .Select(i => - { - return i.Item1; - - }) - .ToArray(); - - return new QueryResult<SeriesTimerInfo> - { - Items = returnArray, - TotalRecordCount = returnArray.Length - }; - } - - public async Task<QueryResult<SeriesTimerInfoDto>> GetSeriesTimers(SeriesTimerQuery query, CancellationToken cancellationToken) - { - var tasks = _services.Select(async i => - { - try - { - var recs = await i.GetSeriesTimersAsync(cancellationToken).ConfigureAwait(false); - return recs.Select(r => new Tuple<SeriesTimerInfo, ILiveTvService>(r, i)); - } - catch (Exception ex) - { - _logger.ErrorException("Error getting recordings", ex); - return new List<Tuple<SeriesTimerInfo, ILiveTvService>>(); - } - }); - var results = await Task.WhenAll(tasks).ConfigureAwait(false); - var timers = results.SelectMany(i => i.ToList()); - - if (string.Equals(query.SortBy, "Priority", StringComparison.OrdinalIgnoreCase)) - { - timers = query.SortOrder == SortOrder.Descending ? - timers.OrderBy(i => i.Item1.Priority).ThenByStringDescending(i => i.Item1.Name) : - timers.OrderByDescending(i => i.Item1.Priority).ThenByString(i => i.Item1.Name); - } - else - { - timers = query.SortOrder == SortOrder.Descending ? - timers.OrderByStringDescending(i => i.Item1.Name) : - timers.OrderByString(i => i.Item1.Name); - } - - var returnArray = timers - .Select(i => - { - string channelName = null; - - if (!string.IsNullOrEmpty(i.Item1.ChannelId)) - { - var internalChannelId = _tvDtoService.GetInternalChannelId(i.Item2.Name, i.Item1.ChannelId); - var channel = GetInternalChannel(internalChannelId); - channelName = channel == null ? null : channel.Name; - } - - return _tvDtoService.GetSeriesTimerInfoDto(i.Item1, i.Item2, channelName); - - }) - .ToArray(); - - return new QueryResult<SeriesTimerInfoDto> - { - Items = returnArray, - TotalRecordCount = returnArray.Length - }; - } - - public void AddChannelInfo(List<Tuple<BaseItemDto, LiveTvChannel>> tuples, DtoOptions options, User user) - { - var now = DateTime.UtcNow; - - var channelIds = tuples.Select(i => i.Item2.Id.ToString("N")).Distinct().ToArray(); - - var programs = options.AddCurrentProgram ? _libraryManager.GetItemList(new InternalItemsQuery(user) - { - IncludeItemTypes = new[] { typeof(LiveTvProgram).Name }, - ChannelIds = channelIds, - MaxStartDate = now, - MinEndDate = now, - Limit = channelIds.Length, - SortBy = new[] { "StartDate" }, - TopParentIds = new[] { GetInternalLiveTvFolder(CancellationToken.None).Result.Id.ToString("N") } - - }).ToList() : new List<BaseItem>(); - - RemoveFields(options); - - foreach (var tuple in tuples) - { - var dto = tuple.Item1; - var channel = tuple.Item2; - - dto.Number = channel.Number; - dto.ChannelNumber = channel.Number; - dto.ChannelType = channel.ChannelType; - dto.ServiceName = channel.ServiceName; - - if (options.Fields.Contains(ItemFields.MediaSources)) - { - dto.MediaSources = channel.GetMediaSources(true).ToList(); - } - - if (options.AddCurrentProgram) - { - var channelIdString = channel.Id.ToString("N"); - var currentProgram = programs.FirstOrDefault(i => string.Equals(i.ChannelId, channelIdString)); - - if (currentProgram != null) - { - dto.CurrentProgram = _dtoService.GetBaseItemDto(currentProgram, options, user); - } - } - } - } - - private async Task<Tuple<SeriesTimerInfo, ILiveTvService>> GetNewTimerDefaultsInternal(CancellationToken cancellationToken, LiveTvProgram program = null) - { - var service = program != null && !string.IsNullOrWhiteSpace(program.ServiceName) ? - GetService(program) : - _services.FirstOrDefault(); - - ProgramInfo programInfo = null; - - if (program != null) - { - var channel = GetInternalChannel(program.ChannelId); - - programInfo = new ProgramInfo - { - Audio = program.Audio, - ChannelId = channel.ExternalId, - CommunityRating = program.CommunityRating, - EndDate = program.EndDate ?? DateTime.MinValue, - EpisodeTitle = program.EpisodeTitle, - Genres = program.Genres, - Id = program.ExternalId, - IsHD = program.IsHD, - IsKids = program.IsKids, - IsLive = program.IsLive, - IsMovie = program.IsMovie, - IsNews = program.IsNews, - IsPremiere = program.IsPremiere, - IsRepeat = program.IsRepeat, - IsSeries = program.IsSeries, - IsSports = program.IsSports, - OriginalAirDate = program.PremiereDate, - Overview = program.Overview, - StartDate = program.StartDate, - //ImagePath = program.ExternalImagePath, - Name = program.Name, - OfficialRating = program.OfficialRating - }; - } - - var info = await service.GetNewTimerDefaultsAsync(cancellationToken, programInfo).ConfigureAwait(false); - - info.RecordAnyTime = true; - info.Days = new List<DayOfWeek> - { - DayOfWeek.Sunday, - DayOfWeek.Monday, - DayOfWeek.Tuesday, - DayOfWeek.Wednesday, - DayOfWeek.Thursday, - DayOfWeek.Friday, - DayOfWeek.Saturday - }; - - info.Id = null; - - return new Tuple<SeriesTimerInfo, ILiveTvService>(info, service); - } - - public async Task<SeriesTimerInfoDto> GetNewTimerDefaults(CancellationToken cancellationToken) - { - var info = await GetNewTimerDefaultsInternal(cancellationToken).ConfigureAwait(false); - - var obj = _tvDtoService.GetSeriesTimerInfoDto(info.Item1, info.Item2, null); - - return obj; - } - - public async Task<SeriesTimerInfoDto> GetNewTimerDefaults(string programId, CancellationToken cancellationToken) - { - var program = GetInternalProgram(programId); - var programDto = await GetProgram(programId, cancellationToken).ConfigureAwait(false); - - var defaults = await GetNewTimerDefaultsInternal(cancellationToken, program).ConfigureAwait(false); - var info = _tvDtoService.GetSeriesTimerInfoDto(defaults.Item1, defaults.Item2, null); - - info.Days = defaults.Item1.Days; - - info.DayPattern = _tvDtoService.GetDayPattern(info.Days); - - info.Name = program.Name; - info.ChannelId = programDto.ChannelId; - info.ChannelName = programDto.ChannelName; - info.StartDate = program.StartDate; - info.Name = program.Name; - info.Overview = program.Overview; - info.ProgramId = programDto.Id; - info.ExternalProgramId = program.ExternalId; - - if (program.EndDate.HasValue) - { - info.EndDate = program.EndDate.Value; - } - - return info; - } - - public async Task CreateTimer(TimerInfoDto timer, CancellationToken cancellationToken) - { - var service = GetService(timer.ServiceName); - - var info = await _tvDtoService.GetTimerInfo(timer, true, this, cancellationToken).ConfigureAwait(false); - - // Set priority from default values - var defaultValues = await service.GetNewTimerDefaultsAsync(cancellationToken).ConfigureAwait(false); - info.Priority = defaultValues.Priority; - - string newTimerId = null; - var supportsNewTimerIds = service as ISupportsNewTimerIds; - if (supportsNewTimerIds != null) - { - newTimerId = await supportsNewTimerIds.CreateTimer(info, cancellationToken).ConfigureAwait(false); - newTimerId = _tvDtoService.GetInternalTimerId(timer.ServiceName, newTimerId).ToString("N"); - } - else - { - await service.CreateTimerAsync(info, cancellationToken).ConfigureAwait(false); - } - - _lastRecordingRefreshTime = DateTime.MinValue; - _logger.Info("New recording scheduled"); - - EventHelper.QueueEventIfNotNull(TimerCreated, this, new GenericEventArgs<TimerEventInfo> - { - Argument = new TimerEventInfo - { - ProgramId = _tvDtoService.GetInternalProgramId(timer.ServiceName, info.ProgramId).ToString("N"), - Id = newTimerId - } - }, _logger); - } - - public async Task CreateSeriesTimer(SeriesTimerInfoDto timer, CancellationToken cancellationToken) - { - var registration = await GetRegistrationInfo("seriesrecordings").ConfigureAwait(false); - - if (!registration.IsValid) - { - _logger.Info("Creating series recordings requires an active Emby Premiere subscription."); - return; - } - - var service = GetService(timer.ServiceName); - - var info = await _tvDtoService.GetSeriesTimerInfo(timer, true, this, cancellationToken).ConfigureAwait(false); - - // Set priority from default values - var defaultValues = await service.GetNewTimerDefaultsAsync(cancellationToken).ConfigureAwait(false); - info.Priority = defaultValues.Priority; - - string newTimerId = null; - var supportsNewTimerIds = service as ISupportsNewTimerIds; - if (supportsNewTimerIds != null) - { - newTimerId = await supportsNewTimerIds.CreateSeriesTimer(info, cancellationToken).ConfigureAwait(false); - newTimerId = _tvDtoService.GetInternalSeriesTimerId(timer.ServiceName, newTimerId).ToString("N"); - } - else - { - await service.CreateSeriesTimerAsync(info, cancellationToken).ConfigureAwait(false); - } - - _lastRecordingRefreshTime = DateTime.MinValue; - - EventHelper.QueueEventIfNotNull(SeriesTimerCreated, this, new GenericEventArgs<TimerEventInfo> - { - Argument = new TimerEventInfo - { - ProgramId = _tvDtoService.GetInternalProgramId(timer.ServiceName, info.ProgramId).ToString("N"), - Id = newTimerId - } - }, _logger); - } - - public async Task UpdateTimer(TimerInfoDto timer, CancellationToken cancellationToken) - { - var info = await _tvDtoService.GetTimerInfo(timer, false, this, cancellationToken).ConfigureAwait(false); - - var service = GetService(timer.ServiceName); - - await service.UpdateTimerAsync(info, cancellationToken).ConfigureAwait(false); - _lastRecordingRefreshTime = DateTime.MinValue; - } - - public async Task UpdateSeriesTimer(SeriesTimerInfoDto timer, CancellationToken cancellationToken) - { - var info = await _tvDtoService.GetSeriesTimerInfo(timer, false, this, cancellationToken).ConfigureAwait(false); - - var service = GetService(timer.ServiceName); - - await service.UpdateSeriesTimerAsync(info, cancellationToken).ConfigureAwait(false); - _lastRecordingRefreshTime = DateTime.MinValue; - } - - private IEnumerable<string> GetRecordingGroupNames(ILiveTvRecording recording) - { - var list = new List<string>(); - - if (recording.IsSeries) - { - list.Add(recording.Name); - } - - if (recording.IsKids) - { - list.Add("Kids"); - } - - if (recording.IsMovie) - { - list.Add("Movies"); - } - - if (recording.IsNews) - { - list.Add("News"); - } - - if (recording.IsSports) - { - list.Add("Sports"); - } - - if (!recording.IsSports && !recording.IsNews && !recording.IsMovie && !recording.IsKids && !recording.IsSeries) - { - list.Add("Others"); - } - - return list; - } - - private List<Guid> GetRecordingGroupIds(ILiveTvRecording recording) - { - return GetRecordingGroupNames(recording).Select(i => i.ToLower() - .GetMD5()) - .ToList(); - } - - public async Task<QueryResult<BaseItemDto>> GetRecordingGroups(RecordingGroupQuery query, CancellationToken cancellationToken) - { - var recordingResult = await GetInternalRecordings(new RecordingQuery - { - UserId = query.UserId - - }, cancellationToken).ConfigureAwait(false); - - var recordings = recordingResult.Items.OfType<ILiveTvRecording>().ToList(); - - var groups = new List<BaseItemDto>(); - - var series = recordings - .Where(i => i.IsSeries) - .ToLookup(i => i.Name, StringComparer.OrdinalIgnoreCase) - .ToList(); - - groups.AddRange(series.OrderByString(i => i.Key).Select(i => new BaseItemDto - { - Name = i.Key, - RecordingCount = i.Count() - })); - - groups.Add(new BaseItemDto - { - Name = "Kids", - RecordingCount = recordings.Count(i => i.IsKids) - }); - - groups.Add(new BaseItemDto - { - Name = "Movies", - RecordingCount = recordings.Count(i => i.IsMovie) - }); - - groups.Add(new BaseItemDto - { - Name = "News", - RecordingCount = recordings.Count(i => i.IsNews) - }); - - groups.Add(new BaseItemDto - { - Name = "Sports", - RecordingCount = recordings.Count(i => i.IsSports) - }); - - groups.Add(new BaseItemDto - { - Name = "Others", - RecordingCount = recordings.Count(i => !i.IsSports && !i.IsNews && !i.IsMovie && !i.IsKids && !i.IsSeries) - }); - - groups = groups - .Where(i => i.RecordingCount > 0) - .ToList(); - - foreach (var group in groups) - { - group.Id = group.Name.ToLower().GetMD5().ToString("N"); - } - - return new QueryResult<BaseItemDto> - { - Items = groups.ToArray(), - TotalRecordCount = groups.Count - }; - } - - public async Task CloseLiveStream(string id) - { - var parts = id.Split(new[] { '_' }, 2); - - var service = _services.FirstOrDefault(i => string.Equals(i.GetType().FullName.GetMD5().ToString("N"), parts[0], StringComparison.OrdinalIgnoreCase)); - - if (service == null) - { - throw new ArgumentException("Service not found."); - } - - id = parts[1]; - - _logger.Info("Closing live stream from {0}, stream Id: {1}", service.Name, id); - - await service.CloseLiveStream(id, CancellationToken.None).ConfigureAwait(false); - } - - public GuideInfo GetGuideInfo() - { - var startDate = DateTime.UtcNow; - var endDate = startDate.AddDays(14); - - return new GuideInfo - { - StartDate = startDate, - EndDate = endDate - }; - } - - /// <summary> - /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - /// </summary> - public void Dispose() - { - Dispose(true); - } - - private bool _isDisposed = false; - /// <summary> - /// Releases unmanaged and - optionally - managed resources. - /// </summary> - /// <param name="dispose"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param> - protected virtual void Dispose(bool dispose) - { - if (dispose) - { - _isDisposed = true; - } - } - - private async Task<IEnumerable<LiveTvServiceInfo>> GetServiceInfos(CancellationToken cancellationToken) - { - var tasks = Services.Select(i => GetServiceInfo(i, cancellationToken)); - - return await Task.WhenAll(tasks).ConfigureAwait(false); - } - - private async Task<LiveTvServiceInfo> GetServiceInfo(ILiveTvService service, CancellationToken cancellationToken) - { - var info = new LiveTvServiceInfo - { - Name = service.Name - }; - - var tunerIdPrefix = service.GetType().FullName.GetMD5().ToString("N") + "_"; - - try - { - var statusInfo = await service.GetStatusInfoAsync(cancellationToken).ConfigureAwait(false); - - info.Status = statusInfo.Status; - info.StatusMessage = statusInfo.StatusMessage; - info.Version = statusInfo.Version; - info.HasUpdateAvailable = statusInfo.HasUpdateAvailable; - info.HomePageUrl = service.HomePageUrl; - info.IsVisible = statusInfo.IsVisible; - - info.Tuners = statusInfo.Tuners.Select(i => - { - string channelName = null; - - if (!string.IsNullOrEmpty(i.ChannelId)) - { - var internalChannelId = _tvDtoService.GetInternalChannelId(service.Name, i.ChannelId); - var channel = GetInternalChannel(internalChannelId); - channelName = channel == null ? null : channel.Name; - } - - var dto = _tvDtoService.GetTunerInfoDto(service.Name, i, channelName); - - dto.Id = tunerIdPrefix + dto.Id; - - return dto; - - }).ToList(); - } - catch (Exception ex) - { - _logger.ErrorException("Error getting service status info from {0}", ex, service.Name ?? string.Empty); - - info.Status = LiveTvServiceStatus.Unavailable; - info.StatusMessage = ex.Message; - } - - return info; - } - - public async Task<LiveTvInfo> GetLiveTvInfo(CancellationToken cancellationToken) - { - var services = await GetServiceInfos(CancellationToken.None).ConfigureAwait(false); - var servicesList = services.ToList(); - - var info = new LiveTvInfo - { - Services = servicesList.ToList(), - IsEnabled = servicesList.Count > 0 - }; - - info.EnabledUsers = _userManager.Users - .Where(IsLiveTvEnabled) - .Select(i => i.Id.ToString("N")) - .ToList(); - - return info; - } - - private bool IsLiveTvEnabled(User user) - { - return user.Policy.EnableLiveTvAccess && (Services.Count > 1 || GetConfiguration().TunerHosts.Count(i => i.IsEnabled) > 0); - } - - public IEnumerable<User> GetEnabledUsers() - { - return _userManager.Users - .Where(IsLiveTvEnabled); - } - - /// <summary> - /// Resets the tuner. - /// </summary> - /// <param name="id">The identifier.</param> - /// <param name="cancellationToken">The cancellation token.</param> - /// <returns>Task.</returns> - public Task ResetTuner(string id, CancellationToken cancellationToken) - { - var parts = id.Split(new[] { '_' }, 2); - - var service = _services.FirstOrDefault(i => string.Equals(i.GetType().FullName.GetMD5().ToString("N"), parts[0], StringComparison.OrdinalIgnoreCase)); - - if (service == null) - { - throw new ArgumentException("Service not found."); - } - - return service.ResetTuner(parts[1], cancellationToken); - } - - public async Task<BaseItemDto> GetLiveTvFolder(string userId, CancellationToken cancellationToken) - { - var user = string.IsNullOrEmpty(userId) ? null : _userManager.GetUserById(userId); - - var folder = await GetInternalLiveTvFolder(cancellationToken).ConfigureAwait(false); - - return _dtoService.GetBaseItemDto(folder, new DtoOptions(), user); - } - - private void RemoveFields(DtoOptions options) - { - options.Fields.Remove(ItemFields.CanDelete); - options.Fields.Remove(ItemFields.CanDownload); - options.Fields.Remove(ItemFields.DisplayPreferencesId); - options.Fields.Remove(ItemFields.Etag); - } - - public async Task<Folder> GetInternalLiveTvFolder(CancellationToken cancellationToken) - { - var name = _localization.GetLocalizedString("ViewTypeLiveTV"); - return await _libraryManager.GetNamedView(name, CollectionType.LiveTv, name, cancellationToken).ConfigureAwait(false); - } - - public async Task<TunerHostInfo> SaveTunerHost(TunerHostInfo info, bool dataSourceChanged = true) - { - info = _jsonSerializer.DeserializeFromString<TunerHostInfo>(_jsonSerializer.SerializeToString(info)); - - var provider = _tunerHosts.FirstOrDefault(i => string.Equals(info.Type, i.Type, StringComparison.OrdinalIgnoreCase)); - - if (provider == null) - { - throw new ResourceNotFoundException(); - } - - var configurable = provider as IConfigurableTunerHost; - if (configurable != null) - { - await configurable.Validate(info).ConfigureAwait(false); - } - - var config = GetConfiguration(); - - var index = config.TunerHosts.FindIndex(i => string.Equals(i.Id, info.Id, StringComparison.OrdinalIgnoreCase)); - - if (index == -1 || string.IsNullOrWhiteSpace(info.Id)) - { - info.Id = Guid.NewGuid().ToString("N"); - config.TunerHosts.Add(info); - } - else - { - config.TunerHosts[index] = info; - } - - _config.SaveConfiguration("livetv", config); - - if (dataSourceChanged) - { - _taskManager.CancelIfRunningAndQueue<RefreshChannelsScheduledTask>(); - } - - return info; - } - - public async Task<ListingsProviderInfo> SaveListingProvider(ListingsProviderInfo info, bool validateLogin, bool validateListings) - { - info = _jsonSerializer.DeserializeFromString< ListingsProviderInfo>(_jsonSerializer.SerializeToString(info)); - - var provider = _listingProviders.FirstOrDefault(i => string.Equals(info.Type, i.Type, StringComparison.OrdinalIgnoreCase)); - - if (provider == null) - { - throw new ResourceNotFoundException(); - } - - await provider.Validate(info, validateLogin, validateListings).ConfigureAwait(false); - - var config = GetConfiguration(); - - var index = config.ListingProviders.FindIndex(i => string.Equals(i.Id, info.Id, StringComparison.OrdinalIgnoreCase)); - - if (index == -1 || string.IsNullOrWhiteSpace(info.Id)) - { - info.Id = Guid.NewGuid().ToString("N"); - config.ListingProviders.Add(info); - } - else - { - config.ListingProviders[index] = info; - } - - _config.SaveConfiguration("livetv", config); - - _taskManager.CancelIfRunningAndQueue<RefreshChannelsScheduledTask>(); - - return info; - } - - public void DeleteListingsProvider(string id) - { - var config = GetConfiguration(); - - config.ListingProviders = config.ListingProviders.Where(i => !string.Equals(id, i.Id, StringComparison.OrdinalIgnoreCase)).ToList(); - - _config.SaveConfiguration("livetv", config); - _taskManager.CancelIfRunningAndQueue<RefreshChannelsScheduledTask>(); - } - - public async Task<TunerChannelMapping> SetChannelMapping(string providerId, string tunerChannelNumber, string providerChannelNumber) - { - var config = GetConfiguration(); - - var listingsProviderInfo = config.ListingProviders.First(i => string.Equals(providerId, i.Id, StringComparison.OrdinalIgnoreCase)); - listingsProviderInfo.ChannelMappings = listingsProviderInfo.ChannelMappings.Where(i => !string.Equals(i.Name, tunerChannelNumber, StringComparison.OrdinalIgnoreCase)).ToArray(); - - if (!string.Equals(tunerChannelNumber, providerChannelNumber, StringComparison.OrdinalIgnoreCase)) - { - var list = listingsProviderInfo.ChannelMappings.ToList(); - list.Add(new NameValuePair - { - Name = tunerChannelNumber, - Value = providerChannelNumber - }); - listingsProviderInfo.ChannelMappings = list.ToArray(); - } - - _config.SaveConfiguration("livetv", config); - - var tunerChannels = await GetChannelsForListingsProvider(providerId, CancellationToken.None) - .ConfigureAwait(false); - - var providerChannels = await GetChannelsFromListingsProviderData(providerId, CancellationToken.None) - .ConfigureAwait(false); - - var mappings = listingsProviderInfo.ChannelMappings.ToList(); - - var tunerChannelMappings = - tunerChannels.Select(i => GetTunerChannelMapping(i, mappings, providerChannels)).ToList(); - - _taskManager.CancelIfRunningAndQueue<RefreshChannelsScheduledTask>(); - - return tunerChannelMappings.First(i => string.Equals(i.Number, tunerChannelNumber, StringComparison.OrdinalIgnoreCase)); - } - - public TunerChannelMapping GetTunerChannelMapping(ChannelInfo channel, List<NameValuePair> mappings, List<ChannelInfo> providerChannels) - { - var result = new TunerChannelMapping - { - Name = channel.Number + " " + channel.Name, - Number = channel.Number - }; - - var mapping = mappings.FirstOrDefault(i => string.Equals(i.Name, channel.Number, StringComparison.OrdinalIgnoreCase)); - var providerChannelNumber = channel.Number; - - if (mapping != null) - { - providerChannelNumber = mapping.Value; - } - - var providerChannel = providerChannels.FirstOrDefault(i => string.Equals(i.Number, providerChannelNumber, StringComparison.OrdinalIgnoreCase)); - - if (providerChannel != null) - { - result.ProviderChannelNumber = providerChannel.Number; - result.ProviderChannelName = providerChannel.Name; - } - - return result; - } - - public Task<List<NameIdPair>> GetLineups(string providerType, string providerId, string country, string location) - { - var config = GetConfiguration(); - - if (string.IsNullOrWhiteSpace(providerId)) - { - var provider = _listingProviders.FirstOrDefault(i => string.Equals(providerType, i.Type, StringComparison.OrdinalIgnoreCase)); - - if (provider == null) - { - throw new ResourceNotFoundException(); - } - - return provider.GetLineups(null, country, location); - } - else - { - var info = config.ListingProviders.FirstOrDefault(i => string.Equals(i.Id, providerId, StringComparison.OrdinalIgnoreCase)); - - var provider = _listingProviders.FirstOrDefault(i => string.Equals(info.Type, i.Type, StringComparison.OrdinalIgnoreCase)); - - if (provider == null) - { - throw new ResourceNotFoundException(); - } - - return provider.GetLineups(info, country, location); - } - } - - public Task<MBRegistrationRecord> GetRegistrationInfo(string feature) - { - if (string.Equals(feature, "seriesrecordings", StringComparison.OrdinalIgnoreCase)) - { - feature = "embytvseriesrecordings"; - } - - if (string.Equals(feature, "dvr-l", StringComparison.OrdinalIgnoreCase)) - { - var config = GetConfiguration(); - if (config.TunerHosts.Count(i => i.IsEnabled) > 0 && - config.ListingProviders.Count(i => (i.EnableAllTuners || i.EnabledTuners.Length > 0) && string.Equals(i.Type, SchedulesDirect.TypeName, StringComparison.OrdinalIgnoreCase)) > 0) - { - return Task.FromResult(new MBRegistrationRecord - { - IsRegistered = true, - IsValid = true - }); - } - } - - return _security.GetRegistrationStatus(feature); - } - - public List<NameValuePair> GetSatIniMappings() - { - var names = GetType().Assembly.GetManifestResourceNames().Where(i => i.IndexOf("SatIp.ini", StringComparison.OrdinalIgnoreCase) != -1).ToList(); - - return names.Select(GetSatIniMappings).Where(i => i != null).DistinctBy(i => i.Value.Split('|')[0]).ToList(); - } - - public NameValuePair GetSatIniMappings(string resource) - { - using (var stream = GetType().Assembly.GetManifestResourceStream(resource)) - { - using (var reader = new StreamReader(stream)) - { - var parser = new StreamIniDataParser(); - IniData data = parser.ReadData(reader); - - var satType1 = data["SATTYPE"]["1"]; - var satType2 = data["SATTYPE"]["2"]; - - if (string.IsNullOrWhiteSpace(satType2)) - { - return null; - } - - var srch = "SatIp.ini."; - var filename = Path.GetFileName(resource); - - return new NameValuePair - { - Name = satType1 + " " + satType2, - Value = satType2 + "|" + filename.Substring(filename.IndexOf(srch) + srch.Length) - }; - } - } - } - - public Task<List<ChannelInfo>> GetSatChannelScanResult(TunerHostInfo info, CancellationToken cancellationToken) - { - return new TunerHosts.SatIp.ChannelScan(_logger).Scan(info, cancellationToken); - } - - public Task<List<ChannelInfo>> GetChannelsForListingsProvider(string id, CancellationToken cancellationToken) - { - var info = GetConfiguration().ListingProviders.First(i => string.Equals(i.Id, id, StringComparison.OrdinalIgnoreCase)); - return EmbyTV.EmbyTV.Current.GetChannelsForListingsProvider(info, cancellationToken); - } - - public Task<List<ChannelInfo>> GetChannelsFromListingsProviderData(string id, CancellationToken cancellationToken) - { - var info = GetConfiguration().ListingProviders.First(i => string.Equals(i.Id, id, StringComparison.OrdinalIgnoreCase)); - var provider = _listingProviders.First(i => string.Equals(i.Type, info.Type, StringComparison.OrdinalIgnoreCase)); - return provider.GetChannels(info, cancellationToken); - } - } -}
\ No newline at end of file diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvMediaSourceProvider.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvMediaSourceProvider.cs deleted file mode 100644 index 393708fb7d..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvMediaSourceProvider.cs +++ /dev/null @@ -1,224 +0,0 @@ -using MediaBrowser.Controller; -using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.Library; -using MediaBrowser.Controller.LiveTv; -using MediaBrowser.Controller.MediaEncoding; -using MediaBrowser.Model.Dto; -using MediaBrowser.Model.Logging; -using MediaBrowser.Model.MediaInfo; -using MediaBrowser.Model.Serialization; -using System; -using System.Collections.Generic; -using System.Globalization; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; -using MediaBrowser.Model.Dlna; - -namespace MediaBrowser.Server.Implementations.LiveTv -{ - public class LiveTvMediaSourceProvider : IMediaSourceProvider - { - private readonly ILiveTvManager _liveTvManager; - private readonly IJsonSerializer _jsonSerializer; - 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, IServerApplicationHost appHost) - { - _liveTvManager = liveTvManager; - _jsonSerializer = jsonSerializer; - _mediaSourceManager = mediaSourceManager; - _mediaEncoder = mediaEncoder; - _appHost = appHost; - _logger = logManager.GetLogger(GetType().Name); - } - - public Task<IEnumerable<MediaSourceInfo>> GetMediaSources(IHasMediaSources item, CancellationToken cancellationToken) - { - var baseItem = (BaseItem)item; - - if (baseItem.SourceType == SourceType.LiveTV) - { - if (string.IsNullOrWhiteSpace(baseItem.Path)) - { - return GetMediaSourcesInternal(item, cancellationToken); - } - } - - return Task.FromResult<IEnumerable<MediaSourceInfo>>(new List<MediaSourceInfo>()); - } - - // Do not use a pipe here because Roku http requests to the server will fail, without any explicit error message. - private const char StreamIdDelimeter = '_'; - private const string StreamIdDelimeterString = "_"; - - private async Task<IEnumerable<MediaSourceInfo>> GetMediaSourcesInternal(IHasMediaSources item, CancellationToken cancellationToken) - { - IEnumerable<MediaSourceInfo> sources; - - var forceRequireOpening = false; - - try - { - if (item is ILiveTvRecording) - { - sources = await _liveTvManager.GetRecordingMediaSources(item, cancellationToken) - .ConfigureAwait(false); - } - else - { - sources = await _liveTvManager.GetChannelMediaSources(item, cancellationToken) - .ConfigureAwait(false); - } - } - catch (NotImplementedException) - { - var hasMediaSources = (IHasMediaSources)item; - - sources = _mediaSourceManager.GetStaticMediaSources(hasMediaSources, false) - .ToList(); - - forceRequireOpening = true; - } - - var list = sources.ToList(); - var serverUrl = await _appHost.GetLocalApiUrl().ConfigureAwait(false); - - foreach (var source in list) - { - source.Type = MediaSourceType.Default; - source.BufferMs = source.BufferMs ?? 1500; - - if (source.RequiresOpening || forceRequireOpening) - { - source.RequiresOpening = true; - } - - if (source.RequiresOpening) - { - var openKeys = new List<string>(); - openKeys.Add(item.GetType().Name); - openKeys.Add(item.Id.ToString("N")); - openKeys.Add(source.Id ?? string.Empty); - source.OpenToken = string.Join(StreamIdDelimeterString, 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)); - - return list; - } - - public async Task<Tuple<MediaSourceInfo, IDirectStreamProvider>> OpenMediaSource(string openToken, CancellationToken cancellationToken) - { - MediaSourceInfo stream = null; - const bool isAudio = false; - - var keys = openToken.Split(new[] { StreamIdDelimeter }, 3); - var mediaSourceId = keys.Length >= 3 ? keys[2] : null; - IDirectStreamProvider directStreamProvider = null; - - if (string.Equals(keys[0], typeof(LiveTvChannel).Name, StringComparison.OrdinalIgnoreCase)) - { - var info = await _liveTvManager.GetChannelStream(keys[1], mediaSourceId, cancellationToken).ConfigureAwait(false); - stream = info.Item1; - directStreamProvider = info.Item2; - } - else - { - stream = await _liveTvManager.GetRecordingStream(keys[1], cancellationToken).ConfigureAwait(false); - } - - try - { - if (!stream.SupportsProbing || stream.MediaStreams.Any(i => i.Index != -1)) - { - await AddMediaInfo(stream, isAudio, cancellationToken).ConfigureAwait(false); - } - else - { - await new LiveStreamHelper(_mediaEncoder, _logger).AddMediaInfoWithProbe(stream, isAudio, cancellationToken).ConfigureAwait(false); - } - } - catch (Exception ex) - { - _logger.ErrorException("Error probing live tv stream", ex); - } - - return new Tuple<MediaSourceInfo, IDirectStreamProvider>(stream, directStreamProvider); - } - - private async Task AddMediaInfo(MediaSourceInfo mediaSource, bool isAudio, CancellationToken cancellationToken) - { - var originalRuntime = mediaSource.RunTimeTicks; - - mediaSource.DefaultSubtitleStreamIndex = null; - - // Null this out so that it will be treated like a live stream - if (!originalRuntime.HasValue) - { - mediaSource.RunTimeTicks = null; - } - - var audioStream = mediaSource.MediaStreams.FirstOrDefault(i => i.Type == Model.Entities.MediaStreamType.Audio); - - if (audioStream == null || audioStream.Index == -1) - { - mediaSource.DefaultAudioStreamIndex = null; - } - else - { - mediaSource.DefaultAudioStreamIndex = audioStream.Index; - } - - var videoStream = mediaSource.MediaStreams.FirstOrDefault(i => i.Type == Model.Entities.MediaStreamType.Video); - if (videoStream != null) - { - if (!videoStream.BitRate.HasValue) - { - var width = videoStream.Width ?? 1920; - - if (width >= 1900) - { - videoStream.BitRate = 8000000; - } - - else if (width >= 1260) - { - videoStream.BitRate = 3000000; - } - - else if (width >= 700) - { - videoStream.BitRate = 1000000; - } - } - } - - // Try to estimate this - if (!mediaSource.Bitrate.HasValue) - { - var total = mediaSource.MediaStreams.Select(i => i.BitRate ?? 0).Sum(); - - if (total > 0) - { - mediaSource.Bitrate = total; - } - } - } - - public Task CloseMediaSource(string liveStreamId) - { - return _liveTvManager.CloseLiveStream(liveStreamId); - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/ProgramImageProvider.cs b/MediaBrowser.Server.Implementations/LiveTv/ProgramImageProvider.cs deleted file mode 100644 index 3f0538bd0b..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/ProgramImageProvider.cs +++ /dev/null @@ -1,88 +0,0 @@ -using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.LiveTv; -using MediaBrowser.Controller.Providers; -using MediaBrowser.Model.Entities; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; - -namespace MediaBrowser.Server.Implementations.LiveTv -{ - public class ProgramImageProvider : IDynamicImageProvider, IHasItemChangeMonitor, IHasOrder - { - private readonly ILiveTvManager _liveTvManager; - - public ProgramImageProvider(ILiveTvManager liveTvManager) - { - _liveTvManager = liveTvManager; - } - - public IEnumerable<ImageType> GetSupportedImages(IHasImages item) - { - return new[] { ImageType.Primary }; - } - - public async Task<DynamicImageResponse> GetImage(IHasImages item, ImageType type, CancellationToken cancellationToken) - { - var liveTvItem = (LiveTvProgram)item; - - var imageResponse = new DynamicImageResponse(); - - var service = _liveTvManager.Services.FirstOrDefault(i => string.Equals(i.Name, liveTvItem.ServiceName, StringComparison.OrdinalIgnoreCase)); - - if (service != null) - { - try - { - var channel = _liveTvManager.GetInternalChannel(liveTvItem.ChannelId); - - var response = await service.GetProgramImageAsync(liveTvItem.ExternalId, channel.ExternalId, cancellationToken).ConfigureAwait(false); - - if (response != null) - { - imageResponse.HasImage = true; - imageResponse.Stream = response.Stream; - imageResponse.Format = response.Format; - } - } - catch (NotImplementedException) - { - } - } - - return imageResponse; - } - - public string Name - { - get { return "Live TV Service Provider"; } - } - - public bool Supports(IHasImages item) - { - return item is LiveTvProgram; - } - - public int Order - { - get - { - // Let the better providers run first - return 100; - } - } - - public bool HasChanged(IHasMetadata item, IDirectoryService directoryService) - { - var liveTvItem = item as LiveTvProgram; - - if (liveTvItem != null) - { - return !liveTvItem.HasImage(ImageType.Primary); - } - return false; - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/RecordingImageProvider.cs b/MediaBrowser.Server.Implementations/LiveTv/RecordingImageProvider.cs deleted file mode 100644 index 25678c29d3..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/RecordingImageProvider.cs +++ /dev/null @@ -1,82 +0,0 @@ -using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.LiveTv; -using MediaBrowser.Controller.Providers; -using MediaBrowser.Model.Entities; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; - -namespace MediaBrowser.Server.Implementations.LiveTv -{ - public class RecordingImageProvider : IDynamicImageProvider, IHasItemChangeMonitor - { - private readonly ILiveTvManager _liveTvManager; - - public RecordingImageProvider(ILiveTvManager liveTvManager) - { - _liveTvManager = liveTvManager; - } - - public IEnumerable<ImageType> GetSupportedImages(IHasImages item) - { - return new[] { ImageType.Primary }; - } - - public async Task<DynamicImageResponse> GetImage(IHasImages item, ImageType type, CancellationToken cancellationToken) - { - var liveTvItem = (ILiveTvRecording)item; - - var imageResponse = new DynamicImageResponse(); - - var service = _liveTvManager.Services.FirstOrDefault(i => string.Equals(i.Name, liveTvItem.ServiceName, StringComparison.OrdinalIgnoreCase)); - - if (service != null) - { - try - { - var response = await service.GetRecordingImageAsync(liveTvItem.ExternalId, cancellationToken).ConfigureAwait(false); - - if (response != null) - { - imageResponse.HasImage = true; - imageResponse.Stream = response.Stream; - imageResponse.Format = response.Format; - } - } - catch (NotImplementedException) - { - } - } - - return imageResponse; - } - - public string Name - { - get { return "Live TV Service Provider"; } - } - - public bool Supports(IHasImages item) - { - return item is ILiveTvRecording; - } - - public int Order - { - get { return 0; } - } - - public bool HasChanged(IHasMetadata item, IDirectoryService directoryService) - { - var liveTvItem = item as ILiveTvRecording; - - if (liveTvItem != null) - { - return !liveTvItem.HasImage(ImageType.Primary); - } - return false; - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/RefreshChannelsScheduledTask.cs b/MediaBrowser.Server.Implementations/LiveTv/RefreshChannelsScheduledTask.cs deleted file mode 100644 index 3fb1d96614..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/RefreshChannelsScheduledTask.cs +++ /dev/null @@ -1,73 +0,0 @@ -using MediaBrowser.Common.Configuration; -using MediaBrowser.Common.ScheduledTasks; -using MediaBrowser.Controller.LiveTv; -using MediaBrowser.Model.LiveTv; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; - -namespace MediaBrowser.Server.Implementations.LiveTv -{ - public class RefreshChannelsScheduledTask : IScheduledTask, IConfigurableScheduledTask, IHasKey - { - private readonly ILiveTvManager _liveTvManager; - private readonly IConfigurationManager _config; - - public RefreshChannelsScheduledTask(ILiveTvManager liveTvManager, IConfigurationManager config) - { - _liveTvManager = liveTvManager; - _config = config; - } - - public string Name - { - get { return "Refresh Guide"; } - } - - public string Description - { - get { return "Downloads channel information from live tv services."; } - } - - public string Category - { - get { return "Live TV"; } - } - - public Task Execute(System.Threading.CancellationToken cancellationToken, IProgress<double> progress) - { - var manager = (LiveTvManager)_liveTvManager; - - return manager.RefreshChannels(progress, cancellationToken); - } - - public IEnumerable<ITaskTrigger> GetDefaultTriggers() - { - return new ITaskTrigger[] - { - new IntervalTrigger{ Interval = TimeSpan.FromHours(12)} - }; - } - - private LiveTvOptions GetConfiguration() - { - return _config.GetConfiguration<LiveTvOptions>("livetv"); - } - - public bool IsHidden - { - get { return _liveTvManager.Services.Count == 1 && GetConfiguration().TunerHosts.Count(i => i.IsEnabled) == 0; } - } - - public bool IsEnabled - { - get { return true; } - } - - public string Key - { - get { return "RefreshGuide"; } - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/BaseTunerHost.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/BaseTunerHost.cs deleted file mode 100644 index 0fe74798f5..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/BaseTunerHost.cs +++ /dev/null @@ -1,249 +0,0 @@ -using MediaBrowser.Common.Configuration; -using MediaBrowser.Controller.LiveTv; -using MediaBrowser.Model.Dto; -using MediaBrowser.Model.LiveTv; -using MediaBrowser.Model.Logging; -using System; -using System.Collections.Concurrent; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; -using MediaBrowser.Controller.Configuration; -using MediaBrowser.Controller.MediaEncoding; -using MediaBrowser.Model.Dlna; -using MediaBrowser.Model.Serialization; - -namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts -{ - public abstract class BaseTunerHost - { - protected readonly IServerConfigurationManager Config; - protected readonly ILogger Logger; - protected IJsonSerializer JsonSerializer; - protected readonly IMediaEncoder MediaEncoder; - - private readonly ConcurrentDictionary<string, ChannelCache> _channelCache = - new ConcurrentDictionary<string, ChannelCache>(StringComparer.OrdinalIgnoreCase); - - protected BaseTunerHost(IServerConfigurationManager config, ILogger logger, IJsonSerializer jsonSerializer, IMediaEncoder mediaEncoder) - { - Config = config; - Logger = logger; - JsonSerializer = jsonSerializer; - MediaEncoder = mediaEncoder; - } - - protected abstract Task<IEnumerable<ChannelInfo>> GetChannelsInternal(TunerHostInfo tuner, CancellationToken cancellationToken); - public abstract string Type { get; } - - public async Task<IEnumerable<ChannelInfo>> GetChannels(TunerHostInfo tuner, bool enableCache, CancellationToken cancellationToken) - { - ChannelCache cache = null; - var key = tuner.Id; - - if (enableCache && !string.IsNullOrWhiteSpace(key) && _channelCache.TryGetValue(key, out cache)) - { - if (DateTime.UtcNow - cache.Date < TimeSpan.FromMinutes(60)) - { - return cache.Channels.ToList(); - } - } - - var result = await GetChannelsInternal(tuner, cancellationToken).ConfigureAwait(false); - var list = result.ToList(); - Logger.Debug("Channels from {0}: {1}", tuner.Url, JsonSerializer.SerializeToString(list)); - - if (!string.IsNullOrWhiteSpace(key) && list.Count > 0) - { - cache = cache ?? new ChannelCache(); - cache.Date = DateTime.UtcNow; - cache.Channels = list; - _channelCache.AddOrUpdate(key, cache, (k, v) => cache); - } - - return list; - } - - protected virtual List<TunerHostInfo> GetTunerHosts() - { - return GetConfiguration().TunerHosts - .Where(i => i.IsEnabled && string.Equals(i.Type, Type, StringComparison.OrdinalIgnoreCase)) - .ToList(); - } - - public async Task<IEnumerable<ChannelInfo>> GetChannels(bool enableCache, CancellationToken cancellationToken) - { - var list = new List<ChannelInfo>(); - - var hosts = GetTunerHosts(); - - foreach (var host in hosts) - { - try - { - var channels = await GetChannels(host, enableCache, cancellationToken).ConfigureAwait(false); - var newChannels = channels.Where(i => !list.Any(l => string.Equals(i.Id, l.Id, StringComparison.OrdinalIgnoreCase))).ToList(); - - list.AddRange(newChannels); - } - catch (Exception ex) - { - Logger.ErrorException("Error getting channel list", ex); - } - } - - return list; - } - - protected abstract Task<List<MediaSourceInfo>> GetChannelStreamMediaSources(TunerHostInfo tuner, string channelId, CancellationToken cancellationToken); - - public async Task<List<MediaSourceInfo>> GetChannelStreamMediaSources(string channelId, CancellationToken cancellationToken) - { - if (IsValidChannelId(channelId)) - { - var hosts = GetTunerHosts(); - - var hostsWithChannel = new List<TunerHostInfo>(); - - foreach (var host in hosts) - { - try - { - var channels = await GetChannels(host, true, cancellationToken).ConfigureAwait(false); - - if (channels.Any(i => string.Equals(i.Id, channelId, StringComparison.OrdinalIgnoreCase))) - { - hostsWithChannel.Add(host); - } - } - catch (Exception ex) - { - Logger.Error("Error getting channels", ex); - } - } - - foreach (var host in hostsWithChannel) - { - try - { - // Check to make sure the tuner is available - // If there's only one tuner, don't bother with the check and just let the tuner be the one to throw an error - if (hostsWithChannel.Count > 1 && - !await IsAvailable(host, channelId, cancellationToken).ConfigureAwait(false)) - { - Logger.Error("Tuner is not currently available"); - continue; - } - - var mediaSources = await GetChannelStreamMediaSources(host, channelId, cancellationToken).ConfigureAwait(false); - - // Prefix the id with the host Id so that we can easily find it - foreach (var mediaSource in mediaSources) - { - mediaSource.Id = host.Id + mediaSource.Id; - } - - return mediaSources; - } - catch (Exception ex) - { - Logger.Error("Error opening tuner", ex); - } - } - } - - return new List<MediaSourceInfo>(); - } - - protected abstract Task<LiveStream> GetChannelStream(TunerHostInfo tuner, string channelId, string streamId, CancellationToken cancellationToken); - - public async Task<LiveStream> GetChannelStream(string channelId, string streamId, CancellationToken cancellationToken) - { - if (!IsValidChannelId(channelId)) - { - throw new FileNotFoundException(); - } - - var hosts = GetTunerHosts(); - - var hostsWithChannel = new List<TunerHostInfo>(); - - foreach (var host in hosts) - { - if (string.IsNullOrWhiteSpace(streamId)) - { - try - { - var channels = await GetChannels(host, true, cancellationToken).ConfigureAwait(false); - - if (channels.Any(i => string.Equals(i.Id, channelId, StringComparison.OrdinalIgnoreCase))) - { - hostsWithChannel.Add(host); - } - } - catch (Exception ex) - { - Logger.Error("Error getting channels", ex); - } - } - else if (streamId.StartsWith(host.Id, StringComparison.OrdinalIgnoreCase)) - { - hostsWithChannel = new List<TunerHostInfo> { host }; - streamId = streamId.Substring(host.Id.Length); - break; - } - } - - foreach (var host in hostsWithChannel) - { - try - { - var liveStream = await GetChannelStream(host, channelId, streamId, cancellationToken).ConfigureAwait(false); - await liveStream.Open(cancellationToken).ConfigureAwait(false); - return liveStream; - } - catch (Exception ex) - { - Logger.Error("Error opening tuner", ex); - } - } - - throw new LiveTvConflictException(); - } - - protected virtual bool EnableMediaProbing - { - get { return false; } - } - - protected async Task<bool> IsAvailable(TunerHostInfo tuner, string channelId, CancellationToken cancellationToken) - { - try - { - return await IsAvailableInternal(tuner, channelId, cancellationToken).ConfigureAwait(false); - } - catch (Exception ex) - { - Logger.ErrorException("Error checking tuner availability", ex); - return false; - } - } - - protected abstract Task<bool> IsAvailableInternal(TunerHostInfo tuner, string channelId, CancellationToken cancellationToken); - - protected abstract bool IsValidChannelId(string channelId); - - protected LiveTvOptions GetConfiguration() - { - return Config.GetConfiguration<LiveTvOptions>("livetv"); - } - - private class ChannelCache - { - public DateTime Date; - public List<ChannelInfo> Channels; - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunDiscovery.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunDiscovery.cs deleted file mode 100644 index cd168ba580..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunDiscovery.cs +++ /dev/null @@ -1,158 +0,0 @@ -using MediaBrowser.Common.Configuration; -using MediaBrowser.Controller.Configuration; -using MediaBrowser.Controller.Dlna; -using MediaBrowser.Controller.LiveTv; -using MediaBrowser.Controller.Plugins; -using MediaBrowser.Model.Extensions; -using MediaBrowser.Model.LiveTv; -using MediaBrowser.Model.Logging; -using System; -using System.Linq; -using System.Threading; -using MediaBrowser.Common.Net; -using MediaBrowser.Model.Events; -using MediaBrowser.Model.Serialization; - -namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.HdHomerun -{ - public class HdHomerunDiscovery : IServerEntryPoint - { - private readonly IDeviceDiscovery _deviceDiscovery; - private readonly IServerConfigurationManager _config; - private readonly ILogger _logger; - private readonly ILiveTvManager _liveTvManager; - private readonly SemaphoreSlim _semaphore = new SemaphoreSlim(1, 1); - private readonly IHttpClient _httpClient; - private readonly IJsonSerializer _json; - - public HdHomerunDiscovery(IDeviceDiscovery deviceDiscovery, IServerConfigurationManager config, ILogger logger, ILiveTvManager liveTvManager, IHttpClient httpClient, IJsonSerializer json) - { - _deviceDiscovery = deviceDiscovery; - _config = config; - _logger = logger; - _liveTvManager = liveTvManager; - _httpClient = httpClient; - _json = json; - } - - public void Run() - { - _deviceDiscovery.DeviceDiscovered += _deviceDiscovery_DeviceDiscovered; - } - - void _deviceDiscovery_DeviceDiscovered(object sender, GenericEventArgs<UpnpDeviceInfo> e) - { - string server = null; - var info = e.Argument; - - if (info.Headers.TryGetValue("SERVER", out server) && server.IndexOf("HDHomeRun", StringComparison.OrdinalIgnoreCase) != -1) - { - string location; - if (info.Headers.TryGetValue("Location", out location)) - { - //_logger.Debug("HdHomerun found at {0}", location); - - // Just get the beginning of the url - Uri uri; - if (Uri.TryCreate(location, UriKind.Absolute, out uri)) - { - var apiUrl = location.Replace(uri.LocalPath, String.Empty, StringComparison.OrdinalIgnoreCase) - .TrimEnd('/'); - - //_logger.Debug("HdHomerun api url: {0}", apiUrl); - AddDevice(apiUrl); - } - } - } - } - - private async void AddDevice(string url) - { - await _semaphore.WaitAsync().ConfigureAwait(false); - - try - { - var options = GetConfiguration(); - - if (options.TunerHosts.Any(i => - string.Equals(i.Type, HdHomerunHost.DeviceType, StringComparison.OrdinalIgnoreCase) && - UriEquals(i.Url, url))) - { - return; - } - - // Strip off the port - url = new Uri(url).GetComponents(UriComponents.AbsoluteUri & ~UriComponents.Port, UriFormat.UriEscaped).TrimEnd('/'); - - // Test it by pulling down the lineup - using (var stream = await _httpClient.Get(new HttpRequestOptions - { - Url = string.Format("{0}/discover.json", url), - CancellationToken = CancellationToken.None, - BufferContent = false - })) - { - var response = _json.DeserializeFromStream<HdHomerunHost.DiscoverResponse>(stream); - - var existing = GetConfiguration().TunerHosts - .FirstOrDefault(i => string.Equals(i.Type, HdHomerunHost.DeviceType, StringComparison.OrdinalIgnoreCase) && string.Equals(i.DeviceId, response.DeviceID, StringComparison.OrdinalIgnoreCase)); - - if (existing == null) - { - await _liveTvManager.SaveTunerHost(new TunerHostInfo - { - Type = HdHomerunHost.DeviceType, - Url = url, - DataVersion = 1, - DeviceId = response.DeviceID - - }).ConfigureAwait(false); - } - else - { - if (!string.Equals(existing.Url, url, StringComparison.OrdinalIgnoreCase)) - { - existing.Url = url; - await _liveTvManager.SaveTunerHost(existing).ConfigureAwait(false); - } - } - } - } - catch (Exception ex) - { - _logger.ErrorException("Error saving device", ex); - } - finally - { - _semaphore.Release(); - } - } - - private bool UriEquals(string savedUri, string location) - { - return string.Equals(NormalizeUrl(location), NormalizeUrl(savedUri), StringComparison.OrdinalIgnoreCase); - } - - private string NormalizeUrl(string url) - { - if (!url.StartsWith("http", StringComparison.OrdinalIgnoreCase)) - { - url = "http://" + url; - } - - url = url.TrimEnd('/'); - - // Strip off the port - return new Uri(url).GetComponents(UriComponents.AbsoluteUri & ~UriComponents.Port, UriFormat.UriEscaped); - } - - private LiveTvOptions GetConfiguration() - { - return _config.GetConfiguration<LiveTvOptions>("livetv"); - } - - public void Dispose() - { - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs deleted file mode 100644 index 97d52836d3..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs +++ /dev/null @@ -1,568 +0,0 @@ -using MediaBrowser.Common.Configuration; -using MediaBrowser.Common.Net; -using MediaBrowser.Controller.LiveTv; -using MediaBrowser.Model.Dto; -using MediaBrowser.Model.Entities; -using MediaBrowser.Model.LiveTv; -using MediaBrowser.Model.Logging; -using MediaBrowser.Model.MediaInfo; -using MediaBrowser.Model.Serialization; -using System; -using System.Collections.Generic; -using System.Globalization; -using System.IO; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; -using CommonIO; -using MediaBrowser.Common.Extensions; -using MediaBrowser.Controller; -using MediaBrowser.Controller.Configuration; -using MediaBrowser.Controller.MediaEncoding; -using MediaBrowser.Model.Configuration; -using MediaBrowser.Model.Net; - -namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.HdHomerun -{ - public class HdHomerunHost : BaseTunerHost, ITunerHost, IConfigurableTunerHost - { - private readonly IHttpClient _httpClient; - private readonly IFileSystem _fileSystem; - private readonly IServerApplicationHost _appHost; - - public HdHomerunHost(IServerConfigurationManager config, ILogger logger, IJsonSerializer jsonSerializer, IMediaEncoder mediaEncoder, IHttpClient httpClient, IFileSystem fileSystem, IServerApplicationHost appHost) - : base(config, logger, jsonSerializer, mediaEncoder) - { - _httpClient = httpClient; - _fileSystem = fileSystem; - _appHost = appHost; - } - - public string Name - { - get { return "HD Homerun"; } - } - - public override string Type - { - get { return DeviceType; } - } - - public static string DeviceType - { - get { return "hdhomerun"; } - } - - private const string ChannelIdPrefix = "hdhr_"; - - private string GetChannelId(TunerHostInfo info, Channels i) - { - var id = ChannelIdPrefix + i.GuideNumber.ToString(CultureInfo.InvariantCulture); - - if (info.DataVersion >= 1) - { - id += '_' + (i.GuideName ?? string.Empty).GetMD5().ToString("N"); - } - - return id; - } - - private async Task<IEnumerable<Channels>> GetLineup(TunerHostInfo info, CancellationToken cancellationToken) - { - var options = new HttpRequestOptions - { - Url = string.Format("{0}/lineup.json", GetApiUrl(info, false)), - CancellationToken = cancellationToken, - BufferContent = false - }; - using (var stream = await _httpClient.Get(options)) - { - var lineup = JsonSerializer.DeserializeFromStream<List<Channels>>(stream) ?? new List<Channels>(); - - if (info.ImportFavoritesOnly) - { - lineup = lineup.Where(i => i.Favorite).ToList(); - } - - return lineup.Where(i => !i.DRM).ToList(); - } - } - - protected override async Task<IEnumerable<ChannelInfo>> GetChannelsInternal(TunerHostInfo info, CancellationToken cancellationToken) - { - var lineup = await GetLineup(info, cancellationToken).ConfigureAwait(false); - - return lineup.Select(i => new ChannelInfo - { - Name = i.GuideName, - Number = i.GuideNumber.ToString(CultureInfo.InvariantCulture), - Id = GetChannelId(info, i), - IsFavorite = i.Favorite, - TunerHostId = info.Id, - IsHD = i.HD == 1, - AudioCodec = i.AudioCodec, - VideoCodec = i.VideoCodec - }); - } - - private readonly Dictionary<string, DiscoverResponse> _modelCache = new Dictionary<string, DiscoverResponse>(); - private async Task<string> GetModelInfo(TunerHostInfo info, CancellationToken cancellationToken) - { - lock (_modelCache) - { - DiscoverResponse response; - if (_modelCache.TryGetValue(info.Url, out response)) - { - return response.ModelNumber; - } - } - - try - { - using (var stream = await _httpClient.Get(new HttpRequestOptions() - { - Url = string.Format("{0}/discover.json", GetApiUrl(info, false)), - CancellationToken = cancellationToken, - CacheLength = TimeSpan.FromDays(1), - CacheMode = CacheMode.Unconditional, - TimeoutMs = Convert.ToInt32(TimeSpan.FromSeconds(5).TotalMilliseconds), - BufferContent = false - })) - { - var response = JsonSerializer.DeserializeFromStream<DiscoverResponse>(stream); - - lock (_modelCache) - { - _modelCache[info.Id] = response; - } - - return response.ModelNumber; - } - } - catch (HttpException ex) - { - if (ex.StatusCode.HasValue && ex.StatusCode.Value == System.Net.HttpStatusCode.NotFound) - { - var defaultValue = "HDHR"; - // HDHR4 doesn't have this api - lock (_modelCache) - { - _modelCache[info.Id] = new DiscoverResponse - { - ModelNumber = defaultValue - }; - } - return defaultValue; - } - - throw; - } - } - - public async Task<List<LiveTvTunerInfo>> GetTunerInfos(TunerHostInfo info, CancellationToken cancellationToken) - { - var model = await GetModelInfo(info, cancellationToken).ConfigureAwait(false); - - using (var stream = await _httpClient.Get(new HttpRequestOptions() - { - Url = string.Format("{0}/tuners.html", GetApiUrl(info, false)), - CancellationToken = cancellationToken, - TimeoutMs = Convert.ToInt32(TimeSpan.FromSeconds(5).TotalMilliseconds), - BufferContent = false - })) - { - var tuners = new List<LiveTvTunerInfo>(); - using (var sr = new StreamReader(stream, System.Text.Encoding.UTF8)) - { - while (!sr.EndOfStream) - { - string line = StripXML(sr.ReadLine()); - if (line.Contains("Channel")) - { - LiveTvTunerStatus status; - var index = line.IndexOf("Channel", StringComparison.OrdinalIgnoreCase); - var name = line.Substring(0, index - 1); - var currentChannel = line.Substring(index + 7); - if (currentChannel != "none") { status = LiveTvTunerStatus.LiveTv; } else { status = LiveTvTunerStatus.Available; } - tuners.Add(new LiveTvTunerInfo - { - Name = name, - SourceType = string.IsNullOrWhiteSpace(model) ? Name : model, - ProgramName = currentChannel, - Status = status - }); - } - } - } - return tuners; - } - } - - public async Task<List<LiveTvTunerInfo>> GetTunerInfos(CancellationToken cancellationToken) - { - var list = new List<LiveTvTunerInfo>(); - - foreach (var host in GetConfiguration().TunerHosts - .Where(i => i.IsEnabled && string.Equals(i.Type, Type, StringComparison.OrdinalIgnoreCase))) - { - try - { - list.AddRange(await GetTunerInfos(host, cancellationToken).ConfigureAwait(false)); - } - catch (Exception ex) - { - Logger.ErrorException("Error getting tuner info", ex); - } - } - - return list; - } - - private string GetApiUrl(TunerHostInfo info, bool isPlayback) - { - var url = info.Url; - - if (string.IsNullOrWhiteSpace(url)) - { - throw new ArgumentException("Invalid tuner info"); - } - - if (!url.StartsWith("http", StringComparison.OrdinalIgnoreCase)) - { - url = "http://" + url; - } - - var uri = new Uri(url); - - if (isPlayback) - { - var builder = new UriBuilder(uri); - builder.Port = 5004; - uri = builder.Uri; - } - - return uri.AbsoluteUri.TrimEnd('/'); - } - - private static string StripXML(string source) - { - char[] buffer = new char[source.Length]; - int bufferIndex = 0; - bool inside = false; - - for (int i = 0; i < source.Length; i++) - { - char let = source[i]; - if (let == '<') - { - inside = true; - continue; - } - if (let == '>') - { - inside = false; - continue; - } - if (!inside) - { - buffer[bufferIndex] = let; - bufferIndex++; - } - } - return new string(buffer, 0, bufferIndex); - } - - private class Channels - { - public string GuideNumber { get; set; } - public string GuideName { get; set; } - public string VideoCodec { get; set; } - public string AudioCodec { get; set; } - public string URL { get; set; } - public bool Favorite { get; set; } - public bool DRM { get; set; } - public int HD { get; set; } - } - - private async Task<MediaSourceInfo> GetMediaSource(TunerHostInfo info, string channelId, string profile) - { - int? width = null; - int? height = null; - bool isInterlaced = true; - string videoCodec = null; - string audioCodec = "ac3"; - - int? videoBitrate = null; - int? audioBitrate = null; - - if (string.Equals(profile, "mobile", StringComparison.OrdinalIgnoreCase)) - { - width = 1280; - height = 720; - isInterlaced = false; - videoCodec = "h264"; - videoBitrate = 2000000; - } - else if (string.Equals(profile, "heavy", StringComparison.OrdinalIgnoreCase)) - { - width = 1920; - height = 1080; - isInterlaced = false; - videoCodec = "h264"; - videoBitrate = 15000000; - } - else if (string.Equals(profile, "internet540", StringComparison.OrdinalIgnoreCase)) - { - width = 960; - height = 546; - isInterlaced = false; - videoCodec = "h264"; - videoBitrate = 2500000; - } - else if (string.Equals(profile, "internet480", StringComparison.OrdinalIgnoreCase)) - { - width = 848; - height = 480; - isInterlaced = false; - videoCodec = "h264"; - videoBitrate = 2000000; - } - else if (string.Equals(profile, "internet360", StringComparison.OrdinalIgnoreCase)) - { - width = 640; - height = 360; - isInterlaced = false; - videoCodec = "h264"; - videoBitrate = 1500000; - } - else if (string.Equals(profile, "internet240", StringComparison.OrdinalIgnoreCase)) - { - width = 432; - height = 240; - isInterlaced = false; - videoCodec = "h264"; - videoBitrate = 1000000; - } - - var channels = await GetChannels(info, true, CancellationToken.None).ConfigureAwait(false); - var channel = channels.FirstOrDefault(i => string.Equals(i.Number, channelId, StringComparison.OrdinalIgnoreCase)); - if (channel != null) - { - if (string.IsNullOrWhiteSpace(videoCodec)) - { - videoCodec = channel.VideoCodec; - } - audioCodec = channel.AudioCodec; - - if (!videoBitrate.HasValue) - { - videoBitrate = (channel.IsHD ?? true) ? 15000000 : 2000000; - } - audioBitrate = (channel.IsHD ?? true) ? 448000 : 192000; - } - - // normalize - if (string.Equals(videoCodec, "mpeg2", StringComparison.OrdinalIgnoreCase)) - { - videoCodec = "mpeg2video"; - } - - string nal = null; - if (string.Equals(videoCodec, "h264", StringComparison.OrdinalIgnoreCase)) - { - nal = "0"; - } - - var url = GetApiUrl(info, true) + "/auto/v" + channelId; - - if (!string.IsNullOrWhiteSpace(profile) && !string.Equals(profile, "native", StringComparison.OrdinalIgnoreCase)) - { - url += "?transcode=" + profile; - } - - var id = profile; - if (string.IsNullOrWhiteSpace(id)) - { - id = "native"; - } - id += "_" + url.GetMD5().ToString("N"); - - var mediaSource = new MediaSourceInfo - { - Path = url, - Protocol = MediaProtocol.Http, - MediaStreams = new List<MediaStream> - { - new MediaStream - { - Type = MediaStreamType.Video, - // Set the index to -1 because we don't know the exact index of the video stream within the container - Index = -1, - IsInterlaced = isInterlaced, - Codec = videoCodec, - Width = width, - Height = height, - BitRate = videoBitrate, - NalLengthSize = nal - - }, - new MediaStream - { - Type = MediaStreamType.Audio, - // Set the index to -1 because we don't know the exact index of the audio stream within the container - Index = -1, - Codec = audioCodec, - BitRate = audioBitrate - } - }, - RequiresOpening = true, - RequiresClosing = false, - BufferMs = 0, - Container = "ts", - Id = id, - SupportsDirectPlay = false, - SupportsDirectStream = true, - SupportsTranscoding = true, - IsInfiniteStream = true - }; - - return mediaSource; - } - - protected EncodingOptions GetEncodingOptions() - { - return Config.GetConfiguration<EncodingOptions>("encoding"); - } - - private string GetHdHrIdFromChannelId(string channelId) - { - return channelId.Split('_')[1]; - } - - protected override async Task<List<MediaSourceInfo>> GetChannelStreamMediaSources(TunerHostInfo info, string channelId, CancellationToken cancellationToken) - { - var list = new List<MediaSourceInfo>(); - - if (!channelId.StartsWith(ChannelIdPrefix, StringComparison.OrdinalIgnoreCase)) - { - return list; - } - var hdhrId = GetHdHrIdFromChannelId(channelId); - - list.Add(await GetMediaSource(info, hdhrId, "native").ConfigureAwait(false)); - - try - { - if (info.AllowHWTranscoding) - { - string model = await GetModelInfo(info, cancellationToken).ConfigureAwait(false); - model = model ?? string.Empty; - - if ((model.IndexOf("hdtc", StringComparison.OrdinalIgnoreCase) != -1)) - { - list.Add(await GetMediaSource(info, hdhrId, "heavy").ConfigureAwait(false)); - - list.Add(await GetMediaSource(info, hdhrId, "internet540").ConfigureAwait(false)); - list.Add(await GetMediaSource(info, hdhrId, "internet480").ConfigureAwait(false)); - list.Add(await GetMediaSource(info, hdhrId, "internet360").ConfigureAwait(false)); - list.Add(await GetMediaSource(info, hdhrId, "internet240").ConfigureAwait(false)); - list.Add(await GetMediaSource(info, hdhrId, "mobile").ConfigureAwait(false)); - } - } - } - catch - { - - } - - return list; - } - - protected override bool IsValidChannelId(string channelId) - { - if (string.IsNullOrWhiteSpace(channelId)) - { - throw new ArgumentNullException("channelId"); - } - - return channelId.StartsWith(ChannelIdPrefix, StringComparison.OrdinalIgnoreCase); - } - - protected override async Task<LiveStream> GetChannelStream(TunerHostInfo info, string channelId, string streamId, CancellationToken cancellationToken) - { - var profile = streamId.Split('_')[0]; - - Logger.Info("GetChannelStream: channel id: {0}. stream id: {1} profile: {2}", channelId, streamId, profile); - - if (!channelId.StartsWith(ChannelIdPrefix, StringComparison.OrdinalIgnoreCase)) - { - throw new ArgumentException("Channel not found"); - } - var hdhrId = GetHdHrIdFromChannelId(channelId); - - var mediaSource = await GetMediaSource(info, hdhrId, profile).ConfigureAwait(false); - - var liveStream = new HdHomerunLiveStream(mediaSource, streamId, _fileSystem, _httpClient, Logger, Config.ApplicationPaths, _appHost); - liveStream.EnableStreamSharing = true; - return liveStream; - } - - public async Task Validate(TunerHostInfo info) - { - if (!info.IsEnabled) - { - return; - } - - lock (_modelCache) - { - _modelCache.Clear(); - } - - try - { - // Test it by pulling down the lineup - using (var stream = await _httpClient.Get(new HttpRequestOptions - { - Url = string.Format("{0}/discover.json", GetApiUrl(info, false)), - CancellationToken = CancellationToken.None, - BufferContent = false - })) - { - var response = JsonSerializer.DeserializeFromStream<DiscoverResponse>(stream); - - info.DeviceId = response.DeviceID; - } - } - catch (HttpException ex) - { - if (ex.StatusCode.HasValue && ex.StatusCode.Value == System.Net.HttpStatusCode.NotFound) - { - // HDHR4 doesn't have this api - return; - } - - throw; - } - } - - protected override async Task<bool> IsAvailableInternal(TunerHostInfo tuner, string channelId, CancellationToken cancellationToken) - { - var info = await GetTunerInfos(tuner, cancellationToken).ConfigureAwait(false); - - return info.Any(i => i.Status == LiveTvTunerStatus.Available); - } - - public class DiscoverResponse - { - public string FriendlyName { get; set; } - public string ModelNumber { get; set; } - public string FirmwareName { get; set; } - public string FirmwareVersion { get; set; } - public string DeviceID { get; set; } - public string DeviceAuth { get; set; } - public string BaseURL { get; set; } - public string LineupURL { get; set; } - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunLiveStream.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunLiveStream.cs deleted file mode 100644 index 91f0ee832f..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunLiveStream.cs +++ /dev/null @@ -1,145 +0,0 @@ -using System; -using System.IO; -using System.Threading; -using System.Threading.Tasks; -using CommonIO; -using MediaBrowser.Common.Net; -using MediaBrowser.Controller; -using MediaBrowser.Controller.LiveTv; -using MediaBrowser.Controller.Library; -using MediaBrowser.Model.Dto; -using MediaBrowser.Model.Logging; -using MediaBrowser.Model.MediaInfo; -using MediaBrowser.Server.Implementations.LiveTv.EmbyTV; -using System.Collections.Generic; -using System.Linq; -using MediaBrowser.Common.Extensions; - -namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.HdHomerun -{ - public class HdHomerunLiveStream : LiveStream, IDirectStreamProvider - { - private readonly ILogger _logger; - private readonly IHttpClient _httpClient; - private readonly IFileSystem _fileSystem; - private readonly IServerApplicationPaths _appPaths; - private readonly IServerApplicationHost _appHost; - - private readonly CancellationTokenSource _liveStreamCancellationTokenSource = new CancellationTokenSource(); - private readonly TaskCompletionSource<bool> _liveStreamTaskCompletionSource = new TaskCompletionSource<bool>(); - private readonly MulticastStream _multicastStream; - - - public HdHomerunLiveStream(MediaSourceInfo mediaSource, string originalStreamId, IFileSystem fileSystem, IHttpClient httpClient, ILogger logger, IServerApplicationPaths appPaths, IServerApplicationHost appHost) - : base(mediaSource) - { - _fileSystem = fileSystem; - _httpClient = httpClient; - _logger = logger; - _appPaths = appPaths; - _appHost = appHost; - OriginalStreamId = originalStreamId; - _multicastStream = new MulticastStream(_logger); - } - - protected override async Task OpenInternal(CancellationToken openCancellationToken) - { - _liveStreamCancellationTokenSource.Token.ThrowIfCancellationRequested(); - - var mediaSource = OriginalMediaSource; - - var url = mediaSource.Path; - - _logger.Info("Opening HDHR Live stream from {0}", url); - - var taskCompletionSource = new TaskCompletionSource<bool>(); - - StartStreaming(url, taskCompletionSource, _liveStreamCancellationTokenSource.Token); - - //OpenedMediaSource.Protocol = MediaProtocol.File; - //OpenedMediaSource.Path = tempFile; - //OpenedMediaSource.ReadAtNativeFramerate = true; - - OpenedMediaSource.Path = _appHost.GetLocalApiUrl("127.0.0.1") + "/LiveTv/LiveStreamFiles/" + UniqueId + "/stream.ts"; - OpenedMediaSource.Protocol = MediaProtocol.Http; - OpenedMediaSource.SupportsDirectPlay = false; - OpenedMediaSource.SupportsDirectStream = true; - OpenedMediaSource.SupportsTranscoding = true; - - await taskCompletionSource.Task.ConfigureAwait(false); - - //await Task.Delay(5000).ConfigureAwait(false); - } - - public override Task Close() - { - _logger.Info("Closing HDHR live stream"); - _liveStreamCancellationTokenSource.Cancel(); - - return _liveStreamTaskCompletionSource.Task; - } - - private async Task StartStreaming(string url, TaskCompletionSource<bool> openTaskCompletionSource, CancellationToken cancellationToken) - { - await Task.Run(async () => - { - var isFirstAttempt = true; - - while (!cancellationToken.IsCancellationRequested) - { - try - { - using (var response = await _httpClient.SendAsync(new HttpRequestOptions - { - Url = url, - CancellationToken = cancellationToken, - BufferContent = false - - }, "GET").ConfigureAwait(false)) - { - _logger.Info("Opened HDHR stream from {0}", url); - - if (!cancellationToken.IsCancellationRequested) - { - _logger.Info("Beginning multicastStream.CopyUntilCancelled"); - - Action onStarted = null; - if (isFirstAttempt) - { - onStarted = () => openTaskCompletionSource.TrySetResult(true); - } - - await _multicastStream.CopyUntilCancelled(response.Content, onStarted, cancellationToken).ConfigureAwait(false); - } - } - } - catch (OperationCanceledException) - { - break; - } - catch (Exception ex) - { - if (isFirstAttempt) - { - _logger.ErrorException("Error opening live stream:", ex); - openTaskCompletionSource.TrySetException(ex); - break; - } - - _logger.ErrorException("Error copying live stream, will reopen", ex); - } - - isFirstAttempt = false; - } - - _liveStreamTaskCompletionSource.TrySetResult(true); - - }).ConfigureAwait(false); - } - - public Task CopyToAsync(Stream stream, CancellationToken cancellationToken) - { - return _multicastStream.CopyToAsync(stream); - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/M3UTunerHost.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/M3UTunerHost.cs deleted file mode 100644 index 48117f2251..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/M3UTunerHost.cs +++ /dev/null @@ -1,165 +0,0 @@ -using MediaBrowser.Common.Configuration; -using MediaBrowser.Common.Extensions; -using MediaBrowser.Controller.LiveTv; -using MediaBrowser.Model.Dto; -using MediaBrowser.Model.Entities; -using MediaBrowser.Model.LiveTv; -using MediaBrowser.Model.Logging; -using MediaBrowser.Model.MediaInfo; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; -using CommonIO; -using MediaBrowser.Common.Net; -using MediaBrowser.Controller; -using MediaBrowser.Controller.Configuration; -using MediaBrowser.Controller.MediaEncoding; -using MediaBrowser.Model.Serialization; -using MediaBrowser.Server.Implementations.LiveTv.EmbyTV; - -namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts -{ - public class M3UTunerHost : BaseTunerHost, ITunerHost, IConfigurableTunerHost - { - private readonly IFileSystem _fileSystem; - private readonly IHttpClient _httpClient; - private readonly IServerApplicationHost _appHost; - - public M3UTunerHost(IServerConfigurationManager config, ILogger logger, IJsonSerializer jsonSerializer, IMediaEncoder mediaEncoder, IFileSystem fileSystem, IHttpClient httpClient, IServerApplicationHost appHost) - : base(config, logger, jsonSerializer, mediaEncoder) - { - _fileSystem = fileSystem; - _httpClient = httpClient; - _appHost = appHost; - } - - public override string Type - { - get { return "m3u"; } - } - - public string Name - { - get { return "M3U Tuner"; } - } - - private const string ChannelIdPrefix = "m3u_"; - - protected override async Task<IEnumerable<ChannelInfo>> GetChannelsInternal(TunerHostInfo info, CancellationToken cancellationToken) - { - return await new M3uParser(Logger, _fileSystem, _httpClient, _appHost).Parse(info.Url, ChannelIdPrefix, info.Id, cancellationToken).ConfigureAwait(false); - } - - public Task<List<LiveTvTunerInfo>> GetTunerInfos(CancellationToken cancellationToken) - { - var list = GetTunerHosts() - .Select(i => new LiveTvTunerInfo() - { - Name = Name, - SourceType = Type, - Status = LiveTvTunerStatus.Available, - Id = i.Url.GetMD5().ToString("N"), - Url = i.Url - }) - .ToList(); - - return Task.FromResult(list); - } - - protected override async Task<LiveStream> GetChannelStream(TunerHostInfo info, string channelId, string streamId, CancellationToken cancellationToken) - { - var sources = await GetChannelStreamMediaSources(info, channelId, cancellationToken).ConfigureAwait(false); - - var liveStream = new LiveStream(sources.First()); - return liveStream; - } - - public async Task Validate(TunerHostInfo info) - { - using (var stream = await new M3uParser(Logger, _fileSystem, _httpClient, _appHost).GetListingsStream(info.Url, CancellationToken.None).ConfigureAwait(false)) - { - - } - } - - protected override bool IsValidChannelId(string channelId) - { - return channelId.StartsWith(ChannelIdPrefix, StringComparison.OrdinalIgnoreCase); - } - - protected override async Task<List<MediaSourceInfo>> GetChannelStreamMediaSources(TunerHostInfo info, string channelId, CancellationToken cancellationToken) - { - var urlHash = info.Url.GetMD5().ToString("N"); - var prefix = ChannelIdPrefix + urlHash; - if (!channelId.StartsWith(prefix, StringComparison.OrdinalIgnoreCase)) - { - return null; - } - - var channels = await GetChannels(info, true, cancellationToken).ConfigureAwait(false); - var m3uchannels = channels.Cast<M3UChannel>(); - var channel = m3uchannels.FirstOrDefault(c => string.Equals(c.Id, channelId, StringComparison.OrdinalIgnoreCase)); - if (channel != null) - { - var path = channel.Path; - MediaProtocol protocol = MediaProtocol.File; - if (path.StartsWith("http", StringComparison.OrdinalIgnoreCase)) - { - protocol = MediaProtocol.Http; - } - else if (path.StartsWith("rtmp", StringComparison.OrdinalIgnoreCase)) - { - protocol = MediaProtocol.Rtmp; - } - else if (path.StartsWith("rtsp", StringComparison.OrdinalIgnoreCase)) - { - protocol = MediaProtocol.Rtsp; - } - else if (path.StartsWith("udp", StringComparison.OrdinalIgnoreCase)) - { - protocol = MediaProtocol.Udp; - } - - var mediaSource = new MediaSourceInfo - { - Path = channel.Path, - Protocol = protocol, - MediaStreams = new List<MediaStream> - { - new MediaStream - { - Type = MediaStreamType.Video, - // Set the index to -1 because we don't know the exact index of the video stream within the container - Index = -1, - IsInterlaced = true - }, - new MediaStream - { - Type = MediaStreamType.Audio, - // Set the index to -1 because we don't know the exact index of the audio stream within the container - Index = -1 - - } - }, - RequiresOpening = false, - RequiresClosing = false, - - ReadAtNativeFramerate = false, - - Id = channel.Path.GetMD5().ToString("N"), - IsInfiniteStream = true - }; - - return new List<MediaSourceInfo> { mediaSource }; - } - return new List<MediaSourceInfo>(); - } - - protected override Task<bool> IsAvailableInternal(TunerHostInfo tuner, string channelId, CancellationToken cancellationToken) - { - return Task.FromResult(true); - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/M3uParser.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/M3uParser.cs deleted file mode 100644 index 454abddddb..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/M3uParser.cs +++ /dev/null @@ -1,167 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text.RegularExpressions; -using System.Threading; -using System.Threading.Tasks; -using CommonIO; -using MediaBrowser.Common.Extensions; -using MediaBrowser.Common.Net; -using MediaBrowser.Controller; -using MediaBrowser.Controller.LiveTv; -using MediaBrowser.Model.Logging; - -namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts -{ - public class M3uParser - { - private readonly ILogger _logger; - private readonly IFileSystem _fileSystem; - private readonly IHttpClient _httpClient; - private readonly IServerApplicationHost _appHost; - - public M3uParser(ILogger logger, IFileSystem fileSystem, IHttpClient httpClient, IServerApplicationHost appHost) - { - _logger = logger; - _fileSystem = fileSystem; - _httpClient = httpClient; - _appHost = appHost; - } - - public async Task<List<M3UChannel>> Parse(string url, string channelIdPrefix, string tunerHostId, CancellationToken cancellationToken) - { - var urlHash = url.GetMD5().ToString("N"); - - // Read the file and display it line by line. - using (var reader = new StreamReader(await GetListingsStream(url, cancellationToken).ConfigureAwait(false))) - { - return GetChannels(reader, urlHash, channelIdPrefix, tunerHostId); - } - } - - public Task<Stream> GetListingsStream(string url, CancellationToken cancellationToken) - { - if (url.StartsWith("http", StringComparison.OrdinalIgnoreCase)) - { - return _httpClient.Get(new HttpRequestOptions - { - Url = url, - CancellationToken = cancellationToken, - // Some data providers will require a user agent - UserAgent = _appHost.FriendlyName + "/" + _appHost.ApplicationVersion - }); - } - return Task.FromResult(_fileSystem.OpenRead(url)); - } - - private List<M3UChannel> GetChannels(StreamReader reader, string urlHash, string channelIdPrefix, string tunerHostId) - { - var channels = new List<M3UChannel>(); - string line; - string extInf = ""; - while ((line = reader.ReadLine()) != null) - { - line = line.Trim(); - if (string.IsNullOrWhiteSpace(line)) - { - continue; - } - - if (line.StartsWith("#EXTM3U", StringComparison.OrdinalIgnoreCase)) - { - continue; - } - - if (line.StartsWith("#EXTINF:", StringComparison.OrdinalIgnoreCase)) - { - extInf = line.Substring(8).Trim(); - _logger.Info("Found m3u channel: {0}", extInf); - } - else if (!string.IsNullOrWhiteSpace(extInf) && !line.StartsWith("#", StringComparison.OrdinalIgnoreCase)) - { - var channel = GetChannelnfo(extInf, tunerHostId, line); - channel.Id = channelIdPrefix + urlHash + line.GetMD5().ToString("N"); - channel.Path = line; - channels.Add(channel); - extInf = ""; - } - } - return channels; - } - private M3UChannel GetChannelnfo(string extInf, string tunerHostId, string mediaUrl) - { - var titleIndex = extInf.LastIndexOf(','); - var channel = new M3UChannel(); - channel.TunerHostId = tunerHostId; - - channel.Number = extInf.Trim().Split(' ')[0] ?? "0"; - channel.Name = extInf.Substring(titleIndex + 1); - - //Check for channel number with the format from SatIp - int number; - var numberIndex = channel.Name.IndexOf('.'); - if (numberIndex > 0) - { - if (int.TryParse(channel.Name.Substring(0, numberIndex), out number)) - { - channel.Number = number.ToString(); - channel.Name = channel.Name.Substring(numberIndex + 1); - } - } - - if (string.Equals(channel.Number, "-1", StringComparison.OrdinalIgnoreCase) && !string.IsNullOrWhiteSpace(mediaUrl)) - { - channel.Number = Path.GetFileNameWithoutExtension(mediaUrl.Split('/').Last()); - } - - if (string.Equals(channel.Number, "-1", StringComparison.OrdinalIgnoreCase)) - { - channel.Number = "0"; - } - - channel.ImageUrl = FindProperty("tvg-logo", extInf); - - var name = FindProperty("tvg-name", extInf); - if (string.IsNullOrWhiteSpace(name)) - { - name = FindProperty("tvg-id", extInf); - } - - channel.Name = name; - - var numberString = FindProperty("tvg-id", extInf); - if (string.IsNullOrWhiteSpace(numberString)) - { - numberString = FindProperty("channel-id", extInf); - } - - if (!string.IsNullOrWhiteSpace(numberString)) - { - channel.Number = numberString; - } - - return channel; - - } - private string FindProperty(string property, string properties) - { - var reg = new Regex(@"([a-z0-9\-_]+)=\""([^""]+)\""", RegexOptions.IgnoreCase); - var matches = reg.Matches(properties); - foreach (Match match in matches) - { - if (match.Groups[1].Value == property) - { - return match.Groups[2].Value; - } - } - return null; - } - } - - - public class M3UChannel : ChannelInfo - { - public string Path { get; set; } - } -}
\ No newline at end of file diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/MulticastStream.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/MulticastStream.cs deleted file mode 100644 index 8ff3fd6c17..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/MulticastStream.cs +++ /dev/null @@ -1,96 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading; -using System.Threading.Tasks; -using MediaBrowser.Model.Logging; - -namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts -{ - public class MulticastStream - { - private readonly List<QueueStream> _outputStreams = new List<QueueStream>(); - private const int BufferSize = 81920; - private CancellationToken _cancellationToken; - private readonly ILogger _logger; - - public MulticastStream(ILogger logger) - { - _logger = logger; - } - - public async Task CopyUntilCancelled(Stream source, Action onStarted, CancellationToken cancellationToken) - { - _cancellationToken = cancellationToken; - - while (!cancellationToken.IsCancellationRequested) - { - byte[] buffer = new byte[BufferSize]; - - var bytesRead = await source.ReadAsync(buffer, 0, buffer.Length, cancellationToken).ConfigureAwait(false); - - if (bytesRead > 0) - { - byte[] copy = new byte[bytesRead]; - Buffer.BlockCopy(buffer, 0, copy, 0, bytesRead); - - List<QueueStream> streams = null; - - lock (_outputStreams) - { - streams = _outputStreams.ToList(); - } - - foreach (var stream in streams) - { - stream.Queue(copy); - } - - if (onStarted != null) - { - var onStartedCopy = onStarted; - onStarted = null; - Task.Run(onStartedCopy); - } - } - - else - { - await Task.Delay(100).ConfigureAwait(false); - } - } - } - - public Task CopyToAsync(Stream stream) - { - var result = new QueueStream(stream, _logger) - { - OnFinished = OnFinished - }; - - lock (_outputStreams) - { - _outputStreams.Add(result); - } - - result.Start(_cancellationToken); - - return result.TaskCompletion.Task; - } - - public void RemoveOutputStream(QueueStream stream) - { - lock (_outputStreams) - { - _outputStreams.Remove(stream); - } - } - - private void OnFinished(QueueStream queueStream) - { - RemoveOutputStream(queueStream); - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/QueueStream.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/QueueStream.cs deleted file mode 100644 index c1566b9006..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/QueueStream.cs +++ /dev/null @@ -1,93 +0,0 @@ -using System; -using System.Collections.Concurrent; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading; -using System.Threading.Tasks; -using MediaBrowser.Model.Logging; - -namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts -{ - public class QueueStream - { - private readonly Stream _outputStream; - private readonly ConcurrentQueue<byte[]> _queue = new ConcurrentQueue<byte[]>(); - private CancellationToken _cancellationToken; - public TaskCompletionSource<bool> TaskCompletion { get; private set; } - - public Action<QueueStream> OnFinished { get; set; } - private readonly ILogger _logger; - - public QueueStream(Stream outputStream, ILogger logger) - { - _outputStream = outputStream; - _logger = logger; - TaskCompletion = new TaskCompletionSource<bool>(); - } - - public void Queue(byte[] bytes) - { - _queue.Enqueue(bytes); - } - - public void Start(CancellationToken cancellationToken) - { - _cancellationToken = cancellationToken; - Task.Run(() => StartInternal()); - } - - private byte[] Dequeue() - { - byte[] bytes; - if (_queue.TryDequeue(out bytes)) - { - return bytes; - } - - return null; - } - - private async Task StartInternal() - { - var cancellationToken = _cancellationToken; - - try - { - while (!cancellationToken.IsCancellationRequested) - { - var bytes = Dequeue(); - if (bytes != null) - { - await _outputStream.WriteAsync(bytes, 0, bytes.Length, cancellationToken).ConfigureAwait(false); - } - else - { - await Task.Delay(50, cancellationToken).ConfigureAwait(false); - } - } - - TaskCompletion.TrySetResult(true); - _logger.Debug("QueueStream complete"); - } - catch (OperationCanceledException) - { - _logger.Debug("QueueStream cancelled"); - TaskCompletion.TrySetCanceled(); - } - catch (Exception ex) - { - _logger.ErrorException("Error in QueueStream", ex); - TaskCompletion.TrySetException(ex); - } - finally - { - if (OnFinished != null) - { - OnFinished(this); - } - } - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ChannelScan.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ChannelScan.cs deleted file mode 100644 index fdeae25b0e..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ChannelScan.cs +++ /dev/null @@ -1,105 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Globalization; -using System.IO; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; -using IniParser; -using IniParser.Model; -using MediaBrowser.Controller.LiveTv; -using MediaBrowser.Model.LiveTv; -using MediaBrowser.Model.Logging; -using MediaBrowser.Server.Implementations.LiveTv.TunerHosts.SatIp.Rtsp; - -namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.SatIp -{ - public class ChannelScan - { - private readonly ILogger _logger; - - public ChannelScan(ILogger logger) - { - _logger = logger; - } - - public async Task<List<ChannelInfo>> Scan(TunerHostInfo info, CancellationToken cancellationToken) - { - var ini = info.SourceA.Split('|')[1]; - var resource = GetType().Assembly.GetManifestResourceNames().FirstOrDefault(i => i.EndsWith(ini, StringComparison.OrdinalIgnoreCase)); - - _logger.Info("Opening ini file {0}", resource); - var list = new List<ChannelInfo>(); - - using (var stream = GetType().Assembly.GetManifestResourceStream(resource)) - { - using (var reader = new StreamReader(stream)) - { - var parser = new StreamIniDataParser(); - var data = parser.ReadData(reader); - - var count = GetInt(data, "DVB", "0", 0); - - _logger.Info("DVB Count: {0}", count); - - var index = 1; - var source = "1"; - - while (index <= count) - { - cancellationToken.ThrowIfCancellationRequested(); - - using (var rtspSession = new RtspSession(info.Url, _logger)) - { - float percent = count == 0 ? 0 : (float)(index) / count; - percent = Math.Max(percent * 100, 100); - - //SetControlPropertyThreadSafe(pgbSearchResult, "Value", (int)percent); - var strArray = data["DVB"][index.ToString(CultureInfo.InvariantCulture)].Split(','); - - string tuning; - if (strArray[4] == "S2") - { - tuning = string.Format("src={0}&freq={1}&pol={2}&sr={3}&fec={4}&msys=dvbs2&mtype={5}&plts=on&ro=0.35&pids=0,16,17,18,20", source, strArray[0], strArray[1].ToLower(), strArray[2].ToLower(), strArray[3], strArray[5].ToLower()); - } - else - { - tuning = string.Format("src={0}&freq={1}&pol={2}&sr={3}&fec={4}&msys=dvbs&mtype={5}&pids=0,16,17,18,20", source, strArray[0], strArray[1].ToLower(), strArray[2], strArray[3], strArray[5].ToLower()); - } - - rtspSession.Setup(tuning, "unicast"); - - rtspSession.Play(string.Empty); - - int signallevel; - int signalQuality; - rtspSession.Describe(out signallevel, out signalQuality); - - await Task.Delay(500).ConfigureAwait(false); - index++; - } - } - } - } - - return list; - } - - private int GetInt(IniData data, string s1, string s2, int defaultValue) - { - var value = data[s1][s2]; - int numericValue; - if (int.TryParse(value, NumberStyles.Any, CultureInfo.InvariantCulture, out numericValue)) - { - return numericValue; - } - - return defaultValue; - } - } - - public class SatChannel - { - // TODO: Add properties - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtcp/ReportBlock.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtcp/ReportBlock.cs deleted file mode 100644 index dddd771790..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtcp/ReportBlock.cs +++ /dev/null @@ -1,79 +0,0 @@ -/* - Copyright (C) <2007-2016> <Kay Diefenthal> - - SatIp.RtspSample is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - SatIp.RtspSample is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with SatIp.RtspSample. If not, see <http://www.gnu.org/licenses/>. -*/ - -namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.SatIp.Rtcp -{ - public class ReportBlock - { - /// <summary> - /// Get the length of the block. - /// </summary> - public int BlockLength { get { return (24); } } - /// <summary> - /// Get the synchronization source. - /// </summary> - public string SynchronizationSource { get; private set; } - /// <summary> - /// Get the fraction lost. - /// </summary> - public int FractionLost { get; private set; } - /// <summary> - /// Get the cumulative packets lost. - /// </summary> - public int CumulativePacketsLost { get; private set; } - /// <summary> - /// Get the highest number received. - /// </summary> - public int HighestNumberReceived { get; private set; } - /// <summary> - /// Get the inter arrival jitter. - /// </summary> - public int InterArrivalJitter { get; private set; } - /// <summary> - /// Get the timestamp of the last report. - /// </summary> - public int LastReportTimeStamp { get; private set; } - /// <summary> - /// Get the delay since the last report. - /// </summary> - public int DelaySinceLastReport { get; private set; } - - /// <summary> - /// Initialize a new instance of the ReportBlock class. - /// </summary> - public ReportBlock() { } - - /// <summary> - /// Unpack the data in a packet. - /// </summary> - /// <param name="buffer">The buffer containing the packet.</param> - /// <param name="offset">The offset to the first byte of the packet within the buffer.</param> - /// <returns>An ErrorSpec instance if an error occurs; null otherwise.</returns> - public void Process(byte[] buffer, int offset) - { - SynchronizationSource = Utils.ConvertBytesToString(buffer, offset, 4); - FractionLost = buffer[offset + 4]; - CumulativePacketsLost = Utils.Convert3BytesToInt(buffer, offset + 5); - HighestNumberReceived = Utils.Convert4BytesToInt(buffer, offset + 8); - InterArrivalJitter = Utils.Convert4BytesToInt(buffer, offset + 12); - LastReportTimeStamp = Utils.Convert4BytesToInt(buffer, offset + 16); - DelaySinceLastReport = Utils.Convert4BytesToInt(buffer, offset + 20); - - - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtcp/RtcpAppPacket.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtcp/RtcpAppPacket.cs deleted file mode 100644 index 990b6dd949..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtcp/RtcpAppPacket.cs +++ /dev/null @@ -1,68 +0,0 @@ -/* - Copyright (C) <2007-2016> <Kay Diefenthal> - - SatIp.RtspSample is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - SatIp.RtspSample is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with SatIp.RtspSample. If not, see <http://www.gnu.org/licenses/>. -*/ -using System.Text; - -namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.SatIp.Rtcp -{ - class RtcpAppPacket : RtcpPacket - { - /// <summary> - /// Get the synchronization source. - /// </summary> - public int SynchronizationSource { get; private set; } - /// <summary> - /// Get the name. - /// </summary> - public string Name { get; private set; } - /// <summary> - /// Get the identity. - /// </summary> - public int Identity { get; private set; } - /// <summary> - /// Get the variable data portion. - /// </summary> - public string Data { get; private set; } - - public override void Parse(byte[] buffer, int offset) - { - base.Parse(buffer, offset); - SynchronizationSource = Utils.Convert4BytesToInt(buffer, offset + 4); - Name = Utils.ConvertBytesToString(buffer, offset + 8, 4); - Identity = Utils.Convert2BytesToInt(buffer, offset + 12); - - int dataLength = Utils.Convert2BytesToInt(buffer, offset + 14); - if (dataLength != 0) - Data = Utils.ConvertBytesToString(buffer, offset + 16, dataLength); - } - public override string ToString() - { - StringBuilder sb = new StringBuilder(); - sb.AppendFormat("Application Specific.\n"); - sb.AppendFormat("Version : {0} .\n", Version); - sb.AppendFormat("Padding : {0} .\n", Padding); - sb.AppendFormat("Report Count : {0} .\n", ReportCount); - sb.AppendFormat("PacketType: {0} .\n", Type); - sb.AppendFormat("Length : {0} .\n", Length); - sb.AppendFormat("SynchronizationSource : {0} .\n", SynchronizationSource); - sb.AppendFormat("Name : {0} .\n", Name); - sb.AppendFormat("Identity : {0} .\n", Identity); - sb.AppendFormat("Data : {0} .\n", Data); - sb.AppendFormat(".\n"); - return sb.ToString(); - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtcp/RtcpByePacket.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtcp/RtcpByePacket.cs deleted file mode 100644 index c79ea31a89..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtcp/RtcpByePacket.cs +++ /dev/null @@ -1,59 +0,0 @@ -using System.Collections.ObjectModel; -/* - Copyright (C) <2007-2016> <Kay Diefenthal> - - SatIp.RtspSample is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - SatIp.RtspSample is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with SatIp.RtspSample. If not, see <http://www.gnu.org/licenses/>. -*/ -using System.Text; - -namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.SatIp.Rtcp -{ - public class RtcpByePacket :RtcpPacket - { - public Collection<string> SynchronizationSources { get; private set; } - public string ReasonForLeaving { get; private set; } - public override void Parse(byte[] buffer, int offset) - { - base.Parse(buffer, offset); - SynchronizationSources = new Collection<string>(); - int index = 4; - - while (SynchronizationSources.Count < ReportCount) - { - SynchronizationSources.Add(Utils.ConvertBytesToString(buffer, offset + index, 4)); - index += 4; - } - - if (index < Length) - { - int reasonLength = buffer[offset + index]; - ReasonForLeaving = Utils.ConvertBytesToString(buffer, offset + index + 1, reasonLength); - } - } - public override string ToString() - { - StringBuilder sb = new StringBuilder(); - sb.AppendFormat("ByeBye .\n"); - sb.AppendFormat("Version : {0} .\n", Version); - sb.AppendFormat("Padding : {0} .\n", Padding); - sb.AppendFormat("Report Count : {0} .\n", ReportCount); - sb.AppendFormat("PacketType: {0} .\n", Type); - sb.AppendFormat("Length : {0} .\n", Length); - sb.AppendFormat("SynchronizationSources : {0} .\n", SynchronizationSources); - sb.AppendFormat("ReasonForLeaving : {0} .\n", ReasonForLeaving); - sb.AppendFormat(".\n"); - return sb.ToString(); - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtcp/RtcpListener.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtcp/RtcpListener.cs deleted file mode 100644 index 2c54f06654..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtcp/RtcpListener.cs +++ /dev/null @@ -1,203 +0,0 @@ -/* - Copyright (C) <2007-2016> <Kay Diefenthal> - - SatIp.RtspSample is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - SatIp.RtspSample is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with SatIp.RtspSample. If not, see <http://www.gnu.org/licenses/>. -*/ -using System; -using System.Net; -using System.Net.Sockets; -using System.Threading; -using MediaBrowser.Model.Logging; - -namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.SatIp.Rtcp -{ - public class RtcpListener - { - private readonly ILogger _logger; - private Thread _rtcpListenerThread; - private AutoResetEvent _rtcpListenerThreadStopEvent = null; - private UdpClient _udpClient; - private IPEndPoint _multicastEndPoint; - private IPEndPoint _serverEndPoint; - private TransmissionMode _transmissionMode; - - public RtcpListener(String address, int port, TransmissionMode mode,ILogger logger) - { - _logger = logger; - _transmissionMode = mode; - switch (mode) - { - case TransmissionMode.Unicast: - _udpClient = new UdpClient(new IPEndPoint(IPAddress.Parse(address), port)); - _serverEndPoint = new IPEndPoint(IPAddress.Any, 0); - break; - case TransmissionMode.Multicast: - _multicastEndPoint = new IPEndPoint(IPAddress.Parse(address), port); - _serverEndPoint = new IPEndPoint(IPAddress.Any, 0); - _udpClient = new UdpClient(); - _udpClient.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, 1); - _udpClient.ExclusiveAddressUse = false; - _udpClient.Client.Bind(new IPEndPoint(IPAddress.Any, port)); - _udpClient.JoinMulticastGroup(_multicastEndPoint.Address); - break; - } - //StartRtcpListenerThread(); - } - - public void StartRtcpListenerThread() - { - // Kill the existing thread if it is in "zombie" state. - if (_rtcpListenerThread != null && !_rtcpListenerThread.IsAlive) - { - StopRtcpListenerThread(); - } - - if (_rtcpListenerThread == null) - { - _logger.Info("SAT>IP : starting new RTCP listener thread"); - _rtcpListenerThreadStopEvent = new AutoResetEvent(false); - _rtcpListenerThread = new Thread(new ThreadStart(RtcpListenerThread)); - _rtcpListenerThread.Name = string.Format("SAT>IP tuner RTCP listener"); - _rtcpListenerThread.IsBackground = true; - _rtcpListenerThread.Priority = ThreadPriority.Lowest; - _rtcpListenerThread.Start(); - } - } - - public void StopRtcpListenerThread() - { - if (_rtcpListenerThread != null) - { - if (!_rtcpListenerThread.IsAlive) - { - _logger.Info("SAT>IP : aborting old RTCP listener thread"); - _rtcpListenerThread.Abort(); - } - else - { - _rtcpListenerThreadStopEvent.Set(); - if (!_rtcpListenerThread.Join(400 * 2)) - { - _logger.Info("SAT>IP : failed to join RTCP listener thread, aborting thread"); - _rtcpListenerThread.Abort(); - } - } - _rtcpListenerThread = null; - if (_rtcpListenerThreadStopEvent != null) - { - _rtcpListenerThreadStopEvent.Close(); - _rtcpListenerThreadStopEvent = null; - } - } - } - - private void RtcpListenerThread() - { - try - { - bool receivedGoodBye = false; - try - { - _udpClient.Client.ReceiveTimeout = 400; - IPEndPoint serverEndPoint = new IPEndPoint(IPAddress.Any, 0); - while (!receivedGoodBye && !_rtcpListenerThreadStopEvent.WaitOne(1)) - { - byte[] packets = _udpClient.Receive(ref serverEndPoint); - if (packets == null) - { - continue; - } - - int offset = 0; - while (offset < packets.Length) - { - switch (packets[offset + 1]) - { - case 200: //sr - var sr = new RtcpSenderReportPacket(); - sr.Parse(packets, offset); - offset += sr.Length; - break; - case 201: //rr - var rr = new RtcpReceiverReportPacket(); - rr.Parse(packets, offset); - offset += rr.Length; - break; - case 202: //sd - var sd = new RtcpSourceDescriptionPacket(); - sd.Parse(packets, offset); - offset += sd.Length; - break; - case 203: // bye - var bye = new RtcpByePacket(); - bye.Parse(packets, offset); - receivedGoodBye = true; - OnPacketReceived(new RtcpPacketReceivedArgs(bye)); - offset += bye.Length; - break; - case 204: // app - var app = new RtcpAppPacket(); - app.Parse(packets, offset); - OnPacketReceived(new RtcpPacketReceivedArgs(app)); - offset += app.Length; - break; - } - } - - } - } - finally - { - switch (_transmissionMode) - { - case TransmissionMode.Multicast: - _udpClient.DropMulticastGroup(_multicastEndPoint.Address); - _udpClient.Close(); - break; - case TransmissionMode.Unicast: - _udpClient.Close(); - break; - } - } - } - catch (ThreadAbortException) - { - } - catch (Exception ex) - { - _logger.Info(string.Format("SAT>IP : RTCP listener thread exception"), ex); - return; - } - _logger.Info("SAT>IP : RTCP listener thread stopping"); - } - public delegate void PacketReceivedHandler(object sender, RtcpPacketReceivedArgs e); - public event PacketReceivedHandler PacketReceived; - public class RtcpPacketReceivedArgs : EventArgs - { - public Object Packet { get; private set; } - - public RtcpPacketReceivedArgs(Object packet) - { - Packet = packet; - } - } - protected void OnPacketReceived(RtcpPacketReceivedArgs args) - { - if (PacketReceived != null) - { - PacketReceived(this, args); - } - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtcp/RtcpPacket.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtcp/RtcpPacket.cs deleted file mode 100644 index 0a949eb7ed..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtcp/RtcpPacket.cs +++ /dev/null @@ -1,37 +0,0 @@ -/* - Copyright (C) <2007-2016> <Kay Diefenthal> - - SatIp.RtspSample is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - SatIp.RtspSample is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with SatIp.RtspSample. If not, see <http://www.gnu.org/licenses/>. -*/ - -namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.SatIp.Rtcp -{ - public abstract class RtcpPacket - { - public int Version { get; private set; } - public bool Padding { get; private set; } - public int ReportCount { get; private set; } - public int Type { get; private set; } - public int Length { get; private set; } - - public virtual void Parse(byte[] buffer, int offset) - { - Version = buffer[offset] >> 6; - Padding = (buffer[offset] & 0x20) != 0; - ReportCount = buffer[offset] & 0x1f; - Type = buffer[offset + 1]; - Length = (Utils.Convert2BytesToInt(buffer, offset + 2) * 4) + 4; - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtcp/RtcpReceiverReportPacket.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtcp/RtcpReceiverReportPacket.cs deleted file mode 100644 index abb8636522..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtcp/RtcpReceiverReportPacket.cs +++ /dev/null @@ -1,68 +0,0 @@ -using System.Collections.ObjectModel; -/* - Copyright (C) <2007-2016> <Kay Diefenthal> - - SatIp.RtspSample is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - SatIp.RtspSample is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with SatIp.RtspSample. If not, see <http://www.gnu.org/licenses/>. -*/ -using System.Text; - -namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.SatIp.Rtcp -{ - public class RtcpReceiverReportPacket :RtcpPacket - { - public string SynchronizationSource { get; private set; } - public Collection<ReportBlock> ReportBlocks { get; private set; } - public byte[] ProfileExtension { get; private set; } - public override void Parse(byte[] buffer, int offset) - { - base.Parse(buffer, offset); - SynchronizationSource = Utils.ConvertBytesToString(buffer, offset + 4, 4); - - ReportBlocks = new Collection<ReportBlock>(); - int index = 8; - - while (ReportBlocks.Count < ReportCount) - { - ReportBlock reportBlock = new ReportBlock(); - reportBlock.Process(buffer, offset + index); - ReportBlocks.Add(reportBlock); - index += reportBlock.BlockLength; - } - - if (index < Length) - { - ProfileExtension = new byte[Length - index]; - - for (int extensionIndex = 0; index < Length; index++) - { - ProfileExtension[extensionIndex] = buffer[offset + index]; - extensionIndex++; - } - } - } - public override string ToString() - { - StringBuilder sb = new StringBuilder(); - sb.AppendFormat("Receiver Report.\n"); - sb.AppendFormat("Version : {0} .\n", Version); - sb.AppendFormat("Padding : {0} .\n", Padding); - sb.AppendFormat("Report Count : {0} .\n", ReportCount); - sb.AppendFormat("PacketType: {0} .\n", Type); - sb.AppendFormat("Length : {0} .\n", Length); - sb.AppendFormat("SynchronizationSource : {0} .\n", SynchronizationSource); - sb.AppendFormat(".\n"); - return sb.ToString(); - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtcp/RtcpSenderReportPacket.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtcp/RtcpSenderReportPacket.cs deleted file mode 100644 index dda5d6a033..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtcp/RtcpSenderReportPacket.cs +++ /dev/null @@ -1,105 +0,0 @@ -using System.Collections.ObjectModel; -/* - Copyright (C) <2007-2016> <Kay Diefenthal> - - SatIp.RtspSample is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - SatIp.RtspSample is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with SatIp.RtspSample. If not, see <http://www.gnu.org/licenses/>. -*/ -using System.Text; - -namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.SatIp.Rtcp -{ - public class RtcpSenderReportPacket : RtcpPacket - { - #region Properties - /// <summary> - /// Get the synchronization source. - /// </summary> - public int SynchronizationSource { get; private set; } - /// <summary> - /// Get the NPT timestamp. - /// </summary> - public long NPTTimeStamp { get; private set; } - /// <summary> - /// Get the RTP timestamp. - /// </summary> - public int RTPTimeStamp { get; private set; } - /// <summary> - /// Get the packet count. - /// </summary> - public int SenderPacketCount { get; private set; } - /// <summary> - /// Get the octet count. - /// </summary> - public int SenderOctetCount { get; private set; } - /// <summary> - /// Get the list of report blocks. - /// </summary> - public Collection<ReportBlock> ReportBlocks { get; private set; } - /// <summary> - /// Get the profile extension data. - /// </summary> - public byte[] ProfileExtension { get; private set; } - #endregion - - public override void Parse(byte[] buffer, int offset) - { - base.Parse(buffer, offset); - SynchronizationSource = Utils.Convert4BytesToInt(buffer, offset + 4); - NPTTimeStamp = Utils.Convert8BytesToLong(buffer, offset + 8); - RTPTimeStamp = Utils.Convert4BytesToInt(buffer, offset + 16); - SenderPacketCount = Utils.Convert4BytesToInt(buffer, offset + 20); - SenderOctetCount = Utils.Convert4BytesToInt(buffer, offset + 24); - - ReportBlocks = new Collection<ReportBlock>(); - int index = 28; - - while (ReportBlocks.Count < ReportCount) - { - ReportBlock reportBlock = new ReportBlock(); - reportBlock.Process(buffer, offset + index); - ReportBlocks.Add(reportBlock); - index += reportBlock.BlockLength; - } - - if (index < Length) - { - ProfileExtension = new byte[Length - index]; - - for (int extensionIndex = 0; index < Length; index++) - { - ProfileExtension[extensionIndex] = buffer[offset + index]; - extensionIndex++; - } - } - } - - public override string ToString() - { - StringBuilder sb = new StringBuilder(); - sb.AppendFormat("Sender Report.\n"); - sb.AppendFormat("Version : {0} .\n", Version); - sb.AppendFormat("Padding : {0} .\n", Padding); - sb.AppendFormat("Report Count : {0} .\n", ReportCount); - sb.AppendFormat("PacketType: {0} .\n", Type); - sb.AppendFormat("Length : {0} .\n", Length); - sb.AppendFormat("SynchronizationSource : {0} .\n", SynchronizationSource); - sb.AppendFormat("NTP Timestamp : {0} .\n", Utils.NptTimestampToDateTime(NPTTimeStamp)); - sb.AppendFormat("RTP Timestamp : {0} .\n", RTPTimeStamp); - sb.AppendFormat("Sender PacketCount : {0} .\n", SenderPacketCount); - sb.AppendFormat("Sender Octet Count : {0} .\n", SenderOctetCount); - sb.AppendFormat(".\n"); - return sb.ToString(); - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtcp/RtcpSourceDescriptionPacket.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtcp/RtcpSourceDescriptionPacket.cs deleted file mode 100644 index 0a95a44133..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtcp/RtcpSourceDescriptionPacket.cs +++ /dev/null @@ -1,57 +0,0 @@ -using System.Collections.ObjectModel; -/* - Copyright (C) <2007-2016> <Kay Diefenthal> - - SatIp.RtspSample is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - SatIp.RtspSample is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with SatIp.RtspSample. If not, see <http://www.gnu.org/licenses/>. -*/ -using System.Text; - -namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.SatIp.Rtcp -{ - class RtcpSourceDescriptionPacket :RtcpPacket - { /// <summary> - /// Get the list of source descriptions. - /// </summary> - public Collection<SourceDescriptionBlock> Descriptions; - public override void Parse(byte[] buffer, int offset) - { - base.Parse(buffer, offset); - Descriptions = new Collection<SourceDescriptionBlock>(); - - int index = 4; - - while (Descriptions.Count < ReportCount) - { - SourceDescriptionBlock descriptionBlock = new SourceDescriptionBlock(); - descriptionBlock.Process(buffer, offset + index); - Descriptions.Add(descriptionBlock); - index += descriptionBlock.BlockLength; - } - } - public override string ToString() - { - StringBuilder sb = new StringBuilder(); - sb.AppendFormat("Source Description.\n"); - sb.AppendFormat("Version : {0} .\n", Version); - sb.AppendFormat("Padding : {0} .\n", Padding); - sb.AppendFormat("Report Count : {0} .\n", ReportCount); - sb.AppendFormat("PacketType: {0} .\n", Type); - sb.AppendFormat("Length : {0} .\n", Length); - sb.AppendFormat("Descriptions : {0} .\n", Descriptions); - - sb.AppendFormat(".\n"); - return sb.ToString(); - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtcp/SourceDescriptionBlock.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtcp/SourceDescriptionBlock.cs deleted file mode 100644 index bf56087cd8..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtcp/SourceDescriptionBlock.cs +++ /dev/null @@ -1,65 +0,0 @@ -/* - Copyright (C) <2007-2016> <Kay Diefenthal> - - SatIp.RtspSample is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - SatIp.RtspSample is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with SatIp.RtspSample. If not, see <http://www.gnu.org/licenses/>. -*/ -using System.Collections.ObjectModel; - -namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.SatIp.Rtcp -{ - class SourceDescriptionBlock - { - /// <summary> - /// Get the length of the block. - /// </summary> - public int BlockLength { get { return (blockLength + (blockLength % 4)); } } - - /// <summary> - /// Get the synchronization source. - /// </summary> - public string SynchronizationSource { get; private set; } - /// <summary> - /// Get the list of source descriptioni items. - /// </summary> - public Collection<SourceDescriptionItem> Items; - - private int blockLength; - - public void Process(byte[] buffer, int offset) - { - SynchronizationSource = Utils.ConvertBytesToString(buffer, offset, 4); - Items = new Collection<SourceDescriptionItem>(); - int index = 4; - bool done = false; - do - { - SourceDescriptionItem item = new SourceDescriptionItem(); - item.Process(buffer, offset + index); - - if (item.Type != 0) - { - Items.Add(item); - index += item.ItemLength; - blockLength += item.ItemLength; - } - else - { - blockLength++; - done = true; - } - } - while (!done); - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtcp/SourceDescriptionItem.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtcp/SourceDescriptionItem.cs deleted file mode 100644 index 5dd0336421..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtcp/SourceDescriptionItem.cs +++ /dev/null @@ -1,60 +0,0 @@ -/* - Copyright (C) <2007-2016> <Kay Diefenthal> - - SatIp.RtspSample is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - SatIp.RtspSample is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with SatIp.RtspSample. If not, see <http://www.gnu.org/licenses/>. -*/ - -namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.SatIp.Rtcp -{ - /// <summary> - /// The class that describes a source description item. - /// </summary> - public class SourceDescriptionItem - { - /// <summary> - /// Get the type. - /// </summary> - public int Type { get; private set; } - /// <summary> - /// Get the text. - /// </summary> - public string Text { get; private set; } - - /// <summary> - /// Get the length of the item. - /// </summary> - public int ItemLength { get { return (Text.Length + 2); } } - - /// <summary> - /// Initialize a new instance of the SourceDescriptionItem class. - /// </summary> - public SourceDescriptionItem() { } - - /// <summary> - /// Unpack the data in a packet. - /// </summary> - /// <param name="buffer">The buffer containing the packet.</param> - /// <param name="offset">The offset to the first byte of the packet within the buffer.</param> - /// <returns>An ErrorSpec instance if an error occurs; null otherwise.</returns> - public void Process(byte[] buffer, int offset) - { - Type = buffer[offset]; - if (Type != 0) - { - int length = buffer[offset + 1]; - Text = Utils.ConvertBytesToString(buffer, offset + 2, length); - } - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtp/RtpListener.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtp/RtpListener.cs deleted file mode 100644 index ea6a9ba6aa..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtp/RtpListener.cs +++ /dev/null @@ -1,160 +0,0 @@ -/* - Copyright (C) <2007-2016> <Kay Diefenthal> - - SatIp.RtspSample is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - SatIp.RtspSample is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with SatIp.RtspSample. If not, see <http://www.gnu.org/licenses/>. -*/ -using System; -using System.Net; -using System.Net.Sockets; -using System.Threading; -using MediaBrowser.Model.Logging; - -namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.SatIp.Rtp -{ - public class RtpListener - { - private readonly ILogger _logger; - private AutoResetEvent _rtpListenerThreadStopEvent; - private Thread _rtpListenerThread; - private UdpClient _udpClient; - private IPEndPoint _multicastEndPoint; - private IPEndPoint _serverEndPoint; - private TransmissionMode _transmissionMode; - public RtpListener(String address, int port,TransmissionMode mode,ILogger logger) - { - _logger = logger; - _transmissionMode = mode; - switch (mode) - { - case TransmissionMode.Unicast: - _udpClient = new UdpClient(new IPEndPoint(IPAddress.Parse(address), port)); - _serverEndPoint = new IPEndPoint(IPAddress.Any, 0); - break; - case TransmissionMode.Multicast: - _multicastEndPoint = new IPEndPoint(IPAddress.Parse(address), port); - _serverEndPoint = null; - _udpClient = new UdpClient(); - _udpClient.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, 1); - _udpClient.ExclusiveAddressUse = false; - _udpClient.Client.Bind(new IPEndPoint(IPAddress.Any, _multicastEndPoint.Port)); - _udpClient.JoinMulticastGroup(_multicastEndPoint.Address); - break; - } - //StartRtpListenerThread(); - } - public void StartRtpListenerThread() - { - // Kill the existing thread if it is in "zombie" state. - if (_rtpListenerThread != null && !_rtpListenerThread.IsAlive) - { - StopRtpListenerThread(); - } - - if (_rtpListenerThread == null) - { - _logger.Info("SAT>IP : starting new RTP listener thread"); - _rtpListenerThreadStopEvent = new AutoResetEvent(false); - _rtpListenerThread = new Thread(new ThreadStart(RtpListenerThread)); - _rtpListenerThread.Name = string.Format("SAT>IP tuner RTP listener"); - _rtpListenerThread.IsBackground = true; - _rtpListenerThread.Priority = ThreadPriority.Lowest; - _rtpListenerThread.Start(); - } - } - - public void StopRtpListenerThread() - { - if (_rtpListenerThread != null) - { - if (!_rtpListenerThread.IsAlive) - { - _logger.Info("SAT>IP : aborting old RTP listener thread"); - _rtpListenerThread.Abort(); - } - else - { - _rtpListenerThreadStopEvent.Set(); - if (!_rtpListenerThread.Join(400 * 2)) - { - _logger.Info("SAT>IP : failed to join RTP listener thread, aborting thread"); - _rtpListenerThread.Abort(); - } - } - _rtpListenerThread = null; - if (_rtpListenerThreadStopEvent != null) - { - _rtpListenerThreadStopEvent.Close(); - _rtpListenerThreadStopEvent = null; - } - } - } - - private void RtpListenerThread() - { - try - { - try - { - - while (!_rtpListenerThreadStopEvent.WaitOne(1)) - { - byte[] receivedbytes = _udpClient.Receive(ref _serverEndPoint); - RtpPacket packet = RtpPacket.Decode(receivedbytes); - OnPacketReceived(new RtpPacketReceivedArgs(packet)); - } - } - finally - { - switch (_transmissionMode) - { - case TransmissionMode.Multicast: - _udpClient.DropMulticastGroup(_multicastEndPoint.Address); - _udpClient.Close(); - break; - case TransmissionMode.Unicast: - _udpClient.Close(); - break; - } - } - } - catch (ThreadAbortException) - { - } - catch (Exception ex) - { - _logger.Info(string.Format("SAT>IP : RTP listener thread exception"), ex); - return; - } - _logger.Info("SAT>IP : RTP listener thread stopping"); - } - public delegate void PacketReceivedHandler(object sender, RtpPacketReceivedArgs e); - public event PacketReceivedHandler PacketReceived; - public class RtpPacketReceivedArgs : EventArgs - { - public RtpPacket Packet { get; private set; } - - public RtpPacketReceivedArgs(RtpPacket packet) - { - Packet = packet; - } - } - protected void OnPacketReceived(RtpPacketReceivedArgs args) - { - if (PacketReceived != null) - { - PacketReceived(this, args); - } - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtp/RtpPacket.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtp/RtpPacket.cs deleted file mode 100644 index 489d7f087c..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtp/RtpPacket.cs +++ /dev/null @@ -1,116 +0,0 @@ -/* - Copyright (C) <2007-2016> <Kay Diefenthal> - - SatIp.RtspSample is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - SatIp.RtspSample is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with SatIp.RtspSample. If not, see <http://www.gnu.org/licenses/>. -*/ - -using System; -using System.Collections.ObjectModel; -using System.Text; - -namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.SatIp.Rtp -{ - public class RtpPacket - { - private static int MinHeaderLength = 12; - public int HeaderSize = MinHeaderLength; - public int Version { get; set; } - public Boolean Padding { get; set; } - public Boolean Extension { get; set; } - public int ContributingSourceCount { get; set; } - public Boolean Marker { get; set; } - public int PayloadType { get; set; } - public int SequenceNumber { get; set; } - public long TimeStamp { get; set; } - public long SynchronizationSource { get; set; } - public Collection<string> ContributingSources { get; private set; } - public int ExtensionHeaderId = 0; - public int ExtensionHeaderLength = 0; - public bool HasPayload { get; set; } - public byte[] Payload { get; set; } - public RtpPacket() - { - - } - public static RtpPacket Decode(byte[] buffer) - { - var packet = new RtpPacket(); - packet.Version = buffer[0] >> 6; - packet.Padding = (buffer[0] & 0x20) != 0; - packet.Extension = (buffer[0] & 0x10) != 0; - packet.ContributingSourceCount = buffer[0] & 0x0f; - - packet.Marker = (buffer[1] & 0x80) != 0; - packet.PayloadType = buffer[1] & 0x7f; - - packet.SequenceNumber = Utils.Convert2BytesToInt(buffer, 2); - packet.TimeStamp = Utils.Convert4BytesToLong(buffer, 4); - packet.SynchronizationSource = Utils.Convert4BytesToLong(buffer, 8); - - int index = 12; - - if (packet.ContributingSourceCount != 0) - { - packet.ContributingSources = new Collection<string>(); - - while (packet.ContributingSources.Count < packet.ContributingSourceCount) - { - packet.ContributingSources.Add(Utils.ConvertBytesToString(buffer, index, 4)); - index += 4; - } - } - var dataoffset = 0; - if (!packet.Extension) - dataoffset = index; - else - { - packet.ExtensionHeaderId = Utils.Convert2BytesToInt(buffer, index); - packet.ExtensionHeaderLength = Utils.Convert2BytesToInt(buffer, index + 2); - dataoffset = index + packet.ExtensionHeaderLength + 4; - } - - var dataLength = buffer.Length - dataoffset; - if (dataLength > dataoffset) - { - packet.HasPayload = true; - packet.Payload = new byte[dataLength]; - Array.Copy(buffer, dataoffset, packet.Payload, 0, dataLength); - } - else - { - packet.HasPayload = false; - } - return packet; - } - - public override string ToString() - { - StringBuilder sb = new StringBuilder(); - sb.AppendFormat("RTP Packet"); - sb.AppendFormat("Version: {0} \n", Version); - sb.AppendFormat("Padding: {0} \n", Padding); - sb.AppendFormat("Extension: {0} \n", Extension); - sb.AppendFormat("Contributing Source Identifiers Count: {0} \n", ContributingSourceCount); - sb.AppendFormat("Marker: {0} \n", Marker); - sb.AppendFormat("Payload Type: {0} \n", PayloadType); - sb.AppendFormat("Sequence Number: {0} \n", SequenceNumber); - sb.AppendFormat("Timestamp: {0} .\n", TimeStamp); - sb.AppendFormat("Synchronization Source Identifier: {0} \n", SynchronizationSource); - sb.AppendFormat("\n"); - return sb.ToString(); - } - - } - -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtsp/RtspMethod.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtsp/RtspMethod.cs deleted file mode 100644 index 5f286f1db5..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtsp/RtspMethod.cs +++ /dev/null @@ -1,88 +0,0 @@ -/* - Copyright (C) <2007-2016> <Kay Diefenthal> - - SatIp.RtspSample is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - SatIp.RtspSample is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with SatIp.RtspSample. If not, see <http://www.gnu.org/licenses/>. -*/ - -using System.Collections.Generic; - -namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.SatIp.Rtsp -{ - /// <summary> - /// Standard RTSP request methods. - /// </summary> - public sealed class RtspMethod - { - public override int GetHashCode() - { - return (_name != null ? _name.GetHashCode() : 0); - } - - private readonly string _name; - private static readonly IDictionary<string, RtspMethod> _values = new Dictionary<string, RtspMethod>(); - - public static readonly RtspMethod Describe = new RtspMethod("DESCRIBE"); - public static readonly RtspMethod Announce = new RtspMethod("ANNOUNCE"); - public static readonly RtspMethod GetParameter = new RtspMethod("GET_PARAMETER"); - public static readonly RtspMethod Options = new RtspMethod("OPTIONS"); - public static readonly RtspMethod Pause = new RtspMethod("PAUSE"); - public static readonly RtspMethod Play = new RtspMethod("PLAY"); - public static readonly RtspMethod Record = new RtspMethod("RECORD"); - public static readonly RtspMethod Redirect = new RtspMethod("REDIRECT"); - public static readonly RtspMethod Setup = new RtspMethod("SETUP"); - public static readonly RtspMethod SetParameter = new RtspMethod("SET_PARAMETER"); - public static readonly RtspMethod Teardown = new RtspMethod("TEARDOWN"); - - private RtspMethod(string name) - { - _name = name; - _values.Add(name, this); - } - - public override string ToString() - { - return _name; - } - - public override bool Equals(object obj) - { - var method = obj as RtspMethod; - if (method != null && this == method) - { - return true; - } - return false; - } - - public static ICollection<RtspMethod> Values - { - get { return _values.Values; } - } - - public static explicit operator RtspMethod(string name) - { - RtspMethod value; - if (!_values.TryGetValue(name, out value)) - { - return null; - } - return value; - } - - public static implicit operator string(RtspMethod method) - { - return method._name; - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtsp/RtspRequest.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtsp/RtspRequest.cs deleted file mode 100644 index 600eda02da..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtsp/RtspRequest.cs +++ /dev/null @@ -1,140 +0,0 @@ -/* - Copyright (C) <2007-2016> <Kay Diefenthal> - - SatIp.RtspSample is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - SatIp.RtspSample is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with SatIp.RtspSample. If not, see <http://www.gnu.org/licenses/>. -*/ - -using System.Collections.Generic; -using System.Text; - -namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.SatIp.Rtsp -{ - /// <summary> - /// A simple class that can be used to serialise RTSP requests. - /// </summary> - public class RtspRequest - { - private readonly RtspMethod _method; - private readonly string _uri; - private readonly int _majorVersion; - private readonly int _minorVersion; - private IDictionary<string, string> _headers = new Dictionary<string, string>(); - private string _body = string.Empty; - - /// <summary> - /// Initialise a new instance of the <see cref="RtspRequest"/> class. - /// </summary> - /// <param name="method">The request method.</param> - /// <param name="uri">The request URI</param> - /// <param name="majorVersion">The major version number.</param> - /// <param name="minorVersion">The minor version number.</param> - public RtspRequest(RtspMethod method, string uri, int majorVersion, int minorVersion) - { - _method = method; - _uri = uri; - _majorVersion = majorVersion; - _minorVersion = minorVersion; - } - - /// <summary> - /// Get the request method. - /// </summary> - public RtspMethod Method - { - get - { - return _method; - } - } - - /// <summary> - /// Get the request URI. - /// </summary> - public string Uri - { - get - { - return _uri; - } - } - - /// <summary> - /// Get the request major version number. - /// </summary> - public int MajorVersion - { - get - { - return _majorVersion; - } - } - - /// <summary> - /// Get the request minor version number. - /// </summary> - public int MinorVersion - { - get - { - return _minorVersion; - } - } - - /// <summary> - /// Get or set the request headers. - /// </summary> - public IDictionary<string, string> Headers - { - get - { - return _headers; - } - set - { - _headers = value; - } - } - - /// <summary> - /// Get or set the request body. - /// </summary> - public string Body - { - get - { - return _body; - } - set - { - _body = value; - } - } - - /// <summary> - /// Serialise this request. - /// </summary> - /// <returns>raw request bytes</returns> - public byte[] Serialise() - { - var request = new StringBuilder(); - request.AppendFormat("{0} {1} RTSP/{2}.{3}\r\n", _method, _uri, _majorVersion, _minorVersion); - foreach (var header in _headers) - { - request.AppendFormat("{0}: {1}\r\n", header.Key, header.Value); - } - request.AppendFormat("\r\n{0}", _body); - return Encoding.UTF8.GetBytes(request.ToString()); - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtsp/RtspResponse.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtsp/RtspResponse.cs deleted file mode 100644 index 97290623b9..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtsp/RtspResponse.cs +++ /dev/null @@ -1,149 +0,0 @@ -/* - Copyright (C) <2007-2016> <Kay Diefenthal> - - SatIp.RtspSample is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - SatIp.RtspSample is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with SatIp.RtspSample. If not, see <http://www.gnu.org/licenses/>. -*/ - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; - -namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.SatIp.Rtsp -{ - /// <summary> - /// A simple class that can be used to deserialise RTSP responses. - /// </summary> - public class RtspResponse - { - private static readonly Regex RegexStatusLine = new Regex(@"RTSP/(\d+)\.(\d+)\s+(\d+)\s+([^.]+?)\r\n(.*)", RegexOptions.Singleline); - - private int _majorVersion = 1; - private int _minorVersion; - private RtspStatusCode _statusCode; - private string _reasonPhrase; - private IDictionary<string, string> _headers; - private string _body; - - /// <summary> - /// Initialise a new instance of the <see cref="RtspResponse"/> class. - /// </summary> - private RtspResponse() - { - } - - /// <summary> - /// Get the response major version number. - /// </summary> - public int MajorVersion - { - get - { - return _majorVersion; - } - } - - /// <summary> - /// Get the response minor version number. - /// </summary> - public int MinorVersion - { - get - { - return _minorVersion; - } - } - - /// <summary> - /// Get the response status code. - /// </summary> - public RtspStatusCode StatusCode - { - get - { - return _statusCode; - } - } - - /// <summary> - /// Get the response reason phrase. - /// </summary> - public string ReasonPhrase - { - get - { - return _reasonPhrase; - } - } - - /// <summary> - /// Get the response headers. - /// </summary> - public IDictionary<string, string> Headers - { - get - { - return _headers; - } - } - - /// <summary> - /// Get the response body. - /// </summary> - public string Body - { - get - { - return _body; - } - set - { - _body = value; - } - } - - /// <summary> - /// Deserialise/parse an RTSP response. - /// </summary> - /// <param name="responseBytes">The raw response bytes.</param> - /// <param name="responseByteCount">The number of valid bytes in the response.</param> - /// <returns>a response object</returns> - public static RtspResponse Deserialise(byte[] responseBytes, int responseByteCount) - { - var response = new RtspResponse(); - var responseString = Encoding.UTF8.GetString(responseBytes, 0, responseByteCount); - - var m = RegexStatusLine.Match(responseString); - if (m.Success) - { - response._majorVersion = int.Parse(m.Groups[1].Captures[0].Value); - response._minorVersion = int.Parse(m.Groups[2].Captures[0].Value); - response._statusCode = (RtspStatusCode)int.Parse(m.Groups[3].Captures[0].Value); - response._reasonPhrase = m.Groups[4].Captures[0].Value; - responseString = m.Groups[5].Captures[0].Value; - } - - var sections = responseString.Split(new[] { "\r\n\r\n" }, StringSplitOptions.None); - response._body = sections[1]; - var headers = sections[0].Split(new[] { "\r\n" }, StringSplitOptions.None); - response._headers = new Dictionary<string, string>(); - foreach (var headerInfo in headers.Select(header => header.Split(':'))) - { - response._headers.Add(headerInfo[0], headerInfo[1].Trim()); - } - return response; - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtsp/RtspSession.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtsp/RtspSession.cs deleted file mode 100644 index 0f8682b7cc..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtsp/RtspSession.cs +++ /dev/null @@ -1,688 +0,0 @@ -/* - Copyright (C) <2007-2016> <Kay Diefenthal> - - SatIp.RtspSample is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - SatIp.RtspSample is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with SatIp.RtspSample. If not, see <http://www.gnu.org/licenses/>. -*/ - -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Linq; -using System.Net; -using System.Net.NetworkInformation; -using System.Net.Sockets; -using System.Text.RegularExpressions; -using MediaBrowser.Model.Logging; - -namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.SatIp.Rtsp -{ - public class RtspSession : IDisposable - { - #region Private Fields - private static readonly Regex RegexRtspSessionHeader = new Regex(@"\s*([^\s;]+)(;timeout=(\d+))?"); - private const int DefaultRtspSessionTimeout = 30; // unit = s - private static readonly Regex RegexDescribeResponseSignalInfo = new Regex(@";tuner=\d+,(\d+),(\d+),(\d+),", RegexOptions.Singleline | RegexOptions.IgnoreCase); - private string _address; - private string _rtspSessionId; - - public string RtspSessionId - { - get { return _rtspSessionId; } - set { _rtspSessionId = value; } - } - private int _rtspSessionTimeToLive = 0; - private string _rtspStreamId; - private int _clientRtpPort; - private int _clientRtcpPort; - private int _serverRtpPort; - private int _serverRtcpPort; - private int _rtpPort; - private int _rtcpPort; - private string _rtspStreamUrl; - private string _destination; - private string _source; - private string _transport; - private int _signalLevel; - private int _signalQuality; - private Socket _rtspSocket; - private int _rtspSequenceNum = 1; - private bool _disposed = false; - private readonly ILogger _logger; - #endregion - - #region Constructor - - public RtspSession(string address, ILogger logger) - { - if (string.IsNullOrWhiteSpace(address)) - { - throw new ArgumentNullException("address"); - } - - _address = address; - _logger = logger; - - _logger.Info("Creating RtspSession with url {0}", address); - } - ~RtspSession() - { - Dispose(false); - } - #endregion - - #region Properties - - #region Rtsp - - public string RtspStreamId - { - get { return _rtspStreamId; } - set { if (_rtspStreamId != value) { _rtspStreamId = value; OnPropertyChanged("RtspStreamId"); } } - } - public string RtspStreamUrl - { - get { return _rtspStreamUrl; } - set { if (_rtspStreamUrl != value) { _rtspStreamUrl = value; OnPropertyChanged("RtspStreamUrl"); } } - } - - public int RtspSessionTimeToLive - { - get - { - if (_rtspSessionTimeToLive == 0) - _rtspSessionTimeToLive = DefaultRtspSessionTimeout; - return _rtspSessionTimeToLive * 1000 - 20; - } - set { if (_rtspSessionTimeToLive != value) { _rtspSessionTimeToLive = value; OnPropertyChanged("RtspSessionTimeToLive"); } } - } - - #endregion - - #region Rtp Rtcp - - /// <summary> - /// The LocalEndPoint Address - /// </summary> - public string Destination - { - get - { - if (string.IsNullOrEmpty(_destination)) - { - var result = ""; - var host = Dns.GetHostName(); - var hostentry = Dns.GetHostEntry(host); - foreach (var ip in hostentry.AddressList.Where(ip => ip.AddressFamily == AddressFamily.InterNetwork)) - { - result = ip.ToString(); - } - - _destination = result; - } - return _destination; - } - set - { - if (_destination != value) - { - _destination = value; - OnPropertyChanged("Destination"); - } - } - } - - /// <summary> - /// The RemoteEndPoint Address - /// </summary> - public string Source - { - get { return _source; } - set - { - if (_source != value) - { - _source = value; - OnPropertyChanged("Source"); - } - } - } - - /// <summary> - /// The Media Data Delivery RemoteEndPoint Port if we use Unicast - /// </summary> - public int ServerRtpPort - { - get - { - return _serverRtpPort; - } - set { if (_serverRtpPort != value) { _serverRtpPort = value; OnPropertyChanged("ServerRtpPort"); } } - } - - /// <summary> - /// The Media Metadata Delivery RemoteEndPoint Port if we use Unicast - /// </summary> - public int ServerRtcpPort - { - get { return _serverRtcpPort; } - set { if (_serverRtcpPort != value) { _serverRtcpPort = value; OnPropertyChanged("ServerRtcpPort"); } } - } - - /// <summary> - /// The Media Data Delivery LocalEndPoint Port if we use Unicast - /// </summary> - public int ClientRtpPort - { - get { return _clientRtpPort; } - set { if (_clientRtpPort != value) { _clientRtpPort = value; OnPropertyChanged("ClientRtpPort"); } } - } - - /// <summary> - /// The Media Metadata Delivery LocalEndPoint Port if we use Unicast - /// </summary> - public int ClientRtcpPort - { - get { return _clientRtcpPort; } - set { if (_clientRtcpPort != value) { _clientRtcpPort = value; OnPropertyChanged("ClientRtcpPort"); } } - } - - /// <summary> - /// The Media Data Delivery RemoteEndPoint Port if we use Multicast - /// </summary> - public int RtpPort - { - get { return _rtpPort; } - set { if (_rtpPort != value) { _rtpPort = value; OnPropertyChanged("RtpPort"); } } - } - - /// <summary> - /// The Media Meta Delivery RemoteEndPoint Port if we use Multicast - /// </summary> - public int RtcpPort - { - get { return _rtcpPort; } - set { if (_rtcpPort != value) { _rtcpPort = value; OnPropertyChanged("RtcpPort"); } } - } - - #endregion - - public string Transport - { - get - { - if (string.IsNullOrEmpty(_transport)) - { - _transport = "unicast"; - } - return _transport; - } - set - { - if (_transport != value) - { - _transport = value; - OnPropertyChanged("Transport"); - } - } - } - public int SignalLevel - { - get { return _signalLevel; } - set { if (_signalLevel != value) { _signalLevel = value; OnPropertyChanged("SignalLevel"); } } - } - public int SignalQuality - { - get { return _signalQuality; } - set { if (_signalQuality != value) { _signalQuality = value; OnPropertyChanged("SignalQuality"); } } - } - - #endregion - - #region Private Methods - - private void ProcessSessionHeader(string sessionHeader, string response) - { - if (!string.IsNullOrEmpty(sessionHeader)) - { - var m = RegexRtspSessionHeader.Match(sessionHeader); - if (!m.Success) - { - _logger.Error("Failed to tune, RTSP {0} response session header {1} format not recognised", response, sessionHeader); - } - _rtspSessionId = m.Groups[1].Captures[0].Value; - _rtspSessionTimeToLive = m.Groups[3].Captures.Count == 1 ? int.Parse(m.Groups[3].Captures[0].Value) : DefaultRtspSessionTimeout; - } - } - private void ProcessTransportHeader(string transportHeader) - { - if (!string.IsNullOrEmpty(transportHeader)) - { - var transports = transportHeader.Split(','); - foreach (var transport in transports) - { - if (transport.Trim().StartsWith("RTP/AVP")) - { - var sections = transport.Split(';'); - foreach (var section in sections) - { - var parts = section.Split('='); - if (parts[0].Equals("server_port")) - { - var ports = parts[1].Split('-'); - _serverRtpPort = int.Parse(ports[0]); - _serverRtcpPort = int.Parse(ports[1]); - } - else if (parts[0].Equals("destination")) - { - _destination = parts[1]; - } - else if (parts[0].Equals("port")) - { - var ports = parts[1].Split('-'); - _rtpPort = int.Parse(ports[0]); - _rtcpPort = int.Parse(ports[1]); - } - else if (parts[0].Equals("ttl")) - { - _rtspSessionTimeToLive = int.Parse(parts[1]); - } - else if (parts[0].Equals("source")) - { - _source = parts[1]; - } - else if (parts[0].Equals("client_port")) - { - var ports = parts[1].Split('-'); - var rtp = int.Parse(ports[0]); - var rtcp = int.Parse(ports[1]); - //if (!rtp.Equals(_rtpPort)) - //{ - // Logger.Error("SAT>IP base: server specified RTP client port {0} instead of {1}", rtp, _rtpPort); - //} - //if (!rtcp.Equals(_rtcpPort)) - //{ - // Logger.Error("SAT>IP base: server specified RTCP client port {0} instead of {1}", rtcp, _rtcpPort); - //} - _rtpPort = rtp; - _rtcpPort = rtcp; - } - } - } - } - } - } - private void Connect() - { - _rtspSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); - var ip = IPAddress.Parse(_address); - var rtspEndpoint = new IPEndPoint(ip, 554); - _rtspSocket.Connect(rtspEndpoint); - } - private void Disconnect() - { - if (_rtspSocket != null && _rtspSocket.Connected) - { - _rtspSocket.Shutdown(SocketShutdown.Both); - _rtspSocket.Close(); - } - } - private void SendRequest(RtspRequest request) - { - if (_rtspSocket == null) - { - Connect(); - } - try - { - request.Headers.Add("CSeq", _rtspSequenceNum.ToString()); - _rtspSequenceNum++; - byte[] requestBytes = request.Serialise(); - if (_rtspSocket != null) - { - var requestBytesCount = _rtspSocket.Send(requestBytes, requestBytes.Length, SocketFlags.None); - if (requestBytesCount < 1) - { - - } - } - } - catch (Exception e) - { - _logger.Error(e.Message); - } - } - private void ReceiveResponse(out RtspResponse response) - { - response = null; - var responseBytesCount = 0; - byte[] responseBytes = new byte[1024]; - try - { - responseBytesCount = _rtspSocket.Receive(responseBytes, responseBytes.Length, SocketFlags.None); - response = RtspResponse.Deserialise(responseBytes, responseBytesCount); - string contentLengthString; - int contentLength = 0; - if (response.Headers.TryGetValue("Content-Length", out contentLengthString)) - { - contentLength = int.Parse(contentLengthString); - if ((string.IsNullOrEmpty(response.Body) && contentLength > 0) || response.Body.Length < contentLength) - { - if (response.Body == null) - { - response.Body = string.Empty; - } - while (responseBytesCount > 0 && response.Body.Length < contentLength) - { - responseBytesCount = _rtspSocket.Receive(responseBytes, responseBytes.Length, SocketFlags.None); - response.Body += System.Text.Encoding.UTF8.GetString(responseBytes, 0, responseBytesCount); - } - } - } - } - catch (SocketException) - { - } - } - - #endregion - - #region Public Methods - - public RtspStatusCode Setup(string query, string transporttype) - { - - RtspRequest request; - RtspResponse response; - //_rtspClient = new RtspClient(_rtspDevice.ServerAddress); - if ((_rtspSocket == null)) - { - Connect(); - } - if (string.IsNullOrEmpty(_rtspSessionId)) - { - request = new RtspRequest(RtspMethod.Setup, string.Format("rtsp://{0}:{1}/?{2}", _address, 554, query), 1, 0); - switch (transporttype) - { - case "multicast": - request.Headers.Add("Transport", string.Format("RTP/AVP;multicast")); - break; - case "unicast": - var activeTcpConnections = IPGlobalProperties.GetIPGlobalProperties().GetActiveTcpConnections(); - var usedPorts = new HashSet<int>(); - foreach (var connection in activeTcpConnections) - { - usedPorts.Add(connection.LocalEndPoint.Port); - } - for (var port = 40000; port <= 65534; port += 2) - { - if (!usedPorts.Contains(port) && !usedPorts.Contains(port + 1)) - { - - _clientRtpPort = port; - _clientRtcpPort = port + 1; - break; - } - } - request.Headers.Add("Transport", string.Format("RTP/AVP;unicast;client_port={0}-{1}", _clientRtpPort, _clientRtcpPort)); - break; - } - } - else - { - request = new RtspRequest(RtspMethod.Setup, string.Format("rtsp://{0}:{1}/?{2}", _address, 554, query), 1, 0); - switch (transporttype) - { - case "multicast": - request.Headers.Add("Transport", string.Format("RTP/AVP;multicast")); - break; - case "unicast": - request.Headers.Add("Transport", string.Format("RTP/AVP;unicast;client_port={0}-{1}", _clientRtpPort, _clientRtcpPort)); - break; - } - - } - SendRequest(request); - ReceiveResponse(out response); - - //if (_rtspClient.SendRequest(request, out response) != RtspStatusCode.Ok) - //{ - // Logger.Error("Failed to tune, non-OK RTSP SETUP status code {0} {1}", response.StatusCode, response.ReasonPhrase); - //} - if (!response.Headers.TryGetValue("com.ses.streamID", out _rtspStreamId)) - { - _logger.Error(string.Format("Failed to tune, not able to locate Stream ID header in RTSP SETUP response")); - } - string sessionHeader; - if (!response.Headers.TryGetValue("Session", out sessionHeader)) - { - _logger.Error(string.Format("Failed to tune, not able to locate Session header in RTSP SETUP response")); - } - ProcessSessionHeader(sessionHeader, "Setup"); - string transportHeader; - if (!response.Headers.TryGetValue("Transport", out transportHeader)) - { - _logger.Error(string.Format("Failed to tune, not able to locate Transport header in RTSP SETUP response")); - } - ProcessTransportHeader(transportHeader); - return response.StatusCode; - } - - public RtspStatusCode Play(string query) - { - if ((_rtspSocket == null)) - { - Connect(); - } - //_rtspClient = new RtspClient(_rtspDevice.ServerAddress); - RtspResponse response; - string data; - if (string.IsNullOrEmpty(query)) - { - data = string.Format("rtsp://{0}:{1}/stream={2}", _address, - 554, _rtspStreamId); - } - else - { - data = string.Format("rtsp://{0}:{1}/stream={2}?{3}", _address, - 554, _rtspStreamId, query); - } - var request = new RtspRequest(RtspMethod.Play, data, 1, 0); - request.Headers.Add("Session", _rtspSessionId); - SendRequest(request); - ReceiveResponse(out response); - //if (_rtspClient.SendRequest(request, out response) != RtspStatusCode.Ok) - //{ - // Logger.Error("Failed to tune, non-OK RTSP SETUP status code {0} {1}", response.StatusCode, response.ReasonPhrase); - //} - //Logger.Info("RtspSession-Play : \r\n {0}", response); - string sessionHeader; - if (!response.Headers.TryGetValue("Session", out sessionHeader)) - { - _logger.Error(string.Format("Failed to tune, not able to locate Session header in RTSP Play response")); - } - ProcessSessionHeader(sessionHeader, "Play"); - string rtpinfoHeader; - if (!response.Headers.TryGetValue("RTP-Info", out rtpinfoHeader)) - { - _logger.Error(string.Format("Failed to tune, not able to locate Rtp-Info header in RTSP Play response")); - } - return response.StatusCode; - } - - public RtspStatusCode Options() - { - if ((_rtspSocket == null)) - { - Connect(); - } - //_rtspClient = new RtspClient(_rtspDevice.ServerAddress); - RtspRequest request; - RtspResponse response; - - - if (string.IsNullOrEmpty(_rtspSessionId)) - { - request = new RtspRequest(RtspMethod.Options, string.Format("rtsp://{0}:{1}/", _address, 554), 1, 0); - } - else - { - request = new RtspRequest(RtspMethod.Options, string.Format("rtsp://{0}:{1}/", _address, 554), 1, 0); - request.Headers.Add("Session", _rtspSessionId); - } - SendRequest(request); - ReceiveResponse(out response); - //if (_rtspClient.SendRequest(request, out response) != RtspStatusCode.Ok) - //{ - // Logger.Error("Failed to tune, non-OK RTSP SETUP status code {0} {1}", response.StatusCode, response.ReasonPhrase); - //} - //Logger.Info("RtspSession-Options : \r\n {0}", response); - string sessionHeader; - if (!response.Headers.TryGetValue("Session", out sessionHeader)) - { - _logger.Error(string.Format("Failed to tune, not able to locate session header in RTSP Options response")); - } - ProcessSessionHeader(sessionHeader, "Options"); - string optionsHeader; - if (!response.Headers.TryGetValue("Public", out optionsHeader)) - { - _logger.Error(string.Format("Failed to tune, not able to Options header in RTSP Options response")); - } - return response.StatusCode; - } - - public RtspStatusCode Describe(out int level, out int quality) - { - if ((_rtspSocket == null)) - { - Connect(); - } - //_rtspClient = new RtspClient(_rtspDevice.ServerAddress); - RtspRequest request; - RtspResponse response; - level = 0; - quality = 0; - - if (string.IsNullOrEmpty(_rtspSessionId)) - { - request = new RtspRequest(RtspMethod.Describe, string.Format("rtsp://{0}:{1}/", _address, 554), 1, 0); - request.Headers.Add("Accept", "application/sdp"); - - } - else - { - request = new RtspRequest(RtspMethod.Describe, string.Format("rtsp://{0}:{1}/stream={2}", _address, 554, _rtspStreamId), 1, 0); - request.Headers.Add("Accept", "application/sdp"); - request.Headers.Add("Session", _rtspSessionId); - } - SendRequest(request); - ReceiveResponse(out response); - //if (_rtspClient.SendRequest(request, out response) != RtspStatusCode.Ok) - //{ - // Logger.Error("Failed to tune, non-OK RTSP Describe status code {0} {1}", response.StatusCode, response.ReasonPhrase); - //} - //Logger.Info("RtspSession-Describe : \r\n {0}", response); - string sessionHeader; - if (!response.Headers.TryGetValue("Session", out sessionHeader)) - { - _logger.Error(string.Format("Failed to tune, not able to locate session header in RTSP Describe response")); - } - ProcessSessionHeader(sessionHeader, "Describe"); - var m = RegexDescribeResponseSignalInfo.Match(response.Body); - if (m.Success) - { - - //isSignalLocked = m.Groups[2].Captures[0].Value.Equals("1"); - level = int.Parse(m.Groups[1].Captures[0].Value) * 100 / 255; // level: 0..255 => 0..100 - quality = int.Parse(m.Groups[3].Captures[0].Value) * 100 / 15; // quality: 0..15 => 0..100 - - } - /* - v=0 - o=- 1378633020884883 1 IN IP4 192.168.2.108 - s=SatIPServer:1 4 - t=0 0 - a=tool:idl4k - m=video 52780 RTP/AVP 33 - c=IN IP4 0.0.0.0 - b=AS:5000 - a=control:stream=4 - a=fmtp:33 ver=1.0;tuner=1,0,0,0,12344,h,dvbs2,,off,,22000,34;pids=0,100,101,102,103,106 - =sendonly - */ - - - return response.StatusCode; - } - - public RtspStatusCode TearDown() - { - if ((_rtspSocket == null)) - { - Connect(); - } - //_rtspClient = new RtspClient(_rtspDevice.ServerAddress); - RtspResponse response; - - var request = new RtspRequest(RtspMethod.Teardown, string.Format("rtsp://{0}:{1}/stream={2}", _address, 554, _rtspStreamId), 1, 0); - request.Headers.Add("Session", _rtspSessionId); - SendRequest(request); - ReceiveResponse(out response); - //if (_rtspClient.SendRequest(request, out response) != RtspStatusCode.Ok) - //{ - // Logger.Error("Failed to tune, non-OK RTSP Teardown status code {0} {1}", response.StatusCode, response.ReasonPhrase); - //} - return response.StatusCode; - } - - #endregion - - #region Public Events - - ////public event PropertyChangedEventHandler PropertyChanged; - - #endregion - - #region Protected Methods - - protected void OnPropertyChanged(string name) - { - //var handler = PropertyChanged; - //if (handler != null) - //{ - // handler(this, new PropertyChangedEventArgs(name)); - //} - } - - #endregion - - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this);//Disconnect(); - } - - protected virtual void Dispose(bool disposing) - { - if (!_disposed) - { - if (disposing) - { - TearDown(); - Disconnect(); - } - } - _disposed = true; - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtsp/RtspStatusCode.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtsp/RtspStatusCode.cs deleted file mode 100644 index 6d6d50623b..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Rtsp/RtspStatusCode.cs +++ /dev/null @@ -1,251 +0,0 @@ -/* - Copyright (C) <2007-2016> <Kay Diefenthal> - - SatIp.RtspSample is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - SatIp.RtspSample is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with SatIp.RtspSample. If not, see <http://www.gnu.org/licenses/>. -*/ - -using System.ComponentModel; - -namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.SatIp.Rtsp -{ - /// <summary> - /// Standard RTSP status codes. - /// </summary> - public enum RtspStatusCode - { - /// <summary> - /// 100 continue - /// </summary> - Continue = 100, - - /// <summary> - /// 200 OK - /// </summary> - [Description("Okay")] - Ok = 200, - /// <summary> - /// 201 created - /// </summary> - Created = 201, - - /// <summary> - /// 250 low on storage space - /// </summary> - [Description("Low On Storage Space")] - LowOnStorageSpace = 250, - - /// <summary> - /// 300 multiple choices - /// </summary> - [Description("Multiple Choices")] - MultipleChoices = 300, - /// <summary> - /// 301 moved permanently - /// </summary> - [Description("Moved Permanently")] - MovedPermanently = 301, - /// <summary> - /// 302 moved temporarily - /// </summary> - [Description("Moved Temporarily")] - MovedTemporarily = 302, - /// <summary> - /// 303 see other - /// </summary> - [Description("See Other")] - SeeOther = 303, - /// <summary> - /// 304 not modified - /// </summary> - [Description("Not Modified")] - NotModified = 304, - /// <summary> - /// 305 use proxy - /// </summary> - [Description("Use Proxy")] - UseProxy = 305, - - /// <summary> - /// 400 bad request - /// </summary> - [Description("Bad Request")] - BadRequest = 400, - /// <summary> - /// 401 unauthorised - /// </summary> - Unauthorised = 401, - /// <summary> - /// 402 payment required - /// </summary> - [Description("Payment Required")] - PaymentRequired = 402, - /// <summary> - /// 403 forbidden - /// </summary> - Forbidden = 403, - /// <summary> - /// 404 not found - /// </summary> - [Description("Not Found")] - NotFound = 404, - /// <summary> - /// 405 method not allowed - /// </summary> - [Description("Method Not Allowed")] - MethodNotAllowed = 405, - /// <summary> - /// 406 not acceptable - /// </summary> - [Description("Not Acceptable")] - NotAcceptable = 406, - /// <summary> - /// 407 proxy authentication required - /// </summary> - [Description("Proxy Authentication Required")] - ProxyAuthenticationRequred = 407, - /// <summary> - /// 408 request time-out - /// </summary> - [Description("Request Time-Out")] - RequestTimeOut = 408, - - /// <summary> - /// 410 gone - /// </summary> - Gone = 410, - /// <summary> - /// 411 length required - /// </summary> - [Description("Length Required")] - LengthRequired = 411, - /// <summary> - /// 412 precondition failed - /// </summary> - [Description("Precondition Failed")] - PreconditionFailed = 412, - /// <summary> - /// 413 request entity too large - /// </summary> - [Description("Request Entity Too Large")] - RequestEntityTooLarge = 413, - /// <summary> - /// 414 request URI too large - /// </summary> - [Description("Request URI Too Large")] - RequestUriTooLarge = 414, - /// <summary> - /// 415 unsupported media type - /// </summary> - [Description("Unsupported Media Type")] - UnsupportedMediaType = 415, - - /// <summary> - /// 451 parameter not understood - /// </summary> - [Description("Parameter Not Understood")] - ParameterNotUnderstood = 451, - /// <summary> - /// 452 conference not found - /// </summary> - [Description("Conference Not Found")] - ConferenceNotFound = 452, - /// <summary> - /// 453 not enough bandwidth - /// </summary> - [Description("Not Enough Bandwidth")] - NotEnoughBandwidth = 453, - /// <summary> - /// 454 session not found - /// </summary> - [Description("Session Not Found")] - SessionNotFound = 454, - /// <summary> - /// 455 method not valid in this state - /// </summary> - [Description("Method Not Valid In This State")] - MethodNotValidInThisState = 455, - /// <summary> - /// 456 header field not valid for this resource - /// </summary> - [Description("Header Field Not Valid For This Resource")] - HeaderFieldNotValidForThisResource = 456, - /// <summary> - /// 457 invalid range - /// </summary> - [Description("Invalid Range")] - InvalidRange = 457, - /// <summary> - /// 458 parameter is read-only - /// </summary> - [Description("Parameter Is Read-Only")] - ParameterIsReadOnly = 458, - /// <summary> - /// 459 aggregate operation not allowed - /// </summary> - [Description("Aggregate Operation Not Allowed")] - AggregateOperationNotAllowed = 459, - /// <summary> - /// 460 only aggregate operation allowed - /// </summary> - [Description("Only Aggregate Operation Allowed")] - OnlyAggregateOperationAllowed = 460, - /// <summary> - /// 461 unsupported transport - /// </summary> - [Description("Unsupported Transport")] - UnsupportedTransport = 461, - /// <summary> - /// 462 destination unreachable - /// </summary> - [Description("Destination Unreachable")] - DestinationUnreachable = 462, - - /// <summary> - /// 500 internal server error - /// </summary> - [Description("Internal Server Error")] - InternalServerError = 500, - /// <summary> - /// 501 not implemented - /// </summary> - [Description("Not Implemented")] - NotImplemented = 501, - /// <summary> - /// 502 bad gateway - /// </summary> - [Description("Bad Gateway")] - BadGateway = 502, - /// <summary> - /// 503 service unavailable - /// </summary> - [Description("Service Unavailable")] - ServiceUnavailable = 503, - /// <summary> - /// 504 gateway time-out - /// </summary> - [Description("Gateway Time-Out")] - GatewayTimeOut = 504, - /// <summary> - /// 505 RTSP version not supported - /// </summary> - [Description("RTSP Version Not Supported")] - RtspVersionNotSupported = 505, - - /// <summary> - /// 551 option not supported - /// </summary> - [Description("Option Not Supported")] - OptionNotSupported = 551 - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/SatIpDiscovery.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/SatIpDiscovery.cs deleted file mode 100644 index a0b8ef5f79..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/SatIpDiscovery.cs +++ /dev/null @@ -1,347 +0,0 @@ -using System; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; -using System.Xml; -using MediaBrowser.Common.Configuration; -using MediaBrowser.Common.Net; -using MediaBrowser.Controller.Configuration; -using MediaBrowser.Controller.Dlna; -using MediaBrowser.Controller.LiveTv; -using MediaBrowser.Controller.Plugins; -using MediaBrowser.Model.LiveTv; -using MediaBrowser.Model.Logging; -using MediaBrowser.Model.Serialization; -using MediaBrowser.Model.Extensions; -using System.Xml.Linq; -using MediaBrowser.Model.Events; - -namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.SatIp -{ - public class SatIpDiscovery : IServerEntryPoint - { - private readonly IDeviceDiscovery _deviceDiscovery; - private readonly IServerConfigurationManager _config; - private readonly ILogger _logger; - private readonly ILiveTvManager _liveTvManager; - private readonly SemaphoreSlim _semaphore = new SemaphoreSlim(1, 1); - private readonly IHttpClient _httpClient; - private readonly IJsonSerializer _json; - private int _tunerCountDVBS=0; - private int _tunerCountDVBC=0; - private int _tunerCountDVBT=0; - private bool _supportsDVBS=false; - private bool _supportsDVBC=false; - private bool _supportsDVBT=false; - public static SatIpDiscovery Current; - - public SatIpDiscovery(IDeviceDiscovery deviceDiscovery, IServerConfigurationManager config, ILogger logger, ILiveTvManager liveTvManager, IHttpClient httpClient, IJsonSerializer json) - { - _deviceDiscovery = deviceDiscovery; - _config = config; - _logger = logger; - _liveTvManager = liveTvManager; - _httpClient = httpClient; - _json = json; - Current = this; - } - - public void Run() - { - _deviceDiscovery.DeviceDiscovered += _deviceDiscovery_DeviceDiscovered; - } - - void _deviceDiscovery_DeviceDiscovered(object sender, GenericEventArgs<UpnpDeviceInfo> e) - { - var info = e.Argument; - - string st = null; - string nt = null; - info.Headers.TryGetValue("ST", out st); - info.Headers.TryGetValue("NT", out nt); - - if (string.Equals(st, "urn:ses-com:device:SatIPServer:1", StringComparison.OrdinalIgnoreCase) || - string.Equals(nt, "urn:ses-com:device:SatIPServer:1", StringComparison.OrdinalIgnoreCase)) - { - string location; - if (info.Headers.TryGetValue("Location", out location) && !string.IsNullOrWhiteSpace(location)) - { - _logger.Debug("SAT IP found at {0}", location); - - // Just get the beginning of the url - Uri uri; - if (Uri.TryCreate(location, UriKind.Absolute, out uri)) - { - var apiUrl = location.Replace(uri.LocalPath, String.Empty, StringComparison.OrdinalIgnoreCase) - .TrimEnd('/'); - - AddDevice(apiUrl, location); - } - } - } - } - - private async void AddDevice(string deviceUrl, string infoUrl) - { - await _semaphore.WaitAsync().ConfigureAwait(false); - - try - { - var options = GetConfiguration(); - - if (options.TunerHosts.Any(i => string.Equals(i.Type, SatIpHost.DeviceType, StringComparison.OrdinalIgnoreCase) && UriEquals(i.Url, deviceUrl))) - { - return; - } - - _logger.Debug("Will attempt to add SAT device {0}", deviceUrl); - var info = await GetInfo(infoUrl, CancellationToken.None).ConfigureAwait(false); - - var existing = GetConfiguration().TunerHosts - .FirstOrDefault(i => string.Equals(i.Type, SatIpHost.DeviceType, StringComparison.OrdinalIgnoreCase) && string.Equals(i.DeviceId, info.DeviceId, StringComparison.OrdinalIgnoreCase)); - - if (existing == null) - { - //if (string.IsNullOrWhiteSpace(info.M3UUrl)) - //{ - // return; - //} - - await _liveTvManager.SaveTunerHost(new TunerHostInfo - { - Type = SatIpHost.DeviceType, - Url = deviceUrl, - InfoUrl = infoUrl, - DataVersion = 1, - DeviceId = info.DeviceId, - FriendlyName = info.FriendlyName, - Tuners = info.Tuners, - M3UUrl = info.M3UUrl, - IsEnabled = true - - }, true).ConfigureAwait(false); - } - else - { - existing.Url = deviceUrl; - existing.InfoUrl = infoUrl; - existing.M3UUrl = info.M3UUrl; - existing.FriendlyName = info.FriendlyName; - existing.Tuners = info.Tuners; - await _liveTvManager.SaveTunerHost(existing, false).ConfigureAwait(false); - } - } - catch (OperationCanceledException) - { - - } - catch (NotImplementedException) - { - - } - catch (Exception ex) - { - _logger.ErrorException("Error saving device", ex); - } - finally - { - _semaphore.Release(); - } - } - - private bool UriEquals(string savedUri, string location) - { - return string.Equals(NormalizeUrl(location), NormalizeUrl(savedUri), StringComparison.OrdinalIgnoreCase); - } - - private string NormalizeUrl(string url) - { - if (!url.StartsWith("http", StringComparison.OrdinalIgnoreCase)) - { - url = "http://" + url; - } - - url = url.TrimEnd('/'); - - // Strip off the port - return new Uri(url).GetComponents(UriComponents.AbsoluteUri & ~UriComponents.Port, UriFormat.UriEscaped); - } - - private LiveTvOptions GetConfiguration() - { - return _config.GetConfiguration<LiveTvOptions>("livetv"); - } - - public void Dispose() - { - } - private void ReadCapability(string capability) - { - - string[] cap = capability.Split('-'); - switch (cap[0].ToLower()) - { - case "dvbs": - case "dvbs2": - { - // Optional that you know what an device Supports can you add an flag - _supportsDVBS = true; - - for (int i = 0; i < int.Parse(cap[1]); i++) - { - //ToDo Create Digital Recorder / Tuner Capture Instance here for each with index FE param in Sat>Ip Spec for direct communication with this instance - } - _tunerCountDVBS = int.Parse(cap[1]); - break; - } - case "dvbc": - case "dvbc2": - { - // Optional that you know what an device Supports can you add an flag - _supportsDVBC = true; - - for (int i = 0; i < int.Parse(cap[1]); i++) - { - //ToDo Create Digital Recorder / Tuner Capture Instance here for each with index FE param in Sat>Ip Spec for direct communication with this instance - - } - _tunerCountDVBC = int.Parse(cap[1]); - break; - } - case "dvbt": - case "dvbt2": - { - // Optional that you know what an device Supports can you add an flag - _supportsDVBT = true; - - - for (int i = 0; i < int.Parse(cap[1]); i++) - { - //ToDo Create Digital Recorder / Tuner Capture Instance here for each with index FE param in Sat>Ip Spec for direct communication with this instance - - } - _tunerCountDVBT = int.Parse(cap[1]); - break; - } - } - - } - public async Task<SatIpTunerHostInfo> GetInfo(string url, CancellationToken cancellationToken) - { - Uri locationUri = new Uri(url); - string devicetype = ""; - string friendlyname = ""; - string uniquedevicename = ""; - string manufacturer = ""; - string manufacturerurl = ""; - string modelname = ""; - string modeldescription = ""; - string modelnumber = ""; - string modelurl = ""; - string serialnumber = ""; - string presentationurl = ""; - //string capabilities = ""; - string m3u = ""; - var document = XDocument.Load(locationUri.AbsoluteUri); - var xnm = new XmlNamespaceManager(new NameTable()); - XNamespace n1 = "urn:ses-com:satip"; - XNamespace n0 = "urn:schemas-upnp-org:device-1-0"; - xnm.AddNamespace("root", n0.NamespaceName); - xnm.AddNamespace("satip:", n1.NamespaceName); - if (document.Root != null) - { - var deviceElement = document.Root.Element(n0 + "device"); - if (deviceElement != null) - { - var devicetypeElement = deviceElement.Element(n0 + "deviceType"); - if (devicetypeElement != null) - devicetype = devicetypeElement.Value; - var friendlynameElement = deviceElement.Element(n0 + "friendlyName"); - if (friendlynameElement != null) - friendlyname = friendlynameElement.Value; - var manufactureElement = deviceElement.Element(n0 + "manufacturer"); - if (manufactureElement != null) - manufacturer = manufactureElement.Value; - var manufactureurlElement = deviceElement.Element(n0 + "manufacturerURL"); - if (manufactureurlElement != null) - manufacturerurl = manufactureurlElement.Value; - var modeldescriptionElement = deviceElement.Element(n0 + "modelDescription"); - if (modeldescriptionElement != null) - modeldescription = modeldescriptionElement.Value; - var modelnameElement = deviceElement.Element(n0 + "modelName"); - if (modelnameElement != null) - modelname = modelnameElement.Value; - var modelnumberElement = deviceElement.Element(n0 + "modelNumber"); - if (modelnumberElement != null) - modelnumber = modelnumberElement.Value; - var modelurlElement = deviceElement.Element(n0 + "modelURL"); - if (modelurlElement != null) - modelurl = modelurlElement.Value; - var serialnumberElement = deviceElement.Element(n0 + "serialNumber"); - if (serialnumberElement != null) - serialnumber = serialnumberElement.Value; - var uniquedevicenameElement = deviceElement.Element(n0 + "UDN"); - if (uniquedevicenameElement != null) uniquedevicename = uniquedevicenameElement.Value; - var presentationUrlElement = deviceElement.Element(n0 + "presentationURL"); - if (presentationUrlElement != null) presentationurl = presentationUrlElement.Value; - var capabilitiesElement = deviceElement.Element(n1 + "X_SATIPCAP"); - if (capabilitiesElement != null) - { - //_capabilities = capabilitiesElement.Value; - if (capabilitiesElement.Value.Contains(',')) - { - string[] capabilities = capabilitiesElement.Value.Split(','); - foreach (var capability in capabilities) - { - ReadCapability(capability); - } - } - else - { - ReadCapability(capabilitiesElement.Value); - } - } - else - { - _supportsDVBS = true; - _tunerCountDVBS =1; - } - var m3uElement = deviceElement.Element(n1 + "X_SATIPM3U"); - if (m3uElement != null) m3u = m3uElement.Value; - } - } - - var result = new SatIpTunerHostInfo - { - Url = url, - Id = uniquedevicename, - IsEnabled = true, - Type = SatIpHost.DeviceType, - Tuners = _tunerCountDVBS, - TunersAvailable = _tunerCountDVBS, - M3UUrl = m3u - }; - - result.FriendlyName = friendlyname; - if (string.IsNullOrWhiteSpace(result.Id)) - { - throw new NotImplementedException(); - } - - else if (!result.M3UUrl.StartsWith("http", StringComparison.OrdinalIgnoreCase)) - { - var fullM3uUrl = url.Substring(0, url.LastIndexOf('/')); - result.M3UUrl = fullM3uUrl + "/" + result.M3UUrl.TrimStart('/'); - } - - _logger.Debug("SAT device result: {0}", _json.SerializeToString(result)); - - return result; - } - } - - public class SatIpTunerHostInfo : TunerHostInfo - { - public int TunersAvailable { get; set; } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/SatIpHost.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/SatIpHost.cs deleted file mode 100644 index 1fe767e521..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/SatIpHost.cs +++ /dev/null @@ -1,180 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Globalization; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; -using CommonIO; -using MediaBrowser.Common.Configuration; -using MediaBrowser.Common.Extensions; -using MediaBrowser.Common.Net; -using MediaBrowser.Controller; -using MediaBrowser.Controller.Configuration; -using MediaBrowser.Controller.LiveTv; -using MediaBrowser.Controller.MediaEncoding; -using MediaBrowser.Model.Dto; -using MediaBrowser.Model.Entities; -using MediaBrowser.Model.LiveTv; -using MediaBrowser.Model.Logging; -using MediaBrowser.Model.MediaInfo; -using MediaBrowser.Model.Serialization; -using MediaBrowser.Server.Implementations.LiveTv.EmbyTV; - -namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.SatIp -{ - public class SatIpHost : BaseTunerHost, ITunerHost - { - private readonly IFileSystem _fileSystem; - private readonly IHttpClient _httpClient; - private readonly IServerApplicationHost _appHost; - - public SatIpHost(IServerConfigurationManager config, ILogger logger, IJsonSerializer jsonSerializer, IMediaEncoder mediaEncoder, IFileSystem fileSystem, IHttpClient httpClient, IServerApplicationHost appHost) - : base(config, logger, jsonSerializer, mediaEncoder) - { - _fileSystem = fileSystem; - _httpClient = httpClient; - _appHost = appHost; - } - - private const string ChannelIdPrefix = "sat_"; - - protected override async Task<IEnumerable<ChannelInfo>> GetChannelsInternal(TunerHostInfo tuner, CancellationToken cancellationToken) - { - if (!string.IsNullOrWhiteSpace(tuner.M3UUrl)) - { - return await new M3uParser(Logger, _fileSystem, _httpClient, _appHost).Parse(tuner.M3UUrl, ChannelIdPrefix, tuner.Id, cancellationToken).ConfigureAwait(false); - } - - var channels = await new ChannelScan(Logger).Scan(tuner, cancellationToken).ConfigureAwait(false); - return channels; - } - - public static string DeviceType - { - get { return "satip"; } - } - - public override string Type - { - get { return DeviceType; } - } - - protected override async Task<List<MediaSourceInfo>> GetChannelStreamMediaSources(TunerHostInfo tuner, string channelId, CancellationToken cancellationToken) - { - var urlHash = tuner.Url.GetMD5().ToString("N"); - var prefix = ChannelIdPrefix + urlHash; - if (!channelId.StartsWith(prefix, StringComparison.OrdinalIgnoreCase)) - { - return null; - } - - var channels = await GetChannels(tuner, true, cancellationToken).ConfigureAwait(false); - var m3uchannels = channels.Cast<M3UChannel>(); - var channel = m3uchannels.FirstOrDefault(c => string.Equals(c.Id, channelId, StringComparison.OrdinalIgnoreCase)); - if (channel != null) - { - var path = channel.Path; - MediaProtocol protocol = MediaProtocol.File; - if (path.StartsWith("http", StringComparison.OrdinalIgnoreCase)) - { - protocol = MediaProtocol.Http; - } - else if (path.StartsWith("rtmp", StringComparison.OrdinalIgnoreCase)) - { - protocol = MediaProtocol.Rtmp; - } - else if (path.StartsWith("rtsp", StringComparison.OrdinalIgnoreCase)) - { - protocol = MediaProtocol.Rtsp; - } - - var mediaSource = new MediaSourceInfo - { - Path = channel.Path, - Protocol = protocol, - MediaStreams = new List<MediaStream> - { - new MediaStream - { - Type = MediaStreamType.Video, - // Set the index to -1 because we don't know the exact index of the video stream within the container - Index = -1, - IsInterlaced = true - }, - new MediaStream - { - Type = MediaStreamType.Audio, - // Set the index to -1 because we don't know the exact index of the audio stream within the container - Index = -1 - - } - }, - RequiresOpening = false, - RequiresClosing = false - }; - - return new List<MediaSourceInfo> { mediaSource }; - } - return new List<MediaSourceInfo>(); - } - - protected override async Task<LiveStream> GetChannelStream(TunerHostInfo tuner, string channelId, string streamId, CancellationToken cancellationToken) - { - var sources = await GetChannelStreamMediaSources(tuner, channelId, cancellationToken).ConfigureAwait(false); - - var liveStream = new LiveStream(sources.First()); - - return liveStream; - } - - protected override async Task<bool> IsAvailableInternal(TunerHostInfo tuner, string channelId, CancellationToken cancellationToken) - { - var updatedInfo = await SatIpDiscovery.Current.GetInfo(tuner.InfoUrl, cancellationToken).ConfigureAwait(false); - - return updatedInfo.TunersAvailable > 0; - } - - protected override bool IsValidChannelId(string channelId) - { - return channelId.StartsWith(ChannelIdPrefix, StringComparison.OrdinalIgnoreCase); - } - - public string Name - { - get { return "Sat IP"; } - } - - public Task<List<LiveTvTunerInfo>> GetTunerInfos(CancellationToken cancellationToken) - { - var list = GetTunerHosts() - .SelectMany(i => GetTunerInfos(i, cancellationToken)) - .ToList(); - - return Task.FromResult(list); - } - - public List<LiveTvTunerInfo> GetTunerInfos(TunerHostInfo info, CancellationToken cancellationToken) - { - var list = new List<LiveTvTunerInfo>(); - - for (var i = 0; i < info.Tuners; i++) - { - list.Add(new LiveTvTunerInfo - { - Name = info.FriendlyName ?? Name, - SourceType = Type, - Status = LiveTvTunerStatus.Available, - Id = info.Url.GetMD5().ToString("N") + i.ToString(CultureInfo.InvariantCulture), - Url = info.Url - }); - } - - return list; - } - - public string ApplyDuration(string streamPath, TimeSpan duration) - { - return streamPath; - } - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/TransmissionMode.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/TransmissionMode.cs deleted file mode 100644 index 71d7656d95..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/TransmissionMode.cs +++ /dev/null @@ -1,25 +0,0 @@ -/* - Copyright (C) <2007-2016> <Kay Diefenthal> - - SatIp.RtspSample is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - SatIp.RtspSample is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with SatIp.RtspSample. If not, see <http://www.gnu.org/licenses/>. -*/ - -namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.SatIp -{ - public enum TransmissionMode - { - Unicast, - Multicast - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Utils.cs b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Utils.cs deleted file mode 100644 index 3595e4b0ad..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/Utils.cs +++ /dev/null @@ -1,90 +0,0 @@ -/* - Copyright (C) <2007-2016> <Kay Diefenthal> - - SatIp.RtspSample is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - SatIp.RtspSample is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with SatIp.RtspSample. If not, see <http://www.gnu.org/licenses/>. -*/ -using System; -using System.Text; - -namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.SatIp -{ - public class Utils - { - public static int Convert2BytesToInt(byte[] buffer, int offset) - { - int temp = (int)buffer[offset]; - temp = (temp * 256) + buffer[offset + 1]; - - return (temp); - } - public static int Convert3BytesToInt(byte[] buffer, int offset) - { - int temp = (int)buffer[offset]; - temp = (temp * 256) + buffer[offset + 1]; - temp = (temp * 256) + buffer[offset + 2]; - - return (temp); - } - public static int Convert4BytesToInt(byte[] buffer, int offset) - { - int temp =(int)buffer[offset]; - temp = (temp * 256) + buffer[offset + 1]; - temp = (temp * 256) + buffer[offset + 2]; - temp = (temp * 256) + buffer[offset + 3]; - - return (temp); - } - public static long Convert4BytesToLong(byte[] buffer, int offset) - { - long temp = 0; - - for (int index = 0; index < 4; index++) - temp = (temp * 256) + buffer[offset + index]; - - return (temp); - } - public static long Convert8BytesToLong(byte[] buffer, int offset) - { - long temp = 0; - - for (int index = 0; index < 8; index++) - temp = (temp * 256) + buffer[offset + index]; - - return (temp); - } - public static string ConvertBytesToString(byte[] buffer, int offset, int length) - { - StringBuilder reply = new StringBuilder(4); - for (int index = 0; index < length; index++) - reply.Append((char)buffer[offset + index]); - return (reply.ToString()); - } - public static DateTime NptTimestampToDateTime(long nptTimestamp) { return NptTimestampToDateTime((uint)((nptTimestamp >> 32) & 0xFFFFFFFF), (uint)(nptTimestamp & 0xFFFFFFFF),null); } - - public static DateTime NptTimestampToDateTime(uint seconds, uint fractions, DateTime? epoch ) - { - ulong ticks =(ulong)((seconds * TimeSpan.TicksPerSecond) + ((fractions * TimeSpan.TicksPerSecond) / 0x100000000L)); - if (epoch.HasValue) return epoch.Value + TimeSpan.FromTicks((Int64)ticks); - return (seconds & 0x80000000L) == 0 ? UtcEpoch2036 + TimeSpan.FromTicks((Int64)ticks) : UtcEpoch1900 + TimeSpan.FromTicks((Int64)ticks); - } - - //When the First Epoch will wrap (The real Y2k) - public static DateTime UtcEpoch2036 = new DateTime(2036, 2, 7, 6, 28, 16, DateTimeKind.Utc); - - public static DateTime UtcEpoch1900 = new DateTime(1900, 1, 1, 0, 0, 0, DateTimeKind.Utc); - - public static DateTime UtcEpoch1970 = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); - - } -} diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0030.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0030.ini deleted file mode 100644 index 1caa948cf6..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0030.ini +++ /dev/null @@ -1,100 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0030 -2=Eutelsat 3B/Rascom QAF 1R (3.0E) - -[DVB] -0=91 -1=3794,H,3590,23,S2,8PSK -2=3797,H,2442,23,DVB-S,QPSK -3=3970,V,2741,34,DVB-S,QPSK -4=3975,V,3111,23,DVB-S,QPSK -5=3986,V,13557,56,DVB-S,QPSK -6=4151,V,2141,56,S2,QPSK -7=4173,V,1917,56,S2,QPSK -8=10961,H,10000,34,S2,8PSK -9=10973,H,10000,34,S2,8PSK -10=10985,H,10000,34,S2,QPSK -11=11042,H,4279,89,S2,QPSK -12=11049,H,1000,23,S2,8PSK -13=11051,H,2100,56,S2,QPSK -14=11078,H,7430,56,S2,QPSK -15=11088,H,7430,56,S2,QPSK -16=11097,H,7430,56,S2,QPSK -17=11456,V,2876,78,DVB-S,QPSK -18=11456,H,1480,34,S2,8PSK -19=11457,H,3000,78,DVB-S,QPSK -20=11461,V,2000,34,DVB-S,QPSK -21=11465,V,2500,78,DVB-S,QPSK -22=11468,H,2963,34,DVB-S,QPSK -23=11471,V,2500,78,DVB-S,QPSK -24=11472,H,2600,34,DVB-S,QPSK -25=11476,H,2600,34,DVB-S,QPSK -26=11479,V,3000,56,S2,QPSK -27=11480,H,1480,78,DVB-S,QPSK -28=11482,V,11852,34,DVB-S,QPSK -29=11487,H,1480,34,S2,8PSK -30=11490,H,2222,56,DVB-S,QPSK -31=11496,H,3000,34,DVB-S,QPSK -32=11498,V,11852,34,DVB-S,QPSK -33=11503,H,1480,56,S2,8PSK -34=11507,H,1480,34,S2,8PSK -35=11521,H,8800,23,S2,8PSK -36=11521,V,1500,34,S2,8PSK -37=11530,V,1500,34,S2,8PSK -38=11532,V,1500,34,S2,8PSK -39=11533,H,8800,23,S2,8PSK -40=11544,H,3550,34,S2,8PSK -41=11555,H,8800,23,DVB-S,QPSK -42=11562,H,2850,34,DVB-S,QPSK -43=11585,H,9600,23,S2,8PSK -44=11585,V,9260,56,DVB-S,QPSK -45=11594,V,3333,78,DVB-S,QPSK -46=11597,H,2250,34,DVB-S,QPSK -47=11598,V,2250,34,DVB-S,QPSK -48=11606,V,1480,56,S2,8PSK -49=11609,H,9600,23,S2,8PSK -50=11615,V,2200,34,DVB-S,QPSK -51=11621,H,9600,56,S2,8PSK -52=11621,V,1200,34,S2,8PSK -53=11632,V,2200,34,DVB-S,QPSK -54=11642,H,1111,34,S2,8PSK -55=11645,H,3000,34,DVB-S,QPSK -56=11649,H,3000,34,DVB-S,QPSK -57=11655,H,2304,34,S2,8PSK -58=11660,H,2400,56,DVB-S,QPSK -59=11663,H,1550,56,S2,8PSK -60=11671,V,1500,34,S2,8PSK -61=11673,V,1500,34,S2,8PSK -62=11675,V,1500,56,S2,8PSK -63=11680,V,3750,34,DVB-S,QPSK -64=11692,V,1860,78,DVB-S,QPSK -65=11696,V,2000,34,DVB-S,QPSK -66=12526,H,4444,34,S2,8PSK -67=12531,H,2265,89,S2,QPSK -68=12534,H,2500,34,S2,8PSK -69=12537,H,2500,34,S2,8PSK -70=12548,V,3000,56,S2,QPSK -71=12553,V,1100,56,S2,8PSK -72=12554,V,1100,56,S2,8PSK -73=12556,V,1100,34,S2,8PSK -74=12557,V,1500,34,DVB-S,QPSK -75=12559,V,1500,56,S2,8PSK -76=12563,V,1500,34,S2,8PSK -77=12566,V,2750,23,S2,8PSK -78=12571,V,3650,23,S2,8PSK -79=12572,H,10000,34,S2,QPSK -80=12574,V,1447,34,DVB-S,QPSK -81=12576,V,1570,34,S2,8PSK -82=12609,H,9600,23,S2,8PSK -83=12638,V,14400,34,S2,8PSK -84=12692,H,1450,56,S2,8PSK -85=12702,H,13960,35,S2,QPSK -86=12703,V,3704,34,S2,8PSK -87=12707,V,2963,34,S2,8PSK -88=12717,V,2143,56,DVB-S,QPSK -89=12720,H,13960,35,S2,QPSK -90=12734,V,16750,35,S2,QPSK -91=12737,H,2930,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0049.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0049.ini deleted file mode 100644 index 92a0e7dda5..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0049.ini +++ /dev/null @@ -1,102 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0049 -2=Astra 4A/SES 5 (4.9E) - -[DVB] -0=93 -1=3644,H,1300,56,S2,QPSK -2=3843,V,1055,910,S2,QPSK -3=3857,V,1520,35,S2,QPSK -4=3863,V,1130,56,S2,QPSK -5=3866,V,1400,23,S2,QPSK -6=3868,V,1203,56,S2,QPSK -7=3871,V,1550,23,S2,QPSK -8=3876,V,6200,23,S2,QPSK -9=11265,H,30000,34,S2,8PSK -10=11265,V,30000,34,S2,8PSK -11=11305,H,30000,34,S2,8PSK -12=11305,V,30000,34,S2,8PSK -13=11345,H,30000,34,S2,8PSK -14=11345,V,30000,34,S2,8PSK -15=11385,V,30000,34,S2,8PSK -16=11727,H,27500,56,DVB-S,QPSK -17=11747,V,27500,23,S2,QPSK -18=11766,H,27500,34,DVB-S,QPSK -19=11785,V,27500,56,DVB-S,8PSK -20=11804,H,27500,34,DVB-S,QPSK -21=11823,V,27500,34,DVB-S,QPSK -22=11843,H,27500,34,DVB-S,QPSK -23=11862,V,27500,34,DVB-S,8PSK -24=11881,H,27500,34,DVB-S,QPSK -25=11900,V,27500,34,DVB-S,QPSK -26=11919,H,27500,34,DVB-S,QPSK -27=11938,V,27500,34,DVB-S,8PSK -28=11958,H,27500,34,DVB-S,QPSK -29=11977,V,27500,34,DVB-S,8PSK -30=11996,H,27500,34,DVB-S,8PSK -31=12015,V,27500,56,DVB-S,QPSK -32=12034,H,27500,34,DVB-S,QPSK -33=12054,V,27500,34,DVB-S,QPSK -34=12073,H,27500,34,DVB-S,8PSK -35=12092,V,27500,34,DVB-S,QPSK -36=12111,H,27500,56,DVB-S,QPSK -37=12130,V,27500,34,DVB-S,QPSK -38=12149,H,27500,34,DVB-S,QPSK -39=12169,V,27500,34,S2,8PSK -40=12188,H,30000,34,S2,8PSK -41=12207,V,30000,34,S2,8PSK -42=12245,V,27500,34,DVB-S,QPSK -43=12284,V,27500,34,DVB-S,QPSK -44=12303,H,25546,78,DVB-S,8PSK -45=12322,V,27500,56,S2,QPSK -46=12341,H,30000,34,S2,8PSK -47=12360,V,27500,56,S2,8PSK -48=12380,H,27500,34,DVB-S,8PSK -49=12399,V,27500,34,DVB-S,QPSK -50=12418,H,27500,34,DVB-S,8PSK -51=12437,V,27500,34,S2,8PSK -52=12476,V,27500,34,DVB-S,QPSK -53=12514,H,6111,34,DVB-S,QPSK -54=12515,V,7200,34,S2,8PSK -55=12519,H,4610,34,S2,8PSK -56=12524,V,7200,34,S2,8PSK -57=12528,H,9874,34,S2,8PSK -58=12538,V,4610,34,S2,8PSK -59=12540,H,3750,23,S2,8PSK -60=12543,V,4610,34,S2,8PSK -61=12551,V,7400,34,S2,8PSK -62=12560,V,7200,34,S2,8PSK -63=12580,V,3829,34,DVB-S,QPSK -64=12593,V,7200,34,S2,8PSK -65=12602,V,6111,34,DVB-S,QPSK -66=12608,H,27500,34,DVB-S,QPSK -67=12612,V,6111,34,DVB-S,QPSK -68=12620,V,6111,34,DVB-S,QPSK -69=12621,V,3660,23,DVB-S,QPSK -70=12637,H,14468,34,DVB-S,QPSK -71=12670,H,2600,23,DVB-S,QPSK -72=12671,V,3333,34,DVB-S,QPSK -73=12673,H,3750,35,S2,8PSK -74=12674,V,3333,34,DVB-S,QPSK -75=12678,H,6666,78,DVB-S,QPSK -76=12694,H,6666,34,DVB-S,QPSK -77=12694,V,3333,56,DVB-S,QPSK -78=12699,H,3040,78,DVB-S,QPSK -79=12702,V,3333,34,DVB-S,QPSK -80=12702,H,2100,34,S2,8PSK -81=12710,V,4430,34,DVB-S,QPSK -82=12712,H,5000,78,DVB-S,QPSK -83=12716,V,4430,34,DVB-S,QPSK -84=12719,H,2960,34,DVB-S,QPSK -85=12719,V,2950,34,DVB-S,QPSK -86=12722,V,4430,34,DVB-S,QPSK -87=12725,V,1480,89,S2,8PSK -88=12728,V,4430,34,DVB-S,QPSK -89=12730,V,2960,34,DVB-S,QPSK -90=12733,H,3400,34,DVB-S,QPSK -91=12734,V,4430,34,DVB-S,8PSK -92=12737,H,3472,34,DVB-S,QPSK -93=12740,V,4430,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0070.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0070.ini deleted file mode 100644 index 800b097c89..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0070.ini +++ /dev/null @@ -1,134 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0070 -2=Eutelsat 7A/7B (7.0E) - -[DVB] -0=125 -1=10721,H,22000,34,DVB-S,8PSK -2=10721,V,27500,34,DVB-S,QPSK -3=10762,V,30000,34,DVB-S,QPSK -4=10804,H,30000,56,S2,QPSK -5=10804,V,29900,34,DVB-S,QPSK -6=10845,H,30000,56,S2,QPSK -7=10845,V,30000,34,DVB-S,QPSK -8=10887,H,30000,34,S2,QPSK -9=10887,V,30000,56,S2,QPSK -10=10928,H,30000,34,S2,8PSK -11=10928,V,30000,56,S2,QPSK -12=10958,V,4936,34,S2,8PSK -13=10959,H,4936,34,S2,8PSK -14=10962,H,3255,23,DVB-S,QPSK -15=10970,V,4434,78,DVB-S,QPSK -16=10971,H,4936,34,S2,8PSK -17=10976,H,4936,34,S2,8PSK -18=10978,V,7200,34,S2,8PSK -19=10987,H,4936,34,S2,8PSK -20=10994,V,4936,34,S2,8PSK -21=10997,H,9874,34,S2,8PSK -22=10999,H,3209,Auto,DVB-S,QPSK -23=11000,V,4936,34,S2,8PSK -24=11006,V,4936,34,S2,8PSK -25=11009,H,9874,34,S2,8PSK -26=11012,V,4936,34,S2,8PSK -27=11014,H,6111,Auto,DVB-S,QPSK -28=11018,V,3255,78,DVB-S,QPSK -29=11021,H,9874,34,S2,8PSK -30=11022,V,3676,34,S2,8PSK -31=11023,H,6111,Auto,S2,QPSK -32=11042,V,4936,34,S2,8PSK -33=11046,H,8335,56,S2,8PSK -34=11048,V,14400,34,S2,8PSK -35=11054,H,4936,34,S2,8PSK -36=11057,V,9874,34,S2,8PSK -37=11059,H,14238,56,S2,QPSK -38=11060,H,4936,34,S2,8PSK -39=11066,H,4936,34,S2,8PSK -40=11068,V,9874,34,S2,8PSK -41=11080,V,9874,34,S2,8PSK -42=11084,H,4936,34,S2,8PSK -43=11090,H,4936,34,S2,8PSK -44=11090,V,4936,34,S2,8PSK -45=11096,H,4936,34,S2,8PSK -46=11102,H,14400,34,S2,8PSK -47=11105,H,4340,34,DVB-S,QPSK -48=11107,V,7200,34,S2,8PSK -49=11124,V,3600,34,S2,8PSK -50=11128,H,9874,34,S2,8PSK -51=11128,V,3750,34,S2,8PSK -52=11134,V,5000,34,S2,8PSK -53=11137,H,4936,34,S2,8PSK -54=11140,V,9600,34,S2,8PSK -55=11143,H,4936,34,S2,8PSK -56=11148,H,4936,34,S2,8PSK -57=11153,V,7200,34,S2,8PSK -58=11154,H,4936,34,S2,8PSK -59=11160,H,3254,56,S2,8PSK -60=11161,V,4936,34,S2,8PSK -61=11164,H,3255,34,S2,8PSK -62=11165,V,3204,34,DVB-S,QPSK -63=11171,H,7500,56,S2,8PSK -64=11173,V,3674,34,S2,8PSK -65=11181,V,7442,34,S2,8PSK -66=11184,H,5714,Auto,DVB-S,QPSK -67=11186,V,3255,34,DVB-S,QPSK -68=11192,H,3210,34,DVB-S,QPSK -69=11192,V,3700,34,S2,8PSK -70=11221,H,27500,34,DVB-S,QPSK -71=11262,H,27500,56,DVB-S,QPSK -72=11356,H,45000,56,S2,QPSK -73=11387,H,27500,34,DVB-S,QPSK -74=11418,H,45000,56,S2,QPSK -75=11456,V,20050,34,DVB-S,QPSK -76=11471,H,30000,34,DVB-S,QPSK -77=11492,V,30000,34,DVB-S,QPSK -78=11513,H,29900,34,DVB-S,QPSK -79=11534,V,30000,34,DVB-S,QPSK -80=11554,H,30000,34,DVB-S,QPSK -81=11575,V,30000,34,DVB-S,QPSK -82=11596,H,30000,34,DVB-S,QPSK -83=11617,V,30000,34,DVB-S,QPSK -84=11668,V,30000,56,S2,QPSK -85=11678,H,30000,34,DVB-S,QPSK -86=12510,H,7120,34,S2,8PSK -87=12519,H,6144,34,S2,8PSK -88=12520,V,9800,34,S2,8PSK -89=12532,V,1852,23,S2,QPSK -90=12545,H,4950,34,S2,8PSK -91=12548,V,3650,34,S2,8PSK -92=12555,H,4830,78,DVB-S,8PSK -93=12556,V,4035,56,S2,8PSK -94=12565,H,6750,23,S2,8PSK -95=12573,H,7120,34,S2,8PSK -96=12596,V,2500,34,S2,8PSK -97=12603,H,30000,23,S2,8PSK -98=12603,V,2500,34,S2,8PSK -99=12606,V,2500,34,S2,8PSK -100=12611,V,5000,34,S2,8PSK -101=12615,V,2500,34,S2,8PSK -102=12619,V,4444,78,DVB-S,QPSK -103=12624,V,2500,34,S2,8PSK -104=12627,V,2500,34,S2,8PSK -105=12630,V,2500,34,S2,8PSK -106=12643,V,6430,23,S2,8PSK -107=12645,H,30000,23,S2,8PSK -108=12650,V,2400,34,S2,8PSK -109=12653,V,2400,56,S2,8PSK -110=12659,V,4936,34,S2,8PSK -111=12675,H,6430,23,S2,8PSK -112=12687,H,6975,56,S2,8PSK -113=12695,V,6666,78,DVB-S,8PSK -114=12701,H,4800,34,S2,8PSK -115=12704,V,7500,34,S2,8PSK -116=12711,V,4936,34,S2,8PSK -117=12727,V,10000,34,S2,8PSK -118=12728,H,30000,56,DVB-S,QPSK -119=12740,V,6111,34,DVB-S,QPSK -120=21439,H,6111,34,DVB-S,QPSK -121=21553,H,9600,56,S2,8PSK -122=21565,H,1571,78,DVB-S,QPSK -123=21571,H,2442,23,DVB-S,QPSK -124=21584,H,1100,34,S2,8PSK -125=21603,H,6428,23,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0090.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0090.ini deleted file mode 100644 index 6202569d99..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0090.ini +++ /dev/null @@ -1,40 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0090 -2=Eutelsat 9A/Ka-Sat 9A (9.0E) - -[DVB] -0=31 -1=11727,V,27500,34,DVB-S,QPSK -2=11747,H,27500,23,S2,8PSK -3=11766,V,27500,34,DVB-S,QPSK -4=11785,H,27500,23,S2,8PSK -5=11804,V,27500,34,DVB-S,QPSK -6=11823,H,27500,34,DVB-S,QPSK -7=11843,V,27500,35,S2,8PSK -8=11861,H,27500,23,S2,8PSK -9=11881,V,27500,23,S2,8PSK -10=11900,H,27500,23,S2,8PSK -11=11919,V,27500,34,DVB-S,QPSK -12=11938,H,27500,34,DVB-S,QPSK -13=11958,V,27500,23,S2,8PSK -14=11996,V,27500,34,DVB-S,QPSK -15=12015,H,27500,23,S2,8PSK -16=12034,V,27500,34,S2,8PSK -17=12054,H,27500,23,S2,8PSK -18=12074,V,27500,34,S2,8PSK -19=12092,H,27500,34,S2,8PSK -20=12130,H,27500,34,DVB-S,QPSK -21=12149,V,27500,23,S2,8PSK -22=12226,V,27500,23,S2,8PSK -23=12265,V,27500,23,S2,8PSK -24=12284,H,27500,23,S2,8PSK -25=12322,H,27500,34,DVB-S,QPSK -26=12360,H,27500,23,S2,8PSK -27=12380,V,27500,23,S2,8PSK -28=12399,H,27500,23,S2,8PSK -29=12418,V,27500,23,S2,8PSK -30=12437,H,27500,23,S2,8PSK -31=20185,H,25000,23,S2,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0100.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0100.ini deleted file mode 100644 index 0614ba88c6..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0100.ini +++ /dev/null @@ -1,206 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0100 -2=Eutelsat 10A (10.0E) - -[DVB] -0=197 -1=3649,H,20160,23,S2,QPSK -2=3706,V,6250,56,S2,8PSK -3=3708,H,1002,56,S2,8PSK -4=3721,V,3303,56,S2,8PSK -5=3729,V,10321,56,S2,8PSK -6=3741,V,10114,56,S2,8PSK -7=3759,V,19816,56,S2,8PSK -8=3781,V,16445,56,S2,8PSK -9=3827,V,3080,34,S2,8PSK -10=3835,V,1000,45,S2,QPSK -11=3837,V,1185,34,S2,8PSK -12=3839,V,1185,34,S2,8PSK -13=3865,V,13333,78,DVB-S,QPSK -14=3956,V,1500,23,DVB-S,QPSK -15=4039,V,2222,34,S2,8PSK -16=10707,V,3100,34,DVB-S,QPSK -17=10712,V,4167,56,DVB-S,QPSK -18=10717,V,3215,34,DVB-S,QPSK -19=10734,V,1447,34,DVB-S,QPSK -20=10738,V,2894,34,DVB-S,QPSK -21=10742,V,2894,34,DVB-S,QPSK -22=10747,V,4000,910,S2,8PSK -23=10756,V,2480,78,DVB-S,QPSK -24=10792,V,4936,34,S2,QPSK -25=10798,V,4936,34,S2,8PSK -26=10803,V,6111,34,DVB-S,QPSK -27=10810,V,4430,34,DVB-S,QPSK -28=10822,V,4430,34,S2,8PSK -29=10832,V,8876,56,S2,8PSK -30=10840,V,3255,12,DVB-S,QPSK -31=10848,V,6111,34,DVB-S,QPSK -32=10859,V,2875,Auto,S2,QPSK -33=10877,V,6111,34,DVB-S,QPSK -34=10886,V,6111,Auto,DVB-S,QPSK -35=10893,V,4936,34,S2,QPSK -36=10899,V,4936,34,S2,8PSK -37=10905,V,4936,34,S2,QPSK -38=10918,V,4430,34,DVB-S,QPSK -39=10923,V,4600,56,S2,8PSK -40=10931,V,7120,34,S2,8PSK -41=10940,V,6080,34,DVB-S,QPSK -42=10956,H,2500,56,DVB-S,QPSK -43=10960,V,4167,56,DVB-S,QPSK -44=10965,H,3124,34,DVB-S,QPSK -45=10965,V,4167,56,DVB-S,QPSK -46=10969,H,3124,34,DVB-S,QPSK -47=10970,V,4167,56,DVB-S,QPSK -48=10973,H,3124,34,DVB-S,QPSK -49=10976,V,4167,56,DVB-S,QPSK -50=10977,H,3124,34,DVB-S,QPSK -51=10981,H,3124,34,DVB-S,QPSK -52=10981,V,4600,56,S2,8PSK -53=10985,H,3124,34,DVB-S,QPSK -54=10988,H,3124,34,DVB-S,QPSK -55=10992,H,3124,34,DVB-S,QPSK -56=10998,V,2900,34,DVB-S,QPSK -57=11004,V,2400,34,DVB-S,QPSK -58=11005,H,7120,34,S2,8PSK -59=11008,V,2963,34,DVB-S,QPSK -60=11014,H,7120,34,S2,8PSK -61=11018,V,2857,34,DVB-S,QPSK -62=11022,V,2650,34,DVB-S,QPSK -63=11023,H,7120,34,S2,8PSK -64=11043,H,7120,23,S2,8PSK -65=11060,H,4937,34,S2,8PSK -66=11066,H,4937,34,S2,8PSK -67=11074,H,4937,34,S2,8PSK -68=11075,V,68571,34,DVB-S,QPSK -69=11093,H,9874,34,S2,8PSK -70=11107,H,4936,34,S2,8PSK -71=11124,H,3300,34,DVB-S,8PSK -72=11127,V,6111,34,DVB-S,QPSK -73=11129,H,3333,34,DVB-S,8PSK -74=11134,H,3333,34,DVB-S,QPSK -75=11136,V,7400,34,S2,8PSK -76=11138,H,2400,56,S2,8PSK -77=11144,H,6111,34,DVB-S,QPSK -78=11144,V,6666,78,DVB-S,QPSK -79=11151,H,3254,34,DVB-S,QPSK -80=11154,V,5632,34,DVB-S,QPSK -81=11160,H,2267,56,S2,8PSK -82=11162,V,2400,34,DVB-S,QPSK -83=11165,H,3750,34,S2,8PSK -84=11168,V,2300,34,DVB-S,QPSK -85=11169,H,3028,34,S2,QPSK -86=11173,H,3028,34,S2,QPSK -87=11179,H,2066,23,S2,8PSK -88=11182,H,2400,23,S2,8PSK -89=11186,H,2667,56,DVB-S,QPSK -90=11189,H,2352,34,DVB-S,QPSK -91=11193,H,2880,34,S2,QPSK -92=11207,H,7500,34,S2,8PSK -93=11221,V,30000,56,S2,QPSK -94=11291,H,9875,34,S2,8PSK -95=11294,V,14400,34,S2,8PSK -96=11317,H,7500,56,S2,8PSK -97=11346,H,27500,34,DVB-S,QPSK -98=11375,V,9874,34,S2,8PSK -99=11399,V,9874,34,S2,8PSK -100=11419,H,11814,56,S2,8PSK -101=11434,H,10098,35,S2,QPSK -102=11457,H,6111,34,DVB-S,QPSK -103=11483,V,4000,56,S2,8PSK -104=11488,H,2100,34,DVB-S,QPSK -105=11498,V,7450,34,S2,8PSK -106=11501,H,2894,34,DVB-S,QPSK -107=11505,H,3000,34,DVB-S,QPSK -108=11509,H,3000,34,DVB-S,QPSK -109=11511,V,3324,34,DVB-S,QPSK -110=11515,V,4200,34,DVB-S,QPSK -111=11520,V,4200,34,DVB-S,QPSK -112=11524,H,2810,34,DVB-S,QPSK -113=11525,V,4167,56,DVB-S,QPSK -114=11528,H,2800,34,DVB-S,QPSK -115=11534,V,2300,34,DVB-S,QPSK -116=11536,H,2960,34,DVB-S,QPSK -117=11538,V,2900,34,DVB-S,QPSK -118=11541,H,2600,34,S2,8PSK -119=11542,V,2816,78,DVB-S,QPSK -120=11551,V,1993,34,DVB-S,QPSK -121=11552,H,4800,34,S2,8PSK -122=11554,V,3700,56,DVB-S,QPSK -123=11557,H,3333,56,S2,8PSK -124=11561,V,6666,34,S2,8PSK -125=11561,H,3333,56,DVB-S,QPSK -126=11567,H,6666,78,DVB-S,QPSK -127=11584,H,9875,34,S2,8PSK -128=11590,H,2160,34,S2,8PSK -129=11595,V,30000,23,S2,8PSK -130=11615,H,2500,34,DVB-S,QPSK -131=11619,H,2900,34,DVB-S,QPSK -132=11624,V,2900,34,DVB-S,QPSK -133=11624,H,2500,34,DVB-S,QPSK -134=11627,H,2963,34,DVB-S,QPSK -135=11638,H,5300,56,DVB-S,QPSK -136=11645,H,4800,23,S2,QPSK -137=11651,H,2590,34,DVB-S,QPSK -138=11659,H,1500,56,S2,QPSK -139=11663,H,5540,34,DVB-S,QPSK -140=11664,V,6666,78,DVB-S,QPSK -141=11669,V,3000,56,DVB-S,QPSK -142=11671,H,7200,34,S2,8PSK -143=11676,H,11153,78,DVB-S,QPSK -144=11680,V,2220,34,DVB-S,QPSK -145=11681,H,3200,56,S2,8PSK -146=11684,V,2300,34,DVB-S,QPSK -147=11688,H,9874,34,DVB-S,QPSK -148=11693,V,2210,78,DVB-S,QPSK -149=11696,H,2980,34,DVB-S,QPSK -150=11697,V,2300,34,DVB-S,QPSK -151=12504,H,2880,56,DVB-S,QPSK -152=12508,H,2880,56,DVB-S,QPSK -153=12513,H,3214,34,DVB-S,QPSK -154=12520,H,1100,56,S2,8PSK -155=12526,V,3600,34,S2,8PSK -156=12527,H,2143,34,DVB-S,QPSK -157=12535,V,2220,Auto,DVB-S,QPSK -158=12545,H,3400,34,DVB-S,QPSK -159=12551,V,5632,34,DVB-S,QPSK -160=12553,H,2900,34,DVB-S,QPSK -161=12556,V,2900,78,DVB-S,QPSK -162=12563,V,5632,34,DVB-S,QPSK -163=12571,V,2220,78,DVB-S,QPSK -164=12576,V,3300,34,DVB-S,QPSK -165=12593,V,4800,34,S2,8PSK -166=12594,H,3300,Auto,DVB-S,QPSK -167=12602,V,3333,78,DVB-S,QPSK -168=12610,V,1852,34,DVB-S,QPSK -169=12611,H,2960,34,DVB-S,QPSK -170=12615,H,3214,34,S2,8PSK -171=12620,H,3750,56,S2,8PSK -172=12637,V,18400,23,S2,8PSK -173=12648,H,2300,56,DVB-S,QPSK -174=12652,H,4936,34,S2,8PSK -175=12654,V,2300,78,DVB-S,QPSK -176=12658,H,3214,34,S2,8PSK -177=12674,V,2962,56,DVB-S,QPSK -178=12674,H,3750,34,S2,8PSK -179=12679,V,2894,34,DVB-S,QPSK -180=12680,H,3750,34,S2,8PSK -181=12684,H,3200,34,DVB-S,QPSK -182=12688,H,3200,34,DVB-S,QPSK -183=12692,V,3146,34,DVB-S,QPSK -184=12694,H,6666,78,DVB-S,QPSK -185=12696,V,5632,34,DVB-S,QPSK -186=12701,V,2962,34,DVB-S,QPSK -187=12705,V,2922,34,DVB-S,QPSK -188=12706,H,3750,34,DVB-S,QPSK -189=12710,H,3750,34,S2,8PSK -190=12714,V,9874,34,S2,8PSK -191=12715,H,3200,34,DVB-S,QPSK -192=12729,V,4167,56,DVB-S,QPSK -193=12729,H,3325,34,DVB-S,QPSK -194=12733,H,3200,34,DVB-S,QPSK -195=12736,V,4600,56,S2,8PSK -196=12741,V,4167,56,DVB-S,QPSK -197=12742,H,3500,34,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0130.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0130.ini deleted file mode 100644 index 265104298f..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0130.ini +++ /dev/null @@ -1,106 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0130 -2=Eutelsat Hot Bird 13B/13C/13D (13.0E) - -[DVB] -0=97 -1=10719,V,27500,56,DVB-S,QPSK -2=10758,V,27500,34,S2,8PSK -3=10775,H,29900,56,DVB-S,QPSK -4=10796,V,27500,56,DVB-S,QPSK -5=10815,H,27500,56,DVB-S,QPSK -6=10834,V,27500,34,S2,8PSK -7=10853,H,29900,23,S2,8PSK -8=10873,V,27500,34,DVB-S,QPSK -9=10892,H,27500,34,DVB-S,QPSK -10=10911,V,27500,34,S2,8PSK -11=10930,H,30000,23,S2,8PSK -12=10949,V,27500,34,DVB-S,QPSK -13=10971,H,29700,23,S2,8PSK -14=10992,V,27500,23,DVB-S,QPSK -15=11034,V,27500,34,DVB-S,QPSK -16=11054,H,27500,56,DVB-S,QPSK -17=11075,V,27500,34,DVB-S,QPSK -18=11096,H,29900,23,S2,8PSK -19=11117,V,27500,34,DVB-S,QPSK -20=11137,H,27500,34,DVB-S,QPSK -21=11158,V,27500,56,DVB-S,QPSK -22=11179,H,27500,34,DVB-S,QPSK -23=11200,V,27500,56,DVB-S,QPSK -24=11219,H,29900,56,DVB-S,QPSK -25=11240,V,27500,34,DVB-S,QPSK -26=11258,H,27500,34,S2,8PSK -27=11278,V,27500,34,S2,8PSK -28=11296,H,27500,34,S2,8PSK -29=11317,V,27500,34,DVB-S,QPSK -30=11334,H,27500,34,DVB-S,QPSK -31=11355,V,29900,56,DVB-S,QPSK -32=11393,V,27500,56,DVB-S,QPSK -33=11411,H,27500,56,S2,8PSK -34=11449,H,27500,34,S2,8PSK -35=11471,V,27500,56,DVB-S,QPSK -36=11488,H,27500,56,DVB-S,QPSK -37=11508,V,27500,34,S2,8PSK -38=11526,H,27500,34,DVB-S,QPSK -39=11541,V,22000,56,DVB-S,QPSK -40=11566,H,27500,34,DVB-S,QPSK -41=11585,V,27500,34,DVB-S,QPSK -42=11604,H,27500,56,DVB-S,QPSK -43=11623,V,27500,34,DVB-S,QPSK -44=11642,H,27500,34,DVB-S,QPSK -45=11662,V,27500,34,S2,8PSK -46=11681,H,27500,34,S2,8PSK -47=11727,V,27500,34,DVB-S,QPSK -48=11747,H,27500,34,DVB-S,QPSK -49=11766,V,27500,23,DVB-S,QPSK -50=11785,H,29900,34,S2,8PSK -51=11804,V,27500,23,DVB-S,QPSK -52=11823,H,27500,34,DVB-S,QPSK -53=11843,V,29900,34,S2,8PSK -54=11862,H,29900,56,DVB-S,QPSK -55=11881,V,27500,34,DVB-S,QPSK -56=11900,H,29900,34,S2,8PSK -57=11919,V,29900,56,DVB-S,8PSK -58=11938,H,27500,34,S2,8PSK -59=11958,V,27500,34,DVB-S,QPSK -60=11977,H,29900,56,DVB-S,QPSK -61=11996,V,29900,34,S2,8PSK -62=12015,H,27500,34,DVB-S,QPSK -63=12034,V,29900,56,DVB-S,QPSK -64=12054,H,29900,56,DVB-S,QPSK -65=12073,V,29900,56,DVB-S,QPSK -66=12092,H,29900,34,S2,8PSK -67=12111,V,27500,34,DVB-S,QPSK -68=12130,H,27500,34,S2,8PSK -69=12149,V,27500,34,DVB-S,QPSK -70=12169,H,27500,34,S2,8PSK -71=12188,V,27500,56,DVB-S,QPSK -72=12207,H,29900,34,S2,8PSK -73=12226,V,27500,34,DVB-S,QPSK -74=12265,V,27500,34,S2,8PSK -75=12284,H,27500,56,DVB-S,QPSK -76=12303,V,27500,34,S2,8PSK -77=12322,H,27500,34,DVB-S,QPSK -78=12341,V,29900,34,S2,8PSK -79=12360,H,29900,34,S2,8PSK -80=12380,V,27500,34,DVB-S,QPSK -81=12399,H,27500,34,DVB-S,QPSK -82=12418,V,29900,34,S2,8PSK -83=12437,H,29900,34,S2,QPSK -84=12466,V,29900,56,DVB-S,QPSK -85=12476,H,29900,34,S2,8PSK -86=12520,V,27500,34,DVB-S,QPSK -87=12539,H,27500,23,S2,QPSK -88=12558,V,27500,34,DVB-S,QPSK -89=12577,H,27500,34,S2,8PSK -90=12597,V,27500,34,DVB-S,QPSK -91=12616,H,29900,56,DVB-S,QPSK -92=12635,V,29900,56,DVB-S,QPSK -93=12654,H,27500,56,DVB-S,QPSK -94=12673,V,29900,56,DVB-S,QPSK -95=12692,H,27500,34,S2,8PSK -96=12713,V,29900,56,DVB-S,QPSK -97=12731,H,29900,34,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0160.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0160.ini deleted file mode 100644 index 9a9503eb58..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0160.ini +++ /dev/null @@ -1,156 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0160 -2=Eutelsat 16A (16.0E) - -[DVB] -0=147 -1=10721,H,27500,34,DVB-S,QPSK -2=10762,H,30000,35,S2,8PSK -3=10804,H,30000,23,S2,8PSK -4=10845,H,30000,Auto,S2,QPSK -5=10887,H,30000,Auto,S2,QPSK -6=10928,H,30000,89,S2,QPSK -7=10957,H,3750,34,S2,8PSK -8=10961,H,3750,34,S2,8PSK -9=10966,H,3750,34,S2,8PSK -10=10971,H,3750,34,S2,8PSK -11=10972,V,27500,56,DVB-S,QPSK -12=10975,H,3750,34,S2,8PSK -13=10977,H,24113,Auto,S2,8PSK -14=10981,H,3462,56,S2,8PSK -15=10992,H,2500,56,S2,8PSK -16=10997,H,2500,56,S2,8PSK -17=11001,H,2500,56,S2,8PSK -18=11007,H,5000,34,S2,8PSK -19=11011,V,27500,56,DVB-S,QPSK -20=11012,H,3333,78,DVB-S,QPSK -21=11016,H,1500,23,S2,8PSK -22=11019,H,1795,Auto,S2,QPSK -23=11023,H,7500,34,S2,8PSK -24=11024,H,3330,Auto,DVB-S,8PSK -25=11029,H,2300,Auto,DVB-S,QPSK -26=11046,H,10555,34,DVB-S,QPSK -27=11060,H,4615,56,DVB-S,QPSK -28=11063,H,3328,34,DVB-S,QPSK -29=11074,H,1250,34,DVB-S,QPSK -30=11082,H,10000,Auto,S2,QPSK -31=11092,H,3600,34,S2,8PSK -32=11104,H,7400,34,S2,8PSK -33=11127,H,10000,56,S2,8PSK -34=11131,V,16593,23,S2,8PSK -35=11139,H,10000,56,S2,8PSK -36=11151,V,13268,23,S2,8PSK -37=11152,H,10000,56,S2,8PSK -38=11164,H,10000,56,S2,8PSK -39=11175,H,10000,56,S2,8PSK -40=11178,V,27500,34,DVB-S,QPSK -41=11187,H,10000,56,S2,8PSK -42=11221,H,30000,34,DVB-S,QPSK -43=11231,V,30000,34,DVB-S,QPSK -44=11262,H,30000,23,DVB-S,QPSK -45=11283,V,30000,23,S2,8PSK -46=11294,H,45000,34,S2,8PSK -47=11303,H,30000,23,S2,8PSK -48=11324,V,30000,34,DVB-S,QPSK -49=11345,H,30000,35,S2,8PSK -50=11356,H,45000,34,S2,8PSK -51=11366,V,30000,34,DVB-S,QPSK -52=11387,H,30000,34,DVB-S,QPSK -53=11400,V,13846,34,S2,8PSK -54=11427,V,27500,34,S2,8PSK -55=11470,V,30000,56,S2,8PSK -56=11471,H,30000,89,S2,QPSK -57=11512,H,30000,89,S2,QPSK -58=11512,V,29950,23,S2,8PSK -59=11554,H,30000,56,S2,QPSK -60=11554,V,30000,56,S2,8PSK -61=11595,H,30000,34,S2,8PSK -62=11595,V,30000,56,S2,8PSK -63=11596,H,30000,89,S2,QPSK -64=11604,V,14400,34,S2,8PSK -65=11637,H,30000,89,S2,QPSK -66=11645,V,27700,56,S2,QPSK -67=11675,V,9874,34,S2,8PSK -68=11678,H,30000,35,S2,8PSK -69=11687,V,9874,34,S2,8PSK -70=12508,H,3600,34,S2,8PSK -71=12512,H,3166,23,S2,8PSK -72=12516,H,3166,23,S2,8PSK -73=12517,V,8000,56,S2,8PSK -74=12521,H,30000,23,S2,8PSK -75=12522,H,3166,23,S2,8PSK -76=12527,H,2816,34,DVB-S,QPSK -77=12528,V,10000,56,S2,8PSK -78=12533,H,6333,23,S2,8PSK -79=12538,H,3166,23,S2,8PSK -80=12541,V,10000,56,S2,8PSK -81=12542,H,2816,34,DVB-S,QPSK -82=12548,H,6333,23,S2,8PSK -83=12554,H,2816,34,DVB-S,QPSK -84=12557,H,3166,23,S2,8PSK -85=12559,V,2222,34,S2,QPSK -86=12562,H,3166,23,S2,8PSK -87=12564,H,30000,23,S2,8PSK -88=12564,V,3617,34,DVB-S,QPSK -89=12570,H,3703,78,DVB-S,QPSK -90=12575,V,6000,34,S2,8PSK -91=12593,H,7120,34,S2,8PSK -92=12593,V,2500,23,DVB-S,QPSK -93=12597,V,2848,23,DVB-S,QPSK -94=12600,H,3200,23,S2,8PSK -95=12604,H,30000,23,S2,8PSK -96=12605,H,3166,23,S2,8PSK -97=12605,V,7125,34,S2,QPSK -98=12609,H,3200,23,S2,8PSK -99=12611,V,1415,34,DVB-S,QPSK -100=12614,H,3200,23,S2,8PSK -101=12618,H,3166,23,S2,8PSK -102=12620,V,3750,56,S2,8PSK -103=12623,H,4936,34,S2,8PSK -104=12624,V,1650,56,S2,8PSK -105=12626,V,1650,56,S2,8PSK -106=12628,V,1650,56,S2,8PSK -107=12633,V,4883,12,DVB-S,QPSK -108=12644,V,13200,34,S2,QPSK -109=12654,H,11111,23,DVB-S,QPSK -110=12656,V,4883,12,DVB-S,QPSK -111=12676,H,4248,34,DVB-S,QPSK -112=12677,V,2400,34,S2,8PSK -113=12680,V,2400,34,S2,8PSK -114=12683,V,2400,34,S2,8PSK -115=12686,V,2400,34,S2,8PSK -116=12689,V,2400,34,S2,8PSK -117=12692,V,2400,34,S2,8PSK -118=12695,V,2400,34,S2,8PSK -119=12698,V,2400,34,S2,8PSK -120=12699,H,9880,12,DVB-S,QPSK -121=12701,V,2400,34,S2,8PSK -122=12704,V,2400,34,S2,8PSK -123=12707,V,2400,34,S2,8PSK -124=12710,H,5165,35,S2,8PSK -125=12710,V,2400,34,S2,8PSK -126=12713,V,2400,34,S2,8PSK -127=12717,H,4936,34,S2,8PSK -128=12717,V,2400,34,S2,8PSK -129=12720,V,2400,34,S2,8PSK -130=12723,V,2400,34,S2,8PSK -131=12723,H,4936,34,S2,8PSK -132=12728,V,2400,34,S2,8PSK -133=12737,V,2400,34,S2,8PSK -134=12738,H,4500,34,DVB-S,QPSK -135=21537,H,1070,34,S2,8PSK -136=21538,H,1054,34,S2,8PSK -137=21540,H,1071,34,S2,8PSK -138=21541,H,1071,34,S2,8PSK -139=21545,H,2143,56,S2,8PSK -140=21550,H,1054,34,S2,8PSK -141=21551,H,1060,23,DVB-S,QPSK -142=21559,H,1071,34,S2,8PSK -143=21560,H,1010,23,S2,8PSK -144=21562,H,1010,23,S2,8PSK -145=21563,H,1250,23,S2,8PSK -146=21569,H,1071,34,S2,8PSK -147=21571,H,2900,56,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0170.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0170.ini deleted file mode 100644 index 52ba9e5f70..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0170.ini +++ /dev/null @@ -1,60 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0170 -2=Amos 5 (17.0E) - -[DVB] -0=51 -1=3538,V,4444,34,DVB-S,QPSK -2=3547,V,7200,34,S2,8PSK -3=3553,V,1285,56,S2,8PSK -4=3617,V,1167,23,S2,8PSK -5=3620,V,1000,34,S2,8PSK -6=3622,V,1000,23,S2,8PSK -7=3626,V,2000,34,DVB-S,QPSK -8=3626,H,1200,23,DVB-S,QPSK -9=3665,H,3300,78,DVB-S,QPSK -10=3685,V,1924,78,DVB-S,QPSK -11=3688,V,2000,34,DVB-S,QPSK -12=3728,H,3300,78,DVB-S,QPSK -13=3731,H,2500,56,S2,8PSK -14=3757,V,3300,78,DVB-S,QPSK -15=3785,V,1168,34,DVB-S,QPSK -16=3802,V,1666,34,S2,8PSK -17=3828,V,1250,23,S2,8PSK -18=3830,V,1480,56,S2,QPSK -19=3852,V,1000,56,S2,QPSK -20=4066,V,1000,23,S2,8PSK -21=4119,V,7200,34,DVB-S,QPSK -22=4125,V,2170,34,DVB-S,QPSK -23=4130,V,6850,35,S2,8PSK -24=4136,V,2500,23,S2,8PSK -25=4139,V,1000,34,S2,8PSK -26=4141,V,1550,34,S2,8PSK -27=4142,V,1000,23,S2,8PSK -28=4144,V,1334,56,DVB-S,QPSK -29=4160,V,4166,56,DVB-S,QPSK -30=10961,V,2200,12,S2,QPSK -31=10983,V,3333,56,DVB-S,QPSK -32=11038,V,1760,34,S2,QPSK -33=11041,V,1594,34,S2,QPSK -34=11057,V,4273,12,S2,QPSK -35=11062,V,1250,34,S2,QPSK -36=11064,V,1244,34,S2,QPSK -37=11087,V,1245,34,S2,QPSK -38=11092,V,1244,34,DVB-S,QPSK -39=11139,V,30000,Auto,S2,QPSK -40=11761,V,15000,34,S2,QPSK -41=11801,V,30000,23,S2,QPSK -42=11884,V,27500,34,DVB-S,QPSK -43=11967,V,30000,34,S2,QPSK -44=12004,V,30000,34,S2,QPSK -45=12035,H,4000,Auto,S2,8PSK -46=12068,V,45000,56,S2,QPSK -47=12208,H,17666,45,S2,QPSK -48=12260,V,17666,45,S2,QPSK -49=12335,V,27500,34,DVB-S,QPSK -50=12384,V,30000,34,S2,QPSK -51=12418,V,30000,23,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0192.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0192.ini deleted file mode 100644 index fbe65c9b5d..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0192.ini +++ /dev/null @@ -1,127 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0192 -2=Astra 1KR/1L/1M/1N (19.2E) - -[DVB] -0=118 -1=10729,V,22000,23,S2,8PSK -2=10744,H,22000,56,DVB-S,QPSK -3=10758,V,22000,56,DVB-S,QPSK -4=10773,H,22000,34,S2,8PSK -5=10788,V,22000,56,DVB-S,QPSK -6=10803,H,22000,34,S2,8PSK -7=10818,V,22000,23,S2,8PSK -8=10832,H,22000,23,S2,8PSK -9=10847,V,22000,56,DVB-S,QPSK -10=10862,H,22000,23,S2,8PSK -11=10876,V,22000,56,DVB-S,QPSK -12=10891,H,22000,23,S2,8PSK -13=10906,V,22000,23,S2,8PSK -14=10921,H,22000,78,DVB-S,QPSK -15=10936,V,22000,23,S2,8PSK -16=10964,H,22000,23,S2,8PSK -17=10979,V,22000,56,DVB-S,QPSK -18=10994,H,22000,910,S2,QPSK -19=11023,H,23500,34,S2,8PSK -20=11038,V,22000,56,DVB-S,QPSK -21=11053,H,22000,23,S2,8PSK -22=11068,V,22000,56,DVB-S,QPSK -23=11082,H,22000,34,S2,8PSK -24=11097,V,22000,56,DVB-S,QPSK -25=11112,H,22000,23,S2,8PSK -26=11127,V,22000,23,S2,8PSK -27=11156,V,22000,56,DVB-S,QPSK -28=11171,H,22000,34,S2,8PSK -29=11186,V,22000,56,DVB-S,QPSK -30=11229,V,22000,23,S2,8PSK -31=11244,H,22000,56,DVB-S,QPSK -32=11259,V,22000,23,S2,8PSK -33=11273,H,22000,23,S2,8PSK -34=11288,V,22000,23,S2,8PSK -35=11303,H,22000,23,S2,8PSK -36=11318,V,22000,56,DVB-S,QPSK -37=11332,H,22000,34,S2,8PSK -38=11347,V,22000,23,S2,8PSK -39=11362,H,22000,23,S2,8PSK -40=11377,V,22000,23,S2,8PSK -41=11391,H,22000,56,DVB-S,QPSK -42=11421,H,22000,56,DVB-S,QPSK -43=11436,V,22000,23,S2,8PSK -44=11464,H,22000,23,S2,8PSK -45=11494,H,22000,23,S2,8PSK -46=11509,V,22000,56,DVB-S,QPSK -47=11523,H,22000,56,DVB-S,QPSK -48=11538,V,22000,56,DVB-S,QPSK -49=11553,H,22000,34,S2,8PSK -50=11568,V,22000,23,S2,8PSK -51=11582,H,22000,23,S2,8PSK -52=11597,V,22000,56,DVB-S,QPSK -53=11612,H,22000,56,DVB-S,QPSK -54=11627,V,22000,56,DVB-S,QPSK -55=11641,H,22000,56,DVB-S,QPSK -56=11671,H,22000,23,S2,8PSK -57=11686,V,22000,56,DVB-S,QPSK -58=11720,H,27500,34,DVB-S,QPSK -59=11739,V,27500,34,DVB-S,QPSK -60=11758,H,27500,34,DVB-S,QPSK -61=11778,V,27500,34,DVB-S,QPSK -62=11798,H,27500,34,DVB-S,QPSK -63=11817,V,29700,56,S2,QPSK -64=11836,H,27500,34,DVB-S,QPSK -65=11856,V,27500,34,DVB-S,QPSK -66=11876,H,27500,34,S2,8PSK -67=11914,H,27500,910,S2,QPSK -68=11934,V,27500,34,DVB-S,QPSK -69=11954,H,27500,34,DVB-S,QPSK -70=11973,V,27500,34,DVB-S,QPSK -71=11992,H,27500,910,S2,QPSK -72=12012,V,29700,56,S2,QPSK -73=12032,H,27500,34,DVB-S,QPSK -74=12051,V,27500,34,DVB-S,QPSK -75=12070,H,27500,34,DVB-S,QPSK -76=12090,V,29700,56,S2,QPSK -77=12110,H,27500,34,DVB-S,QPSK -78=12129,V,29700,56,S2,QPSK -79=12148,H,27500,34,DVB-S,QPSK -80=12168,V,29700,56,S2,QPSK -81=12188,H,27500,34,DVB-S,QPSK -82=12207,V,29700,56,S2,QPSK -83=12226,H,27500,34,DVB-S,QPSK -84=12246,V,29700,56,S2,QPSK -85=12266,H,27500,34,DVB-S,QPSK -86=12285,V,29700,23,S2,8PSK -87=12304,H,27500,910,S2,QPSK -88=12324,V,29700,56,S2,QPSK -89=12363,V,27500,34,DVB-S,QPSK -90=12382,H,27500,910,S2,QPSK -91=12402,V,27500,34,DVB-S,QPSK -92=12422,H,27500,34,DVB-S,QPSK -93=12441,V,29700,56,S2,QPSK -94=12460,H,27500,34,DVB-S,QPSK -95=12480,V,27500,34,DVB-S,QPSK -96=12515,H,22000,56,DVB-S,QPSK -97=12522,V,22000,23,S2,8PSK -98=12545,H,22000,56,DVB-S,QPSK -99=12552,V,22000,56,DVB-S,QPSK -100=12574,H,22000,23,S2,8PSK -101=12581,V,22000,23,S2,8PSK -102=12604,H,22000,56,DVB-S,QPSK -103=12610,V,22000,23,S2,8PSK -104=12633,H,22000,56,DVB-S,QPSK -105=12640,V,22000,23,S2,8PSK -106=12663,H,22000,56,DVB-S,QPSK -107=12670,V,22000,23,S2,8PSK -108=12692,H,22000,56,DVB-S,QPSK -109=12699,V,22000,56,DVB-S,QPSK -110=12722,H,23500,23,S2,8PSK -111=12728,V,22000,56,DVB-S,QPSK -112=18366,V,15000,12,S2,QPSK -113=18515,V,3630,23,S2,8PSK -114=18538,V,3344,34,S2,8PSK -115=18556,V,3630,23,S2,8PSK -116=18754,H,4500,34,DVB-S,QPSK -117=18760,H,5500,23,S2,8PSK -118=18766,H,3110,12,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0200.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0200.ini deleted file mode 100644 index 6eb757f162..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0200.ini +++ /dev/null @@ -1,19 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0200 -2=Arabsat 5C (20.0E) - -[DVB] -0=10 -1=3710,V,2600,34,DVB-S,QPSK -2=3714,V,2600,34,DVB-S,QPSK -3=3720,V,6660,34,DVB-S,QPSK -4=3796,H,1850,34,DVB-S,QPSK -5=3884,V,27500,56,DVB-S,QPSK -6=3934,H,27500,78,DVB-S,QPSK -7=4004,V,27500,34,DVB-S,QPSK -8=4054,H,27500,34,DVB-S,QPSK -9=4110,V,3889,78,DVB-S,QPSK -10=4114,V,2988,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0215.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0215.ini deleted file mode 100644 index 30f3d5c6e9..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0215.ini +++ /dev/null @@ -1,103 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0215 -2=Eutelsat 21B (21.5E) - -[DVB] -0=94 -1=10955,H,3220,56,DVB-S,QPSK -2=10958,H,2590,34,DVB-S,QPSK -3=10966,H,2590,34,DVB-S,QPSK -4=10970,H,2500,34,DVB-S,QPSK -5=10975,H,2200,56,S2,8PSK -6=10978,V,2170,34,DVB-S,QPSK -7=10986,H,2150,34,DVB-S,QPSK -8=10992,H,3220,56,S2,8PSK -9=10995,H,2667,34,DVB-S,QPSK -10=10998,V,8888,34,DVB-S,QPSK -11=10999,H,3590,34,S2,8PSK -12=11003,H,2222,34,DVB-S,QPSK -13=11006,H,2592,56,DVB-S,QPSK -14=11009,H,2170,78,DVB-S,QPSK -15=11010,V,10000,34,S2,8PSK -16=11012,H,2667,34,DVB-S,QPSK -17=11015,H,2667,34,DVB-S,QPSK -18=11027,H,2200,34,S2,QPSK -19=11036,H,2100,34,DVB-S,QPSK -20=11038,V,2000,34,DVB-S,QPSK -21=11040,H,3600,34,DVB-S,QPSK -22=11061,V,2000,34,DVB-S,QPSK -23=11082,V,7400,23,S2,8PSK -24=11093,V,10000,34,S2,8PSK -25=11110,H,2667,34,DVB-S,QPSK -26=11128,H,10450,45,S2,QPSK -27=11190,V,6666,23,DVB-S,QPSK -28=11341,H,26460,23,S2,8PSK -29=11464,H,2590,34,DVB-S,QPSK -30=11468,H,1317,56,S2,8PSK -31=11470,H,2000,34,DVB-S,QPSK -32=11473,H,1900,56,S2,8PSK -33=11475,V,2100,34,DVB-S,QPSK -34=11476,H,2857,34,DVB-S,QPSK -35=11479,H,3184,34,DVB-S,QPSK -36=11480,V,2970,34,DVB-S,QPSK -37=11482,H,2856,34,DVB-S,QPSK -38=11483,V,3000,34,DVB-S,QPSK -39=11487,H,2700,56,DVB-S,QPSK -40=11488,V,2150,34,DVB-S,QPSK -41=11490,V,2220,34,DVB-S,QPSK -42=11497,V,2170,34,DVB-S,QPSK -43=11503,V,3300,34,DVB-S,QPSK -44=11508,V,3300,34,DVB-S,QPSK -45=11517,H,3333,56,S2,8PSK -46=11519,V,1500,56,S2,8PSK -47=11521,H,3300,34,DVB-S,QPSK -48=11526,H,2200,56,DVB-S,QPSK -49=11530,H,2200,34,DVB-S,QPSK -50=11532,V,2857,34,DVB-S,QPSK -51=11537,V,2755,34,DVB-S,QPSK -52=11541,V,6534,45,S2,QPSK -53=11546,V,2592,34,DVB-S,QPSK -54=11550,V,2142,34,DVB-S,QPSK -55=11557,H,3000,23,S2,8PSK -56=11558,V,1650,34,S2,8PSK -57=11564,V,7214,34,S2,8PSK -58=11574,V,2300,56,S2,8PSK -59=11578,V,3300,34,DVB-S,QPSK -60=11581,H,5000,34,DVB-S,QPSK -61=11582,V,2850,78,DVB-S,QPSK -62=11585,V,1600,34,DVB-S,QPSK -63=11588,H,5000,34,DVB-S,QPSK -64=11590,V,2856,78,DVB-S,QPSK -65=11593,V,1500,34,S2,8PSK -66=11596,H,5000,34,DVB-S,QPSK -67=11610,H,6200,78,DVB-S,QPSK -68=11619,V,12500,23,DVB-S,QPSK -69=11627,H,4260,56,S2,8PSK -70=11633,H,4260,56,S2,8PSK -71=11639,H,4260,56,S2,8PSK -72=11645,V,1600,45,S2,8PSK -73=11649,V,1600,34,S2,8PSK -74=11653,V,1600,34,S2,8PSK -75=11659,V,2850,78,DVB-S,QPSK -76=11663,H,3220,56,S2,8PSK -77=11665,V,2850,34,S2,8PSK -78=11673,V,2000,34,DVB-S,QPSK -79=11676,H,2150,34,DVB-S,QPSK -80=11678,V,2850,78,DVB-S,QPSK -81=11681,H,2963,34,DVB-S,QPSK -82=11684,V,2100,34,S2,8PSK -83=11686,H,1800,34,DVB-S,QPSK -84=11689,H,1500,34,DVB-S,QPSK -85=11691,V,1447,34,DVB-S,QPSK -86=11693,H,1500,34,S2,8PSK -87=11697,H,2500,34,DVB-S,QPSK -88=12508,H,3300,34,DVB-S,QPSK -89=12516,H,2200,34,DVB-S,QPSK -90=12521,H,2857,34,DVB-S,QPSK -91=12532,H,2220,34,DVB-S,QPSK -92=12536,H,2200,34,DVB-S,QPSK -93=12591,V,3124,34,DVB-S,QPSK -94=12622,V,3124,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0235.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0235.ini deleted file mode 100644 index b1abb39c66..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0235.ini +++ /dev/null @@ -1,127 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0235 -2=Astra 3B (23.5E) - -[DVB] -0=118 -1=11459,V,6666,78,DVB-S,QPSK -2=11460,H,7200,34,S2,QPSK -3=11469,H,3214,34,S2,8PSK -4=11470,V,7500,34,S2,8PSK -5=11476,V,3703,34,DVB-S,QPSK -6=11479,H,4444,34,DVB-S,QPSK -7=11484,V,4444,34,DVB-S,QPSK -8=11490,V,3250,34,DVB-S,QPSK -9=11490,H,3300,56,S2,8PSK -10=11496,V,2170,Auto,DVB-S,QPSK -11=11501,H,7200,56,S2,8PSK -12=11501,V,3750,89,S2,8PSK -13=11506,H,4800,34,S2,8PSK -14=11508,V,3600,34,S2,QPSK -15=11512,V,4800,34,S2,QPSK -16=11516,H,4444,34,DVB-S,QPSK -17=11516,V,3600,34,S2,QPSK -18=11521,H,3630,23,S2,8PSK -19=11527,H,7200,34,S2,QPSK -20=11530,V,4800,34,S2,8PSK -21=11532,H,3333,34,DVB-S,QPSK -22=11579,H,4333,78,DVB-S,QPSK -23=11583,V,10000,56,S2,8PSK -24=11591,H,7500,34,S2,8PSK -25=11597,V,4500,78,DVB-S,QPSK -26=11599,H,4800,56,S2,8PSK -27=11608,H,7200,34,S2,8PSK -28=11619,V,3750,23,S2,8PSK -29=11620,H,7200,34,S2,8PSK -30=11622,V,2333,56,S2,QPSK -31=11625,V,2333,56,S2,QPSK -32=11628,V,2333,56,S2,QPSK -33=11630,H,6666,78,DVB-S,QPSK -34=11631,V,2333,56,S2,QPSK -35=11634,V,2333,56,S2,QPSK -36=11636,H,3630,23,S2,8PSK -37=11642,V,2333,910,S2,8PSK -38=11648,H,6666,78,DVB-S,QPSK -39=11650,V,4610,34,S2,8PSK -40=11658,V,2333,56,S2,QPSK -41=11663,V,4666,56,S2,QPSK -42=11668,V,3656,34,S2,8PSK -43=11671,H,4444,34,DVB-S,QPSK -44=11672,V,3656,34,S2,8PSK -45=11676,V,1410,45,S2,QPSK -46=11678,V,1024,23,S2,8PSK -47=11679,H,6111,34,S2,8PSK -48=11679,V,1024,23,S2,8PSK -49=11680,V,1024,23,S2,8PSK -50=11683,V,2734,56,DVB-S,QPSK -51=11686,V,2750,34,S2,8PSK -52=11720,H,28200,56,S2,8PSK -53=11739,V,27500,23,S2,8PSK -54=11758,H,30000,Auto,S2,QPSK -55=11778,V,27500,910,S2,QPSK -56=11798,H,29500,34,S2,8PSK -57=11836,H,27500,56,DVB-S,QPSK -58=11856,V,27500,23,S2,8PSK -59=11876,H,29900,34,S2,8PSK -60=11895,V,27500,56,DVB-S,QPSK -61=11914,H,29900,23,S2,8PSK -62=11934,V,27500,34,S2,8PSK -63=11973,V,27500,56,DVB-S,QPSK -64=12032,H,27500,910,S2,QPSK -65=12070,H,27500,34,DVB-S,QPSK -66=12110,H,27500,34,S2,8PSK -67=12129,V,27500,23,S2,8PSK -68=12148,H,27500,56,S2,8PSK -69=12168,V,27500,34,DVB-S,QPSK -70=12188,H,27500,23,S2,8PSK -71=12207,V,27500,56,S2,8PSK -72=12304,H,27500,56,S2,8PSK -73=12344,H,27500,56,S2,8PSK -74=12363,V,29500,34,S2,8PSK -75=12382,H,30000,89,S2,8PSK -76=12402,V,30000,34,S2,8PSK -77=12525,H,27500,56,S2,8PSK -78=12525,V,27500,34,DVB-S,QPSK -79=12550,V,1663,56,S2,8PSK -80=12550,H,14400,34,S2,8PSK -81=12554,V,1666,56,S2,8PSK -82=12562,V,4937,34,S2,8PSK -83=12568,V,4937,34,S2,8PSK -84=12572,V,3300,78,DVB-S,QPSK -85=12576,V,3300,78,DVB-S,QPSK -86=12580,V,4937,34,S2,8PSK -87=12591,H,7200,34,S2,8PSK -88=12593,V,9600,34,S2,8PSK -89=12601,H,6666,78,DVB-S,QPSK -90=12608,V,4800,34,S2,8PSK -91=12609,H,6666,78,DVB-S,QPSK -92=12614,V,5000,56,S2,8PSK -93=12621,H,4936,34,S2,8PSK -94=12621,V,3750,34,S2,8PSK -95=12631,H,7200,34,S2,8PSK -96=12636,V,5000,34,S2,8PSK -97=12652,V,3333,34,S2,8PSK -98=12656,V,3600,34,S2,8PSK -99=12658,H,7200,34,S2,8PSK -100=12661,V,3600,34,S2,8PSK -101=12671,H,6666,78,DVB-S,QPSK -102=12674,V,3600,34,S2,8PSK -103=12677,V,2200,34,S2,8PSK -104=12680,V,2400,56,S2,8PSK -105=12680,H,6666,78,DVB-S,QPSK -106=12683,V,2400,56,S2,8PSK -107=12687,V,2400,56,S2,8PSK -108=12690,H,7200,34,S2,8PSK -109=12692,V,4800,34,S2,8PSK -110=12697,V,4800,34,S2,8PSK -111=12699,H,6666,78,S2,8PSK -112=12710,V,4800,34,S2,8PSK -113=12717,V,4800,34,S2,QPSK -114=12723,V,4800,34,S2,QPSK -115=12725,H,30000,89,S2,8PSK -116=12730,V,3600,34,S2,QPSK -117=12735,V,3600,34,S2,QPSK -118=12740,V,2400,34,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0255.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0255.ini deleted file mode 100644 index f72c91b41a..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0255.ini +++ /dev/null @@ -1,19 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0255 -2=Eutelsat 25B/Es'hail 1 (25.5E) - -[DVB] -0=10 -1=11046,H,27500,34,DVB-S,QPSK -2=11142,V,27500,34,DVB-S,QPSK -3=11547,V,27500,23,S2,8PSK -4=11566,H,27500,34,DVB-S,8PSK -5=11585,V,27500,23,S2,8PSK -6=11604,H,27500,34,DVB-S,QPSK -7=11623,V,27500,23,S2,8PSK -8=11642,H,27500,23,S2,8PSK -9=11678,H,27500,56,DVB-S,QPSK -10=21421,V,27500,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0260.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0260.ini deleted file mode 100644 index 299779fb54..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0260.ini +++ /dev/null @@ -1,107 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0260 -2=Badr 4/5/6 (26.0E) - -[DVB] -0=98 -1=3958,V,12000,34,DVB-S,QPSK -2=10730,H,27500,34,DVB-S,QPSK -3=10730,V,27500,34,S2,8PSK -4=10770,H,27500,34,DVB-S,QPSK -5=10810,H,27500,34,DVB-S,QPSK -6=10810,V,27500,12,S2,8PSK -7=10850,H,27500,56,DVB-S,QPSK -8=10850,V,27500,34,DVB-S,QPSK -9=10890,H,27500,34,S2,8PSK -10=10890,V,27500,34,S2,8PSK -11=10930,H,27500,34,DVB-S,QPSK -12=10930,V,27500,34,S2,8PSK -13=11228,V,27500,34,DVB-S,QPSK -14=11557,H,2960,34,DVB-S,QPSK -15=11563,H,1500,34,DVB-S,QPSK -16=11727,H,27500,Auto,S2,8PSK -17=11747,V,27500,34,DVB-S,QPSK -18=11785,V,27500,34,DVB-S,QPSK -19=11804,H,27500,34,DVB-S,QPSK -20=11823,V,27500,12,S2,8PSK -21=11843,H,27500,34,DVB-S,QPSK -22=11862,V,27500,34,DVB-S,QPSK -23=11881,H,27500,56,S2,8PSK -24=11900,V,27500,34,DVB-S,QPSK -25=11919,H,27500,34,DVB-S,QPSK -26=11938,V,27500,34,DVB-S,QPSK -27=11958,H,27500,34,DVB-S,QPSK -28=11996,H,27500,34,DVB-S,QPSK -29=12015,V,27500,34,DVB-S,QPSK -30=12034,H,27500,34,DVB-S,QPSK -31=12054,V,27500,34,DVB-S,QPSK -32=12073,H,27500,34,DVB-S,QPSK -33=12092,V,27500,34,DVB-S,QPSK -34=12111,H,27500,34,DVB-S,QPSK -35=12130,V,27500,34,DVB-S,QPSK -36=12149,H,30000,56,S2,QPSK -37=12169,V,22000,34,S2,QPSK -38=12182,H,16200,34,DVB-S,QPSK -39=12207,V,27500,34,DVB-S,QPSK -40=12226,H,27500,34,DVB-S,QPSK -41=12245,V,27500,56,S2,QPSK -42=12265,H,27500,56,S2,QPSK -43=12284,V,27500,34,DVB-S,QPSK -44=12303,H,27500,34,DVB-S,QPSK -45=12322,V,27500,34,DVB-S,QPSK -46=12360,V,27500,34,DVB-S,QPSK -47=12399,V,27500,34,S2,8PSK -48=12418,H,27500,34,S2,8PSK -49=12437,V,27500,34,DVB-S,QPSK -50=12456,H,27500,34,DVB-S,QPSK -51=12476,V,27500,34,DVB-S,QPSK -52=12523,H,27500,34,DVB-S,QPSK -53=12547,H,2000,34,DVB-S,QPSK -54=12550,H,2950,34,DVB-S,QPSK -55=12550,V,7000,56,S2,8PSK -56=12558,V,7000,56,S2,8PSK -57=12559,H,2220,34,DVB-S,QPSK -58=12562,H,2220,34,DVB-S,QPSK -59=12565,H,2220,34,DVB-S,QPSK -60=12567,V,2200,34,DVB-S,QPSK -61=12568,H,1850,34,DVB-S,QPSK -62=12570,V,2200,34,DVB-S,QPSK -63=12570,H,1820,34,DVB-S,QPSK -64=12575,H,2200,56,DVB-S,QPSK -65=12576,V,7000,56,S2,8PSK -66=12579,H,2100,34,DVB-S,QPSK -67=12586,V,2220,34,DVB-S,QPSK -68=12587,H,2000,34,DVB-S,QPSK -69=12591,H,2200,34,DVB-S,QPSK -70=12591,V,2200,34,DVB-S,QPSK -71=12594,H,2200,34,DVB-S,QPSK -72=12600,V,7000,56,S2,QPSK -73=12602,H,2960,56,DVB-S,QPSK -74=12605,V,2220,34,DVB-S,QPSK -75=12607,H,3000,34,DVB-S,QPSK -76=12608,V,1820,34,DVB-S,QPSK -77=12611,V,2220,34,DVB-S,QPSK -78=12618,H,2220,34,DVB-S,QPSK -79=12620,V,2200,34,DVB-S,QPSK -80=12644,V,1850,34,DVB-S,QPSK -81=12647,H,2950,34,DVB-S,QPSK -82=12647,V,1595,34,S2,8PSK -83=12656,H,2892,34,DVB-S,QPSK -84=12666,H,2400,34,DVB-S,QPSK -85=12672,H,4440,34,DVB-S,QPSK -86=12679,H,2220,78,DVB-S,QPSK -87=12683,V,27500,34,DVB-S,QPSK -88=12705,H,2220,56,DVB-S,QPSK -89=12708,H,2220,56,DVB-S,QPSK -90=12711,H,2220,34,DVB-S,8PSK -91=12711,V,5632,34,DVB-S,QPSK -92=12717,V,2143,56,DVB-S,QPSK -93=12718,H,3000,56,DVB-S,QPSK -94=12722,H,3000,56,DVB-S,QPSK -95=12729,H,2200,34,DVB-S,QPSK -96=12734,H,3000,34,DVB-S,QPSK -97=12736,V,5632,34,DVB-S,QPSK -98=12740,H,2200,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0282.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0282.ini deleted file mode 100644 index 07c5ccebe7..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0282.ini +++ /dev/null @@ -1,101 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0282 -2=Astra 2E/2F/2G (28.2E) - -[DVB] -0=92 -1=10714,H,22000,56,DVB-S,QPSK -2=10729,V,22000,56,DVB-S,QPSK -3=10744,H,22000,56,DVB-S,QPSK -4=10758,V,22000,56,DVB-S,QPSK -5=10773,H,22000,56,DVB-S,QPSK -6=10788,V,22000,56,DVB-S,QPSK -7=10803,H,22000,56,DVB-S,QPSK -8=10818,V,22000,56,DVB-S,QPSK -9=10832,H,22000,56,DVB-S,QPSK -10=10847,V,23000,23,S2,8PSK -11=10862,H,23000,23,S2,8PSK -12=10876,V,22000,56,DVB-S,QPSK -13=10891,H,22000,56,DVB-S,QPSK -14=10906,V,22000,56,DVB-S,QPSK -15=10936,V,23000,23,S2,8PSK -16=10964,H,22000,56,DVB-S,QPSK -17=10994,H,22000,56,DVB-S,QPSK -18=11023,H,23000,23,S2,8PSK -19=11053,H,23000,34,S2,8PSK -20=11068,V,23000,23,S2,8PSK -21=11082,H,22000,56,DVB-S,QPSK -22=11097,V,23000,23,S2,8PSK -23=11112,H,22000,56,DVB-S,QPSK -24=11126,V,22000,56,DVB-S,QPSK -25=11141,H,22000,56,DVB-S,QPSK -26=11171,H,22000,56,DVB-S,QPSK -27=11224,H,27500,23,DVB-S,QPSK -28=11224,V,27500,23,DVB-S,QPSK -29=11264,V,27500,23,DVB-S,QPSK -30=11264,H,27500,23,DVB-S,QPSK -31=11306,V,27500,23,DVB-S,QPSK -32=11306,H,27500,23,DVB-S,QPSK -33=11344,V,27500,23,DVB-S,QPSK -34=11344,H,27500,23,DVB-S,QPSK -35=11386,V,27500,23,DVB-S,QPSK -36=11386,H,27500,23,DVB-S,QPSK -37=11426,H,27500,23,DVB-S,QPSK -38=11426,V,27500,23,DVB-S,QPSK -39=11464,H,22000,56,DVB-S,QPSK -40=11479,V,22000,56,DVB-S,QPSK -41=11509,V,22000,56,DVB-S,QPSK -42=11523,H,22000,56,DVB-S,QPSK -43=11538,V,23000,23,S2,8PSK -44=11553,H,22000,56,DVB-S,QPSK -45=11568,V,22000,56,DVB-S,QPSK -46=11582,H,22000,56,DVB-S,QPSK -47=11597,V,22000,56,DVB-S,QPSK -48=11618,V,1562,56,S2,QPSK -49=11671,H,22000,56,DVB-S,QPSK -50=11675,H,30000,56,S2,QPSK -51=11686,V,22000,56,DVB-S,QPSK -52=11720,H,29500,34,S2,QPSK -53=11739,V,29500,34,S2,QPSK -54=11758,H,29500,34,S2,QPSK -55=11798,H,29500,34,S2,QPSK -56=11817,V,27500,23,DVB-S,QPSK -57=11836,H,27500,56,DVB-S,QPSK -58=11856,V,29500,34,S2,QPSK -59=11876,H,27500,23,DVB-S,QPSK -60=11895,V,27500,23,DVB-S,QPSK -61=11914,H,27500,56,DVB-S,QPSK -62=11934,V,27500,56,DVB-S,QPSK -63=11954,H,27500,23,DVB-S,QPSK -64=11973,V,29500,34,S2,QPSK -65=11992,H,27500,23,DVB-S,QPSK -66=12012,V,29500,34,S2,QPSK -67=12051,V,27500,23,DVB-S,QPSK -68=12070,H,27500,56,DVB-S,QPSK -69=12090,V,29500,34,S2,QPSK -70=12110,H,27500,56,DVB-S,QPSK -71=12148,H,27500,56,DVB-S,QPSK -72=12168,V,29500,34,S2,QPSK -73=12188,H,27500,56,DVB-S,QPSK -74=12207,V,27500,56,DVB-S,QPSK -75=12226,H,29500,34,S2,QPSK -76=12246,V,29500,34,S2,QPSK -77=12266,H,27500,56,DVB-S,QPSK -78=12285,V,27500,23,DVB-S,QPSK -79=12324,V,29500,34,S2,QPSK -80=12344,H,29500,34,S2,QPSK -81=12363,V,29500,34,S2,QPSK -82=12441,V,29500,34,S2,QPSK -83=12460,H,29500,34,S2,QPSK -84=12480,V,27500,23,DVB-S,QPSK -85=12522,V,27000,Auto,DVB-S,QPSK -86=12573,H,6960,23,S2,QPSK -87=12581,V,7200,34,S2,8PSK -88=12582,H,6960,23,S2,QPSK -89=12603,V,3095,Auto,S2,QPSK -90=12683,H,6960,23,S2,8PSK -91=12692,H,6960,23,S2,8PSK -92=12699,H,4640,23,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0305.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0305.ini deleted file mode 100644 index 196196c956..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0305.ini +++ /dev/null @@ -1,96 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0305 -2=Arabsat 5A (30.5E) - -[DVB] -0=87 -1=3770,V,2200,34,DVB-S,QPSK -2=3820,V,2848,34,DVB-S,QPSK -3=3880,V,3888,78,DVB-S,QPSK -4=3884,V,3888,78,DVB-S,QPSK -5=3888,V,3888,78,DVB-S,QPSK -6=3947,V,2200,34,DVB-S,QPSK -7=3951,V,2220,34,DVB-S,QPSK -8=4061,V,1615,78,DVB-S,QPSK -9=4126,V,2892,34,DVB-S,QPSK -10=10717,H,2069,23,S2,8PSK -11=10721,H,4300,23,S2,8PSK -12=10727,H,4300,23,DVB-S,QPSK -13=10744,H,4300,23,DVB-S,QPSK -14=10749,H,3125,Auto,DVB-S,QPSK -15=10757,H,2220,34,DVB-S,QPSK -16=10760,H,2050,23,S2,8PSK -17=10765,H,1950,34,S2,QPSK -18=10770,H,1650,23,S2,8PSK -19=10777,H,2960,34,DVB-S,QPSK -20=10782,H,2960,34,DVB-S,QPSK -21=10797,H,8000,56,S2,8PSK -22=10805,H,3885,56,DVB-S,QPSK -23=10816,H,8000,56,DVB-S,QPSK -24=10827,H,5800,34,DVB-S,QPSK -25=10832,V,2780,56,DVB-S,QPSK -26=10858,V,2960,34,DVB-S,QPSK -27=10924,H,17000,34,DVB-S,QPSK -28=10940,H,8000,56,DVB-S,QPSK -29=10946,H,2400,78,DVB-S,QPSK -30=12503,V,2220,34,DVB-S,QPSK -31=12506,V,2220,34,DVB-S,QPSK -32=12507,H,2220,34,DVB-S,QPSK -33=12509,V,2222,34,DVB-S,QPSK -34=12511,V,2200,34,DVB-S,QPSK -35=12514,V,2220,34,DVB-S,QPSK -36=12516,H,2230,34,DVB-S,QPSK -37=12523,V,6000,Auto,DVB-S,QPSK -38=12533,V,3890,34,DVB-S,QPSK -39=12538,V,2690,34,DVB-S,QPSK -40=12539,H,2960,34,DVB-S,QPSK -41=12543,V,2410,34,S2,8PSK -42=12559,H,2963,34,DVB-S,QPSK -43=12568,H,2960,Auto,DVB-S,QPSK -44=12576,H,1613,Auto,S2,QPSK -45=12588,H,3000,34,DVB-S,QPSK -46=12593,H,2960,34,DVB-S,QPSK -47=12596,H,2220,34,DVB-S,QPSK -48=12596,V,1800,78,DVB-S,QPSK -49=12603,V,3300,34,DVB-S,QPSK -50=12607,V,2590,56,DVB-S,QPSK -51=12608,H,2200,34,DVB-S,QPSK -52=12610,V,2970,34,DVB-S,QPSK -53=12611,H,3000,34,DVB-S,QPSK -54=12614,H,2200,34,DVB-S,QPSK -55=12614,V,3820,89,S2,QPSK -56=12618,H,2960,34,DVB-S,QPSK -57=12621,V,3800,34,S2,8PSK -58=12624,V,2220,34,DVB-S,QPSK -59=12630,V,2893,34,DVB-S,QPSK -60=12634,V,2893,34,DVB-S,QPSK -61=12638,V,2894,34,DVB-S,QPSK -62=12641,V,2894,34,DVB-S,QPSK -63=12644,V,2894,34,DVB-S,QPSK -64=12647,H,2960,34,DVB-S,QPSK -65=12648,V,2894,34,DVB-S,QPSK -66=12651,H,3885,34,DVB-S,QPSK -67=12652,V,2893,34,DVB-S,QPSK -68=12655,H,2410,34,DVB-S,QPSK -69=12656,V,1660,56,S2,8PSK -70=12667,H,4112,34,DVB-S,QPSK -71=12667,V,2220,34,DVB-S,QPSK -72=12671,V,2600,34,DVB-S,QPSK -73=12675,V,4300,34,DVB-S,QPSK -74=12679,V,3000,34,DVB-S,QPSK -75=12685,V,4300,34,DVB-S,QPSK -76=12697,V,4300,34,DVB-S,QPSK -77=12708,V,2590,34,DVB-S,QPSK -78=12712,H,2220,34,DVB-S,QPSK -79=12713,V,1850,34,DVB-S,QPSK -80=12716,V,2600,34,DVB-S,QPSK -81=12719,H,2960,34,DVB-S,QPSK -82=12719,V,3000,34,DVB-S,QPSK -83=12722,H,2200,34,DVB-S,QPSK -84=12724,V,2220,34,DVB-S,QPSK -85=12732,V,2000,78,DVB-S,QPSK -86=12733,H,2960,34,DVB-S,QPSK -87=12737,H,2220,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0308.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0308.ini deleted file mode 100644 index fe4f41569b..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0308.ini +++ /dev/null @@ -1,30 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0308 -2=Eutelsat 31A (30.8E) - -[DVB] -0=21 -1=10960,H,3330,78,DVB-S,QPSK -2=10965,H,3330,78,DVB-S,QPSK -3=10970,H,3330,78,DVB-S,QPSK -4=10975,H,3330,78,DVB-S,QPSK -5=10979,H,3330,78,DVB-S,QPSK -6=10984,H,3330,56,DVB-S,QPSK -7=10988,H,3330,78,DVB-S,QPSK -8=10992,H,3330,78,DVB-S,QPSK -9=11004,H,7500,34,S2,8PSK -10=11011,H,3330,56,DVB-S,QPSK -11=11015,H,3330,78,DVB-S,QPSK -12=11019,H,3330,78,DVB-S,QPSK -13=11024,H,3330,78,DVB-S,QPSK -14=11044,H,21000,56,S2,QPSK -15=11560,H,21000,56,S2,8PSK -16=11622,H,2300,56,DVB-S,QPSK -17=11624,H,2200,56,DVB-S,QPSK -18=11627,H,2300,56,DVB-S,QPSK -19=11630,H,2222,56,DVB-S,QPSK -20=11644,H,2300,910,S2,8PSK -21=11651,H,7500,34,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0310.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0310.ini deleted file mode 100644 index be556fdd2b..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0310.ini +++ /dev/null @@ -1,10 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0310 -2=Hylas 2 (31.0E) - -[DVB] -0=1 -1=20036,H,10000,12,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0315.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0315.ini deleted file mode 100644 index 6581c91691..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0315.ini +++ /dev/null @@ -1,24 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0315 -2=Astra 5B (31.5E) - -[DVB] -0=15 -1=11758,H,27500,34,DVB-S,QPSK -2=11817,V,27500,34,DVB-S,QPSK -3=11934,V,30000,23,S2,8PSK -4=11954,H,27500,56,S2,8PSK -5=11973,V,27500,56,S2,8PSK -6=12012,V,30000,34,S2,8PSK -7=12070,H,30000,34,S2,8PSK -8=12090,V,30000,34,S2,8PSK -9=12168,V,30000,34,S2,8PSK -10=12207,V,27500,56,S2,8PSK -11=12246,V,30000,34,S2,8PSK -12=12266,H,27500,56,S2,8PSK -13=12324,V,30000,34,S2,8PSK -14=12402,V,30000,34,S2,8PSK -15=12480,V,30000,34,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0330.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0330.ini deleted file mode 100644 index b395913cc6..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0330.ini +++ /dev/null @@ -1,47 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0330 -2=Eutelsat 33B/33C/Intelsat 28 (33.0E) - -[DVB] -0=38 -1=10968,V,6665,45,S2,QPSK -2=10975,H,30000,910,S2,QPSK -3=10976,V,6665,45,S2,QPSK -4=11043,H,7200,34,S2,8PSK -5=11052,H,7200,56,S2,8PSK -6=11072,H,3333,78,DVB-S,QPSK -7=11077,H,3750,34,S2,8PSK -8=11094,H,3000,34,S2,8PSK -9=11098,H,2960,56,DVB-S,QPSK -10=11101,H,2222,56,DVB-S,QPSK -11=11105,H,3333,34,S2,8PSK -12=11154,V,15710,12,DVB-S,QPSK -13=11429,V,10098,35,S2,QPSK -14=11457,V,1704,56,S2,8PSK -15=11461,V,2000,78,DVB-S,QPSK -16=11467,V,3600,34,S2,8PSK -17=11471,V,3820,34,S2,8PSK -18=11475,V,3820,34,S2,8PSK -19=11476,H,3820,34,S2,8PSK -20=11580,H,2478,23,S2,8PSK -21=11583,H,2478,23,S2,8PSK -22=11593,H,15710,12,DVB-S,QPSK -23=11605,V,3333,56,S2,8PSK -24=11608,H,3810,56,S2,8PSK -25=12630,V,2400,35,S2,8PSK -26=12634,V,4800,34,S2,8PSK -27=12640,V,2400,23,S2,8PSK -28=12643,V,2400,23,S2,8PSK -29=12646,V,4800,34,S2,8PSK -30=12650,V,2400,23,S2,8PSK -31=12653,V,2400,23,S2,8PSK -32=12656,V,2400,23,S2,8PSK -33=12684,V,2050,56,S2,8PSK -34=12691,V,2222,78,DVB-S,QPSK -35=12698,V,3333,34,DVB-S,QPSK -36=12722,V,16730,34,S2,QPSK -37=12736,V,4444,34,DVB-S,QPSK -38=12742,V,4444,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0360.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0360.ini deleted file mode 100644 index 49042dfb7c..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0360.ini +++ /dev/null @@ -1,111 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0360 -2=Eutelsat 36A/36B (36.0E) - -[DVB] -0=102 -1=11053,V,2894,34,DVB-S,QPSK -2=11057,V,2894,34,DVB-S,QPSK -3=11212,H,14400,35,S2,8PSK -4=11221,V,30000,56,S2,QPSK -5=11263,V,30000,56,S2,QPSK -6=11304,V,30000,56,S2,QPSK -7=11346,V,30000,56,S2,QPSK -8=11387,V,30000,56,S2,QPSK -9=11429,V,30000,56,S2,QPSK -10=11429,H,2893,34,DVB-S,QPSK -11=11442,H,2500,56,S2,8PSK -12=11474,V,30000,56,DVB-S,QPSK -13=11481,V,2200,34,S2,8PSK -14=11510,V,30000,56,DVB-S,QPSK -15=11590,V,2524,35,S2,QPSK -16=11593,V,2524,35,S2,QPSK -17=11727,H,27500,34,S2,8PSK -18=11727,V,27500,34,DVB-S,QPSK -19=11747,H,27500,34,DVB-S,QPSK -20=11747,V,27500,34,S2,8PSK -21=11766,V,27500,34,DVB-S,QPSK -22=11766,H,27500,34,S2,8PSK -23=11785,H,27500,34,DVB-S,QPSK -24=11785,V,27500,34,DVB-S,QPSK -25=11804,V,27500,34,S2,8PSK -26=11804,H,27500,34,S2,8PSK -27=11823,H,27500,34,DVB-S,QPSK -28=11823,V,27500,34,S2,8PSK -29=11843,V,27500,34,DVB-S,QPSK -30=11843,H,27500,34,S2,8PSK -31=11862,H,27500,34,DVB-S,QPSK -32=11862,V,27500,34,DVB-S,QPSK -33=11881,V,27500,34,DVB-S,QPSK -34=11881,H,27500,34,DVB-S,QPSK -35=11900,H,26480,12,DVB-S,QPSK -36=11900,V,27500,34,DVB-S,QPSK -37=11919,V,27500,34,S2,8PSK -38=11919,H,27500,34,S2,8PSK -39=11938,V,27500,34,S2,8PSK -40=11940,H,27500,34,DVB-S,QPSK -41=11958,V,27500,34,DVB-S,QPSK -42=11958,H,27500,34,S2,8PSK -43=11977,H,27500,34,DVB-S,QPSK -44=11977,V,27500,34,DVB-S,QPSK -45=11996,V,27500,34,S2,8PSK -46=11996,H,27500,34,S2,8PSK -47=12015,H,27500,34,DVB-S,QPSK -48=12015,V,27500,34,S2,8PSK -49=12034,V,27500,34,DVB-S,QPSK -50=12034,H,27500,34,S2,8PSK -51=12054,H,27500,34,DVB-S,QPSK -52=12054,V,27500,34,S2,8PSK -53=12073,H,27500,34,S2,8PSK -54=12073,V,27500,34,DVB-S,QPSK -55=12092,H,27500,23,S2,8PSK -56=12092,V,27500,34,DVB-S,QPSK -57=12111,H,27500,34,S2,8PSK -58=12130,V,27500,34,S2,8PSK -59=12149,H,27500,34,S2,8PSK -60=12169,V,27500,34,S2,8PSK -61=12174,H,4340,34,DVB-S,QPSK -62=12190,H,20000,34,DVB-S,QPSK -63=12207,V,27500,34,S2,8PSK -64=12226,H,27500,34,DVB-S,QPSK -65=12245,V,27500,34,DVB-S,QPSK -66=12245,H,27500,34,DVB-S,QPSK -67=12265,H,27500,34,DVB-S,QPSK -68=12284,V,27500,34,DVB-S,QPSK -69=12303,H,27500,34,DVB-S,QPSK -70=12322,V,27500,34,DVB-S,QPSK -71=12322,H,23437,34,DVB-S,QPSK -72=12341,H,27500,34,DVB-S,QPSK -73=12360,V,27500,34,S2,8PSK -74=12360,H,26480,12,DVB-S,QPSK -75=12380,H,27500,34,DVB-S,QPSK -76=12399,V,27500,34,DVB-S,QPSK -77=12418,H,27500,34,S2,8PSK -78=12437,V,27500,34,S2,8PSK -79=12440,H,23437,23,DVB-S,QPSK -80=12456,H,27500,34,DVB-S,QPSK -81=12476,V,27500,34,DVB-S,QPSK -82=12476,H,26040,23,DVB-S,QPSK -83=12511,H,4340,12,DVB-S,QPSK -84=12520,H,4340,12,DVB-S,QPSK -85=12522,V,1346,34,DVB-S,QPSK -86=12540,V,2220,34,DVB-S,QPSK -87=12557,V,1346,34,S2,QPSK -88=12563,H,7120,34,DVB-S,QPSK -89=12571,H,2894,34,DVB-S,QPSK -90=12572,V,1786,34,S2,8PSK -91=12575,H,2894,34,DVB-S,QPSK -92=12608,V,6200,34,S2,QPSK -93=12629,H,3444,34,S2,8PSK -94=12654,V,1800,78,DVB-S,QPSK -95=12689,V,2170,34,DVB-S,QPSK -96=12693,V,2532,34,DVB-S,QPSK -97=12699,V,6000,34,DVB-S,QPSK -98=12703,V,2200,78,DVB-S,QPSK -99=12706,V,1800,78,DVB-S,QPSK -100=12709,V,2200,78,DVB-S,QPSK -101=12713,V,1800,78,DVB-S,QPSK -102=12716,V,1800,78,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0380.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0380.ini deleted file mode 100644 index 25b53cd3d8..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0380.ini +++ /dev/null @@ -1,79 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0380 -2=Paksat 1R (38.0E) - -[DVB] -0=70 -1=3715,V,7200,34,DVB-S,QPSK -2=3732,V,18000,89,S2,QPSK -3=3762,V,4340,34,DVB-S,QPSK -4=3770,V,7700,78,DVB-S,QPSK -5=3775,V,1004,34,DVB-S,QPSK -6=3782,V,2170,34,DVB-S,QPSK -7=3800,V,7300,34,DVB-S,QPSK -8=3806,V,1444,34,S2,QPSK -9=3818,V,2200,34,DVB-S,QPSK -10=3824,V,2800,34,DVB-S,QPSK -11=3830,H,2000,34,DVB-S,QPSK -12=3833,V,2600,34,DVB-S,QPSK -13=3856,V,2894,34,DVB-S,QPSK -14=3860,V,3333,34,DVB-S,QPSK -15=3865,V,2894,34,DVB-S,QPSK -16=3959,V,7234,34,DVB-S,QPSK -17=3966,V,2800,34,DVB-S,QPSK -18=3973,V,6510,34,DVB-S,QPSK -19=3976,H,1750,34,DVB-S,QPSK -20=3979,V,3255,34,DVB-S,QPSK -21=3981,H,2222,34,DVB-S,QPSK -22=3984,V,2893,34,DVB-S,QPSK -23=3992,V,2170,56,DVB-S,QPSK -24=4003,V,15550,34,DVB-S,QPSK -25=4005,H,13845,78,DVB-S,QPSK -26=4013,V,2893,34,DVB-S,QPSK -27=4023,V,5700,35,S2,8PSK -28=4031,V,1078,34,DVB-S,QPSK -29=4037,V,4800,56,S2,QPSK -30=4042,V,2800,34,S2,QPSK -31=4047,V,3255,34,DVB-S,QPSK -32=4054,V,7000,34,DVB-S,QPSK -33=4060,H,23000,56,DVB-S,QPSK -34=4060,V,2893,34,DVB-S,QPSK -35=4073,V,6150,34,S2,QPSK -36=4081,V,3255,34,DVB-S,QPSK -37=4085,V,2960,34,DVB-S,QPSK -38=4090,V,3330,34,DVB-S,QPSK -39=4093,V,2527,34,DVB-S,QPSK -40=4098,H,1600,34,DVB-S,QPSK -41=4101,V,2800,34,DVB-S,QPSK -42=4105,V,2310,56,DVB-S,QPSK -43=4114,V,5700,34,DVB-S,QPSK -44=4124,V,5000,34,DVB-S,QPSK -45=4130,V,2500,34,DVB-S,QPSK -46=4133,V,2220,89,S2,QPSK -47=4135,H,3330,34,DVB-S,QPSK -48=4141,V,2800,34,DVB-S,QPSK -49=4158,V,12000,34,DVB-S,QPSK -50=4168,V,2800,34,DVB-S,QPSK -51=4172,V,2800,34,DVB-S,QPSK -52=4180,V,2170,34,DVB-S,QPSK -53=4184,V,2800,34,S2,QPSK -54=4188,V,2170,34,DVB-S,QPSK -55=10971,V,1000,56,S2,8PSK -56=10972,V,1000,56,S2,8PSK -57=10990,V,1650,34,DVB-S,QPSK -58=10992,V,1500,34,DVB-S,QPSK -59=11103,V,3012,34,DVB-S,QPSK -60=11122,V,1808,34,DVB-S,QPSK -61=11124,V,1300,34,DVB-S,QPSK -62=11150,V,3760,34,DVB-S,QPSK -63=11167,V,3000,78,DVB-S,QPSK -64=11184,V,2000,34,DVB-S,QPSK -65=11188,V,2000,34,DVB-S,QPSK -66=11191,V,2000,34,DVB-S,QPSK -67=12652,V,2050,34,DVB-S,QPSK -68=12687,V,2170,78,DVB-S,QPSK -69=12691,V,3333,34,DVB-S,QPSK -70=12696,V,3333,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0390.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0390.ini deleted file mode 100644 index e779197537..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0390.ini +++ /dev/null @@ -1,60 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0390 -2=Hellas Sat 2 (39.0E) - -[DVB] -0=51 -1=10955,V,4444,34,S2,8PSK -2=10960,V,1852,34,DVB-S,QPSK -3=10968,V,4400,34,DVB-S,QPSK -4=10972,V,3300,34,DVB-S,QPSK -5=10977,V,3300,34,DVB-S,QPSK -6=10981,V,3300,34,DVB-S,QPSK -7=10987,V,3333,78,DVB-S,QPSK -8=11012,V,30000,34,S2,8PSK -9=11053,V,30000,34,S2,8PSK -10=11078,V,3333,34,DVB-S,QPSK -11=11083,V,4400,34,DVB-S,QPSK -12=11091,V,1666,34,DVB-S,QPSK -13=11097,H,6111,34,DVB-S,QPSK -14=11104,V,14400,34,DVB-S,QPSK -15=11135,V,30000,23,S2,8PSK -16=11464,H,3224,78,DVB-S,QPSK -17=11473,H,4444,34,S2,8PSK -18=11479,H,3190,56,DVB-S,QPSK -19=11482,H,2905,34,DVB-S,QPSK -20=11486,H,2509,56,S2,8PSK -21=11496,H,2960,34,DVB-S,QPSK -22=11500,H,2960,23,S2,8PSK -23=11503,H,2200,56,DVB-S,QPSK -24=11507,H,2220,34,DVB-S,QPSK -25=11559,H,1950,23,S2,8PSK -26=11565,H,2250,34,DVB-S,QPSK -27=11608,H,2100,34,DVB-S,QPSK -28=11611,H,2100,34,DVB-S,QPSK -29=11618,H,2500,78,DVB-S,QPSK -30=11622,H,2800,56,DVB-S,QPSK -31=11624,V,3255,34,DVB-S,QPSK -32=11625,H,3333,34,DVB-S,QPSK -33=11628,H,2800,56,DVB-S,QPSK -34=11632,H,2800,56,DVB-S,QPSK -35=11649,H,4433,34,DVB-S,QPSK -36=11663,H,5925,34,DVB-S,QPSK -37=11670,H,3720,34,DVB-S,QPSK -38=11679,H,3700,56,DVB-S,QPSK -39=11685,H,3700,34,DVB-S,QPSK -40=11692,H,2300,78,DVB-S,QPSK -41=12524,V,30000,78,DVB-S,QPSK -42=12524,H,30000,78,DVB-S,QPSK -43=12565,V,30000,78,DVB-S,QPSK -44=12565,H,30000,78,DVB-S,QPSK -45=12606,V,30000,78,DVB-S,QPSK -46=12606,H,30000,78,DVB-S,QPSK -47=12647,V,30000,78,DVB-S,QPSK -48=12647,H,30000,34,S2,8PSK -49=12688,V,30000,78,DVB-S,QPSK -50=12688,H,30000,78,DVB-S,QPSK -51=12729,V,30000,78,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0400.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0400.ini deleted file mode 100644 index c1a56c8458..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0400.ini +++ /dev/null @@ -1,30 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0400 -2=Express AM7 (40.0E) - -[DVB] -0=21 -1=3557,V,2894,78,DVB-S,QPSK -2=3558,H,3720,34,S2,8PSK -3=3561,V,2905,34,DVB-S,QPSK -4=3563,H,3600,34,S2,8PSK -5=3565,V,2896,34,DVB-S,QPSK -6=3566,H,1850,34,S2,8PSK -7=3569,V,2905,34,DVB-S,QPSK -8=3573,V,2896,34,DVB-S,QPSK -9=3577,V,2905,34,DVB-S,QPSK -10=3581,V,2894,34,DVB-S,QPSK -11=3585,V,2905,34,DVB-S,QPSK -12=3589,V,2905,34,DVB-S,QPSK -13=3592,V,2894,34,DVB-S,QPSK -14=3615,V,14990,34,S2,8PSK -15=3635,V,15280,34,S2,8PSK -16=3665,H,14990,34,S2,8PSK -17=3675,V,33483,78,DVB-S,QPSK -18=3685,H,15284,34,S2,8PSK -19=3725,H,28108,35,S2,QPSK -20=3739,V,1922,78,DVB-S,QPSK -21=3742,V,2893,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0420.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0420.ini deleted file mode 100644 index 3d884a86bd..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0420.ini +++ /dev/null @@ -1,199 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0420 -2=Türksat 2A/3A/4A (42.0E) - -[DVB] -0=190 -1=10962,H,16666,34,DVB-S,QPSK -2=10970,V,30000,56,S2,8PSK -3=10974,H,2660,56,S2,8PSK -4=10978,H,2660,56,S2,8PSK -5=10982,H,2660,56,S2,8PSK -6=10986,H,2660,56,S2,8PSK -7=10997,H,3333,56,DVB-S,QPSK -8=11001,H,3200,34,DVB-S,QPSK -9=11006,H,2222,56,DVB-S,QPSK -10=11012,V,30000,56,DVB-S,QPSK -11=11014,H,9600,34,DVB-S,QPSK -12=11021,H,2222,34,DVB-S,QPSK -13=11027,H,2222,56,DVB-S,QPSK -14=11031,H,2222,56,DVB-S,QPSK -15=11039,H,4800,23,S2,8PSK -16=11045,H,4800,34,DVB-S,QPSK -17=11053,H,8000,34,DVB-S,QPSK -18=11054,V,30000,34,S2,8PSK -19=11062,H,4820,34,DVB-S,QPSK -20=11068,H,2400,56,DVB-S,QPSK -21=11071,H,2200,56,DVB-S,QPSK -22=11096,V,30000,56,DVB-S,QPSK -23=11096,H,30000,56,DVB-S,QPSK -24=11128,H,3150,56,S2,QPSK -25=11137,H,2960,56,DVB-S,QPSK -26=11138,V,13000,12,S2,QPSK -27=11142,H,2221,56,DVB-S,QPSK -28=11146,H,3330,Auto,DVB-S,QPSK -29=11152,H,2222,Auto,DVB-S,QPSK -30=11156,V,2222,56,DVB-S,QPSK -31=11157,H,3180,56,DVB-S,QPSK -32=11161,V,2222,56,DVB-S,QPSK -33=11161,H,3180,56,DVB-S,QPSK -34=11165,H,3180,56,DVB-S,QPSK -35=11169,V,3333,56,DVB-S,QPSK -36=11169,H,3180,56,DVB-S,QPSK -37=11173,H,3180,56,DVB-S,QPSK -38=11174,V,2200,Auto,DVB-S,QPSK -39=11177,H,2222,56,DVB-S,QPSK -40=11178,V,3600,56,DVB-S,QPSK -41=11180,H,2960,56,S2,8PSK -42=11183,V,2222,56,DVB-S,QPSK -43=11187,H,2080,56,DVB-S,QPSK -44=11191,H,2070,78,DVB-S,QPSK -45=11195,H,4000,56,S2,8PSK -46=11196,V,3200,56,DVB-S,QPSK -47=11458,V,3200,34,S2,8PSK -48=11462,V,3200,34,S2,8PSK -49=11466,V,3200,34,S2,8PSK -50=11470,V,3200,34,S2,8PSK -51=11472,H,23450,56,DVB-S,QPSK -52=11473,V,3200,34,S2,8PSK -53=11477,V,3200,34,S2,8PSK -54=11480,V,3200,34,S2,8PSK -55=11486,V,3200,34,S2,8PSK -56=11490,V,3200,56,DVB-S,QPSK -57=11496,V,2960,56,DVB-S,QPSK -58=11500,V,2222,56,DVB-S,QPSK -59=11504,V,3200,56,DVB-S,QPSK -60=11509,H,30000,23,DVB-S,QPSK -61=11518,V,2222,Auto,DVB-S,QPSK -62=11521,V,2222,Auto,DVB-S,QPSK -63=11524,V,2222,Auto,DVB-S,QPSK -64=11528,V,2960,Auto,DVB-S,QPSK -65=11540,H,3600,56,DVB-S,QPSK -66=11545,H,4425,56,DVB-S,QPSK -67=11550,H,2110,56,S2,QPSK -68=11558,V,30000,23,DVB-S,QPSK -69=11566,H,3200,56,S2,QPSK -70=11573,H,1800,56,DVB-S,QPSK -71=11574,V,2222,56,DVB-S,QPSK -72=11577,H,2222,Auto,DVB-S,QPSK -73=11594,V,25000,23,DVB-S,QPSK -74=11596,H,22000,34,S2,QPSK -75=11622,V,2960,56,DVB-S,QPSK -76=11624,V,2222,56,DVB-S,QPSK -77=11624,H,2960,56,DVB-S,QPSK -78=11626,V,2300,56,DVB-S,QPSK -79=11627,H,4444,56,DVB-S,QPSK -80=11633,V,2222,78,DVB-S,QPSK -81=11637,V,2222,56,DVB-S,QPSK -82=11642,V,2220,56,DVB-S,QPSK -83=11647,H,3333,Auto,DVB-S,QPSK -84=11649,V,2960,Auto,DVB-S,QPSK -85=11651,H,2222,56,DVB-S,QPSK -86=11652,V,2222,56,DVB-S,QPSK -87=11656,V,3200,56,DVB-S,QPSK -88=11660,H,7500,34,S2,8PSK -89=11667,H,2960,56,DVB-S,QPSK -90=11675,H,2222,Auto,DVB-S,QPSK -91=11676,V,24444,34,DVB-S,QPSK -92=11680,H,1666,23,DVB-S,QPSK -93=11683,H,2222,56,DVB-S,QPSK -94=11691,H,2222,56,DVB-S,QPSK -95=11691,V,2222,56,DVB-S,QPSK -96=11727,V,27000,56,DVB-S,QPSK -97=11746,H,27500,56,DVB-S,QPSK -98=11775,V,27500,34,S2,8PSK -99=11794,H,27500,56,DVB-S,QPSK -100=11797,V,8800,56,DVB-S,QPSK -101=11807,V,8000,34,S2,8PSK -102=11821,H,17000,34,DVB-S,QPSK -103=11824,V,8000,34,DVB-S,QPSK -104=11853,H,25000,23,S2,8PSK -105=11855,V,30000,34,DVB-S,QPSK -106=11880,H,20000,23,S2,8PSK -107=11883,V,4800,56,DVB-S,QPSK -108=11916,V,30000,34,DVB-S,QPSK -109=11958,V,27500,56,DVB-S,QPSK -110=11977,H,27500,56,DVB-S,QPSK -111=11986,V,9600,56,DVB-S,QPSK -112=11999,V,11666,23,S2,8PSK -113=12009,V,4444,34,DVB-S,QPSK -114=12015,H,27500,56,DVB-S,QPSK -115=12034,V,27500,56,DVB-S,QPSK -116=12054,H,27500,56,DVB-S,QPSK -117=12073,V,27500,56,S2,8PSK -118=12079,H,6400,56,DVB-S,QPSK -119=12086,H,2960,56,DVB-S,QPSK -120=12090,H,2960,56,DVB-S,QPSK -121=12095,H,4800,56,DVB-S,QPSK -122=12103,H,8333,23,S2,8PSK -123=12123,H,15000,34,S2,8PSK -124=12130,V,27500,56,DVB-S,QPSK -125=12188,V,27500,56,DVB-S,QPSK -126=12196,H,9600,23,S2,8PSK -127=12209,H,10000,34,S2,8PSK -128=12213,V,5833,23,S2,8PSK -129=12219,H,6500,34,DVB-S,QPSK -130=12220,V,4800,56,DVB-S,QPSK -131=12228,V,8400,56,DVB-S,QPSK -132=12238,V,7200,56,DVB-S,QPSK -133=12245,H,27500,56,S2,8PSK -134=12265,V,27500,56,DVB-S,QPSK -135=12303,V,27500,56,DVB-S,QPSK -136=12329,H,6666,23,S2,8PSK -137=12336,H,5520,34,DVB-S,QPSK -138=12344,V,30000,34,DVB-S,QPSK -139=12346,H,9600,34,DVB-S,QPSK -140=12356,H,7100,23,S2,8PSK -141=12379,H,30000,34,DVB-S,QPSK -142=12380,V,27500,34,DVB-S,QPSK -143=12422,V,27500,34,DVB-S,QPSK -144=12422,H,30000,34,DVB-S,QPSK -145=12442,H,2963,78,DVB-S,QPSK -146=12447,H,2400,34,DVB-S,QPSK -147=12455,H,10800,23,S2,8PSK -148=12458,V,30000,34,DVB-S,QPSK -149=12509,H,3333,56,DVB-S,QPSK -150=12513,H,2215,56,DVB-S,QPSK -151=12516,H,2222,56,DVB-S,QPSK -152=12519,H,2222,56,DVB-S,QPSK -153=12524,V,22500,23,DVB-S,QPSK -154=12540,H,30000,34,DVB-S,QPSK -155=12559,V,27500,23,DVB-S,QPSK -156=12562,H,2960,56,S2,8PSK -157=12576,H,2090,78,DVB-S,QPSK -158=12578,H,2222,56,DVB-S,QPSK -159=12588,V,22500,34,DVB-S,QPSK -160=12588,H,3200,56,S2,8PSK -161=12595,H,4800,56,S2,8PSK -162=12605,V,27500,23,DVB-S,QPSK -163=12606,H,2222,78,DVB-S,QPSK -164=12611,H,5924,56,DVB-S,QPSK -165=12617,H,3333,56,DVB-S,QPSK -166=12620,V,2244,56,DVB-S,QPSK -167=12621,H,3333,56,DVB-S,QPSK -168=12624,V,2170,56,DVB-S,QPSK -169=12627,V,2278,78,DVB-S,QPSK -170=12632,V,2220,78,DVB-S,8PSK -171=12635,V,2240,56,S2,8PSK -172=12639,V,5000,56,S2,8PSK -173=12641,H,30000,23,DVB-S,QPSK -174=12646,V,4000,56,S2,8PSK -175=12651,V,5000,34,S2,8PSK -176=12658,V,2222,56,DVB-S,QPSK -177=12673,V,9600,34,DVB-S,QPSK -178=12685,H,30000,34,DVB-S,QPSK -179=12687,V,11400,34,DVB-S,QPSK -180=12699,V,7700,56,S2,QPSK -181=12711,V,2278,78,DVB-S,QPSK -182=12714,V,2960,56,DVB-S,QPSK -183=12718,V,2278,56,DVB-S,QPSK -184=12721,V,2278,78,DVB-S,QPSK -185=12723,V,2222,56,DVB-S,QPSK -186=12728,V,2222,56,DVB-S,QPSK -187=12729,H,27500,23,DVB-S,QPSK -188=12731,V,2222,56,DVB-S,QPSK -189=12746,V,2222,56,DVB-S,QPSK -190=18669,H,22500,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0435.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0435.ini deleted file mode 100644 index a7e5fdb799..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0435.ini +++ /dev/null @@ -1,35 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0435 -2=Astra 2G (43.5E) - -[DVB] -0=26 -1=10964,H,22000,56,DVB-S,QPSK -2=10994,H,22000,56,DVB-S,QPSK -3=11023,H,23000,23,S2,8PSK -4=11053,H,23000,34,S2,8PSK -5=11068,V,23000,23,S2,8PSK -6=11082,H,22000,56,DVB-S,QPSK -7=11097,V,23000,23,S2,8PSK -8=11112,H,22000,56,DVB-S,QPSK -9=11126,V,22000,56,DVB-S,QPSK -10=11141,H,22000,56,DVB-S,QPSK -11=11171,H,22000,56,DVB-S,QPSK -12=11224,V,27500,23,DVB-S,QPSK -13=11224,H,27500,23,DVB-S,QPSK -14=11264,V,27500,23,DVB-S,QPSK -15=11264,H,27500,23,DVB-S,QPSK -16=11464,H,22000,56,DVB-S,QPSK -17=11479,V,22000,56,DVB-S,QPSK -18=11509,V,22000,56,DVB-S,QPSK -19=11523,H,22000,56,DVB-S,QPSK -20=11538,V,23000,23,S2,8PSK -21=11553,H,22000,56,DVB-S,QPSK -22=11568,V,22000,56,DVB-S,QPSK -23=11582,H,22000,56,DVB-S,QPSK -24=11597,V,22000,56,DVB-S,QPSK -25=11671,H,22000,56,DVB-S,QPSK -26=11686,V,22000,56,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0450.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0450.ini deleted file mode 100644 index 0737fb4f18..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0450.ini +++ /dev/null @@ -1,23 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0450 -2=Intelsat 12 (45.0E) - -[DVB] -0=14 -1=11451,H,3254,78,DVB-S,QPSK -2=11468,V,27689,56,DVB-S,8PSK -3=11493,V,2960,78,DVB-S,QPSK -4=11506,V,1808,34,DVB-S,QPSK -5=11509,V,10000,23,S2,8PSK -6=11517,V,2960,78,DVB-S,QPSK -7=11523,V,5787,34,DVB-S,QPSK -8=11550,V,28800,35,S2,8PSK -9=11591,V,27689,56,DVB-S,8PSK -10=11632,V,27689,56,DVB-S,8PSK -11=11673,V,27689,56,DVB-S,8PSK -12=12518,H,14236,34,S2,8PSK -13=12568,V,8335,23,S2,8PSK -14=12580,H,6600,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0460.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0460.ini deleted file mode 100644 index 7611715ec8..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0460.ini +++ /dev/null @@ -1,49 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0460 -2=AzerSpace 1/Africasat 1a (46.0E) - -[DVB] -0=40 -1=3730,V,30000,34,S2,8PSK -2=3753,V,30000,23,S2,8PSK -3=3833,V,1077,23,S2,8PSK -4=3953,V,1180,34,S2,8PSK -5=4016,V,1200,34,S2,8PSK -6=4021,V,1180,34,S2,8PSK -7=4024,V,1190,34,S2,8PSK -8=4026,V,1200,34,S2,8PSK -9=4028,V,1166,34,S2,8PSK -10=4105,H,1320,56,S2,QPSK -11=4145,H,6666,23,DVB-S,QPSK -12=10961,V,7500,23,S2,8PSK -13=10968,V,5000,23,S2,8PSK -14=10973,H,2221,56,DVB-S,QPSK -15=10979,V,7500,56,S2,8PSK -16=10987,V,7500,56,S2,8PSK -17=10988,H,2400,56,S2,8PSK -18=10991,H,1536,56,DVB-S,QPSK -19=10999,V,3570,56,DVB-S,QPSK -20=11002,V,2222,56,DVB-S,QPSK -21=11005,V,2222,56,DVB-S,QPSK -22=11008,V,2222,56,DVB-S,QPSK -23=11011,V,2222,56,DVB-S,QPSK -24=11014,V,2222,56,DVB-S,QPSK -25=11015,H,30000,56,DVB-S,QPSK -26=11024,V,12700,56,DVB-S,QPSK -27=11038,H,3333,56,S2,8PSK -28=11039,V,3700,78,DVB-S,QPSK -29=11047,V,10000,34,DVB-S,QPSK -30=11058,H,7500,56,DVB-S,QPSK -31=11061,V,3333,34,DVB-S,QPSK -32=11067,H,7500,56,S2,8PSK -33=11073,H,3333,78,DVB-S,QPSK -34=11077,V,2500,56,S2,8PSK -35=11095,H,27500,56,DVB-S,QPSK -36=11110,V,2222,56,DVB-S,QPSK -37=11134,H,27500,56,DVB-S,QPSK -38=11135,V,28800,56,S2,8PSK -39=11175,V,28800,56,S2,8PSK -40=11175,H,27500,56,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0475.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0475.ini deleted file mode 100644 index bc671123fe..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0475.ini +++ /dev/null @@ -1,31 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0475 -2=Intelsat 10 (47.5E) - -[DVB] -0=22 -1=11475,V,2700,34,DVB-S,QPSK -2=11531,V,2755,34,DVB-S,QPSK -3=11548,V,2000,56,S2,QPSK -4=11606,V,2200,56,S2,8PSK -5=11639,V,1900,78,DVB-S,QPSK -6=11642,V,1480,34,S2,8PSK -7=11644,V,1450,56,DVB-S,QPSK -8=11647,V,3200,34,DVB-S,QPSK -9=11654,V,1450,56,DVB-S,QPSK -10=11665,V,2000,34,DVB-S,QPSK -11=11670,V,2123,34,DVB-S,QPSK -12=11675,V,1900,78,DVB-S,QPSK -13=12517,H,6660,78,DVB-S,QPSK -14=12532,V,14395,34,S2,8PSK -15=12548,H,6111,Auto,DVB-S,QPSK -16=12564,H,3750,56,S2,QPSK -17=12574,H,6111,34,DVB-S,QPSK -18=12602,V,10112,12,S2,QPSK -19=12673,H,7200,34,DVB-S,QPSK -20=12691,H,14400,34,S2,8PSK -21=12712,H,13200,34,DVB-S,QPSK -22=12721,V,10000,Auto,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0480.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0480.ini deleted file mode 100644 index fa955de652..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0480.ini +++ /dev/null @@ -1,10 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0480 -2=Afghansat 1 (48.0E) - -[DVB] -0=1 -1=11293,V,27500,56,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0490.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0490.ini deleted file mode 100644 index a85ad11b97..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0490.ini +++ /dev/null @@ -1,30 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0490 -2=Yamal 202 (49.0E) - -[DVB] -0=21 -1=3635,H,3230,34,DVB-S,QPSK -2=3640,H,3215,34,DVB-S,QPSK -3=3644,H,3230,34,DVB-S,QPSK -4=3660,H,3333,34,DVB-S,QPSK -5=3714,H,8888,34,DVB-S,QPSK -6=3735,V,3219,34,DVB-S,QPSK -7=3743,H,34075,34,DVB-S,QPSK -8=3752,V,3230,34,DVB-S,QPSK -9=3781,H,1900,34,DVB-S,QPSK -10=3793,H,1800,34,DVB-S,QPSK -11=3826,H,2960,34,DVB-S,QPSK -12=3832,V,1500,34,DVB-S,QPSK -13=3866,H,3310,Auto,DVB-S,QPSK -14=3908,H,1356,12,DVB-S,QPSK -15=3936,H,3230,34,DVB-S,QPSK -16=3941,H,4000,34,DVB-S,QPSK -17=3950,H,3500,34,S2,8PSK -18=3961,H,8570,34,DVB-S,QPSK -19=3970,H,4275,34,DVB-S,QPSK -20=3976,H,4285,34,DVB-S,QPSK -21=4078,H,14400,89,S2,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0505.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0505.ini deleted file mode 100644 index 5bbfe62977..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0505.ini +++ /dev/null @@ -1,11 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0505 -2=NSS 5 (50.5E) - -[DVB] -0=2 -1=4172,V,13330,34,DVB-S,QPSK -2=12710,V,26670,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0510.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0510.ini deleted file mode 100644 index 355d0e5b5a..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0510.ini +++ /dev/null @@ -1,28 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0510 -2=Express AM6 (51.0E) - -[DVB] -0=19 -1=3675,V,33483,78,DVB-S,QPSK -2=3708,H,4280,78,DVB-S,QPSK -3=10974,H,8150,34,DVB-S,QPSK -4=10990,V,3111,34,DVB-S,QPSK -5=10995,H,3255,34,DVB-S,QPSK -6=11001,H,4160,56,S2,QPSK -7=11044,V,44950,34,DVB-S,QPSK -8=11471,H,2400,34,DVB-S,QPSK -9=11474,H,4666,34,DVB-S,QPSK -10=11504,H,2200,56,DVB-S,QPSK -11=11506,H,1481,34,DVB-S,QPSK -12=11520,H,4800,56,DVB-S,QPSK -13=12511,V,2170,34,DVB-S,QPSK -14=12528,H,2100,34,S2,8PSK -15=12545,H,3000,23,DVB-S,QPSK -16=12572,H,1320,78,DVB-S,QPSK -17=12594,V,2050,34,DVB-S,QPSK -18=12594,H,2050,34,DVB-S,QPSK -19=12631,V,3000,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0520.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0520.ini deleted file mode 100644 index 8631604aa7..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0520.ini +++ /dev/null @@ -1,11 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0520 -2=TurkmenÄlem52E/MonacoSat (52.0E) - -[DVB] -0=2 -1=12265,V,27500,23,S2,QPSK -2=12303,V,27500,23,S2,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0525.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0525.ini deleted file mode 100644 index 2eb001a81f..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0525.ini +++ /dev/null @@ -1,24 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0525 -2=Y1A (52.5E) - -[DVB] -0=15 -1=11747,H,27500,89,S2,QPSK -2=11766,V,27500,56,DVB-S,QPSK -3=11785,H,27500,56,DVB-S,QPSK -4=11823,H,27500,89,S2,QPSK -5=11862,H,27500,56,DVB-S,QPSK -6=11881,V,27500,56,DVB-S,QPSK -7=11900,H,27500,56,DVB-S,QPSK -8=11938,H,27500,56,DVB-S,QPSK -9=11958,V,27500,78,DVB-S,QPSK -10=11977,H,27500,89,S2,QPSK -11=11996,V,27500,56,DVB-S,QPSK -12=12015,H,27500,56,DVB-S,QPSK -13=12034,V,27500,23,S2,8PSK -14=12073,V,27500,78,DVB-S,QPSK -15=12092,H,27500,89,S2,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0530.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0530.ini deleted file mode 100644 index 965c41f150..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0530.ini +++ /dev/null @@ -1,28 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0530 -2=Express AM6 (53.0E) - -[DVB] -0=19 -1=3675,V,33483,78,DVB-S,QPSK -2=3708,H,4280,78,DVB-S,QPSK -3=10974,H,8150,34,DVB-S,QPSK -4=10990,V,3111,34,DVB-S,QPSK -5=10995,H,3255,34,DVB-S,QPSK -6=11001,H,4160,56,S2,QPSK -7=11044,V,44950,34,DVB-S,QPSK -8=11471,H,2400,34,DVB-S,QPSK -9=11474,H,4666,34,DVB-S,QPSK -10=11504,H,2200,56,DVB-S,QPSK -11=11506,H,1481,34,DVB-S,QPSK -12=11520,H,4800,56,DVB-S,QPSK -13=12511,V,2170,34,DVB-S,QPSK -14=12528,H,2100,34,S2,8PSK -15=12545,H,3000,23,DVB-S,QPSK -16=12572,H,1320,78,DVB-S,QPSK -17=12594,H,2050,34,DVB-S,QPSK -18=12594,V,2050,34,DVB-S,QPSK -19=12631,V,3000,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0549.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0549.ini deleted file mode 100644 index b2fdf5a5c8..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0549.ini +++ /dev/null @@ -1,37 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0549 -2=G-Sat 8/Yamal 402 (54.9E) - -[DVB] -0=28 -1=10845,V,32727,Auto,S2,QPSK -2=10962,V,5926,34,DVB-S,QPSK -3=10968,V,2951,Auto,DVB-S,QPSK -4=10976,H,2200,35,S2,8PSK -5=11008,V,3600,34,S2,QPSK -6=11045,V,40000,23,DVB-S,QPSK -7=11156,V,22000,12,S2,QPSK -8=11186,V,6642,34,S2,8PSK -9=11215,H,13000,12,S2,QPSK -10=11225,V,30000,89,S2,8PSK -11=11232,H,17000,34,S2,QPSK -12=11265,V,30000,34,DVB-S,QPSK -13=11305,V,10000,34,S2,QPSK -14=11345,V,30000,34,S2,8PSK -15=11425,V,30000,12,S2,QPSK -16=11486,V,8000,12,S2,QPSK -17=11531,H,3015,34,DVB-S,QPSK -18=11554,V,3800,56,DVB-S,QPSK -19=11686,H,3333,23,DVB-S,QPSK -20=12522,V,27500,34,S2,8PSK -21=12531,H,2500,56,S2,QPSK -22=12604,V,16080,56,DVB-S,QPSK -23=12630,H,3333,34,DVB-S,QPSK -24=12674,V,14940,34,S2,8PSK -25=12685,H,30000,34,S2,QPSK -26=12694,V,15282,34,S2,8PSK -27=12720,H,30000,34,S2,QPSK -28=12732,V,9557,23,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0560.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0560.ini deleted file mode 100644 index bed5b87b5a..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0560.ini +++ /dev/null @@ -1,31 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0560 -2=Express AT1 (56.0E) - -[DVB] -0=22 -1=11727,H,27500,34,S2,8PSK -2=11881,H,27500,34,S2,8PSK -3=11919,H,27500,34,S2,8PSK -4=11958,H,27500,34,S2,8PSK -5=11996,H,27500,34,S2,8PSK -6=12034,H,27500,34,S2,8PSK -7=12073,H,27500,34,S2,8PSK -8=12111,H,27500,34,S2,8PSK -9=12130,V,27500,34,S2,8PSK -10=12149,H,27500,34,DVB-S,QPSK -11=12169,V,27500,56,S2,8PSK -12=12188,H,27500,34,DVB-S,QPSK -13=12226,H,27500,34,DVB-S,QPSK -14=12245,V,27500,56,S2,8PSK -15=12265,H,27500,34,S2,8PSK -16=12284,V,27500,34,DVB-S,QPSK -17=12303,H,27500,34,S2,8PSK -18=12322,V,27500,56,S2,8PSK -19=12341,H,27500,34,S2,8PSK -20=12399,V,27500,56,S2,8PSK -21=12437,V,27500,56,DVB-S,QPSK -22=12476,V,27500,56,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0570.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0570.ini deleted file mode 100644 index 27df363114..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0570.ini +++ /dev/null @@ -1,67 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0570 -2=NSS 12 (57.0E) - -[DVB] -0=58 -1=3632,V,2625,23,DVB-S,QPSK -2=3636,V,1762,23,DVB-S,QPSK -3=3661,H,8882,34,DVB-S,QPSK -4=3800,V,20000,35,S2,QPSK -5=3912,V,2222,23,DVB-S,QPSK -6=4026,H,2963,34,DVB-S,QPSK -7=4031,H,3689,34,DVB-S,QPSK -8=4055,V,26000,34,DVB-S,QPSK -9=4061,H,3500,12,DVB-S,QPSK -10=4065,H,3500,12,DVB-S,QPSK -11=4069,V,3500,12,DVB-S,QPSK -12=4071,H,3500,12,DVB-S,QPSK -13=4074,V,3500,12,DVB-S,QPSK -14=4079,H,2000,78,DVB-S,QPSK -15=4082,H,2000,12,DVB-S,QPSK -16=4147,V,9246,56,S2,QPSK -17=11007,H,4883,12,DVB-S,QPSK -18=11039,V,3100,34,DVB-S,QPSK -19=11042,H,2600,34,DVB-S,QPSK -20=11051,H,1230,34,DVB-S,QPSK -21=11105,H,45000,45,S2,QPSK -22=11129,V,2200,34,DVB-S,QPSK -23=11134,V,2200,34,S2,QPSK -24=11140,V,2200,56,S2,8PSK -25=11181,V,2400,56,S2,8PSK -26=11184,V,1211,34,S2,QPSK -27=11186,V,2290,34,DVB-S,QPSK -28=11189,V,1775,34,S2,QPSK -29=11191,V,1452,34,S2,QPSK -30=11460,H,3500,23,DVB-S,QPSK -31=11461,H,3500,23,DVB-S,QPSK -32=11464,H,3100,34,DVB-S,QPSK -33=11469,H,3100,34,DVB-S,QPSK -34=11473,H,3100,34,DVB-S,QPSK -35=11499,H,4090,23,DVB-S,QPSK -36=11503,H,2880,12,DVB-S,QPSK -37=11509,H,3333,23,DVB-S,QPSK -38=11510,H,3330,Auto,DVB-S,QPSK -39=11520,H,2222,56,S2,8PSK -40=11554,H,3300,34,S2,QPSK -41=11598,H,4200,78,DVB-S,QPSK -42=11604,H,4200,78,DVB-S,QPSK -43=11605,H,45000,45,S2,QPSK -44=11606,V,1852,56,S2,8PSK -45=11645,V,3333,34,DVB-S,QPSK -46=12292,V,2500,34,DVB-S,QPSK -47=12306,V,2000,34,DVB-S,QPSK -48=12313,V,2123,56,DVB-S,QPSK -49=12316,V,2123,34,DVB-S,QPSK -50=12413,V,1600,34,DVB-S,QPSK -51=12429,V,3500,34,S2,8PSK -52=12554,V,1800,34,DVB-S,QPSK -53=12556,V,1600,34,DVB-S,QPSK -54=12559,V,1600,34,DVB-S,QPSK -55=12571,V,2500,34,DVB-S,QPSK -56=12579,V,4000,34,DVB-S,QPSK -57=12621,V,2000,34,DVB-S,QPSK -58=12625,V,2200,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0600.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0600.ini deleted file mode 100644 index 1a711cf263..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0600.ini +++ /dev/null @@ -1,48 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0600 -2=Intelsat 904 (60.0E) - -[DVB] -0=39 -1=3676,H,3617,34,DVB-S,QPSK -2=3698,V,1666,56,S2,QPSK -3=3718,H,13333,78,DVB-S,QPSK -4=3730,H,2815,34,DVB-S,QPSK -5=3740,H,10750,56,DVB-S,QPSK -6=3744,V,18315,56,S2,QPSK -7=3756,V,2315,34,DVB-S,QPSK -8=3759,V,2315,34,DVB-S,QPSK -9=3765,V,5000,34,DVB-S,QPSK -10=3768,V,2067,34,S2,8PSK -11=3775,V,9361,12,S2,8PSK -12=3964,V,5000,34,DVB-S,QPSK -13=4168,V,14240,34,S2,8PSK -14=4185,V,2895,34,DVB-S,QPSK -15=4194,H,1594,Auto,DVB-S,QPSK -16=4194,V,6111,34,DVB-S,QPSK -17=10957,V,3700,34,DVB-S,QPSK -18=10962,V,3730,34,DVB-S,QPSK -19=10964,H,3327,34,DVB-S,QPSK -20=10967,V,2573,78,DVB-S,QPSK -21=10973,V,3330,34,DVB-S,QPSK -22=10977,V,3225,34,DVB-S,QPSK -23=11020,V,3700,34,DVB-S,QPSK -24=11460,V,3730,34,DVB-S,QPSK -25=11464,V,1000,78,DVB-S,QPSK -26=11473,V,1324,56,S2,8PSK -27=11475,V,1324,56,S2,8PSK -28=11477,V,1324,56,S2,8PSK -29=11481,V,2645,34,S2,8PSK -30=11484,V,2645,78,DVB-S,QPSK -31=11490,V,5788,34,DVB-S,QPSK -32=11497,V,4284,78,DVB-S,QPSK -33=11502,V,4284,78,DVB-S,QPSK -34=11555,H,30000,34,S2,8PSK -35=11567,V,10000,78,DVB-S,QPSK -36=11595,H,29270,56,DVB-S,QPSK -37=11622,V,8527,34,S2,8PSK -38=11635,H,30000,34,S2,8PSK -39=11675,H,30000,34,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0620.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0620.ini deleted file mode 100644 index ae5cf34bf1..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0620.ini +++ /dev/null @@ -1,70 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0620 -2=Intelsat 902 (62.0E) - -[DVB] -0=61 -1=3715,H,6111,34,DVB-S,QPSK -2=3727,V,34286,89,S2,8PSK -3=3763,V,34286,89,S2,8PSK -4=3807,V,34286,89,S2,8PSK -5=3814,H,4213,35,S2,QPSK -6=3843,V,34286,89,S2,8PSK -7=3853,H,1445,Auto,DVB-S,QPSK -8=3857,H,2465,Auto,DVB-S,QPSK -9=3860,H,3100,34,DVB-S,QPSK -10=3967,H,9326,Auto,DVB-S,QPSK -11=3992,H,26000,56,DVB-S,QPSK -12=4047,V,4444,12,DVB-S,QPSK -13=4055,V,34286,89,S2,8PSK -14=4107,H,12780,78,DVB-S,QPSK -15=10952,V,2700,78,DVB-S,QPSK -16=10961,V,3000,78,DVB-S,QPSK -17=10967,V,3000,78,DVB-S,QPSK -18=10975,V,3200,34,S2,8PSK -19=10978,V,1591,56,S2,8PSK -20=10982,V,4800,34,S2,8PSK -21=10986,V,1600,34,S2,8PSK -22=10989,V,3200,34,S2,8PSK -23=10992,V,1600,34,S2,8PSK -24=10996,V,4800,34,S2,8PSK -25=10998,H,3333,34,DVB-S,QPSK -26=11003,V,4800,34,S2,8PSK -27=11008,V,3200,34,S2,8PSK -28=11011,V,1600,34,S2,8PSK -29=11015,V,4800,34,S2,8PSK -30=11019,V,1600,34,S2,8PSK -31=11022,V,3200,34,S2,8PSK -32=11025,V,1600,34,S2,8PSK -33=11029,V,4820,34,S2,8PSK -34=11036,H,3000,34,DVB-S,QPSK -35=11043,H,2300,78,DVB-S,QPSK -36=11058,V,6111,34,DVB-S,QPSK -37=11063,H,3100,34,DVB-S,QPSK -38=11074,H,2300,78,DVB-S,QPSK -39=11082,H,3333,34,DVB-S,QPSK -40=11085,H,2700,78,DVB-S,QPSK -41=11088,H,2800,78,DVB-S,QPSK -42=11091,H,3400,34,DVB-S,QPSK -43=11122,H,2600,34,S2,8PSK -44=11165,H,2300,78,DVB-S,QPSK -45=11168,H,2500,78,DVB-S,QPSK -46=11172,H,2190,78,DVB-S,QPSK -47=11467,H,12500,34,S2,8PSK -48=11509,H,7500,34,S2,8PSK -49=11513,V,2300,34,S2,8PSK -50=11518,H,7500,34,S2,8PSK -51=11522,V,2200,78,DVB-S,QPSK -52=11555,V,30000,23,S2,8PSK -53=11555,H,28900,34,S2,8PSK -54=11587,V,5632,34,DVB-S,QPSK -55=11595,H,31003,78,DVB-S,QPSK -56=11625,V,1550,78,DVB-S,QPSK -57=11662,H,7500,56,S2,QPSK -58=11674,H,2200,78,DVB-S,QPSK -59=11680,H,10000,34,S2,8PSK -60=11683,V,15000,56,S2,8PSK -61=11688,H,7500,34,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0642.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0642.ini deleted file mode 100644 index 324d99e83c..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0642.ini +++ /dev/null @@ -1,28 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0642 -2=Intelsat 906 (64.2E) - -[DVB] -0=19 -1=3644,V,8545,23,DVB-S,QPSK -2=3654,V,5632,34,DVB-S,QPSK -3=3721,V,4882,23,DVB-S,QPSK -4=3760,H,2790,78,DVB-S,QPSK -5=3765,V,1413,34,S2,QPSK -6=3884,H,4900,12,DVB-S,QPSK -7=3893,H,3072,12,DVB-S,QPSK -8=3900,H,3800,12,DVB-S,QPSK -9=4039,H,2034,23,DVB-S,QPSK -10=4044,H,2848,Auto,DVB-S,QPSK -11=4066,H,2848,23,DVB-S,QPSK -12=4094,H,3680,23,DVB-S,QPSK -13=4185,V,2532,34,DVB-S,QPSK -14=10990,V,53000,34,S2,QPSK -15=11127,V,4000,34,DVB-S,QPSK -16=11134,V,4000,34,DVB-S,QPSK -17=11140,V,4000,34,DVB-S,QPSK -18=11146,V,4000,34,DVB-S,QPSK -19=11152,V,4000,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0650.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0650.ini deleted file mode 100644 index 81021a0b21..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0650.ini +++ /dev/null @@ -1,15 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0650 -2=Amos 4 (65.0E) - -[DVB] -0=6 -1=10736,V,45000,23,S2,QPSK -2=10790,V,45000,23,S2,QPSK -3=10861,V,45000,12,S2,QPSK -4=10915,V,45000,12,S2,QPSK -5=11236,V,45000,12,S2,QPSK -6=11290,V,45000,12,S2,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0660.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0660.ini deleted file mode 100644 index a118dfa389..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0660.ini +++ /dev/null @@ -1,39 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0660 -2=Intelsat 17 (66.0E) - -[DVB] -0=30 -1=3845,H,30000,34,S2,8PSK -2=3845,V,27692,78,DVB-S,QPSK -3=3876,H,14300,34,S2,8PSK -4=3885,V,30000,34,S2,8PSK -5=3894,H,13840,56,S2,8PSK -6=3914,H,11200,34,S2,8PSK -7=3925,V,30000,34,S2,8PSK -8=3966,H,14400,23,S2,8PSK -9=3968,V,8800,23,S2,8PSK -10=3984,H,14400,23,S2,8PSK -11=4006,H,14400,23,S2,8PSK -12=4015,V,30000,34,S2,8PSK -13=4024,H,14400,23,S2,8PSK -14=4121,H,7200,34,S2,QPSK -15=10962,H,3100,Auto,DVB-S,QPSK -16=11011,H,2811,34,DVB-S,QPSK -17=11498,H,2400,Auto,DVB-S,QPSK -18=11505,H,13271,34,DVB-S,QPSK -19=11515,H,1735,Auto,DVB-S,QPSK -20=11519,H,3255,34,DVB-S,QPSK -21=11527,H,3094,Auto,DVB-S,QPSK -22=11556,H,20129,12,S2,QPSK -23=12602,H,2000,56,S2,QPSK -24=12605,H,1025,78,DVB-S,QPSK -25=12613,H,3965,78,DVB-S,QPSK -26=12648,H,3900,78,DVB-S,QPSK -27=12652,H,3900,78,DVB-S,QPSK -28=12687,H,3400,78,DVB-S,QPSK -29=12703,H,3400,78,DVB-S,QPSK -30=12708,H,3400,78,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0685.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0685.ini deleted file mode 100644 index 7c2cab6818..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0685.ini +++ /dev/null @@ -1,110 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0685 -2=Intelsat 20 (68.5E) - -[DVB] -0=101 -1=3708,V,7900,34,S2,8PSK -2=3712,H,14454,34,S2,QPSK -3=3723,V,9600,34,S2,8PSK -4=3732,V,7200,34,S2,8PSK -5=3739,H,26590,12,DVB-S,QPSK -6=3742,V,7000,34,S2,8PSK -7=3752,V,9300,34,S2,8PSK -8=3765,V,2950,56,DVB-S,QPSK -9=3774,V,2944,34,DVB-S,QPSK -10=3777,V,2940,34,DVB-S,QPSK -11=3782,V,2965,34,DVB-S,QPSK -12=3790,H,7200,34,S2,8PSK -13=3790,V,1681,34,S2,QPSK -14=3796,V,7300,34,S2,8PSK -15=3802,H,10000,34,DVB-S,QPSK -16=3802,V,1954,34,DVB-S,QPSK -17=3810,H,3312,23,DVB-S,QPSK -18=3828,V,7200,23,S2,8PSK -19=3836,V,7200,23,S2,8PSK -20=3838,H,16296,34,DVB-S,QPSK -21=3845,V,6111,34,DVB-S,QPSK -22=3854,V,7500,34,DVB-S,QPSK -23=3863,V,6111,34,DVB-S,QPSK -24=3867,V,9875,34,S2,8PSK -25=3873,V,7200,34,DVB-S,QPSK -26=3887,V,2960,34,DVB-S,QPSK -27=3891,V,1954,56,DVB-S,QPSK -28=3900,H,22222,56,DVB-S,QPSK -29=3900,V,10370,34,DVB-S,QPSK -30=3913,V,6510,34,DVB-S,QPSK -31=3919,H,1600,56,S2,QPSK -32=3922,H,3200,56,S2,QPSK -33=3922,V,7000,56,S2,QPSK -34=3930,H,9600,56,S2,QPSK -35=3940,V,7200,34,S2,QPSK -36=3974,H,19500,34,DVB-S,QPSK -37=3974,V,19850,34,DVB-S,QPSK -38=3994,H,4000,23,DVB-S,QPSK -39=3996,V,6666,34,DVB-S,QPSK -40=4000,H,6500,34,DVB-S,QPSK -41=4003,V,7200,34,S2,8PSK -42=4006,H,2990,34,DVB-S,QPSK -43=4013,H,7200,34,S2,8PSK -44=4013,V,6111,34,DVB-S,QPSK -45=4034,H,20500,23,DVB-S,QPSK -46=4036,V,21600,56,S2,QPSK -47=4054,V,4400,34,DVB-S,QPSK -48=4059,V,3529,34,DVB-S,QPSK -49=4064,H,19850,78,DVB-S,QPSK -50=4064,V,4400,34,DVB-S,QPSK -51=4070,V,4340,34,DVB-S,QPSK -52=4076,V,3600,34,S2,8PSK -53=4085,V,7020,34,DVB-S,QPSK -54=4090,H,14368,34,S2,8PSK -55=4092,V,2963,34,DVB-S,QPSK -56=4103,H,5720,34,DVB-S,QPSK -57=4103,V,7800,34,S2,8PSK -58=4117,H,3333,23,DVB-S,QPSK -59=4118,V,8800,Auto,S2,8PSK -60=4130,H,6400,34,S2,8PSK -61=4130,V,10369,34,DVB-S,QPSK -62=4150,H,15000,23,S2,8PSK -63=4155,V,22500,56,S2,8PSK -64=4163,H,7200,34,S2,QPSK -65=4184,V,21600,56,S2,8PSK -66=10970,V,30000,56,DVB-S,QPSK -67=10970,H,30000,56,DVB-S,QPSK -68=11010,V,30000,56,DVB-S,QPSK -69=11010,H,30000,56,DVB-S,QPSK -70=11014,V,3750,34,S2,8PSK -71=11050,V,30000,23,S2,8PSK -72=11050,H,30000,56,DVB-S,QPSK -73=11090,V,30000,56,DVB-S,QPSK -74=11090,H,30000,56,DVB-S,QPSK -75=11092,H,1024,34,DVB-S,QPSK -76=11130,V,30000,56,DVB-S,QPSK -77=11130,H,30000,56,DVB-S,QPSK -78=11170,V,28800,56,S2,8PSK -79=11170,H,30000,56,DVB-S,QPSK -80=11474,H,30000,56,DVB-S,QPSK -81=11477,V,2170,34,DVB-S,QPSK -82=11514,V,28750,12,S2,QPSK -83=11514,H,30000,23,S2,8PSK -84=11554,V,30000,23,S2,8PSK -85=11554,H,30000,23,S2,8PSK -86=11594,V,27500,56,DVB-S,QPSK -87=11594,H,30000,56,DVB-S,QPSK -88=11634,V,30000,56,DVB-S,QPSK -89=11634,H,30000,23,S2,8PSK -90=11674,H,30000,56,DVB-S,QPSK -91=12522,V,27500,34,DVB-S,QPSK -92=12562,H,26657,23,DVB-S,QPSK -93=12567,V,3100,34,DVB-S,QPSK -94=12574,V,9700,12,DVB-S,QPSK -95=12602,V,26657,23,DVB-S,QPSK -96=12638,V,4690,34,DVB-S,QPSK -97=12657,V,4883,34,DVB-S,QPSK -98=12682,V,30000,23,DVB-S,QPSK -99=12682,H,26657,23,DVB-S,QPSK -100=12722,V,26657,12,DVB-S,QPSK -101=12722,H,26657,23,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0705.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0705.ini deleted file mode 100644 index 0af8237c99..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0705.ini +++ /dev/null @@ -1,20 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0705 -2=Eutelsat 70B (70.5E) - -[DVB] -0=11 -1=11092,V,1028,34,DVB-S,QPSK -2=11211,H,5110,12,DVB-S,QPSK -3=11213,V,16667,56,S2,8PSK -4=11255,V,4832,Auto,S2,QPSK -5=11294,H,44900,23,S2,QPSK -6=11356,V,44900,34,S2,QPSK -7=11477,V,2170,12,S2,QPSK -8=11490,V,2150,23,S2,QPSK -9=11520,V,3332,12,S2,QPSK -10=11555,H,3034,12,S2,QPSK -11=11565,H,11401,Auto,S2,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0721.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0721.ini deleted file mode 100644 index c25a6ecf5c..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0721.ini +++ /dev/null @@ -1,14 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0721 -2=Intelsat 22 (72.1E) - -[DVB] -0=5 -1=3724,H,16073,34,S2,8PSK -2=3735,H,2325,23,S2,8PSK -3=3754,H,7500,34,DVB-S,QPSK -4=4067,V,6111,34,DVB-S,QPSK -5=12541,H,2300,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0740.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0740.ini deleted file mode 100644 index 91356547c5..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0740.ini +++ /dev/null @@ -1,47 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0740 -2=Insat 3C/4CR (74.0E) - -[DVB] -0=38 -1=3740,V,2500,34,DVB-S,QPSK -2=3745,V,2500,34,DVB-S,QPSK -3=3752,V,2500,34,DVB-S,QPSK -4=3756,V,2500,34,DVB-S,QPSK -5=3776,V,3800,34,DVB-S,QPSK -6=3780,H,6250,34,DVB-S,QPSK -7=3781,V,2000,34,DVB-S,QPSK -8=3788,V,3800,34,DVB-S,QPSK -9=3796,V,3800,34,DVB-S,QPSK -10=3801,V,3800,34,DVB-S,QPSK -11=3868,H,2250,34,DVB-S,QPSK -12=3871,H,2250,34,DVB-S,QPSK -13=3874,H,1923,34,DVB-S,QPSK -14=3879,H,2200,34,DVB-S,QPSK -15=3884,H,2250,34,DVB-S,QPSK -16=3889,H,2250,34,DVB-S,QPSK -17=3895,H,2000,34,DVB-S,QPSK -18=3898,H,1500,34,DVB-S,QPSK -19=3901,H,1500,34,DVB-S,QPSK -20=4165,H,26000,12,DVB-S,QPSK -21=11513,H,3000,23,DVB-S,QPSK -22=11520,H,1700,34,DVB-S,QPSK -23=11523,H,1700,34,DVB-S,QPSK -24=11526,H,1700,34,DVB-S,QPSK -25=11578,H,5000,78,DVB-S,QPSK -26=11587,V,4000,78,DVB-S,QPSK -27=11592,V,2000,34,DVB-S,QPSK -28=11597,H,2000,34,DVB-S,QPSK -29=11599,V,1800,34,DVB-S,QPSK -30=11603,V,2000,34,DVB-S,QPSK -31=11607,V,2000,34,DVB-S,QPSK -32=11656,V,3333,34,DVB-S,QPSK -33=11667,V,3000,34,DVB-S,QPSK -34=11672,V,2500,34,DVB-S,QPSK -35=11680,H,1400,34,DVB-S,QPSK -36=11680,V,2965,34,DVB-S,QPSK -37=11683,H,1600,34,DVB-S,QPSK -38=11685,V,2900,78,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0750.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0750.ini deleted file mode 100644 index 8cdc075909..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0750.ini +++ /dev/null @@ -1,44 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0750 -2=ABS 2 (75.0E) - -[DVB] -0=35 -1=3545,H,1956,34,S2,QPSK -2=3590,V,1850,34,DVB-S,QPSK -3=3618,V,29000,56,S2,QPSK -4=3766,V,3000,34,DVB-S,QPSK -5=3770,V,2142,23,S2,8PSK -6=3772,V,2400,23,S2,QPSK -7=3779,V,7495,34,DVB-S,QPSK -8=3781,V,35342,23,S2,QPSK -9=3791,V,3703,23,DVB-S,QPSK -10=3846,V,2300,34,DVB-S,QPSK -11=3942,V,30000,23,S2,QPSK -12=3978,V,29000,56,S2,QPSK -13=4123,V,2800,56,S2,8PSK -14=10985,H,35007,34,S2,8PSK -15=11045,H,44922,56,DVB-S,QPSK -16=11105,H,43200,56,DVB-S,QPSK -17=11473,V,22500,34,S2,8PSK -18=11491,V,4650,23,S2,8PSK -19=11505,V,3400,78,DVB-S,QPSK -20=11531,V,22000,56,DVB-S,QPSK -21=11559,V,22000,56,DVB-S,QPSK -22=11605,V,43200,78,DVB-S,QPSK -23=11665,V,44922,56,DVB-S,QPSK -24=11733,V,43000,56,DVB-S,QPSK -25=11734,H,44000,23,DVB-S,QPSK -26=11790,H,44000,23,DVB-S,QPSK -27=11793,V,43200,56,DVB-S,QPSK -28=11853,V,45000,23,S2,8PSK -29=11913,V,45000,23,S2,8PSK -30=11973,V,45000,23,S2,8PSK -31=12033,V,45000,23,S2,8PSK -32=12093,V,45000,23,S2,8PSK -33=12153,V,45000,23,S2,8PSK -34=12153,H,41900,45,S2,QPSK -35=12524,H,30000,12,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0765.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0765.ini deleted file mode 100644 index 1a6195f9ae..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0765.ini +++ /dev/null @@ -1,85 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0765 -2=Apstar 7 (76.5E) - -[DVB] -0=76 -1=3629,H,1489,34,S2,QPSK -2=3638,H,1600,35,S2,8PSK -3=3685,V,3333,34,DVB-S,QPSK -4=3690,H,13000,34,S2,8PSK -5=3705,V,8888,23,S2,8PSK -6=3720,H,29620,34,S2,8PSK -7=3747,H,2500,34,DVB-S,QPSK -8=3753,H,2400,34,DVB-S,QPSK -9=3757,H,4440,34,S2,QPSK -10=3769,H,13333,56,DVB-S,QPSK -11=3780,V,30000,34,S2,8PSK -12=3787,H,4600,23,DVB-S,QPSK -13=3793,H,4443,34,DVB-S,QPSK -14=3805,H,4800,34,S2,8PSK -15=3812,H,2200,34,S2,8PSK -16=3815,H,3333,34,DVB-S,QPSK -17=3824,H,2400,34,DVB-S,QPSK -18=3832,V,6111,34,DVB-S,QPSK -19=3835,H,3256,34,DVB-S,QPSK -20=3840,H,3000,34,DVB-S,QPSK -21=3847,H,5357,78,DVB-S,QPSK -22=3847,V,7857,56,S2,QPSK -23=3852,H,3000,34,DVB-S,QPSK -24=3857,H,3200,Auto,S2,8PSK -25=3880,H,30000,34,S2,8PSK -26=3914,V,3255,34,DVB-S,QPSK -27=3920,H,28340,56,DVB-S,QPSK -28=3932,V,1480,34,DVB-S,QPSK -29=3951,V,1480,34,DVB-S,QPSK -30=3960,H,30000,34,S2,8PSK -31=3985,H,3700,34,DVB-S,QPSK -32=3990,H,4300,34,S2,QPSK -33=3998,H,3200,34,DVB-S,QPSK -34=4003,H,4340,34,DVB-S,QPSK -35=4009,H,4300,34,DVB-S,QPSK -36=4016,H,4340,34,DVB-S,QPSK -37=4019,V,2222,23,S2,QPSK -38=4022,V,2961,12,DVB-S,QPSK -39=4026,H,4800,34,DVB-S,QPSK -40=4034,H,4300,34,DVB-S,QPSK -41=4038,H,1600,23,S2,8PSK -42=4041,H,1600,23,S2,QPSK -43=4044,H,1600,23,S2,QPSK -44=4048,V,2450,23,S2,8PSK -45=4050,H,4300,34,DVB-S,QPSK -46=4056,H,3600,35,S2,8PSK -47=4059,V,7857,56,S2,QPSK -48=4063,H,1250,34,DVB-S,QPSK -49=4067,H,2500,89,S2,QPSK -50=4079,H,1600,34,S2,QPSK -51=4082,H,2857,23,S2,8PSK -52=4088,V,7750,56,S2,8PSK -53=4104,H,5000,34,S2,QPSK -54=4110,H,4600,34,DVB-S,QPSK -55=4117,H,4285,34,DVB-S,QPSK -56=4125,H,4441,34,DVB-S,QPSK -57=4129,V,11395,34,DVB-S,QPSK -58=4131,H,3600,34,DVB-S,QPSK -59=4135,H,3333,34,DVB-S,QPSK -60=4151,H,14670,34,S2,8PSK -61=4188,V,3200,34,DVB-S,QPSK -62=10973,V,24500,23,S2,QPSK -63=11010,V,30000,12,DVB-S,QPSK -64=11052,V,30000,23,DVB-S,QPSK -65=11105,V,45000,23,DVB-S,QPSK -66=11167,V,45000,23,DVB-S,QPSK -67=11532,H,3732,56,S2,8PSK -68=11536,H,3732,56,S2,8PSK -69=11541,H,3450,34,S2,8PSK -70=11547,H,2500,34,S2,QPSK -71=11568,H,3330,34,S2,8PSK -72=11596,H,3732,56,S2,8PSK -73=12531,V,15000,34,S2,QPSK -74=12604,V,30000,56,S2,QPSK -75=12638,V,15000,34,S2,8PSK -76=12719,V,45000,56,S2,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0785.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0785.ini deleted file mode 100644 index 8dcf19d376..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0785.ini +++ /dev/null @@ -1,112 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0785 -2=Thaicom 5/6 (78.5E) - -[DVB] -0=103 -1=3408,V,2916,34,DVB-S,QPSK -2=3414,V,2916,34,DVB-S,QPSK -3=3418,V,3750,34,S2,QPSK -4=3422,V,2222,34,DVB-S,QPSK -5=3425,V,2592,12,DVB-S,QPSK -6=3433,V,5000,34,DVB-S,QPSK -7=3438,V,2915,34,DVB-S,QPSK -8=3440,H,26666,34,DVB-S,QPSK -9=3441,V,1556,34,DVB-S,QPSK -10=3444,V,1630,34,DVB-S,QPSK -11=3450,V,2500,34,DVB-S,QPSK -12=3454,V,3333,34,DVB-S,QPSK -13=3457,V,2857,34,DVB-S,QPSK -14=3462,V,2857,34,DVB-S,QPSK -15=3480,H,30000,56,DVB-S,QPSK -16=3515,V,2917,34,DVB-S,QPSK -17=3520,H,28125,34,DVB-S,QPSK -18=3545,V,30000,56,DVB-S,QPSK -19=3551,H,13333,34,DVB-S,QPSK -20=3563,H,5555,35,S2,8PSK -21=3574,H,6510,34,DVB-S,QPSK -22=3585,V,30000,56,DVB-S,QPSK -23=3600,H,26667,34,DVB-S,QPSK -24=3625,V,30000,34,S2,8PSK -25=3640,H,28066,34,DVB-S,QPSK -26=3665,H,3704,34,DVB-S,QPSK -27=3683,H,7500,34,S2,8PSK -28=3690,H,2417,78,DVB-S,QPSK -29=3696,H,4167,35,S2,8PSK -30=3703,V,3333,78,DVB-S,QPSK -31=3709,H,13333,23,S2,8PSK -32=3711,V,1458,78,DVB-S,QPSK -33=3715,V,1481,34,DVB-S,QPSK -34=3718,V,1600,34,DVB-S,QPSK -35=3719,H,2500,23,S2,8PSK -36=3731,H,12500,78,DVB-S,QPSK -37=3745,V,4688,34,DVB-S,QPSK -38=3749,V,4688,34,DVB-S,QPSK -39=3757,V,4688,34,DVB-S,QPSK -40=3758,H,28066,34,DVB-S,QPSK -41=3760,H,30000,56,DVB-S,QPSK -42=3784,V,4262,34,DVB-S,QPSK -43=3792,V,4262,34,DVB-S,QPSK -44=3797,V,4262,34,DVB-S,QPSK -45=3800,H,30000,56,DVB-S,QPSK -46=3803,V,4551,34,DVB-S,QPSK -47=3809,V,4550,34,DVB-S,QPSK -48=3826,H,4700,34,DVB-S,QPSK -49=3834,H,8000,56,S2,8PSK -50=3840,V,30000,56,DVB-S,QPSK -51=3841,H,2900,34,DVB-S,QPSK -52=3847,H,4700,34,DVB-S,QPSK -53=3851,H,2900,34,DVB-S,QPSK -54=3880,H,30000,34,DVB-S,QPSK -55=3910,V,14650,45,S2,QPSK -56=3920,H,30000,34,DVB-S,QPSK -57=3930,V,15000,56,S2,QPSK -58=3949,V,2550,78,DVB-S,QPSK -59=3975,V,2500,35,S2,8PSK -60=3990,V,12000,23,S2,8PSK -61=4000,V,4815,34,DVB-S,QPSK -62=4000,H,30000,23,S2,8PSK -63=4005,V,4815,34,DVB-S,QPSK -64=4017,V,1800,34,DVB-S,QPSK -65=4040,H,30000,23,S2,8PSK -66=4053,V,8333,34,DVB-S,QPSK -67=4080,H,30000,35,S2,8PSK -68=4091,V,2000,34,DVB-S,QPSK -69=4096,V,5295,34,DVB-S,QPSK -70=4120,V,30000,910,S2,QPSK -71=4120,H,30000,56,DVB-S,QPSK -72=4144,H,2530,34,DVB-S,QPSK -73=4148,H,4688,34,DVB-S,QPSK -74=4154,H,3125,34,DVB-S,QPSK -75=4157,H,2530,34,DVB-S,QPSK -76=4160,V,30000,56,DVB-S,QPSK -77=4160,H,2530,34,DVB-S,QPSK -78=4163,H,2530,34,DVB-S,QPSK -79=4167,H,2530,34,DVB-S,QPSK -80=4170,H,2530,34,DVB-S,QPSK -81=4173,H,2530,34,DVB-S,QPSK -82=4177,H,2530,34,DVB-S,QPSK -83=12272,H,30000,23,DVB-S,QPSK -84=12313,H,30000,23,DVB-S,QPSK -85=12313,V,30000,34,DVB-S,QPSK -86=12355,H,30000,56,DVB-S,QPSK -87=12355,V,30000,23,S2,8PSK -88=12396,H,30000,35,S2,8PSK -89=12405,V,45000,34,S2,8PSK -90=12438,H,30000,23,DVB-S,QPSK -91=12467,V,45000,34,DVB-S,QPSK -92=12479,H,30000,35,S2,8PSK -93=12521,H,30000,35,S2,8PSK -94=12521,V,30000,34,S2,8PSK -95=12562,H,25776,23,DVB-S,QPSK -96=12562,V,30000,34,S2,8PSK -97=12604,H,30000,56,DVB-S,8PSK -98=12604,V,30000,34,DVB-S,QPSK -99=12645,V,30000,23,S2,8PSK -100=12657,H,45000,34,S2,8PSK -101=12687,V,30000,23,DVB-S,QPSK -102=12720,H,45000,34,S2,8PSK -103=12728,V,30000,23,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0830.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0830.ini deleted file mode 100644 index ac7588e57d..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0830.ini +++ /dev/null @@ -1,74 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0830 -2=G-Sat 10/Insat 4A (83.0E) - -[DVB] -0=65 -1=3725,H,26666,34,DVB-S,QPSK -2=3756,H,13333,34,DVB-S,QPSK -3=3756,V,3200,Auto,DVB-S,QPSK -4=3767,H,3000,34,S2,QPSK -5=3774,V,4250,Auto,DVB-S,QPSK -6=3777,H,10900,34,DVB-S,QPSK -7=3805,H,28500,78,DVB-S,QPSK -8=3828,H,3200,34,DVB-S,QPSK -9=3832,H,2100,34,DVB-S,QPSK -10=3836,H,1800,34,DVB-S,QPSK -11=3841,H,6920,78,DVB-S,QPSK -12=3847,H,3333,34,DVB-S,QPSK -13=3860,H,6920,34,DVB-S,QPSK -14=3868,H,3000,34,DVB-S,QPSK -15=3874,H,3400,34,S2,8PSK -16=3880,H,4600,34,DVB-S,QPSK -17=3884,H,1500,34,DVB-S,QPSK -18=3888,H,1071,34,DVB-S,QPSK -19=3892,H,3300,34,DVB-S,QPSK -20=3898,H,6800,34,DVB-S,QPSK -21=3909,H,4000,34,S2,8PSK -22=3921,H,13000,78,DVB-S,QPSK -23=3936,H,10100,78,DVB-S,QPSK -24=3949,H,3673,56,S2,8PSK -25=3958,H,9500,78,DVB-S,QPSK -26=3968,H,2000,34,DVB-S,QPSK -27=3976,H,3200,34,DVB-S,QPSK -28=3979,H,1451,34,DVB-S,QPSK -29=3983,H,1451,34,DVB-S,QPSK -30=3990,H,2140,34,DVB-S,QPSK -31=4004,H,22220,56,DVB-S,QPSK -32=4020,H,2140,34,DVB-S,QPSK -33=4030,H,4440,34,DVB-S,QPSK -34=4040,H,7500,78,DVB-S,QPSK -35=4054,H,13230,34,DVB-S,QPSK -36=4072,H,6500,34,DVB-S,QPSK -37=4076,H,1500,34,DVB-S,QPSK -38=4080,H,2000,34,DVB-S,QPSK -39=4083,H,2100,34,DVB-S,QPSK -40=4087,H,3300,34,DVB-S,QPSK -41=4091,H,3000,34,DVB-S,QPSK -42=4096,H,2170,23,S2,8PSK -43=4100,H,4750,34,DVB-S,QPSK -44=4109,H,1800,34,DVB-S,QPSK -45=4115,H,7776,34,DVB-S,QPSK -46=4122,H,1800,34,DVB-S,QPSK -47=4133,H,11888,34,S2,8PSK -48=4142,H,1255,34,DVB-S,QPSK -49=4151,H,6500,34,DVB-S,QPSK -50=4161,H,6500,34,DVB-S,QPSK -51=4170,H,4650,34,DVB-S,QPSK -52=4175,H,2977,56,DVB-S,QPSK -53=4180,H,3233,34,DVB-S,QPSK -54=10970,H,32000,23,S2,8PSK -55=11010,H,27500,34,DVB-S,8PSK -56=11050,H,32000,23,S2,8PSK -57=11090,H,32000,23,S2,8PSK -58=11130,H,32000,23,S2,8PSK -59=11170,H,32000,23,DVB-S,8PSK -60=11470,H,32000,23,S2,8PSK -61=11510,H,32000,23,S2,8PSK -62=11550,H,32000,23,S2,8PSK -63=11590,H,32000,23,S2,8PSK -64=11630,H,32000,23,S2,8PSK -65=11670,H,32000,23,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0851.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0851.ini deleted file mode 100644 index faefe54dc7..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0851.ini +++ /dev/null @@ -1,38 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0851 -2=Horizons 2/Intelsat 15 (85.1E) - -[DVB] -0=29 -1=10969,H,1800,34,S2,8PSK -2=10980,H,2220,34,DVB-S,QPSK -3=11466,H,2000,56,S2,8PSK -4=11468,H,2000,56,S2,8PSK -5=11470,H,1100,56,S2,8PSK -6=11479,H,2200,34,DVB-S,QPSK -7=11483,H,1800,56,DVB-S,QPSK -8=11559,H,2200,78,DVB-S,QPSK -9=11588,H,2500,34,DVB-S,QPSK -10=11594,H,2500,34,DVB-S,QPSK -11=11687,H,2000,89,S2,8PSK -12=11720,H,28800,34,DVB-S,QPSK -13=11760,H,28800,23,S2,8PSK -14=11800,H,28800,23,S2,8PSK -15=11840,H,28800,23,S2,8PSK -16=11872,H,15000,12,DVB-S,8PSK -17=11920,H,28800,23,S2,8PSK -18=11960,H,28800,35,S2,8PSK -19=12000,H,28000,23,DVB-S,QPSK -20=12040,H,28800,34,DVB-S,QPSK -21=12080,H,26700,35,S2,8PSK -22=12120,H,26700,35,S2,8PSK -23=12160,H,28800,35,S2,8PSK -24=12504,V,4217,34,DVB-S,QPSK -25=12510,V,3700,78,DVB-S,QPSK -26=12515,V,3353,34,S2,8PSK -27=12560,V,30000,56,DVB-S,QPSK -28=12600,V,30000,23,S2,8PSK -29=12640,V,30000,56,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0865.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0865.ini deleted file mode 100644 index f5a946f000..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0865.ini +++ /dev/null @@ -1,30 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0865 -2=KazSat 2 (86.5E) - -[DVB] -0=21 -1=11495,V,8750,89,S2,8PSK -2=11504,V,6250,89,S2,8PSK -3=11632,V,1457,89,S2,QPSK -4=11642,V,1080,34,S2,8PSK -5=11643,V,1080,34,S2,8PSK -6=11645,V,1080,34,S2,8PSK -7=11646,V,1080,34,S2,8PSK -8=11647,V,1080,34,S2,8PSK -9=11649,V,1080,34,S2,8PSK -10=11650,V,1080,34,S2,8PSK -11=11651,V,1080,34,S2,8PSK -12=11653,V,1080,34,S2,8PSK -13=11654,V,1080,34,S2,8PSK -14=11656,V,2100,34,S2,8PSK -15=11658,V,1080,34,S2,8PSK -16=11660,V,2100,34,S2,8PSK -17=11663,V,5500,56,S2,8PSK -18=11672,V,5500,34,S2,8PSK -19=11678,V,5500,56,S2,8PSK -20=11683,V,5500,56,S2,8PSK -21=11689,V,5500,56,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0875.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0875.ini deleted file mode 100644 index 3f856ba713..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0875.ini +++ /dev/null @@ -1,13 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0875 -2=ChinaSat 12 (87.5E) - -[DVB] -0=4 -1=3774,H,1800,34,S2,QPSK -2=4035,H,1200,34,DVB-S,QPSK -3=4067,H,1500,56,S2,QPSK -4=4140,V,28800,23,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0880.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0880.ini deleted file mode 100644 index a2716d7625..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0880.ini +++ /dev/null @@ -1,34 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0880 -2=ST 2 (88.0E) - -[DVB] -0=25 -1=3629,H,24700,34,S2,8PSK -2=3632,V,30000,34,S2,8PSK -3=3657,H,3000,34,DVB-S,QPSK -4=3671,H,9256,34,DVB-S,QPSK -5=11062,V,1000,89,S2,8PSK -6=11066,V,2000,56,DVB-S,QPSK -7=11164,H,44995,23,S2,8PSK -8=11164,V,44995,23,S2,8PSK -9=11483,V,44995,23,S2,8PSK -10=11483,H,44995,23,S2,8PSK -11=11546,H,44995,23,S2,8PSK -12=11546,V,44995,23,S2,8PSK -13=11609,V,43975,23,S2,8PSK -14=11609,H,44995,23,S2,8PSK -15=11633,H,30000,56,S2,QPSK -16=11669,H,30000,56,S2,QPSK -17=11672,V,44995,23,S2,8PSK -18=11672,H,44995,23,S2,8PSK -19=12516,H,10833,34,DVB-S,QPSK -20=12533,H,9620,34,S2,8PSK -21=12642,H,24000,34,DVB-S,QPSK -22=12702,H,20000,34,DVB-S,QPSK -23=12705,V,2200,56,DVB-S,QPSK -24=12722,H,2200,56,DVB-S,QPSK -25=12730,H,3202,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0900.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0900.ini deleted file mode 100644 index d423f69b64..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0900.ini +++ /dev/null @@ -1,59 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0900 -2=Yamal 401 (90.0E) - -[DVB] -0=50 -1=3539,H,2500,34,DVB-S,QPSK -2=3553,H,20000,34,DVB-S,QPSK -3=3582,H,2850,34,DVB-S,QPSK -4=3588,H,4285,34,DVB-S,QPSK -5=3594,H,2850,34,DVB-S,QPSK -6=3600,H,5925,34,DVB-S,QPSK -7=3603,V,3300,34,DVB-S,QPSK -8=3605,H,2626,34,DVB-S,QPSK -9=3613,H,4285,34,DVB-S,QPSK -10=3617,V,1850,34,DVB-S,QPSK -11=3618,H,3038,34,DVB-S,QPSK -12=3623,H,4285,34,DVB-S,QPSK -13=3645,H,28000,34,DVB-S,QPSK -14=3675,H,17500,34,DVB-S,QPSK -15=3819,H,13333,34,S2,8PSK -16=3837,H,14815,34,DVB-S,QPSK -17=3858,H,1850,78,DVB-S,QPSK -18=3908,H,2850,34,DVB-S,QPSK -19=3920,H,3000,34,DVB-S,QPSK -20=3924,H,2850,34,DVB-S,QPSK -21=4026,H,14940,35,S2,8PSK -22=4046,H,15284,34,S2,8PSK -23=4106,V,14990,34,S2,8PSK -24=4124,H,14990,34,S2,8PSK -25=4126,V,15284,34,S2,8PSK -26=4144,H,15284,34,S2,8PSK -27=10972,H,11200,34,DVB-S,QPSK -28=11057,H,22222,34,S2,8PSK -29=11092,H,30000,34,S2,8PSK -30=11131,V,11160,23,S2,8PSK -31=11165,H,25000,23,S2,8PSK -32=11239,V,2737,34,S2,8PSK -33=11462,V,1400,78,DVB-S,QPSK -34=11492,H,6115,34,S2,QPSK -35=11504,H,2080,34,DVB-S,QPSK -36=11507,V,7000,56,DVB-S,QPSK -37=11512,H,6160,Auto,S2,QPSK -38=11524,V,2000,78,DVB-S,QPSK -39=11531,V,4280,34,DVB-S,QPSK -40=11558,H,20000,34,S2,QPSK -41=11565,V,1980,23,S2,8PSK -42=11573,V,5000,34,DVB-S,QPSK -43=11649,H,2170,34,DVB-S,QPSK -44=11654,H,6500,34,DVB-S,QPSK -45=11670,H,14400,56,S2,8PSK -46=11674,V,7800,56,S2,8PSK -47=12505,V,2020,Auto,S2,8PSK -48=12533,V,11760,34,S2,QPSK -49=12718,H,27500,56,S2,8PSK -50=12718,V,27500,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0915.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0915.ini deleted file mode 100644 index 3c28ff2540..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0915.ini +++ /dev/null @@ -1,84 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0915 -2=Measat 3/3a/3b (91.5E) - -[DVB] -0=75 -1=3464,H,2963,23,DVB-S,QPSK -2=3469,V,7500,34,S2,8PSK -3=3472,H,6000,34,DVB-S,QPSK -4=3475,H,2963,23,DVB-S,QPSK -5=3480,V,2961,23,DVB-S,QPSK -6=3481,H,2963,23,DVB-S,QPSK -7=3485,V,2961,23,DVB-S,QPSK -8=3492,H,2963,23,DVB-S,QPSK -9=3606,V,3750,34,DVB-S,QPSK -10=3625,V,1600,34,DVB-S,QPSK -11=3638,H,6666,34,DVB-S,QPSK -12=3641,V,13333,23,S2,8PSK -13=3650,H,6666,34,DVB-S,QPSK -14=3705,H,4290,34,DVB-S,QPSK -15=3708,V,1400,34,S2,QPSK -16=3710,H,2860,34,DVB-S,QPSK -17=3717,H,7500,23,S2,8PSK -18=3718,V,1916,56,S2,QPSK -19=3720,V,2170,78,DVB-S,QPSK -20=3724,V,3030,23,S2,8PSK -21=3727,H,9833,23,S2,8PSK -22=3760,V,29700,56,S2,8PSK -23=3786,V,7200,56,S2,QPSK -24=3795,V,5064,34,S2,QPSK -25=3802,V,3333,34,DVB-S,QPSK -26=3805,V,3255,34,S2,QPSK -27=3814,V,6660,35,S2,8PSK -28=3840,H,30000,56,S2,8PSK -29=3840,V,29720,56,S2,8PSK -30=3880,V,29720,56,S2,8PSK -31=3904,H,2916,23,S2,8PSK -32=3918,H,18385,23,S2,8PSK -33=3920,V,29720,56,S2,8PSK -34=3960,H,29700,56,S2,8PSK -35=4000,H,29700,56,S2,8PSK -36=4040,H,28600,56,S2,8PSK -37=4120,V,29720,56,S2,8PSK -38=4120,H,30000,56,S2,8PSK -39=4147,H,7200,56,S2,QPSK -40=4153,V,2090,34,S2,QPSK -41=4164,H,20640,23,S2,8PSK -42=10852,V,30000,Auto,S2,QPSK -43=10932,V,30000,Auto,S2,QPSK -44=10982,V,30000,34,DVB-S,QPSK -45=11022,V,30000,34,S2,8PSK -46=11062,V,30000,34,DVB-S,QPSK -47=11142,V,30000,78,DVB-S,QPSK -48=11182,V,30000,78,DVB-S,QPSK -49=11482,V,30000,78,DVB-S,QPSK -50=11522,V,30000,78,DVB-S,QPSK -51=11562,V,30000,78,DVB-S,QPSK -52=11602,V,30000,78,DVB-S,QPSK -53=11642,V,30000,78,DVB-S,QPSK -54=11682,V,30000,78,DVB-S,QPSK -55=12276,V,30000,35,S2,8PSK -56=12316,H,30000,56,DVB-S,8PSK -57=12316,V,30000,35,S2,8PSK -58=12356,V,30000,35,S2,8PSK -59=12396,V,30000,35,S2,8PSK -60=12396,H,31000,23,S2,8PSK -61=12436,V,30000,35,S2,8PSK -62=12436,H,31000,23,S2,8PSK -63=12476,V,30000,35,S2,8PSK -64=12523,V,30000,78,DVB-S,QPSK -65=12523,H,30000,56,DVB-S,QPSK -66=12563,V,30000,56,S2,8PSK -67=12563,H,30000,56,S2,8PSK -68=12603,V,30000,56,S2,8PSK -69=12603,H,30000,56,S2,8PSK -70=12643,V,30000,78,DVB-S,QPSK -71=12643,H,30000,56,S2,8PSK -72=12683,V,30000,56,DVB-S,QPSK -73=12683,H,27500,56,DVB-S,QPSK -74=12723,V,30000,56,DVB-S,QPSK -75=12723,H,30000,56,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0922.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0922.ini deleted file mode 100644 index 1aaa166417..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0922.ini +++ /dev/null @@ -1,19 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0922 -2=ChinaSat 9 (92.2E) - -[DVB] -0=10 -1=11880,H,28800,34,DVB-S,QPSK -2=11920,H,28800,34,DVB-S,QPSK -3=11940,V,28800,34,DVB-S,QPSK -4=11960,H,28800,34,DVB-S,QPSK -5=11980,V,28800,34,DVB-S,QPSK -6=12020,V,28800,34,DVB-S,QPSK -7=12060,V,28800,34,DVB-S,QPSK -8=12100,V,28800,34,DVB-S,QPSK -9=12140,V,28800,34,DVB-S,QPSK -10=12180,V,28800,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0935.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0935.ini deleted file mode 100644 index e47df32779..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0935.ini +++ /dev/null @@ -1,77 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0935 -2=Insat 3A/4B (93.5E) - -[DVB] -0=68 -1=3725,H,27500,34,DVB-S,QPSK -2=3732,V,6250,34,DVB-S,QPSK -3=3740,V,6250,34,DVB-S,QPSK -4=3750,V,6250,34,DVB-S,QPSK -5=3750,H,3000,34,DVB-S,QPSK -6=3756,H,3000,34,DVB-S,QPSK -7=3758,V,6250,34,DVB-S,QPSK -8=3762,H,2500,34,DVB-S,QPSK -9=3768,H,2500,34,DVB-S,QPSK -10=3772,V,6250,34,DVB-S,QPSK -11=3774,H,4250,34,DVB-S,QPSK -12=3780,V,6250,34,DVB-S,QPSK -13=3780,H,2500,34,DVB-S,QPSK -14=3790,H,2500,34,DVB-S,QPSK -15=3791,V,8600,34,DVB-S,QPSK -16=3797,H,4250,34,DVB-S,QPSK -17=3800,V,4250,34,DVB-S,QPSK -18=3802,H,4250,34,DVB-S,QPSK -19=3808,H,2500,34,DVB-S,QPSK -20=3812,V,6250,34,DVB-S,QPSK -21=3815,H,2500,34,DVB-S,QPSK -22=3821,V,6250,34,DVB-S,QPSK -23=3822,H,4250,34,DVB-S,QPSK -24=3831,V,8600,34,DVB-S,QPSK -25=3832,H,6250,34,DVB-S,QPSK -26=3840,H,6250,34,DVB-S,QPSK -27=3841,V,4250,34,DVB-S,QPSK -28=3848,H,4250,34,DVB-S,QPSK -29=3855,H,3800,34,DVB-S,QPSK -30=3860,H,2500,34,DVB-S,QPSK -31=3888,V,1400,34,DVB-S,QPSK -32=3891,V,2000,34,DVB-S,QPSK -33=3894,V,2000,34,DVB-S,QPSK -34=3894,H,1500,34,DVB-S,QPSK -35=3897,V,1500,34,DVB-S,QPSK -36=3907,V,3125,34,DVB-S,QPSK -37=3910,V,1500,34,DVB-S,QPSK -38=3913,V,1000,34,DVB-S,QPSK -39=3916,V,1300,34,DVB-S,QPSK -40=3919,V,2000,34,DVB-S,QPSK -41=3922,V,2000,34,DVB-S,QPSK -42=3925,H,27500,34,DVB-S,QPSK -43=3932,V,6250,34,DVB-S,QPSK -44=3940,V,6250,34,DVB-S,QPSK -45=3950,V,6250,34,DVB-S,QPSK -46=3958,V,6250,34,DVB-S,QPSK -47=4086,V,1400,34,DVB-S,QPSK -48=4092,V,6250,34,DVB-S,QPSK -49=4101,V,6250,34,DVB-S,QPSK -50=4109,V,4250,34,DVB-S,QPSK -51=4115,V,4250,34,DVB-S,QPSK -52=4120,V,4250,34,DVB-S,QPSK -53=4132,V,4000,34,DVB-S,QPSK -54=4136,V,2000,34,DVB-S,QPSK -55=4141,V,5150,34,DVB-S,QPSK -56=4148,V,3000,34,DVB-S,QPSK -57=4151,V,2100,34,DVB-S,QPSK -58=10990,V,28500,34,DVB-S,QPSK -59=11030,V,32000,34,S2,8PSK -60=11053,V,1800,34,DVB-S,QPSK -61=11070,V,28500,34,DVB-S,QPSK -62=11110,V,30000,35,S2,8PSK -63=11150,V,28500,34,DVB-S,QPSK -64=11197,V,3333,34,DVB-S,QPSK -65=11490,V,30000,35,S2,8PSK -66=11508,V,1400,78,DVB-S,QPSK -67=11528,V,1400,34,DVB-S,QPSK -68=11570,V,28500,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0950.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0950.ini deleted file mode 100644 index 1b6ba4775e..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0950.ini +++ /dev/null @@ -1,47 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0950 -2=NSS 6/SES 8 (95.0E) - -[DVB] -0=38 -1=10977,V,40000,78,DVB-S,QPSK -2=11004,V,2355,34,DVB-S,QPSK -3=11037,H,40700,34,DVB-S,QPSK -4=11038,V,45000,56,DVB-S,QPSK -5=11090,H,30000,56,S2,QPSK -6=11090,V,30000,34,DVB-S,QPSK -7=11147,V,2750,23,DVB-S,QPSK -8=11164,V,3300,34,DVB-S,QPSK -9=11172,H,30000,56,DVB-S,QPSK -10=11456,H,3125,34,DVB-S,QPSK -11=11460,H,3125,34,DVB-S,QPSK -12=11468,H,3000,34,DVB-S,QPSK -13=11475,H,6111,34,DVB-S,QPSK -14=11481,H,45000,34,DVB-S,QPSK -15=11483,H,3125,34,DVB-S,QPSK -16=11503,H,6111,34,DVB-S,QPSK -17=11542,V,43200,34,S2,8PSK -18=11542,H,45000,56,S2,8PSK -19=11604,V,3200,34,DVB-S,QPSK -20=11619,H,5000,34,S2,8PSK -21=11635,H,27500,34,DVB-S,QPSK -22=11651,V,3333,34,DVB-S,QPSK -23=11661,H,5632,34,DVB-S,QPSK -24=11670,V,5000,23,DVB-S,QPSK -25=11676,V,28800,34,S2,8PSK -26=11685,V,6600,34,DVB-S,QPSK -27=11990,H,43000,Auto,DVB-S,QPSK -28=12110,H,40700,34,DVB-S,QPSK -29=12170,H,40700,Auto,DVB-S,QPSK -30=12535,V,43200,34,DVB-S,QPSK -31=12595,H,43200,34,DVB-S,QPSK -32=12595,V,43200,34,DVB-S,QPSK -33=12647,H,30000,Auto,DVB-S,QPSK -34=12647,V,32700,56,DVB-S,QPSK -35=12688,H,3270,34,DVB-S,QPSK -36=12688,V,27500,56,DVB-S,QPSK -37=12729,H,26400,34,DVB-S,QPSK -38=12729,V,32700,56,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0965.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0965.ini deleted file mode 100644 index 45d28a1fe6..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/0965.ini +++ /dev/null @@ -1,28 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=0965 -2=Express AM33 (96.5E) - -[DVB] -0=19 -1=3675,V,33483,78,DVB-S,QPSK -2=3758,V,4340,34,DVB-S,QPSK -3=3808,V,3215,34,DVB-S,QPSK -4=3817,V,4270,34,DVB-S,QPSK -5=3838,V,3230,34,DVB-S,QPSK -6=3843,V,3220,34,DVB-S,QPSK -7=3875,V,33390,89,S2,8PSK -8=3925,V,4883,12,DVB-S,QPSK -9=4108,V,4275,34,DVB-S,QPSK -10=4114,V,4285,34,DVB-S,QPSK -11=4175,V,3294,34,DVB-S,QPSK -12=10980,H,3200,34,DVB-S,QPSK -13=11000,H,5700,34,DVB-S,QPSK -14=11006,H,4444,34,DVB-S,QPSK -15=11028,V,1666,78,DVB-S,QPSK -16=11053,V,1570,23,S2,8PSK -17=11055,V,1666,23,S2,8PSK -18=11116,V,34000,89,S2,8PSK -19=11117,H,4444,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1005.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1005.ini deleted file mode 100644 index fe9374bcf0..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1005.ini +++ /dev/null @@ -1,80 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=1005 -2=AsiaSat 5 (100.5E) - -[DVB] -0=71 -1=3660,V,27500,34,DVB-S,QPSK -2=3668,H,7120,34,DVB-S,QPSK -3=3674,H,1500,34,DVB-S,QPSK -4=3678,H,3600,35,S2,QPSK -5=3686,H,7120,34,S2,8PSK -6=3693,H,6111,34,DVB-S,QPSK -7=3700,V,30000,34,S2,8PSK -8=3707,H,7120,34,S2,8PSK -9=3717,H,4167,34,DVB-S,QPSK -10=3730,H,13800,34,S2,8PSK -11=3733,V,6111,34,DVB-S,QPSK -12=3744,V,7120,34,S2,8PSK -13=3754,V,7120,34,S2,8PSK -14=3760,H,27500,34,DVB-S,QPSK -15=3765,V,4640,34,S2,8PSK -16=3770,V,2644,34,S2,QPSK -17=3774,H,6111,34,DVB-S,QPSK -18=3776,V,6111,34,DVB-S,QPSK -19=3786,H,6000,78,DVB-S,QPSK -20=3794,H,4640,35,S2,8PSK -21=3799,H,3255,34,DVB-S,QPSK -22=3816,H,3624,23,S2,8PSK -23=3820,V,27500,34,DVB-S,QPSK -24=3840,H,26666,34,S2,8PSK -25=3854,H,7500,Auto,S2,QPSK -26=3860,V,30000,23,S2,8PSK -27=3877,H,7200,Auto,S2,8PSK -28=3884,H,7200,Auto,S2,QPSK -29=3886,V,7500,34,DVB-S,QPSK -30=3895,V,6111,34,DVB-S,QPSK -31=3908,H,6666,34,DVB-S,QPSK -32=3913,V,6111,34,DVB-S,QPSK -33=3915,H,7120,Auto,S2,QPSK -34=3924,H,7200,Auto,S2,QPSK -35=3928,V,7200,Auto,S2,QPSK -36=3935,H,7120,34,S2,8PSK -37=3937,V,4500,34,DVB-S,QPSK -38=3945,V,6200,34,DVB-S,QPSK -39=3953,V,7200,Auto,S2,QPSK -40=3960,H,30000,56,S2,8PSK -41=3980,V,29720,56,S2,8PSK -42=4000,H,28125,34,DVB-S,QPSK -43=4040,H,29720,56,S2,8PSK -44=4076,H,7200,Auto,S2,8PSK -45=4086,H,7200,34,S2,8PSK -46=4094,H,9874,Auto,S2,QPSK -47=4114,H,18400,23,S2,8PSK -48=4132,H,10587,23,S2,QPSK -49=4148,H,7100,Auto,S2,QPSK -50=4148,V,11852,34,DVB-S,QPSK -51=4155,H,6666,34,DVB-S,QPSK -52=4165,H,6673,Auto,S2,QPSK -53=4175,H,7200,34,S2,8PSK -54=12267,V,3000,34,DVB-S,QPSK -55=12288,V,1330,34,DVB-S,QPSK -56=12323,V,12000,34,DVB-S,QPSK -57=12377,V,2000,34,DVB-S,QPSK -58=12381,V,2000,34,DVB-S,QPSK -59=12386,V,2000,34,DVB-S,QPSK -60=12437,V,2590,34,DVB-S,QPSK -61=12515,H,6200,34,DVB-S,QPSK -62=12522,V,40700,34,DVB-S,QPSK -63=12542,H,6111,34,DVB-S,QPSK -64=12582,H,5632,34,DVB-S,QPSK -65=12582,V,40700,23,S2,8PSK -66=12591,H,5632,34,DVB-S,QPSK -67=12602,H,5632,34,DVB-S,QPSK -68=12620,H,6300,34,DVB-S,QPSK -69=12635,H,8880,34,DVB-S,QPSK -70=12642,V,40700,23,S2,8PSK -71=12702,V,40700,23,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1030.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1030.ini deleted file mode 100644 index f4607ef89f..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1030.ini +++ /dev/null @@ -1,13 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=1030 -2=Express AM3 (103.0E) - -[DVB] -0=4 -1=3610,V,2500,56,S2,QPSK -2=3675,V,31900,56,S2,8PSK -3=11606,V,34425,35,S2,8PSK -4=11669,V,34425,35,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1055.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1055.ini deleted file mode 100644 index 79c54d9d81..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1055.ini +++ /dev/null @@ -1,57 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=1055 -2=AsiaSat 7/8 (105.5E) - -[DVB] -0=48 -1=3683,H,27500,Auto,S2,QPSK -2=3706,H,6000,34,DVB-S,QPSK -3=3712,V,9000,35,S2,8PSK -4=3715,H,8167,34,DVB-S,QPSK -5=3725,V,4833,45,S2,QPSK -6=3729,H,13650,34,DVB-S,QPSK -7=3732,V,6500,34,DVB-S,QPSK -8=3739,V,2815,34,DVB-S,QPSK -9=3742,V,1500,34,DVB-S,QPSK -10=3745,V,2626,34,DVB-S,QPSK -11=3755,V,4418,78,DVB-S,QPSK -12=3760,H,26000,78,DVB-S,QPSK -13=3780,V,28100,34,DVB-S,QPSK -14=3820,V,27500,34,DVB-S,QPSK -15=3840,H,29720,56,S2,8PSK -16=3860,V,28100,56,S2,8PSK -17=3880,H,27500,34,DVB-S,QPSK -18=3890,V,11838,35,S2,8PSK -19=3898,V,2240,35,S2,8PSK -20=3906,V,2913,34,DVB-S,QPSK -21=3915,V,7260,56,DVB-S,QPSK -22=3940,V,28100,56,S2,8PSK -23=3960,H,27500,34,DVB-S,QPSK -24=3980,V,28100,34,DVB-S,QPSK -25=4000,H,26850,78,DVB-S,QPSK -26=4020,V,27250,34,DVB-S,QPSK -27=4040,H,26500,12,DVB-S,QPSK -28=4060,V,26666,34,DVB-S,QPSK -29=4065,H,4296,34,DVB-S,QPSK -30=4078,H,3185,78,DVB-S,QPSK -31=4082,H,3185,56,DVB-S,QPSK -32=4087,H,3185,34,DVB-S,QPSK -33=4091,H,2894,34,DVB-S,QPSK -34=4095,H,2894,34,DVB-S,QPSK -35=4100,V,29720,56,S2,8PSK -36=4120,H,27500,78,DVB-S,QPSK -37=4140,V,27500,34,DVB-S,QPSK -38=4146,H,5317,34,DVB-S,QPSK -39=4155,H,9833,35,S2,8PSK -40=4165,H,5040,34,DVB-S,QPSK -41=4172,H,2480,34,DVB-S,QPSK -42=4176,H,2444,34,DVB-S,QPSK -43=4180,V,26666,34,DVB-S,QPSK -44=12468,H,4195,34,DVB-S,QPSK -45=12534,H,3300,34,S2,8PSK -46=12579,H,4000,34,S2,8PSK -47=12596,V,30000,56,DVB-S,QPSK -48=12720,V,30000,Auto,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1082.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1082.ini deleted file mode 100644 index a53b0c2e8b..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1082.ini +++ /dev/null @@ -1,99 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=1082 -2=NSS 11/SES 7/Telkom 1 (108.2E) - -[DVB] -0=90 -1=2535,H,22500,78,DVB-S,QPSK -2=2535,V,22500,34,S2,8PSK -3=2565,H,22500,78,DVB-S,QPSK -4=2565,V,22500,78,DVB-S,QPSK -5=2595,H,20000,78,DVB-S,QPSK -6=2595,V,22500,78,DVB-S,QPSK -7=2625,H,22500,78,DVB-S,QPSK -8=2625,V,22500,34,S2,QPSK -9=2655,H,22500,78,DVB-S,QPSK -10=2655,V,22500,Auto,S2,8PSK -11=3483,V,3000,34,DVB-S,QPSK -12=3515,V,23111,23,S2,QPSK -13=3552,H,3100,34,DVB-S,QPSK -14=3580,H,30000,34,S2,8PSK -15=3600,V,30000,34,S2,8PSK -16=3620,H,30000,34,S2,8PSK -17=3640,V,30000,34,S2,8PSK -18=3707,H,6000,34,S2,8PSK -19=3722,H,3330,34,DVB-S,QPSK -20=3727,V,7000,34,DVB-S,QPSK -21=3732,H,4160,34,DVB-S,QPSK -22=3735,H,1200,34,DVB-S,QPSK -23=3745,H,3000,34,DVB-S,QPSK -24=3776,H,4280,34,DVB-S,QPSK -25=3787,H,6750,34,DVB-S,QPSK -26=3793,H,3000,34,DVB-S,QPSK -27=3797,H,3905,34,DVB-S,QPSK -28=3802,H,3000,78,DVB-S,QPSK -29=3812,H,3000,34,DVB-S,QPSK -30=3817,H,3000,34,DVB-S,QPSK -31=3830,H,3000,34,DVB-S,QPSK -32=3880,H,3000,34,S2,8PSK -33=3890,H,6000,34,DVB-S,QPSK -34=3895,H,2500,34,DVB-S,QPSK -35=3913,H,2400,34,DVB-S,QPSK -36=3916,H,3330,34,DVB-S,QPSK -37=3920,H,3000,34,DVB-S,QPSK -38=3947,H,1500,34,DVB-S,QPSK -39=3960,H,3000,34,DVB-S,QPSK -40=3971,H,2100,34,DVB-S,QPSK -41=3981,V,1235,34,DVB-S,QPSK -42=3990,H,6000,34,DVB-S,QPSK -43=3998,H,3000,34,DVB-S,QPSK -44=4004,H,6000,34,DVB-S,QPSK -45=4014,H,6000,34,DVB-S,QPSK -46=4029,H,5122,34,DVB-S,QPSK -47=4036,H,3100,34,DVB-S,QPSK -48=4040,H,3000,34,DVB-S,QPSK -49=4079,H,3100,34,DVB-S,QPSK -50=4086,H,6000,34,DVB-S,QPSK -51=4092,H,3570,34,DVB-S,QPSK -52=4097,H,3125,34,DVB-S,QPSK -53=4130,V,2100,34,DVB-S,QPSK -54=4159,H,3000,34,DVB-S,QPSK -55=4163,V,1840,34,DVB-S,QPSK -56=11480,V,28800,23,S2,8PSK -57=11481,H,18750,34,S2,8PSK -58=11483,H,26600,34,S2,8PSK -59=11510,H,20000,34,S2,8PSK -60=11520,V,30000,34,S2,8PSK -61=11520,H,30000,34,S2,8PSK -62=11560,V,30000,34,S2,8PSK -63=11560,H,30000,34,S2,8PSK -64=11568,V,20000,34,S2,8PSK -65=11568,H,20000,34,S2,8PSK -66=11598,V,20000,34,S2,8PSK -67=11598,H,20000,23,S2,8PSK -68=11600,V,30000,34,S2,8PSK -69=11600,H,30000,34,S2,8PSK -70=11627,H,20000,34,S2,8PSK -71=11640,V,30000,34,S2,8PSK -72=11640,H,24000,34,S2,8PSK -73=11656,H,18750,34,DVB-S,QPSK -74=11680,V,30000,34,S2,8PSK -75=11685,H,18750,34,DVB-S,QPSK -76=12328,H,5000,34,DVB-S,QPSK -77=12401,V,2400,34,S2,8PSK -78=12406,V,3330,56,DVB-S,QPSK -79=12421,V,2962,34,DVB-S,QPSK -80=12427,V,4440,34,DVB-S,QPSK -81=12431,H,30000,56,DVB-S,QPSK -82=12434,H,2000,34,DVB-S,QPSK -83=12439,H,1900,12,DVB-S,QPSK -84=12444,H,1900,34,DVB-S,QPSK -85=12447,H,3000,34,DVB-S,QPSK -86=12471,H,30000,56,DVB-S,QPSK -87=12486,H,2000,34,DVB-S,QPSK -88=12651,V,26667,34,DVB-S,QPSK -89=12711,H,30000,23,S2,8PSK -90=12731,V,30000,56,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1100.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1100.ini deleted file mode 100644 index 789b56cca7..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1100.ini +++ /dev/null @@ -1,33 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=1100 -2=BSAT 3A/3C/JCSAT 110R/N-Sat 110 (110.0E) - -[DVB] -0=24 -1=11727,V,28860,23,DVB-S,8PSK -2=11766,V,28860,23,DVB-S,8PSK -3=11804,V,28860,23,DVB-S,8PSK -4=11843,V,28860,23,DVB-S,8PSK -5=11881,V,28860,23,DVB-S,8PSK -6=11919,V,28860,23,DVB-S,8PSK -7=11958,V,28860,23,DVB-S,8PSK -8=11996,V,28860,23,DVB-S,8PSK -9=12034,V,28860,23,DVB-S,QPSK -10=12073,V,28860,23,DVB-S,8PSK -11=12111,V,28860,23,DVB-S,8PSK -12=12149,V,28860,23,DVB-S,8PSK -13=12291,V,28860,23,DVB-S,QPSK -14=12331,V,28860,23,DVB-S,QPSK -15=12371,V,28860,23,DVB-S,QPSK -16=12411,V,28860,23,DVB-S,QPSK -17=12451,V,28860,23,DVB-S,QPSK -18=12491,V,28860,23,DVB-S,QPSK -19=12531,V,28860,23,DVB-S,QPSK -20=12571,V,28860,23,DVB-S,QPSK -21=12611,V,28860,23,DVB-S,QPSK -22=12651,V,28860,23,DVB-S,QPSK -23=12691,V,28860,23,DVB-S,QPSK -24=12731,V,28860,23,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1105.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1105.ini deleted file mode 100644 index aafe004557..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1105.ini +++ /dev/null @@ -1,14 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=1105 -2=ChinaSat 10 (110.5E) - -[DVB] -0=5 -1=3650,V,6200,56,S2,8PSK -2=3660,V,6200,56,S2,8PSK -3=3728,V,4340,34,DVB-S,QPSK -4=3984,V,3617,34,DVB-S,QPSK -5=4134,V,4340,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1130.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1130.ini deleted file mode 100644 index d9c69d3f73..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1130.ini +++ /dev/null @@ -1,81 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=1130 -2=Koreasat 5/Palapa D (113.0E) - -[DVB] -0=72 -1=3420,H,5000,Auto,S2,QPSK -2=3433,H,4383,56,DVB-S,8PSK -3=3437,H,1800,34,S2,8PSK -4=3460,H,29900,34,S2,QPSK -5=3574,V,6363,78,DVB-S,QPSK -6=3600,V,31000,23,S2,8PSK -7=3628,H,17985,23,DVB-S,QPSK -8=3709,H,10000,35,S2,QPSK -9=3720,H,30000,34,S2,QPSK -10=3744,H,3125,78,DVB-S,QPSK -11=3747,H,6250,34,DVB-S,QPSK -12=3756,H,6250,34,S2,8PSK -13=3762,H,3500,34,DVB-S,QPSK -14=3767,H,4000,45,S2,QPSK -15=3770,V,3000,34,DVB-S,QPSK -16=3774,H,6520,34,DVB-S,QPSK -17=3780,V,29900,34,S2,8PSK -18=3786,H,5632,34,DVB-S,QPSK -19=3792,H,3000,34,DVB-S,8PSK -20=3818,V,27500,34,S2,8PSK -21=3832,H,12592,34,DVB-S,QPSK -22=3852,V,2000,56,DVB-S,QPSK -23=3863,V,4333,34,DVB-S,QPSK -24=3880,H,30000,34,S2,QPSK -25=3917,H,3000,34,DVB-S,QPSK -26=3925,H,2590,34,DVB-S,QPSK -27=3932,V,15800,56,DVB-S,QPSK -28=3934,H,6500,34,DVB-S,QPSK -29=3946,V,7400,56,DVB-S,QPSK -30=3952,V,3000,34,DVB-S,QPSK -31=3957,V,3000,34,DVB-S,QPSK -32=3960,H,30000,34,S2,8PSK -33=3980,V,31000,23,S2,8PSK -34=3984,H,2244,34,S2,8PSK -35=3987,H,2250,34,DVB-S,QPSK -36=3992,H,2250,34,DVB-S,QPSK -37=4006,V,6400,34,DVB-S,QPSK -38=4016,V,3000,34,S2,8PSK -39=4025,H,2124,34,DVB-S,QPSK -40=4035,V,6000,34,DVB-S,QPSK -41=4044,H,2124,34,DVB-S,QPSK -42=4044,V,2833,34,DVB-S,QPSK -43=4048,H,2124,34,DVB-S,QPSK -44=4051,V,1600,56,S2,8PSK -45=4052,H,3333,78,DVB-S,QPSK -46=4055,H,3000,34,DVB-S,QPSK -47=4074,V,3000,34,DVB-S,QPSK -48=4080,H,28125,34,DVB-S,QPSK -49=4100,V,30000,34,S2,8PSK -50=4110,H,11669,34,S2,8PSK -51=4124,H,5632,34,DVB-S,QPSK -52=4136,H,3000,34,DVB-S,QPSK -53=4140,V,30000,78,DVB-S,QPSK -54=4165,H,20000,34,DVB-S,QPSK -55=4171,V,15000,Auto,S2,QPSK -56=4184,V,6700,34,DVB-S,QPSK -57=12347,H,3180,23,S2,8PSK -58=12390,V,25600,56,DVB-S,QPSK -59=12430,V,25600,56,DVB-S,QPSK -60=12436,H,3564,56,DVB-S,QPSK -61=12452,H,2500,56,S2,8PSK -62=12470,V,25600,56,DVB-S,QPSK -63=12530,H,26000,56,DVB-S,QPSK -64=12560,H,2300,23,S2,8PSK -65=12590,H,29900,34,S2,8PSK -66=12590,V,28000,34,DVB-S,QPSK -67=12618,V,3900,12,DVB-S,QPSK -68=12645,V,2893,34,DVB-S,QPSK -69=12665,H,4320,34,S2,8PSK -70=12670,V,28000,34,DVB-S,QPSK -71=12673,H,30000,34,S2,8PSK -72=12710,H,29900,34,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1155.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1155.ini deleted file mode 100644 index 4bfa662708..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1155.ini +++ /dev/null @@ -1,53 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=1155 -2=ChinaSat 6B (115.5E) - -[DVB] -0=44 -1=3600,V,27500,78,DVB-S,QPSK -2=3640,V,27500,78,DVB-S,QPSK -3=3680,V,27500,78,DVB-S,QPSK -4=3709,H,10920,34,DVB-S,QPSK -5=3740,V,27500,34,DVB-S,QPSK -6=3750,H,10490,34,DVB-S,QPSK -7=3769,H,13400,78,DVB-S,QPSK -8=3780,V,27500,34,DVB-S,QPSK -9=3796,H,6930,12,DVB-S,QPSK -10=3807,V,6000,34,DVB-S,QPSK -11=3808,H,8800,34,DVB-S,QPSK -12=3815,V,4420,34,DVB-S,QPSK -13=3825,V,6780,34,DVB-S,QPSK -14=3834,V,5400,34,DVB-S,QPSK -15=3840,H,27500,34,DVB-S,QPSK -16=3846,V,5950,34,DVB-S,QPSK -17=3854,V,4420,34,DVB-S,QPSK -18=3861,V,4800,34,DVB-S,QPSK -19=3871,V,9080,34,DVB-S,QPSK -20=3880,H,27500,34,DVB-S,QPSK -21=3885,V,4340,34,DVB-S,QPSK -22=3892,V,4420,34,DVB-S,QPSK -23=3903,V,9300,34,DVB-S,QPSK -24=3913,V,6400,34,DVB-S,QPSK -25=3920,H,27500,34,DVB-S,QPSK -26=3929,V,8840,34,DVB-S,QPSK -27=3940,V,5948,34,DVB-S,QPSK -28=3950,H,11406,56,DVB-S,QPSK -29=3951,V,9520,34,DVB-S,QPSK -30=3960,H,3570,34,DVB-S,QPSK -31=3971,H,10000,34,DVB-S,QPSK -32=3980,V,27500,34,DVB-S,QPSK -33=4000,H,27500,34,DVB-S,QPSK -34=4020,V,27500,34,DVB-S,QPSK -35=4040,H,27500,34,DVB-S,QPSK -36=4060,V,27500,34,DVB-S,QPSK -37=4080,H,27500,34,DVB-S,QPSK -38=4116,H,21374,34,DVB-S,QPSK -39=4140,V,27500,34,DVB-S,QPSK -40=4147,H,6150,34,DVB-S,QPSK -41=4158,H,8680,34,DVB-S,QPSK -42=4171,H,9200,34,DVB-S,QPSK -43=4175,V,18000,12,DVB-S,QPSK -44=4192,V,6000,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1160.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1160.ini deleted file mode 100644 index 3ef951d9a5..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1160.ini +++ /dev/null @@ -1,42 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=1160 -2=ABS 7/Koreasat 6 (116.0E) - -[DVB] -0=33 -1=11747,H,21300,56,S2,8PSK -2=11785,H,21300,78,DVB-S,QPSK -3=11823,H,21300,56,S2,8PSK -4=11862,H,21300,56,S2,8PSK -5=11900,H,21300,23,S2,8PSK -6=11938,H,21300,56,S2,8PSK -7=12290,H,27489,34,S2,8PSK -8=12330,H,27489,34,S2,8PSK -9=12350,V,26700,78,DVB-S,QPSK -10=12370,H,27489,34,S2,8PSK -11=12390,V,26700,78,DVB-S,QPSK -12=12410,H,29500,34,S2,8PSK -13=12430,V,26700,78,DVB-S,QPSK -14=12450,H,27489,34,S2,8PSK -15=12467,V,12300,34,S2,QPSK -16=12490,H,27489,34,S2,8PSK -17=12497,V,4331,34,S2,8PSK -18=12501,V,3515,34,DVB-S,QPSK -19=12506,V,3515,34,DVB-S,QPSK -20=12511,V,3515,34,DVB-S,QPSK -21=12517,V,3515,34,DVB-S,QPSK -22=12523,V,7900,56,S2,8PSK -23=12530,H,27489,34,S2,8PSK -24=12570,H,27489,34,S2,8PSK -25=12610,H,27489,34,S2,8PSK -26=12650,H,27489,34,S2,8PSK -27=12670,V,26700,78,DVB-S,QPSK -28=12687,H,2050,34,DVB-S,QPSK -29=12690,H,27489,34,S2,8PSK -30=12695,V,3515,34,DVB-S,QPSK -31=12706,V,6000,34,DVB-S,QPSK -32=12724,V,5330,34,S2,8PSK -33=12730,H,27489,34,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1180.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1180.ini deleted file mode 100644 index d41e3f5ad2..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1180.ini +++ /dev/null @@ -1,11 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=1180 -2=Telkom 2 (118.0E) - -[DVB] -0=2 -1=3776,H,2132,34,DVB-S,QPSK -2=4110,H,2900,12,S2,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1195.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1195.ini deleted file mode 100644 index 42af4d1c98..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1195.ini +++ /dev/null @@ -1,14 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=1195 -2=Thaicom 4 (119.5E) - -[DVB] -0=5 -1=11542,V,15533,Auto,S2,QPSK -2=11592,V,25000,12,S2,QPSK -3=11675,V,45000,23,S2,8PSK -4=12696,V,30000,23,S2,QPSK -5=12732,V,30000,23,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1222.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1222.ini deleted file mode 100644 index 4d833f21bb..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1222.ini +++ /dev/null @@ -1,29 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=1222 -2=AsiaSat 4 (122.2E) - -[DVB] -0=20 -1=3756,H,21600,23,S2,8PSK -2=3827,H,6620,34,DVB-S,QPSK -3=3845,H,6620,34,DVB-S,QPSK -4=3900,V,26660,23,DVB-S,QPSK -5=4040,H,4000,34,DVB-S,QPSK -6=4157,H,2170,34,DVB-S,QPSK -7=4160,H,2300,34,S2,8PSK -8=4164,H,5037,78,DVB-S,QPSK -9=11727,V,25000,23,S2,8PSK -10=11766,V,27500,23,S2,8PSK -11=11804,V,27500,23,S2,8PSK -12=11881,V,275000,23,S2,8PSK -13=11958,V,27500,23,S2,8PSK -14=12034,V,27500,23,S2,8PSK -15=12274,V,6000,34,DVB-S,QPSK -16=12414,V,43200,23,S2,QPSK -17=12536,V,4800,56,S2,8PSK -18=12545,V,2400,34,S2,8PSK -19=12590,V,6620,34,DVB-S,QPSK -20=12743,H,10000,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1240.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1240.ini deleted file mode 100644 index ed948c78ea..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1240.ini +++ /dev/null @@ -1,43 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=1240 -2=JCSAT 4B (124.0E) - -[DVB] -0=34 -1=12268,V,23303,35,S2,8PSK -2=12313,H,23303,35,S2,8PSK -3=12330,H,30000,56,S2,8PSK -4=12343,H,23303,35,S2,8PSK -5=12358,V,23303,35,S2,8PSK -6=12370,H,30000,56,S2,8PSK -7=12373,H,23303,35,S2,8PSK -8=12388,V,23303,35,S2,8PSK -9=12410,H,30000,56,S2,8PSK -10=12418,V,23303,35,S2,8PSK -11=12432,H,23303,35,S2,8PSK -12=12448,V,21096,34,DVB-S,QPSK -13=12450,H,30000,56,S2,8PSK -14=12490,H,30000,56,S2,8PSK -15=12493,H,23303,35,S2,8PSK -16=12508,V,23303,35,S2,8PSK -17=12530,H,30000,56,S2,8PSK -18=12538,V,23303,35,S2,8PSK -19=12553,H,23303,35,S2,8PSK -20=12568,V,23303,35,S2,8PSK -21=12570,H,30000,56,S2,8PSK -22=12583,H,23303,35,S2,8PSK -23=12598,V,23303,35,S2,8PSK -24=12610,H,30000,56,S2,8PSK -25=12613,H,23303,35,S2,8PSK -26=12628,V,23303,35,S2,8PSK -27=12643,H,23303,35,S2,8PSK -28=12650,H,30000,56,S2,8PSK -29=12673,H,23303,35,S2,8PSK -30=12688,V,23303,35,S2,8PSK -31=12690,H,30000,56,S2,8PSK -32=12703,H,23303,35,S2,8PSK -33=12718,V,23303,35,S2,8PSK -34=12730,H,30000,56,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1250.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1250.ini deleted file mode 100644 index 738a7debe7..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1250.ini +++ /dev/null @@ -1,38 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=1250 -2=ChinaSat 6A (125.0E) - -[DVB] -0=29 -1=3720,H,27500,34,DVB-S,QPSK -2=3740,V,27500,34,DVB-S,QPSK -3=3750,H,14900,34,DVB-S,QPSK -4=3780,V,27500,34,DVB-S,QPSK -5=3800,H,30600,34,DVB-S,QPSK -6=3820,V,30000,34,DVB-S,QPSK -7=3827,H,6220,34,DVB-S,QPSK -8=3845,H,17778,34,DVB-S,QPSK -9=3857,V,25000,34,DVB-S,QPSK -10=3885,H,5720,34,DVB-S,QPSK -11=3889,V,9988,34,DVB-S,QPSK -12=3893,H,6880,34,DVB-S,QPSK -13=3909,H,8934,34,DVB-S,QPSK -14=3912,V,9900,34,DVB-S,QPSK -15=3922,H,7250,34,DVB-S,QPSK -16=3933,H,6590,34,DVB-S,QPSK -17=3951,H,13400,78,DVB-S,QPSK -18=3970,H,11580,34,DVB-S,QPSK -19=3970,V,13400,78,DVB-S,QPSK -20=3989,H,9070,34,DVB-S,QPSK -21=3999,H,4420,34,DVB-S,QPSK -22=4006,H,4420,34,DVB-S,QPSK -23=4013,H,3950,34,DVB-S,QPSK -24=4013,V,16600,78,DVB-S,QPSK -25=4033,V,9580,78,DVB-S,QPSK -26=4040,H,30600,34,DVB-S,QPSK -27=4080,H,27500,34,DVB-S,QPSK -28=4100,V,27500,34,DVB-S,QPSK -29=4120,H,27500,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1280.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1280.ini deleted file mode 100644 index bb2f556c08..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1280.ini +++ /dev/null @@ -1,24 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=1280 -2=JCSAT 3A (128.0E) - -[DVB] -0=15 -1=4120,V,30000,34,S2,8PSK -2=4160,V,30000,34,S2,8PSK -3=12348,V,23303,35,S2,8PSK -4=12428,V,23303,35,S2,8PSK -5=12468,V,23303,35,S2,8PSK -6=12523,H,23303,35,S2,8PSK -7=12553,H,23303,35,S2,8PSK -8=12583,H,23303,35,S2,8PSK -9=12598,V,23303,35,S2,8PSK -10=12613,H,23303,35,S2,8PSK -11=12628,V,21096,34,DVB-S,QPSK -12=12643,H,23303,35,S2,8PSK -13=12673,H,23303,35,S2,8PSK -14=12703,H,23303,35,S2,8PSK -15=12733,H,23303,35,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1320.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1320.ini deleted file mode 100644 index 4694425d39..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1320.ini +++ /dev/null @@ -1,51 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=1320 -2=JCSAT 5A/Vinasat 1/2 (132.0E) - -[DVB] -0=42 -1=3413,V,10800,23,S2,8PSK -2=3433,V,13600,34,S2,8PSK -3=3446,V,1666,34,S2,8PSK -4=3451,V,1668,23,S2,8PSK -5=3480,V,3000,34,S2,8PSK -6=3493,H,1600,34,DVB-S,QPSK -7=3544,V,1600,34,S2,8PSK -8=3549,V,1200,34,S2,8PSK -9=3560,V,1510,34,DVB-S,QPSK -10=3572,V,8000,23,S2,8PSK -11=3590,V,19200,23,S2,8PSK -12=10968,H,28800,34,S2,8PSK -13=11008,H,28800,34,S2,8PSK -14=11048,H,28800,56,DVB-S,QPSK -15=11050,V,30000,34,S2,8PSK -16=11085,H,24000,34,S2,8PSK -17=11088,V,28800,34,S2,8PSK -18=11119,V,14400,34,S2,8PSK -19=11135,H,9600,34,S2,8PSK -20=11167,V,30000,34,S2,8PSK -21=11472,H,23200,34,S2,8PSK -22=11510,V,30000,34,S2,8PSK -23=11517,H,4702,34,DVB-S,QPSK -24=11523,H,4702,34,DVB-S,QPSK -25=11531,H,2500,34,DVB-S,QPSK -26=11549,H,28500,56,DVB-S,QPSK -27=11550,V,30000,34,S2,8PSK -28=11589,H,28800,34,DVB-S,QPSK -29=11590,V,30000,34,S2,8PSK -30=11629,H,28800,34,DVB-S,QPSK -31=11630,V,30000,34,S2,8PSK -32=11669,H,30000,34,S2,8PSK -33=11670,V,30000,34,S2,8PSK -34=12257,V,3096,34,DVB-S,QPSK -35=12288,H,7241,34,DVB-S,QPSK -36=12320,V,7241,34,DVB-S,QPSK -37=12340,H,7241,34,DVB-S,QPSK -38=12400,V,7241,34,DVB-S,QPSK -39=12408,H,7241,34,DVB-S,QPSK -40=12420,H,7241,34,DVB-S,QPSK -41=12711,V,19476,12,S2,8PSK -42=12746,H,3096,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1340.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1340.ini deleted file mode 100644 index 4ca7c83a01..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1340.ini +++ /dev/null @@ -1,27 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=1340 -2=Apstar 6 (134.0E) - -[DVB] -0=18 -1=3720,H,30000,Auto,S2,QPSK -2=3776,H,5632,34,DVB-S,QPSK -3=3830,V,3700,34,S2,8PSK -4=3840,H,27500,34,DVB-S,QPSK -5=3878,H,3000,34,DVB-S,QPSK -6=3913,V,1920,45,S2,QPSK -7=4020,V,30000,34,S2,8PSK -8=4032,H,2688,34,S2,8PSK -9=4051,H,9628,34,DVB-S,QPSK -10=4149,H,13500,34,DVB-S,QPSK -11=4160,H,2963,34,DVB-S,QPSK -12=12269,V,18000,12,DVB-S,QPSK -13=12322,V,3600,34,DVB-S,QPSK -14=12395,V,27500,34,DVB-S,QPSK -15=12435,V,27500,34,DVB-S,QPSK -16=12515,V,27500,34,DVB-S,QPSK -17=12595,V,27500,34,DVB-S,QPSK -18=12675,V,27500,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1380.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1380.ini deleted file mode 100644 index cb952425b2..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1380.ini +++ /dev/null @@ -1,37 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=1380 -2=Telstar 18 (138.0E) - -[DVB] -0=28 -1=3703,V,4444,23,S2,8PSK -2=3707,H,4500,34,S2,8PSK -3=3734,H,2222,34,S2,8PSK -4=3820,V,30000,34,S2,8PSK -5=3837,H,2200,34,DVB-S,QPSK -6=3847,H,4444,34,S2,8PSK -7=3854,H,6700,34,DVB-S,QPSK -8=3866,H,4290,34,DVB-S,QPSK -9=3872,H,6660,34,DVB-S,QPSK -10=3933,V,3000,34,DVB-S,QPSK -11=3948,V,17600,34,S2,8PSK -12=12272,H,33333,23,S2,8PSK -13=12292,V,45000,Auto,S2,8PSK -14=12354,V,43000,34,DVB-S,QPSK -15=12401,V,22425,34,DVB-S,QPSK -16=12429,H,3330,12,DVB-S,QPSK -17=12430,V,22425,56,S2,8PSK -18=12439,H,2500,34,DVB-S,QPSK -19=12443,H,1495,34,DVB-S,QPSK -20=12472,V,33500,34,S2,8PSK -21=12499,V,7200,34,S2,8PSK -22=12507,H,45000,23,S2,8PSK -23=12538,V,41250,12,DVB-S,QPSK -24=12598,V,43000,34,S2,8PSK -25=12629,H,43200,34,S2,8PSK -26=12660,V,45000,56,DVB-S,QPSK -27=12690,H,43200,34,S2,8PSK -28=12721,V,41250,12,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1400.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1400.ini deleted file mode 100644 index b4e6dc7c0c..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1400.ini +++ /dev/null @@ -1,31 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=1400 -2=Express AM5/AT2 (140.0E) - -[DVB] -0=22 -1=3571,V,3000,34,DVB-S,QPSK -2=3577,V,4285,34,DVB-S,QPSK -3=3584,V,3000,34,DVB-S,QPSK -4=3589,V,4340,34,DVB-S,QPSK -5=3609,V,4340,34,DVB-S,QPSK -6=3627,V,4340,34,DVB-S,QPSK -7=3632,V,4340,34,DVB-S,QPSK -8=3639,V,1000,34,DVB-S,QPSK -9=3675,V,33483,78,DVB-S,QPSK -10=3874,V,3200,34,DVB-S,QPSK -11=4180,V,4340,34,DVB-S,QPSK -12=10981,V,44948,56,DVB-S,QPSK -13=11082,H,2500,56,S2,8PSK -14=11104,V,3617,34,S2,8PSK -15=11495,V,10600,34,S2,8PSK -16=11530,H,22250,23,S2,8PSK -17=11557,H,22250,23,S2,8PSK -18=11657,V,24800,56,DVB-S,QPSK -19=11681,V,15520,23,S2,8PSK -20=12188,H,27500,34,DVB-S,QPSK -21=12207,V,27500,34,S2,8PSK -22=12341,H,27500,34,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1440.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1440.ini deleted file mode 100644 index e31e028abf..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1440.ini +++ /dev/null @@ -1,22 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=1440 -2=Superbird C2 (144.0E) - -[DVB] -0=13 -1=12276,V,7457,23,S2,8PSK -2=12306,V,7457,23,S2,8PSK -3=12319,V,14910,34,DVB-S,QPSK -4=12336,V,7457,23,S2,QPSK -5=12385,V,7457,23,S2,8PSK -6=12394,V,7457,23,S2,QPSK -7=12403,V,7457,23,S2,8PSK -8=12508,V,21096,34,DVB-S,QPSK -9=12546,H,9365,35,S2,8PSK -10=12549,V,2900,34,DVB-S,QPSK -11=12558,V,3515,34,DVB-S,QPSK -12=12598,V,21096,34,DVB-S,QPSK -13=12658,V,21096,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1500.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1500.ini deleted file mode 100644 index 6acfb16798..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1500.ini +++ /dev/null @@ -1,12 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=1500 -2=JCSAT 1B (150.0E) - -[DVB] -0=3 -1=12423,V,6912,12,DVB-S,QPSK -2=12662,V,12825,34,DVB-S,QPSK -3=12693,V,12825,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1520.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1520.ini deleted file mode 100644 index 0034b3e138..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1520.ini +++ /dev/null @@ -1,25 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=1520 -2=Optus D2 (152.0E) - -[DVB] -0=16 -1=12274,V,6670,34,DVB-S,QPSK -2=12295,V,1644,Auto,DVB-S,QPSK -3=12328,V,15000,78,DVB-S,QPSK -4=12469,H,6670,Auto,DVB-S,QPSK -5=12519,V,22500,34,DVB-S,QPSK -6=12536,H,6980,34,DVB-S,QPSK -7=12545,H,6980,34,DVB-S,QPSK -8=12546,V,22500,34,DVB-S,QPSK -9=12554,H,6980,34,DVB-S,QPSK -10=12581,H,22500,34,DVB-S,QPSK -11=12608,H,22500,34,DVB-S,QPSK -12=12639,V,15000,78,DVB-S,QPSK -13=12657,V,15000,78,DVB-S,QPSK -14=12675,V,15000,78,DVB-S,QPSK -15=12706,V,22500,34,DVB-S,QPSK -16=12734,V,22500,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1540.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1540.ini deleted file mode 100644 index 365575a8ce..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1540.ini +++ /dev/null @@ -1,32 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=1540 -2=JCSAT 2A (154.0E) - -[DVB] -0=23 -1=3936,V,3333,34,DVB-S,QPSK -2=12263,V,5082,34,DVB-S,QPSK -3=12278,V,4820,34,DVB-S,QPSK -4=12280,H,4820,34,DVB-S,QPSK -5=12298,V,21096,34,DVB-S,QPSK -6=12310,H,3515,34,S2,8PSK -7=12317,H,6036,35,S2,QPSK -8=12318,V,4820,34,DVB-S,QPSK -9=12324,V,4820,34,DVB-S,QPSK -10=12331,V,4820,34,DVB-S,QPSK -11=12338,V,4820,34,DVB-S,QPSK -12=12362,V,4820,34,DVB-S,QPSK -13=12373,H,7082,34,S2,8PSK -14=12376,V,1680,34,S2,QPSK -15=12409,V,4820,34,DVB-S,QPSK -16=12436,H,3100,34,DVB-S,QPSK -17=12505,H,2856,23,S2,8PSK -18=12505,V,4821,34,DVB-S,QPSK -19=12576,V,7242,34,DVB-S,QPSK -20=12613,H,21096,34,DVB-S,QPSK -21=12688,V,21096,34,DVB-S,QPSK -22=12700,H,5274,34,DVB-S,QPSK -23=12729,V,3096,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1560.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1560.ini deleted file mode 100644 index be5b9c2f69..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1560.ini +++ /dev/null @@ -1,44 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=1560 -2=Optus C1/D3 (156.0E) - -[DVB] -0=35 -1=11720,H,29455,35,S2,8PSK -2=11762,H,27800,34,DVB-S,QPSK -3=11804,V,30000,35,S2,8PSK -4=11845,V,27800,Auto,DVB-S,QPSK -5=11886,V,30000,35,S2,8PSK -6=11886,H,27800,34,DVB-S,QPSK -7=11928,V,30000,35,S2,8PSK -8=11928,H,27800,34,DVB-S,QPSK -9=11970,H,27800,34,DVB-S,QPSK -10=12011,V,27800,34,DVB-S,QPSK -11=12011,H,29455,35,S2,8PSK -12=12052,V,27800,34,DVB-S,QPSK -13=12052,H,29455,35,S2,8PSK -14=12094,V,27800,34,DVB-S,QPSK -15=12094,H,29455,35,S2,8PSK -16=12136,V,27800,34,DVB-S,QPSK -17=12136,H,27800,34,DVB-S,QPSK -18=12177,V,27800,34,DVB-S,QPSK -19=12177,H,27800,34,DVB-S,QPSK -20=12358,H,27800,34,DVB-S,QPSK -21=12369,V,30000,35,S2,8PSK -22=12398,H,27800,34,DVB-S,QPSK -23=12407,V,24450,Auto,DVB-S,QPSK -24=12438,H,27800,34,DVB-S,QPSK -25=12478,H,27800,34,DVB-S,QPSK -26=12487,V,30000,35,S2,8PSK -27=12518,H,27800,34,DVB-S,QPSK -28=12558,H,27800,34,DVB-S,QPSK -29=12567,V,30000,35,S2,8PSK -30=12598,H,27800,34,DVB-S,QPSK -31=12607,V,30000,35,S2,8PSK -32=12638,H,27800,34,DVB-S,QPSK -33=12647,V,30000,35,S2,8PSK -34=12689,H,27800,34,DVB-S,QPSK -35=12707,H,22500,Auto,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1590.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1590.ini deleted file mode 100644 index 567b3cc09e..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1590.ini +++ /dev/null @@ -1,14 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=1590 -2=ABS 6 (159.0E) - -[DVB] -0=5 -1=3888,V,8340,23,DVB-S,QPSK -2=3897,V,4445,34,DVB-S,QPSK -3=3908,V,4445,34,DVB-S,QPSK -4=3915,V,4445,34,DVB-S,QPSK -5=12696,V,10000,12,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1600 OPTUS D1 FTA (160.0E).ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1600 OPTUS D1 FTA (160.0E).ini deleted file mode 100644 index 8650617397..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1600 OPTUS D1 FTA (160.0E).ini +++ /dev/null @@ -1,11 +0,0 @@ -[SATTYPE] -1=1600.0 -2=OPTUS D1 FTA (160.0E) - -[DVB] -0=5 -1=12456,H,22500,0 -2=12483,H,22500,0 -3=12644,H,22500,0 -4=12707,H,22500,0 -5=12381,V,3750,23,S2,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1600.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1600.ini deleted file mode 100644 index 08083f62f2..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1600.ini +++ /dev/null @@ -1,47 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=1600 -2=Optus D1 (160.0E) - -[DVB] -0=38 -1=12267,H,22500,23,S2,8PSK -2=12295,H,22500,34,S2,8PSK -3=12331,H,22500,23,S2,8PSK -4=12348,H,14293,78,DVB-S,QPSK -5=12358,H,22500,23,S2,8PSK -6=12381,V,3750,23,S2,QPSK -7=12394,H,22500,34,DVB-S,QPSK -8=12421,H,22500,34,DVB-S,QPSK -9=12430,V,6111,Auto,DVB-S,QPSK -10=12452,H,12600,56,DVB-S,QPSK -11=12456,H,22500,34,DVB-S,QPSK -12=12470,H,12600,56,DVB-S,QPSK -13=12483,H,22500,34,DVB-S,QPSK -14=12487,H,12600,56,DVB-S,QPSK -15=12514,H,14294,78,DVB-S,QPSK -16=12519,H,22500,34,DVB-S,QPSK -17=12528,V,6660,Auto,DVB-S,QPSK -18=12532,H,14294,78,DVB-S,QPSK -19=12546,V,6670,Auto,DVB-S,QPSK -20=12546,H,22500,34,DVB-S,QPSK -21=12550,H,14294,78,DVB-S,QPSK -22=12556,V,6670,Auto,DVB-S,QPSK -23=12577,H,14294,78,DVB-S,QPSK -24=12581,H,22500,34,DVB-S,QPSK -25=12595,H,14294,78,DVB-S,QPSK -26=12607,V,7177,Auto,DVB-S,QPSK -27=12608,H,22500,34,DVB-S,QPSK -28=12613,H,14294,78,DVB-S,QPSK -29=12637,V,5100,Auto,DVB-S,QPSK -30=12644,H,22500,34,DVB-S,QPSK -31=12661,V,7200,Auto,DVB-S,QPSK -32=12670,V,7200,Auto,DVB-S,QPSK -33=12671,H,22500,34,DVB-S,QPSK -34=12679,V,7200,Auto,DVB-S,QPSK -35=12681,H,7200,34,DVB-S,QPSK -36=12699,H,7200,34,DVB-S,QPSK -37=12707,H,22500,34,DVB-S,QPSK -38=12734,H,22500,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1620.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1620.ini deleted file mode 100644 index 9a16504dc5..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1620.ini +++ /dev/null @@ -1,32 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=1620 -2=Superbird B2 (162.0E) - -[DVB] -0=23 -1=12277,V,6150,34,DVB-S,QPSK -2=12286,V,6150,34,DVB-S,QPSK -3=12295,V,6150,34,DVB-S,QPSK -4=12304,V,6150,34,DVB-S,QPSK -5=12373,V,4095,34,DVB-S,QPSK -6=12382,H,14143,56,S2,QPSK -7=12384,V,4095,34,DVB-S,QPSK -8=12423,V,6143,35,S2,8PSK -9=12440,V,11708,34,S2,QPSK -10=12455,H,4095,34,DVB-S,QPSK -11=12500,H,10000,23,DVB-S,QPSK -12=12523,V,6428,34,DVB-S,QPSK -13=12526,H,5274,34,DVB-S,QPSK -14=12535,H,5274,34,DVB-S,QPSK -15=12543,H,5274,34,DVB-S,QPSK -16=12550,H,5274,34,DVB-S,QPSK -17=12557,V,5275,34,DVB-S,QPSK -18=12596,V,6620,34,DVB-S,QPSK -19=12644,H,5275,34,DVB-S,QPSK -20=12656,V,5275,34,DVB-S,QPSK -21=12664,V,5275,34,DVB-S,QPSK -22=12676,H,6144,34,DVB-S,QPSK -23=12724,H,7072,34,S2,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1640.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1640.ini deleted file mode 100644 index 9650ab47a0..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1640.ini +++ /dev/null @@ -1,12 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=1640 -2=Optus 10/B3 (164.0E) - -[DVB] -0=3 -1=12345,V,7200,Auto,DVB-S,QPSK -2=12388,H,7200,Auto,DVB-S,QPSK -3=12463,V,7200,Auto,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1660.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1660.ini deleted file mode 100644 index 8c040e8841..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1660.ini +++ /dev/null @@ -1,52 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=1660 -2=Intelsat 19 (166.0E) - -[DVB] -0=43 -1=3705,V,3000,78,DVB-S,QPSK -2=3719,V,1620,56,S2,8PSK -3=3724,V,5185,34,DVB-S,QPSK -4=3736,V,2963,34,DVB-S,QPSK -5=3740,H,27500,34,DVB-S,QPSK -6=3760,V,27690,34,DVB-S,QPSK -7=3780,H,25000,34,DVB-S,QPSK -8=3784,V,1464,35,S2,8PSK -9=3795,V,3500,34,DVB-S,QPSK -10=3800,V,3500,34,DVB-S,QPSK -11=3805,V,3960,34,S2,QPSK -12=3810,H,15000,Auto,S2,8PSK -13=3815,V,4400,34,DVB-S,QPSK -14=3851,V,9950,34,DVB-S,QPSK -15=3900,H,30000,23,S2,8PSK -16=3920,V,28800,12,S2,QPSK -17=3940,H,27690,78,DVB-S,QPSK -18=3959,V,7090,34,DVB-S,QPSK -19=3980,H,27690,34,DVB-S,QPSK -20=4040,V,30000,34,S2,8PSK -21=4060,H,26590,12,DVB-S,QPSK -22=4080,V,28270,23,S2,8PSK -23=4086,H,5787,34,DVB-S,QPSK -24=4096,H,5787,34,DVB-S,QPSK -25=4146,V,5632,34,DVB-S,QPSK -26=4165,V,3448,35,S2,QPSK -27=4180,H,30000,23,S2,8PSK -28=12286,H,30000,34,S2,QPSK -29=12390,H,7200,23,S2,8PSK -30=12399,H,7200,23,S2,8PSK -31=12407,H,29500,34,S2,8PSK -32=12412,V,14400,Auto,S2,8PSK -33=12432,H,5632,Auto,DVB-S,QPSK -34=12480,V,6666,Auto,DVB-S,QPSK -35=12495,H,15000,23,S2,8PSK -36=12526,H,30000,34,S2,8PSK -37=12557,H,15000,34,S2,8PSK -38=12575,H,13845,23,DVB-S,QPSK -39=12592,H,2894,34,DVB-S,QPSK -40=12613,H,2222,12,DVB-S,QPSK -41=12646,H,28066,34,DVB-S,QPSK -42=12686,H,28124,34,DVB-S,QPSK -43=12726,H,28066,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1690.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1690.ini deleted file mode 100644 index c7470a5e4a..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1690.ini +++ /dev/null @@ -1,14 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=1690 -2=Intelsat 8 (169.0E) - -[DVB] -0=5 -1=3771,H,13234,Auto,S2,QPSK -2=3809,V,4286,34,DVB-S,QPSK -3=3815,V,4286,34,DVB-S,QPSK -4=3816,H,6620,34,DVB-S,QPSK -5=4032,H,8545,23,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1720.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1720.ini deleted file mode 100644 index 6f0a6f0ea1..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1720.ini +++ /dev/null @@ -1,17 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=1720 -2=Eutelsat 172A (172.0E) - -[DVB] -0=8 -1=3916,H,3330,34,DVB-S,QPSK -2=11515,V,2500,89,S2,QPSK -3=11537,V,1500,Auto,S2,QPSK -4=11623,V,3500,89,S2,QPSK -5=11646,V,2200,Auto,S2,QPSK -6=12716,V,7200,34,DVB-S,QPSK -7=12725,V,7200,34,DVB-S,QPSK -8=12734,V,7200,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1800.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1800.ini deleted file mode 100644 index a3f5044cfb..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1800.ini +++ /dev/null @@ -1,19 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=1800 -2=Intelsat 18 (180.0E) - -[DVB] -0=10 -1=3753,V,28000,34,DVB-S,QPSK -2=4015,H,30000,Auto,S2,QPSK -3=4070,V,3443,34,S2,QPSK -4=4095,H,30000,Auto,S2,QPSK -5=4174,H,3680,23,DVB-S,QPSK -6=10995,H,45000,34,S2,QPSK -7=11075,V,45000,34,S2,8PSK -8=11075,H,45000,34,S2,QPSK -9=11155,V,28588,34,S2,8PSK -10=11155,H,28588,56,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1830.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1830.ini deleted file mode 100644 index 8775bb5d3e..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/1830.ini +++ /dev/null @@ -1,18 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=1830 -2=NSS 9/Yamal 300K (177.0W) - -[DVB] -0=9 -1=3792,V,2048,23,S2,QPSK -2=3922,V,1122,56,S2,QPSK -3=3976,H,30000,23,DVB-S,QPSK -4=3987,V,8950,23,DVB-S,QPSK -5=3999,V,2960,34,DVB-S,QPSK -6=4055,H,30000,34,DVB-S,QPSK -7=4103,V,15196,56,S2,QPSK -8=4152,V,2127,Auto,DVB-S,QPSK -9=4163,V,2644,34,S2,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2210.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2210.ini deleted file mode 100644 index 123055dd4c..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2210.ini +++ /dev/null @@ -1,12 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2210 -2=AMC 8 (139.0W) - -[DVB] -0=3 -1=3756,V,2100,34,DVB-S,QPSK -2=4056,H,13250,34,DVB-S,QPSK -3=4111,V,5000,23,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2230.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2230.ini deleted file mode 100644 index fe661385bb..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2230.ini +++ /dev/null @@ -1,11 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2230 -2=AMC 7 (137.0W) - -[DVB] -0=2 -1=3760,H,25195,34,DVB-S,QPSK -2=4100,V,6500,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2250.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2250.ini deleted file mode 100644 index 4f5a9494da..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2250.ini +++ /dev/null @@ -1,25 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2250 -2=AMC 10 (135.0W) - -[DVB] -0=16 -1=3720,V,30000,56,S2,8PSK -2=3760,V,30000,56,S2,8PSK -3=3780,H,29200,34,DVB-S,QPSK -4=3800,V,30000,56,S2,QPSK -5=3820,H,29270,34,DVB-S,QPSK -6=3840,V,29270,34,DVB-S,QPSK -7=3900,H,29270,34,DVB-S,QPSK -8=3920,V,29270,34,DVB-S,QPSK -9=3960,V,29270,34,DVB-S,QPSK -10=3980,H,29270,34,DVB-S,QPSK -11=4040,V,30000,56,S2,8PSK -12=4080,V,29270,34,DVB-S,QPSK -13=4120,V,30000,34,S2,8PSK -14=4136,H,19510,34,DVB-S,QPSK -15=4149,H,9760,34,DVB-S,QPSK -16=4180,H,29270,78,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2270.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2270.ini deleted file mode 100644 index 18a777c4b7..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2270.ini +++ /dev/null @@ -1,32 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2270 -2=Galaxy 15 (133.0W) - -[DVB] -0=23 -1=3720,H,29270,56,DVB-S,QPSK -2=3740,V,31250,34,S2,8PSK -3=3760,H,19510,34,DVB-S,QPSK -4=3780,V,31250,34,S2,8PSK -5=3790,H,11936,34,DVB-S,QPSK -6=3808,H,16303,34,S2,8PSK -7=3825,V,13800,56,DVB-S,QPSK -8=3840,H,29270,34,DVB-S,QPSK -9=3860,V,28000,34,DVB-S,QPSK -10=3900,V,31250,34,S2,8PSK -11=3960,H,19510,34,DVB-S,QPSK -12=3980,V,29270,34,DVB-S,QPSK -13=4000,H,30000,56,S2,8PSK -14=4020,V,29270,Auto,DVB-S,QPSK -15=4025,H,4880,34,DVB-S,QPSK -16=4044,H,22500,56,S2,8PSK -17=4060,V,29270,78,DVB-S,QPSK -18=4080,H,30000,56,S2,8PSK -19=4100,V,31250,34,S2,8PSK -20=4120,H,31250,34,S2,8PSK -21=4140,V,31250,34,S2,8PSK -22=4160,H,29270,78,DVB-S,QPSK -23=4180,V,29270,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2290.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2290.ini deleted file mode 100644 index 631af13d23..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2290.ini +++ /dev/null @@ -1,32 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2290 -2=AMC 11 (131.0W) - -[DVB] -0=23 -1=3760,V,19510,34,DVB-S,QPSK -2=3780,H,29270,34,DVB-S,QPSK -3=3790,V,12400,78,DVB-S,QPSK -4=3808,V,15800,56,S2,8PSK -5=3860,H,30000,56,S2,8PSK -6=3880,V,19510,34,DVB-S,QPSK -7=3900,H,30000,56,S2,QPSK -8=3910,V,13200,56,DVB-S,8PSK -9=3928,V,14323,56,DVB-S,QPSK -10=3940,H,29270,34,DVB-S,QPSK -11=3960,V,30000,34,S2,8PSK -12=3980,H,30000,56,S2,8PSK -13=3995,V,19510,34,DVB-S,QPSK -14=4020,H,29270,34,DVB-S,QPSK -15=4040,V,29270,34,DVB-S,QPSK -16=4060,H,29270,34,DVB-S,QPSK -17=4075,V,19510,34,DVB-S,QPSK -18=4092,V,9760,34,DVB-S,QPSK -19=4100,H,30000,56,S2,8PSK -20=4120,V,30000,56,S2,8PSK -21=4140,H,19510,34,DVB-S,QPSK -22=4160,V,29200,34,DVB-S,QPSK -23=4180,H,29270,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2310.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2310.ini deleted file mode 100644 index 5915c23650..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2310.ini +++ /dev/null @@ -1,41 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2310 -2=Ciel 2/Galaxy 12 (129.0W) - -[DVB] -0=32 -1=12224,V,21500,23,DVB-S,8PSK -2=12239,H,21500,23,DVB-S,8PSK -3=12253,V,21500,23,DVB-S,8PSK -4=12268,H,21500,23,DVB-S,8PSK -5=12282,V,21500,23,DVB-S,8PSK -6=12297,H,21500,23,DVB-S,8PSK -7=12311,V,21500,23,DVB-S,8PSK -8=12326,H,21500,23,DVB-S,8PSK -9=12341,V,21500,23,DVB-S,8PSK -10=12355,H,21500,23,DVB-S,8PSK -11=12370,V,21500,23,DVB-S,8PSK -12=12384,H,21500,23,DVB-S,8PSK -13=12399,V,20000,78,DVB-S,8PSK -14=12414,H,21500,23,DVB-S,8PSK -15=12428,V,21500,23,DVB-S,8PSK -16=12443,H,21500,23,DVB-S,8PSK -17=12457,V,21500,23,DVB-S,8PSK -18=12472,H,21500,23,DVB-S,8PSK -19=12486,V,21500,23,DVB-S,8PSK -20=12501,H,21500,23,DVB-S,8PSK -21=12516,V,20000,56,DVB-S,QPSK -22=12530,H,21500,23,DVB-S,8PSK -23=12545,V,21500,23,DVB-S,8PSK -24=12559,H,21500,23,DVB-S,8PSK -25=12574,V,21500,23,DVB-S,8PSK -26=12588,H,21500,23,DVB-S,8PSK -27=12603,V,21500,23,DVB-S,8PSK -28=12618,H,21500,23,DVB-S,8PSK -29=12632,V,21500,23,DVB-S,8PSK -30=12647,H,21500,23,DVB-S,8PSK -31=12661,V,21500,23,DVB-S,8PSK -32=12676,H,21500,23,DVB-S,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2330.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2330.ini deleted file mode 100644 index 3ab17e6a1f..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2330.ini +++ /dev/null @@ -1,32 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2330 -2=Galaxy 13/Horizons 1 (127.0W) - -[DVB] -0=23 -1=3760,V,28076,34,DVB-S,QPSK -2=3780,H,30000,23,S2,8PSK -3=3800,V,27690,34,DVB-S,QPSK -4=3820,H,30000,56,S2,8PSK -5=3840,V,30000,56,S2,8PSK -6=3880,V,30000,89,S2,8PSK -7=3900,H,29270,78,DVB-S,QPSK -8=3920,V,29270,78,DVB-S,QPSK -9=3960,V,30000,56,S2,8PSK -10=3980,H,30000,34,S2,8PSK -11=4000,V,30000,89,S2,8PSK -12=4052,H,17500,56,S2,8PSK -13=4066,H,3310,34,DVB-S,QPSK -14=4070,H,3257,34,S2,8PSK -15=4080,V,28076,34,DVB-S,QPSK -16=4120,V,30000,56,S2,8PSK -17=4140,H,30000,34,S2,8PSK -18=4160,V,30000,56,S2,8PSK -19=11727,V,6620,Auto,DVB-S,QPSK -20=12050,H,13020,Auto,DVB-S,QPSK -21=12087,V,6111,Auto,DVB-S,QPSK -22=12140,V,30000,34,DVB-S,QPSK -23=12180,V,16278,Auto,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2350.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2350.ini deleted file mode 100644 index cdaa5042ea..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2350.ini +++ /dev/null @@ -1,43 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2350 -2=AMC 21/Galaxy 14 (125.0W) - -[DVB] -0=34 -1=3720,H,26667,34,DVB-S,QPSK -2=3740,V,30000,56,S2,8PSK -3=3760,H,19886,34,DVB-S,QPSK -4=3780,V,30000,34,S2,8PSK -5=3820,V,30000,34,S2,8PSK -6=3840,H,30000,56,S2,8PSK -7=3860,V,30000,56,S2,8PSK -8=3880,H,30000,56,S2,8PSK -9=3900,V,29079,56,S2,8PSK -10=3920,H,29270,34,DVB-S,QPSK -11=3940,V,19510,34,DVB-S,QPSK -12=3960,H,29270,34,DVB-S,QPSK -13=3980,V,30000,56,S2,8PSK -14=4020,V,30000,56,S2,8PSK -15=4040,H,30000,34,S2,8PSK -16=4080,H,30000,34,S2,8PSK -17=4100,V,29270,78,DVB-S,QPSK -18=4120,H,29270,34,DVB-S,QPSK -19=4140,V,30000,34,S2,8PSK -20=4160,H,30000,56,S2,8PSK -21=4180,V,30000,56,S2,8PSK -22=11740,V,30000,34,S2,QPSK -23=11760,H,30000,34,S2,QPSK -24=11780,V,30000,34,S2,QPSK -25=11800,H,30000,34,S2,QPSK -26=11980,V,30000,34,S2,QPSK -27=12106,V,2398,23,S2,QPSK -28=12112,V,8703,34,S2,8PSK -29=12146,H,6250,34,S2,QPSK -30=12155,H,6250,34,S2,QPSK -31=12163,H,4444,34,DVB-S,QPSK -32=12169,H,4444,34,DVB-S,QPSK -33=12175,H,4444,34,DVB-S,QPSK -34=12180,V,30000,34,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2370.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2370.ini deleted file mode 100644 index ce1a1f239f..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2370.ini +++ /dev/null @@ -1,23 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2370 -2=Galaxy 18 (123.0W) - -[DVB] -0=14 -1=4020,H,30000,56,S2,8PSK -2=4040,V,29270,34,DVB-S,QPSK -3=4100,H,29270,34,DVB-S,QPSK -4=4120,V,29270,34,DVB-S,QPSK -5=4140,H,30000,56,S2,8PSK -6=4160,V,29270,34,DVB-S,QPSK -7=4176,H,20000,34,DVB-S,QPSK -8=11732,H,13240,34,DVB-S,QPSK -9=11747,V,2667,Auto,DVB-S,QPSK -10=11772,V,3361,34,S2,QPSK -11=11776,V,2848,23,DVB-S,QPSK -12=11848,V,1784,34,S2,8PSK -13=12033,H,8200,34,DVB-S,QPSK -14=12078,V,3680,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2390.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2390.ini deleted file mode 100644 index 73ca36a7b6..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2390.ini +++ /dev/null @@ -1,42 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2390 -2=EchoStar 9/Galaxy 23 (121.0W) - -[DVB] -0=33 -1=3714,H,4340,78,DVB-S,QPSK -2=3730,H,8824,34,DVB-S,QPSK -3=3732,V,14400,89,S2,8PSK -4=3750,V,14027,34,DVB-S,QPSK -5=3780,V,29270,78,DVB-S,QPSK -6=3800,H,19510,34,DVB-S,QPSK -7=3820,V,29270,34,DVB-S,QPSK -8=3840,H,30000,56,S2,8PSK -9=3877,H,4444,34,DVB-S,QPSK -10=3889,H,13020,34,DVB-S,QPSK -11=3910,H,14400,34,S2,8PSK -12=3980,V,29270,78,DVB-S,QPSK -13=4000,H,19510,34,DVB-S,QPSK -14=4011,V,15000,56,S2,8PSK -15=4033,V,8333,56,DVB-S,QPSK -16=4050,V,2590,34,DVB-S,QPSK -17=4055,V,6510,34,DVB-S,QPSK -18=4080,H,30000,56,S2,8PSK -19=4100,V,29270,34,DVB-S,QPSK -20=4115,H,18085,34,DVB-S,QPSK -21=4172,V,18916,23,S2,8PSK -22=4192,V,11070,56,DVB-S,QPSK -23=11715,V,6510,Auto,DVB-S,QPSK -24=11724,V,6510,Auto,DVB-S,QPSK -25=11899,V,20000,34,DVB-S,QPSK -26=11928,V,20000,34,DVB-S,QPSK -27=11943,H,20000,34,DVB-S,QPSK -28=11957,V,20000,12,DVB-S,QPSK -29=11990,H,20000,34,DVB-S,QPSK -30=12016,V,20000,34,DVB-S,QPSK -31=12045,V,20000,34,DVB-S,QPSK -32=12167,H,6000,Auto,DVB-S,QPSK -33=12171,V,5800,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2410.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2410.ini deleted file mode 100644 index 188507e9dd..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2410.ini +++ /dev/null @@ -1,72 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2410 -2=Anik F3/DirecTV 7S/EchoStar 14 (119.0W) - -[DVB] -0=63 -1=3934,H,5714,34,DVB-S,QPSK -2=11715,V,20000,34,DVB-S,QPSK -3=11728,H,20000,34,DVB-S,QPSK -4=11745,V,20000,34,DVB-S,QPSK -5=11758,H,20000,34,DVB-S,QPSK -6=11776,V,20000,34,DVB-S,QPSK -7=11789,H,20000,34,DVB-S,QPSK -8=11806,V,20000,34,DVB-S,QPSK -9=11819,H,20000,34,DVB-S,QPSK -10=11837,V,20000,34,DVB-S,QPSK -11=11850,H,20000,34,DVB-S,QPSK -12=11867,V,20000,34,DVB-S,QPSK -13=11880,H,20000,34,DVB-S,QPSK -14=11898,V,20000,34,DVB-S,QPSK -15=11911,H,20000,34,DVB-S,QPSK -16=11928,V,20000,34,DVB-S,QPSK -17=11972,H,20000,34,DVB-S,QPSK -18=11989,V,20000,34,DVB-S,QPSK -19=12002,H,20000,34,DVB-S,QPSK -20=12020,V,20000,34,DVB-S,QPSK -21=12033,H,20000,34,DVB-S,QPSK -22=12050,V,20000,34,DVB-S,QPSK -23=12063,H,20000,34,DVB-S,QPSK -24=12081,V,20000,34,DVB-S,QPSK -25=12094,H,20000,34,DVB-S,QPSK -26=12111,V,20000,34,DVB-S,QPSK -27=12124,H,20000,34,DVB-S,QPSK -28=12142,V,20000,34,DVB-S,QPSK -29=12155,H,20000,34,DVB-S,QPSK -30=12172,V,20000,34,DVB-S,QPSK -31=12185,H,20000,34,DVB-S,QPSK -32=12224,V,21500,23,DVB-S,8PSK -33=12239,H,21500,23,DVB-S,8PSK -34=12253,V,21500,23,DVB-S,8PSK -35=12268,H,21500,23,DVB-S,8PSK -36=12282,V,21500,23,DVB-S,8PSK -37=12297,H,20000,78,DVB-S,QPSK -38=12311,V,21500,23,DVB-S,8PSK -39=12326,H,20000,78,DVB-S,QPSK -40=12341,V,20000,78,DVB-S,QPSK -41=12355,H,20000,78,DVB-S,QPSK -42=12370,V,20000,78,DVB-S,QPSK -43=12384,H,20000,78,DVB-S,QPSK -44=12399,V,20000,78,DVB-S,QPSK -45=12414,H,20000,78,DVB-S,QPSK -46=12428,V,20000,78,DVB-S,QPSK -47=12443,H,20000,78,DVB-S,QPSK -48=12457,V,20000,78,DVB-S,QPSK -49=12472,H,20000,78,DVB-S,QPSK -50=12486,V,20000,78,DVB-S,QPSK -51=12501,H,20000,78,DVB-S,QPSK -52=12516,V,20000,78,DVB-S,QPSK -53=12530,H,20000,Auto,DVB-S,QPSK -54=12545,V,20000,Auto,DVB-S,QPSK -55=12559,H,20000,23,S2,8PSK -56=12574,V,20000,Auto,DVB-S,QPSK -57=12588,H,20000,Auto,DVB-S,QPSK -58=12603,V,20000,Auto,DVB-S,QPSK -59=12618,H,20000,Auto,DVB-S,QPSK -60=12632,V,20000,Auto,DVB-S,QPSK -61=12647,H,20000,Auto,DVB-S,QPSK -62=12661,V,20000,Auto,DVB-S,QPSK -63=12676,H,20000,Auto,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2432.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2432.ini deleted file mode 100644 index aacb92c284..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2432.ini +++ /dev/null @@ -1,85 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2432 -2=Eutelsat 117 West A (116.8W) - -[DVB] -0=76 -1=3720,V,27000,34,DVB-S,QPSK -2=3744,V,2665,34,S2,8PSK -3=3748,V,2100,78,DVB-S,QPSK -4=3768,V,4800,34,S2,8PSK -5=3772,V,3515,34,DVB-S,QPSK -6=3786,V,6900,34,DVB-S,QPSK -7=3793,V,4240,34,S2,QPSK -8=3798,V,5225,56,S2,8PSK -9=3804,V,1480,56,S2,8PSK -10=3804,H,4000,34,DVB-S,QPSK -11=3808,H,2170,34,DVB-S,QPSK -12=3820,H,2000,34,S2,8PSK -13=3824,H,1808,34,DVB-S,QPSK -14=3835,V,19510,23,DVB-S,QPSK -15=3850,H,4710,34,DVB-S,QPSK -16=3853,H,1667,34,S2,8PSK -17=3854,V,8333,23,S2,8PSK -18=3868,V,8131,34,S2,8PSK -19=3883,H,1350,34,S2,8PSK -20=3885,H,1481,34,DVB-S,QPSK -21=3888,V,1480,23,S2,8PSK -22=3889,H,4181,34,DVB-S,QPSK -23=3895,H,3609,34,DVB-S,QPSK -24=3897,V,1480,34,DVB-S,QPSK -25=3899,H,4167,34,S2,QPSK -26=3903,H,1480,56,S2,8PSK -27=3903,V,2200,78,DVB-S,QPSK -28=3905,H,1600,34,S2,QPSK -29=3908,H,2170,34,DVB-S,QPSK -30=3911,H,2500,34,DVB-S,QPSK -31=3914,H,2105,56,S2,8PSK -32=3916,H,1520,34,DVB-S,QPSK -33=3920,V,7320,34,DVB-S,QPSK -34=3926,V,2222,34,DVB-S,QPSK -35=3930,V,2310,78,DVB-S,QPSK -36=3932,V,1447,34,S2,8PSK -37=3940,H,29270,34,DVB-S,QPSK -38=3949,V,11250,23,S2,8PSK -39=3957,V,1595,56,S2,8PSK -40=3960,V,1595,56,S2,8PSK -41=3962,V,1800,34,S2,QPSK -42=3968,V,7500,34,DVB-S,QPSK -43=3969,H,1100,34,S2,QPSK -44=3975,H,2170,34,S2,8PSK -45=3976,V,2666,34,DVB-S,QPSK -46=3984,V,3100,34,DVB-S,QPSK -47=3989,V,2892,34,DVB-S,QPSK -48=4009,V,6379,34,DVB-S,QPSK -49=4015,V,3000,34,DVB-S,QPSK -50=4031,V,15200,56,DVB-S,QPSK -51=4044,H,3333,34,DVB-S,QPSK -52=4049,H,3330,34,DVB-S,QPSK -53=4052,V,4307,34,DVB-S,QPSK -54=4056,V,1800,23,DVB-S,QPSK -55=4064,H,19510,34,DVB-S,QPSK -56=4075,H,2962,34,DVB-S,QPSK -57=4084,H,3162,78,DVB-S,QPSK -58=4090,H,5000,56,S2,8PSK -59=4103,H,1600,23,S2,8PSK -60=4106,H,3200,23,DVB-S,QPSK -61=4109,H,2885,34,S2,QPSK -62=4116,H,2900,34,S2,QPSK -63=4120,V,30000,56,S2,8PSK -64=4134,H,4400,34,DVB-S,QPSK -65=4152,H,1321,35,S2,8PSK -66=4155,H,1480,34,S2,8PSK -67=4175,H,1850,Auto,S2,8PSK -68=4178,H,2800,34,S2,8PSK -69=4189,H,9760,34,DVB-S,QPSK -70=12060,V,30000,34,DVB-S,8PSK -71=12080,H,30000,34,DVB-S,8PSK -72=12100,V,29000,34,DVB-S,8PSK -73=12126,V,5400,34,DVB-S,QPSK -74=12175,H,3704,34,DVB-S,QPSK -75=12180,H,3000,12,DVB-S,QPSK -76=12189,H,1660,78,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2451.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2451.ini deleted file mode 100644 index 0272503f2e..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2451.ini +++ /dev/null @@ -1,14 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2451 -2=Eutelsat 115 West A (114.9W) - -[DVB] -0=5 -1=12041,V,1562,Auto,DVB-S,QPSK -2=12044,V,1955,Auto,S2,QPSK -3=12049,V,1955,Auto,S2,QPSK -4=12063,H,3332,Auto,DVB-S,QPSK -5=12087,V,3400,Auto,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2470.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2470.ini deleted file mode 100644 index 0042e0ef12..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2470.ini +++ /dev/null @@ -1,64 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2470 -2=Eutelsat 113 West A (113.0W) - -[DVB] -0=55 -1=3704,V,2222,34,S2,QPSK -2=3709,V,3255,34,DVB-S,QPSK -3=3714,V,2120,34,DVB-S,QPSK -4=3731,V,3782,78,DVB-S,QPSK -5=3734,H,3410,Auto,DVB-S,QPSK -6=3736,V,3254,34,DVB-S,QPSK -7=3744,V,2893,34,DVB-S,QPSK -8=3752,V,2893,34,DVB-S,QPSK -9=3760,V,2893,34,DVB-S,QPSK -10=3764,H,2934,34,DVB-S,QPSK -11=3765,V,3254,34,DVB-S,QPSK -12=3768,H,2976,78,DVB-S,QPSK -13=3769,V,3363,34,DVB-S,QPSK -14=3773,V,2532,34,DVB-S,QPSK -15=3773,H,2875,34,DVB-S,QPSK -16=3780,H,4406,56,DVB-S,QPSK -17=3784,H,2666,78,DVB-S,QPSK -18=3787,H,2083,34,DVB-S,QPSK -19=3821,H,3255,78,DVB-S,QPSK -20=3825,H,3621,56,S2,8PSK -21=3828,V,2550,56,DVB-S,QPSK -22=3829,H,3620,56,S2,8PSK -23=3834,H,3620,56,S2,8PSK -24=3835,V,1807,34,DVB-S,QPSK -25=3837,V,2550,78,DVB-S,QPSK -26=3848,V,13842,34,S2,8PSK -27=3848,H,2893,34,DVB-S,QPSK -28=3853,H,3255,34,DVB-S,QPSK -29=3857,H,2804,34,DVB-S,QPSK -30=3863,H,3200,34,DVB-S,QPSK -31=3867,H,2415,35,S2,8PSK -32=3875,H,4166,34,DVB-S,QPSK -33=3880,V,29270,34,DVB-S,QPSK -34=3900,H,30000,35,S2,8PSK -35=3920,V,29270,34,DVB-S,QPSK -36=3955,H,2400,Auto,S2,QPSK -37=4034,H,3551,34,DVB-S,QPSK -38=4064,V,3080,34,S2,8PSK -39=4080,V,2920,34,DVB-S,QPSK -40=4140,H,20008,56,S2,8PSK -41=11989,V,3750,34,DVB-S,QPSK -42=11994,V,4340,23,DVB-S,QPSK -43=12028,H,2600,Auto,DVB-S,QPSK -44=12046,H,14200,35,S2,8PSK -45=12089,H,11719,34,DVB-S,QPSK -46=12110,H,2170,Auto,DVB-S,QPSK -47=12126,V,6022,Auto,DVB-S,QPSK -48=12136,V,3255,Auto,DVB-S,QPSK -49=12151,V,3255,Auto,DVB-S,QPSK -50=12157,V,3038,Auto,DVB-S,QPSK -51=12161,H,1480,34,DVB-S,QPSK -52=12165,H,3333,Auto,DVB-S,QPSK -53=12165,V,3255,Auto,DVB-S,QPSK -54=12172,V,3333,Auto,DVB-S,QPSK -55=12193,V,3255,Auto,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2489.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2489.ini deleted file mode 100644 index c71cfdd790..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2489.ini +++ /dev/null @@ -1,40 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2489 -2=Anik F2 (111.1W) - -[DVB] -0=31 -1=4168,V,9737,12,S2,8PSK -2=11745,V,20500,23,DVB-S,8PSK -3=11758,H,20500,23,DVB-S,8PSK -4=11770,V,3270,Auto,DVB-S,QPSK -5=11819,H,20500,23,DVB-S,8PSK -6=11837,V,20500,23,DVB-S,8PSK -7=11850,H,20500,23,DVB-S,8PSK -8=11880,H,20500,23,DVB-S,8PSK -9=11898,V,20500,23,DVB-S,8PSK -10=11928,V,20500,23,DVB-S,8PSK -11=11972,H,20500,23,DVB-S,8PSK -12=11989,V,20500,23,DVB-S,8PSK -13=12002,H,19510,34,DVB-S,QPSK -14=12020,V,20500,23,DVB-S,8PSK -15=12033,H,20500,23,DVB-S,8PSK -16=12050,V,20500,23,DVB-S,8PSK -17=12063,H,19510,34,DVB-S,QPSK -18=12081,V,20500,23,DVB-S,8PSK -19=12094,H,19510,34,DVB-S,QPSK -20=12111,V,19510,34,DVB-S,QPSK -21=12142,V,20500,23,DVB-S,8PSK -22=12155,H,20500,23,DVB-S,8PSK -23=12172,V,19510,34,DVB-S,QPSK -24=12185,H,20500,23,DVB-S,8PSK -25=19776,H,15000,34,DVB-S,QPSK -26=19794,H,15000,34,DVB-S,QPSK -27=19814,H,15000,34,DVB-S,QPSK -28=19905,H,22500,34,DVB-S,QPSK -29=19932,H,22500,34,DVB-S,QPSK -30=19966,H,15000,12,DVB-S,QPSK -31=20002,H,15000,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2500.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2500.ini deleted file mode 100644 index 0fb566b488..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2500.ini +++ /dev/null @@ -1,38 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2500 -2=DirecTV 5/EchoStar 10/11 (110.0W) - -[DVB] -0=29 -1=12224,V,20000,78,DVB-S,QPSK -2=12239,H,20000,78,DVB-S,QPSK -3=12253,V,20000,78,DVB-S,QPSK -4=12268,H,21500,23,DVB-S,8PSK -5=12282,V,20000,78,DVB-S,QPSK -6=12297,H,20000,78,DVB-S,QPSK -7=12311,V,21500,23,DVB-S,8PSK -8=12326,H,20000,78,DVB-S,QPSK -9=12341,V,20000,78,DVB-S,QPSK -10=12355,H,20000,78,DVB-S,QPSK -11=12370,V,20000,78,DVB-S,QPSK -12=12384,H,20000,56,DVB-S,QPSK -13=12399,V,21500,23,DVB-S,8PSK -14=12414,H,20000,78,DVB-S,QPSK -15=12428,V,20000,78,DVB-S,QPSK -16=12443,H,20000,78,DVB-S,QPSK -17=12472,H,21500,23,DVB-S,8PSK -18=12486,V,21500,23,DVB-S,8PSK -19=12501,H,21500,23,DVB-S,8PSK -20=12516,V,20000,78,DVB-S,QPSK -21=12530,H,21500,23,DVB-S,8PSK -22=12545,V,21500,23,DVB-S,8PSK -23=12559,H,20000,78,DVB-S,QPSK -24=12574,V,20000,56,DVB-S,8PSK -25=12588,H,20000,56,DVB-S,QPSK -26=12603,V,20000,56,DVB-S,QPSK -27=12618,H,20000,Auto,DVB-S,QPSK -28=12632,V,21500,23,DVB-S,8PSK -29=12661,V,21500,23,DVB-S,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2527.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2527.ini deleted file mode 100644 index 41b4e2981c..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2527.ini +++ /dev/null @@ -1,79 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2527 -2=Anik F1R/G1 (107.3W) - -[DVB] -0=70 -1=3734,V,1665,56,DVB-S,QPSK -2=3780,V,28346,78,DVB-S,QPSK -3=3807,V,6500,12,DVB-S,QPSK -4=3825,V,6500,12,DVB-S,QPSK -5=3840,H,30000,34,S2,8PSK -6=3860,V,30000,23,S2,8PSK -7=3913,V,7078,23,S2,8PSK -8=3920,H,30000,34,DVB-S,8PSK -9=3924,V,3000,78,DVB-S,QPSK -10=3948,V,14630,34,DVB-S,QPSK -11=3962,H,9120,78,DVB-S,QPSK -12=4020,V,30000,56,S2,8PSK -13=4040,H,30000,34,S2,8PSK -14=4060,V,28346,78,DVB-S,QPSK -15=4080,H,30000,34,S2,8PSK -16=4100,V,28346,78,DVB-S,QPSK -17=4107,H,7440,56,DVB-S,QPSK -18=4117,H,6200,56,DVB-S,QPSK -19=4140,V,30000,56,S2,8PSK -20=4160,H,30000,34,S2,8PSK -21=11092,V,22000,89,DVB-S,8PSK -22=11092,H,22000,89,DVB-S,8PSK -23=11122,V,22000,89,DVB-S,8PSK -24=11122,H,22000,89,DVB-S,8PSK -25=11152,V,22000,89,DVB-S,8PSK -26=11152,H,22000,89,DVB-S,8PSK -27=11183,V,22000,89,DVB-S,8PSK -28=11183,H,22000,89,DVB-S,8PSK -29=11592,V,22000,56,DVB-S,8PSK -30=11592,H,22000,89,DVB-S,8PSK -31=11622,V,22000,56,DVB-S,8PSK -32=11622,H,22000,89,DVB-S,8PSK -33=11652,V,22000,56,DVB-S,8PSK -34=11683,V,22000,56,DVB-S,8PSK -35=11683,H,20500,56,DVB-S,8PSK -36=11715,V,21000,34,DVB-S,8PSK -37=11728,H,19510,34,DVB-S,QPSK -38=11745,V,19510,34,DVB-S,QPSK -39=11758,H,19510,34,DVB-S,QPSK -40=11776,V,19510,34,DVB-S,QPSK -41=11789,H,19510,34,DVB-S,QPSK -42=11806,V,19510,34,DVB-S,QPSK -43=11819,H,19510,34,DVB-S,QPSK -44=11837,V,19510,34,DVB-S,QPSK -45=11850,H,19510,34,DVB-S,QPSK -46=11867,V,19510,34,DVB-S,QPSK -47=11880,H,19510,34,DVB-S,QPSK -48=11898,V,19510,34,DVB-S,QPSK -49=11902,H,5859,34,DVB-S,QPSK -50=11912,H,5859,34,DVB-S,QPSK -51=11928,V,19510,34,DVB-S,QPSK -52=11933,H,5859,34,DVB-S,QPSK -53=11941,H,5859,34,DVB-S,QPSK -54=11949,H,5859,34,DVB-S,QPSK -55=11959,V,19510,34,DVB-S,QPSK -56=11972,H,19510,34,DVB-S,QPSK -57=11989,V,20500,23,DVB-S,8PSK -58=12002,H,19510,34,DVB-S,QPSK -59=12020,V,19510,34,DVB-S,QPSK -60=12033,H,19510,34,DVB-S,QPSK -61=12050,V,19510,34,DVB-S,QPSK -62=12063,H,19510,34,DVB-S,QPSK -63=12081,V,20500,23,DVB-S,8PSK -64=12094,H,19510,34,DVB-S,QPSK -65=12111,V,19510,34,DVB-S,QPSK -66=12124,H,19510,34,DVB-S,QPSK -67=12142,V,19510,34,DVB-S,QPSK -68=12155,H,19510,34,DVB-S,QPSK -69=12172,V,19510,34,DVB-S,QPSK -70=12185,H,19510,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2550.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2550.ini deleted file mode 100644 index d573433b8b..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2550.ini +++ /dev/null @@ -1,37 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2550 -2=AMC 15/18 (105.0W) - -[DVB] -0=28 -1=3720,V,19510,34,DVB-S,QPSK -2=3760,V,28068,34,DVB-S,QPSK -3=3780,H,30000,34,S2,8PSK -4=3840,V,30000,56,S2,8PSK -5=3860,H,30000,56,S2,8PSK -6=3900,H,19510,34,DVB-S,QPSK -7=3940,H,30000,56,S2,8PSK -8=4000,V,30000,56,S2,8PSK -9=4020,H,30000,56,S2,8PSK -10=4060,H,19510,34,DVB-S,QPSK -11=4080,V,30000,56,S2,8PSK -12=4100,H,19510,34,DVB-S,QPSK -13=4120,V,19510,34,DVB-S,QPSK -14=4140,H,19510,34,DVB-S,QPSK -15=4160,V,30000,56,S2,8PSK -16=4180,H,19510,34,DVB-S,QPSK -17=11706,V,6620,34,DVB-S,QPSK -18=11716,V,6620,34,DVB-S,QPSK -19=11724,V,6113,34,DVB-S,QPSK -20=11729,H,3979,34,DVB-S,QPSK -21=11734,V,6113,34,DVB-S,QPSK -22=11756,V,6113,34,DVB-S,QPSK -23=11766,V,4411,Auto,DVB-S,QPSK -24=11766,H,6113,34,DVB-S,QPSK -25=11830,V,6620,Auto,DVB-S,QPSK -26=11834,H,13235,Auto,DVB-S,QPSK -27=11856,V,3548,12,DVB-S,QPSK -28=12122,H,1000,Auto,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2570.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2570.ini deleted file mode 100644 index 1fcd356437..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2570.ini +++ /dev/null @@ -1,73 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2570 -2=SES 3/Spaceway 1 & DirecTV 10/12 (103.0W) - -[DVB] -0=64 -1=3740,V,29270,78,DVB-S,QPSK -2=3760,H,30000,34,S2,8PSK -3=3780,V,28800,56,S2,8PSK -4=3800,H,29270,78,DVB-S,QPSK -5=3820,V,29270,34,DVB-S,QPSK -6=3840,H,26681,34,DVB-S,QPSK -7=3860,V,30000,56,S2,8PSK -8=3891,V,14400,23,S2,8PSK -9=3904,V,6667,23,S2,8PSK -10=3906,H,6511,34,DVB-S,QPSK -11=3913,H,2927,34,DVB-S,QPSK -12=3920,H,3150,56,DVB-S,QPSK -13=3924,H,2734,Auto,S2,QPSK -14=3960,H,30000,56,S2,8PSK -15=3972,V,14800,56,DVB-S,QPSK -16=4040,H,30000,23,S2,8PSK -17=4081,H,7233,34,DVB-S,QPSK -18=4089,H,5923,56,S2,8PSK -19=4091,V,14029,34,DVB-S,QPSK -20=4120,H,30000,56,S2,8PSK -21=4140,V,30000,56,S2,8PSK -22=4160,H,26681,34,DVB-S,QPSK -23=11760,H,30000,56,S2,8PSK -24=11840,H,30000,56,S2,8PSK -25=11880,H,30000,56,S2,8PSK -26=11940,V,20000,34,DVB-S,QPSK -27=11985,H,4600,34,S2,8PSK -28=12009,H,4600,34,S2,8PSK -29=12015,H,4600,56,DVB-S,QPSK -30=12025,H,4600,34,S2,8PSK -31=12065,H,4232,56,DVB-S,QPSK -32=12071,H,4600,34,S2,8PSK -33=12076,V,4250,56,S2,8PSK -34=12077,H,4600,34,S2,8PSK -35=12083,H,4600,34,S2,8PSK -36=12089,H,4600,34,S2,8PSK -37=12095,H,4600,34,S2,8PSK -38=12145,V,20000,34,DVB-S,QPSK -39=12157,H,4600,34,S2,8PSK -40=12175,H,4600,34,S2,8PSK -41=12182,V,25000,34,DVB-S,QPSK -42=18327,H,30000,23,S2,QPSK -43=18327,V,30000,23,S2,QPSK -44=18367,H,30000,23,S2,QPSK -45=18367,V,30000,23,S2,QPSK -46=18407,H,30000,23,S2,QPSK -47=18407,V,30000,23,S2,QPSK -48=18447,H,30000,23,S2,QPSK -49=18447,V,30000,23,S2,QPSK -50=18487,H,30000,23,S2,QPSK -51=18487,V,30000,23,S2,QPSK -52=18527,H,30000,23,S2,QPSK -53=18527,V,30000,23,S2,QPSK -54=18567,H,30000,23,S2,QPSK -55=18567,V,30000,23,S2,QPSK -56=18607,H,30000,23,S2,QPSK -57=18607,V,30000,23,S2,QPSK -58=18648,V,30000,23,S2,QPSK -59=19741,H,30000,34,S2,QPSK -60=19741,V,30000,34,S2,QPSK -61=19804,H,30000,34,S2,QPSK -62=19804,V,30000,34,S2,QPSK -63=19866,H,30000,34,S2,QPSK -64=19866,V,30000,34,S2,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2590.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2590.ini deleted file mode 100644 index 322d683c18..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2590.ini +++ /dev/null @@ -1,55 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2590 -2=DirecTV 4S/8/SES 1 (101.0W) - -[DVB] -0=46 -1=3710,V,4340,34,DVB-S,QPSK -2=3716,V,4775,35,S2,8PSK -3=3722,V,5600,34,S2,8PSK -4=3773,V,4442,34,DVB-S,QPSK -5=3920,V,30000,56,S2,8PSK -6=3953,V,2734,56,DVB-S,QPSK -7=3957,V,2734,56,DVB-S,QPSK -8=3961,V,2734,56,DVB-S,QPSK -9=3974,V,5924,56,DVB-S,QPSK -10=4020,H,28000,34,S2,8PSK -11=11705,V,3650,34,S2,QPSK -12=11795,H,4342,56,DVB-S,QPSK -13=11820,H,20000,34,DVB-S,QPSK -14=12172,H,15000,Auto,DVB-S,QPSK -15=12224,V,20000,Auto,DVB-S,QPSK -16=12239,H,20000,Auto,DVB-S,QPSK -17=12253,V,20000,Auto,DVB-S,QPSK -18=12268,H,20000,23,DVB-S,QPSK -19=12282,V,20000,Auto,DVB-S,QPSK -20=12297,H,20000,Auto,DVB-S,QPSK -21=12311,V,20000,Auto,DVB-S,QPSK -22=12326,H,20000,Auto,DVB-S,QPSK -23=12341,V,20000,Auto,DVB-S,QPSK -24=12355,H,20000,Auto,DVB-S,QPSK -25=12370,V,20000,Auto,DVB-S,QPSK -26=12384,H,20000,Auto,DVB-S,QPSK -27=12399,V,20000,Auto,DVB-S,QPSK -28=12414,H,20000,Auto,DVB-S,QPSK -29=12428,V,20000,Auto,DVB-S,QPSK -30=12443,H,20000,Auto,DVB-S,QPSK -31=12457,V,20000,Auto,DVB-S,QPSK -32=12472,H,20000,Auto,DVB-S,QPSK -33=12486,V,20000,Auto,DVB-S,QPSK -34=12501,H,20000,Auto,DVB-S,QPSK -35=12516,V,20000,Auto,DVB-S,QPSK -36=12530,H,20000,Auto,DVB-S,QPSK -37=12545,V,20000,Auto,DVB-S,QPSK -38=12559,H,20000,Auto,DVB-S,QPSK -39=12574,V,20000,Auto,DVB-S,QPSK -40=12588,H,20000,23,DVB-S,QPSK -41=12603,V,20000,Auto,DVB-S,QPSK -42=12618,H,20000,Auto,DVB-S,QPSK -43=12632,V,20000,Auto,DVB-S,QPSK -44=12647,H,20000,Auto,DVB-S,QPSK -45=12661,V,20000,Auto,DVB-S,QPSK -46=12676,H,20000,Auto,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2608.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2608.ini deleted file mode 100644 index e3200b7cdf..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2608.ini +++ /dev/null @@ -1,81 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2608 -2=DirecTV 14/Galaxy 16/Spaceway 2 & DirecTV 11 (99.2W) - -[DVB] -0=72 -1=3720,H,8700,34,S2,8PSK -2=3735,H,3775,34,DVB-S,QPSK -3=3740,V,30000,56,S2,QPSK -4=3770,H,1220,34,S2,QPSK -5=3785,H,4850,34,S2,8PSK -6=3789,H,1666,56,DVB-S,QPSK -7=3791,H,1665,56,DVB-S,QPSK -8=3793,V,7030,12,S2,QPSK -9=3795,H,3255,34,DVB-S,QPSK -10=3811,H,8030,34,DVB-S,QPSK -11=3820,V,26000,34,DVB-S,QPSK -12=3900,V,28000,34,DVB-S,QPSK -13=3904,H,3125,78,DVB-S,QPSK -14=3912,H,10833,89,S2,8PSK -15=3924,H,3125,78,DVB-S,QPSK -16=3925,V,3979,23,DVB-S,QPSK -17=3928,H,3125,78,DVB-S,QPSK -18=3930,V,3680,23,DVB-S,QPSK -19=3931,H,1562,56,DVB-S,QPSK -20=3938,H,1561,78,DVB-S,QPSK -21=3940,V,27600,56,S2,QPSK -22=3953,H,3125,78,DVB-S,QPSK -23=3977,H,2555,Auto,DVB-S,QPSK -24=3980,V,26470,56,DVB-S,QPSK -25=4000,H,26400,34,DVB-S,QPSK -26=4006,V,5833,34,S2,QPSK -27=4060,V,27780,56,DVB-S,QPSK -28=4080,H,27780,56,DVB-S,QPSK -29=4120,H,30000,910,S2,8PSK -30=4140,V,30000,910,S2,8PSK -31=4145,H,3308,34,DVB-S,QPSK -32=4193,V,6620,23,DVB-S,QPSK -33=11765,V,4000,34,DVB-S,QPSK -34=11782,V,3979,34,DVB-S,QPSK -35=11787,V,3979,34,DVB-S,QPSK -36=11792,V,3979,34,DVB-S,QPSK -37=11800,H,30000,34,S2,QPSK -38=11804,V,3979,34,DVB-S,QPSK -39=11809,V,3979,34,DVB-S,QPSK -40=11815,V,3979,34,DVB-S,QPSK -41=11820,V,3979,34,DVB-S,QPSK -42=11825,V,3979,34,DVB-S,QPSK -43=11825,H,3979,34,DVB-S,QPSK -44=11830,V,3979,34,DVB-S,QPSK -45=11830,H,3979,34,DVB-S,QPSK -46=11836,V,3979,34,DVB-S,QPSK -47=11836,H,3979,34,DVB-S,QPSK -48=11842,H,3979,34,DVB-S,QPSK -49=11848,H,3979,34,DVB-S,QPSK -50=11854,H,3979,34,DVB-S,QPSK -51=11865,H,3979,34,DVB-S,QPSK -52=11871,H,3979,34,DVB-S,QPSK -53=11876,H,3979,34,DVB-S,QPSK -54=11882,H,3979,34,DVB-S,QPSK -55=11884,V,3979,34,DVB-S,QPSK -56=11888,H,3979,34,DVB-S,QPSK -57=11889,V,3979,34,DVB-S,QPSK -58=11894,H,3979,34,DVB-S,QPSK -59=11895,V,3979,34,DVB-S,QPSK -60=11900,V,3979,34,DVB-S,QPSK -61=11905,V,3979,34,DVB-S,QPSK -62=11905,H,3979,34,DVB-S,QPSK -63=11910,V,3979,34,DVB-S,QPSK -64=11911,H,3979,34,DVB-S,QPSK -65=11916,V,3979,34,DVB-S,QPSK -66=11917,H,3979,34,DVB-S,QPSK -67=11960,H,30000,78,DVB-S,QPSK -68=11980,V,30000,56,DVB-S,QPSK -69=12020,V,20000,910,S2,8PSK -70=12040,H,26665,23,DVB-S,QPSK -71=12093,H,6620,34,DVB-S,QPSK -72=12100,V,30000,56,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2630.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2630.ini deleted file mode 100644 index 1a888553ad..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2630.ini +++ /dev/null @@ -1,57 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2630 -2=Galaxy 19 (97.0W) - -[DVB] -0=48 -1=3706,V,6111,34,DVB-S,QPSK -2=3760,V,31456,35,S2,8PSK -3=3780,H,29270,34,DVB-S,QPSK -4=3800,V,29860,910,S2,8PSK -5=3831,V,11800,56,DVB-S,QPSK -6=3839,V,2940,78,DVB-S,QPSK -7=3847,V,2200,34,DVB-S,QPSK -8=3851,V,3532,34,DVB-S,QPSK -9=3857,V,2940,Auto,DVB-S,QPSK -10=3880,V,30000,56,S2,8PSK -11=3896,H,20000,34,DVB-S,QPSK -12=3914,H,7000,34,S2,8PSK -13=3922,V,3703,34,DVB-S,QPSK -14=3940,H,30000,56,S2,8PSK -15=3960,V,29300,34,DVB-S,QPSK -16=3985,V,3600,Auto,S2,8PSK -17=4001,V,1481,89,S2,8PSK -18=4009,V,4407,56,S2,8PSK -19=4027,V,7200,23,S2,8PSK -20=4034,H,6111,34,DVB-S,QPSK -21=4060,H,32362,34,DVB-S,QPSK -22=4080,V,29856,910,S2,8PSK -23=4100,H,29856,910,S2,8PSK -24=4120,V,30000,56,S2,8PSK -25=4140,H,29856,910,S2,8PSK -26=4160,V,29856,910,S2,8PSK -27=4167,H,6922,56,S2,8PSK -28=11836,V,20770,34,DVB-S,QPSK -29=11842,H,22000,34,DVB-S,QPSK -30=11867,V,22000,34,DVB-S,QPSK -31=11898,V,22000,34,DVB-S,QPSK -32=11904,H,22000,34,DVB-S,QPSK -33=11929,V,22000,34,DVB-S,QPSK -34=11936,H,20000,34,DVB-S,QPSK -35=11960,V,22000,34,DVB-S,QPSK -36=11966,H,22000,34,DVB-S,QPSK -37=12022,V,22000,34,DVB-S,QPSK -38=12028,H,21991,34,DVB-S,QPSK -39=12053,V,22000,34,DVB-S,QPSK -40=12060,H,22000,34,DVB-S,QPSK -41=12084,V,22000,34,DVB-S,QPSK -42=12090,H,20000,34,DVB-S,QPSK -43=12115,V,22425,34,DVB-S,QPSK -44=12122,H,20000,34,DVB-S,QPSK -45=12146,V,22000,34,DVB-S,QPSK -46=12152,H,20000,34,DVB-S,QPSK -47=12177,V,23000,34,DVB-S,QPSK -48=12184,H,21991,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2650.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2650.ini deleted file mode 100644 index f3c4e0de6f..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2650.ini +++ /dev/null @@ -1,83 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2650 -2=Galaxy 3C/Intelsat 30/Spaceway 3 (95.0W) - -[DVB] -0=74 -1=3785,V,6922,56,S2,8PSK -2=3800,H,29270,Auto,DVB-S,QPSK -3=3827,H,6922,56,S2,8PSK -4=3829,V,13000,56,S2,8PSK -5=3884,V,1035,34,S2,QPSK -6=3889,V,3074,34,DVB-S,QPSK -7=3893,V,3074,34,DVB-S,QPSK -8=3896,V,2000,34,S2,8PSK -9=3901,V,1836,34,S2,8PSK -10=3911,V,3074,34,DVB-S,QPSK -11=3911,H,15000,56,S2,8PSK -12=3924,V,3074,34,DVB-S,QPSK -13=3929,V,3074,34,DVB-S,QPSK -14=3935,V,2000,34,S2,8PSK -15=3940,V,2000,34,S2,8PSK -16=3943,V,3074,34,DVB-S,QPSK -17=3950,V,2000,34,S2,8PSK -18=3956,V,3302,34,S2,8PSK -19=3965,V,1035,34,S2,8PSK -20=3970,V,1035,34,S2,QPSK -21=3974,V,3074,34,DVB-S,QPSK -22=3980,V,1035,34,S2,QPSK -23=3984,V,1035,34,S2,QPSK -24=3988,V,3074,34,DVB-S,QPSK -25=3992,V,3074,34,DVB-S,QPSK -26=3996,V,3074,34,DVB-S,QPSK -27=4000,H,30000,910,S2,8PSK -28=4031,H,14035,34,S2,8PSK -29=4060,V,31250,34,S2,8PSK -30=4080,H,31250,34,S2,8PSK -31=4120,H,29270,Auto,DVB-S,QPSK -32=4173,V,2221,Auto,DVB-S,QPSK -33=11480,V,22500,Auto,DVB-S,QPSK -34=11480,H,20000,23,DVB-S,QPSK -35=11510,V,20000,23,DVB-S,QPSK -36=11510,H,22500,Auto,DVB-S,QPSK -37=11539,V,22500,Auto,DVB-S,QPSK -38=11539,H,22500,Auto,DVB-S,QPSK -39=11568,V,20000,23,DVB-S,QPSK -40=11568,H,22500,Auto,DVB-S,QPSK -41=11597,V,21500,56,S2,QPSK -42=11597,H,22500,Auto,DVB-S,QPSK -43=11626,V,22500,Auto,DVB-S,QPSK -44=11626,H,22500,Auto,DVB-S,QPSK -45=11655,V,22500,Auto,DVB-S,QPSK -46=11655,H,22500,Auto,DVB-S,QPSK -47=11685,V,22500,Auto,DVB-S,QPSK -48=11685,H,22500,Auto,DVB-S,QPSK -49=11720,H,20000,23,DVB-S,QPSK -50=11750,H,30000,23,S2,QPSK -51=11780,H,20760,34,DVB-S,QPSK -52=11810,H,30000,23,S2,QPSK -53=11840,H,20000,23,DVB-S,QPSK -54=11900,H,20000,23,DVB-S,QPSK -55=11930,H,30000,23,S2,QPSK -56=11930,H,20000,23,DVB-S,QPSK -57=11960,H,20000,23,DVB-S,QPSK -58=11960,V,20000,23,DVB-S,QPSK -59=11975,H,20000,23,DVB-S,QPSK -60=11990,H,20000,23,DVB-S,QPSK -61=11990,V,20000,23,DVB-S,QPSK -62=12020,V,21000,56,S2,QPSK -63=12035,H,21000,56,S2,QPSK -64=12050,H,20000,34,DVB-S,QPSK -65=12050,V,21000,56,S2,QPSK -66=12080,H,20000,23,DVB-S,QPSK -67=12080,V,20000,23,DVB-S,QPSK -68=12095,H,20000,23,DVB-S,QPSK -69=12110,H,2220,Auto,DVB-S,QPSK -70=12110,V,20000,23,DVB-S,QPSK -71=12140,H,20000,23,DVB-S,QPSK -72=12140,V,20000,23,DVB-S,QPSK -73=12155,H,20000,23,DVB-S,QPSK -74=12170,V,20000,23,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2669.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2669.ini deleted file mode 100644 index ccb7e85319..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2669.ini +++ /dev/null @@ -1,16 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2669 -2=Galaxy 25 (93.1W) - -[DVB] -0=7 -1=4036,V,19852,56,DVB-S,QPSK -2=4053,V,6617,56,DVB-S,QPSK -3=4180,H,26470,56,DVB-S,QPSK -4=11986,V,5075,Auto,DVB-S,QPSK -5=12010,V,11574,Auto,DVB-S,QPSK -6=12124,V,6615,Auto,DVB-S,QPSK -7=12126,V,2220,Auto,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2690.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2690.ini deleted file mode 100644 index e3c73e65c4..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2690.ini +++ /dev/null @@ -1,97 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2690 -2=Galaxy 17/Nimiq 6 (91.0W) - -[DVB] -0=88 -1=3720,H,28800,35,S2,8PSK -2=3740,V,31250,34,S2,8PSK -3=3751,H,14410,56,S2,8PSK -4=3764,H,7500,56,S2,8PSK -5=3780,V,29270,34,DVB-S,QPSK -6=3800,H,31250,34,S2,8PSK -7=3820,V,30000,56,DVB-S,QPSK -8=3840,H,29270,78,DVB-S,QPSK -9=3860,V,31250,34,S2,8PSK -10=3866,H,6620,12,DVB-S,QPSK -11=3920,H,30000,34,S2,8PSK -12=3925,V,4249,23,S2,8PSK -13=3934,V,2480,78,DVB-S,QPSK -14=3952,V,10833,56,S2,8PSK -15=3960,H,29270,78,DVB-S,QPSK -16=3984,V,22500,56,S2,8PSK -17=4000,H,30000,56,S2,8PSK -18=4020,V,31250,34,S2,8PSK -19=4040,H,31250,34,S2,8PSK -20=4066,V,6051,56,S2,8PSK -21=4076,V,3000,34,DVB-S,QPSK -22=4080,H,30000,34,S2,8PSK -23=4100,V,30000,56,S2,8PSK -24=4115,H,19510,34,DVB-S,QPSK -25=4134,H,6960,56,S2,8PSK -26=4140,V,31250,34,S2,8PSK -27=4160,H,31250,34,S2,8PSK -28=4180,V,30000,56,S2,8PSK -29=11740,V,30000,78,DVB-S,QPSK -30=11925,V,3979,34,DVB-S,QPSK -31=11930,V,3979,34,DVB-S,QPSK -32=11935,V,3979,34,DVB-S,QPSK -33=11940,V,3979,34,DVB-S,QPSK -34=11945,V,3979,34,DVB-S,QPSK -35=11950,V,3979,34,DVB-S,QPSK -36=11952,H,5859,Auto,DVB-S,QPSK -37=11955,V,3979,34,DVB-S,QPSK -38=11965,V,3979,Auto,DVB-S,QPSK -39=11970,V,3979,Auto,DVB-S,QPSK -40=11973,H,6111,34,DVB-S,QPSK -41=11975,V,3979,Auto,DVB-S,QPSK -42=11980,V,3979,Auto,DVB-S,QPSK -43=11985,V,3979,Auto,DVB-S,QPSK -44=11987,H,6111,Auto,DVB-S,QPSK -45=11990,V,3979,Auto,DVB-S,QPSK -46=11995,V,3979,Auto,DVB-S,QPSK -47=11995,H,6111,34,DVB-S,QPSK -48=12010,V,11574,34,DVB-S,QPSK -49=12020,V,3979,34,DVB-S,QPSK -50=12025,V,3979,34,DVB-S,QPSK -51=12030,V,3979,34,DVB-S,QPSK -52=12035,V,3979,34,DVB-S,QPSK -53=12076,H,13000,Auto,DVB-S,QPSK -54=12115,H,13235,Auto,DVB-S,QPSK -55=12130,H,13000,34,DVB-S,QPSK -56=12180,V,5632,34,DVB-S,QPSK -57=12224,V,20000,78,DVB-S,QPSK -58=12239,H,20000,56,DVB-S,QPSK -59=12253,V,20000,78,DVB-S,QPSK -60=12268,H,20000,78,DVB-S,QPSK -61=12282,V,20000,Auto,DVB-S,QPSK -62=12297,H,20000,56,DVB-S,QPSK -63=12311,V,20000,78,DVB-S,QPSK -64=12326,H,20000,78,DVB-S,QPSK -65=12341,V,20000,Auto,DVB-S,QPSK -66=12355,H,20000,78,DVB-S,QPSK -67=12370,V,20000,Auto,DVB-S,QPSK -68=12384,H,20000,78,DVB-S,QPSK -69=12399,V,20000,78,DVB-S,QPSK -70=12414,H,20000,56,DVB-S,QPSK -71=12428,V,20000,56,DVB-S,QPSK -72=12443,H,20000,56,DVB-S,QPSK -73=12457,V,20000,Auto,DVB-S,QPSK -74=12472,H,20000,78,DVB-S,QPSK -75=12486,V,20000,56,DVB-S,QPSK -76=12501,H,20000,56,DVB-S,QPSK -77=12516,V,20000,78,DVB-S,QPSK -78=12530,H,20000,78,DVB-S,QPSK -79=12545,V,20000,78,DVB-S,QPSK -80=12559,H,20000,78,DVB-S,QPSK -81=12574,V,20000,78,DVB-S,QPSK -82=12588,H,20000,78,DVB-S,QPSK -83=12603,V,20000,56,DVB-S,QPSK -84=12618,H,20000,56,DVB-S,QPSK -85=12632,V,20000,56,DVB-S,QPSK -86=12647,H,20000,56,DVB-S,QPSK -87=12661,V,20000,56,DVB-S,QPSK -88=12676,H,20000,56,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2710.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2710.ini deleted file mode 100644 index 8e5aa26881..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2710.ini +++ /dev/null @@ -1,69 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2710 -2=Galaxy 28 (89.0W) - -[DVB] -0=60 -1=3840,V,29860,910,S2,8PSK -2=3860,H,26000,Auto,S2,8PSK -3=3880,V,29860,910,S2,QPSK -4=3900,H,32360,34,DVB-S,QPSK -5=3920,V,29860,910,S2,8PSK -6=3980,H,32360,34,DVB-S,QPSK -7=4005,V,6111,34,DVB-S,QPSK -8=4014,V,6111,34,DVB-S,QPSK -9=4060,H,32362,34,S2,QPSK -10=4110,H,2835,Auto,S2,8PSK -11=4154,V,4434,Auto,DVB-S,QPSK -12=4166,H,7440,Auto,DVB-S,QPSK -13=4175,H,7440,Auto,DVB-S,QPSK -14=4185,H,7440,Auto,DVB-S,QPSK -15=11711,H,6620,Auto,DVB-S,QPSK -16=11724,H,6500,Auto,DVB-S,QPSK -17=11732,H,4440,Auto,DVB-S,QPSK -18=11745,H,7030,Auto,DVB-S,QPSK -19=11747,H,6620,Auto,DVB-S,QPSK -20=11756,H,6620,Auto,DVB-S,QPSK -21=11800,H,30000,23,S2,8PSK -22=11845,H,6510,Auto,DVB-S,QPSK -23=11884,H,2788,45,S2,QPSK -24=11920,V,30000,78,DVB-S,QPSK -25=11920,H,30000,23,S2,8PSK -26=11925,H,3979,34,DVB-S,QPSK -27=11930,H,3979,34,DVB-S,QPSK -28=11935,H,3979,34,DVB-S,QPSK -29=11940,H,3979,34,DVB-S,QPSK -30=11945,H,3979,34,DVB-S,QPSK -31=11950,H,3979,34,DVB-S,QPSK -32=11955,H,3979,34,DVB-S,QPSK -33=11960,H,28800,34,DVB-S,QPSK -34=11965,H,3979,34,DVB-S,QPSK -35=11970,V,3979,34,DVB-S,QPSK -36=11970,H,3979,34,DVB-S,QPSK -37=11975,H,3979,34,DVB-S,QPSK -38=11980,H,3979,34,DVB-S,QPSK -39=11985,H,3979,34,DVB-S,QPSK -40=11989,V,6111,34,DVB-S,QPSK -41=11990,H,3979,34,DVB-S,QPSK -42=11995,H,3979,34,DVB-S,QPSK -43=12000,H,28800,34,DVB-S,QPSK -44=12009,V,6111,34,DVB-S,QPSK -45=12035,V,6111,34,DVB-S,QPSK -46=12047,V,6111,Auto,DVB-S,QPSK -47=12100,H,30000,78,DVB-S,QPSK -48=12121,H,2676,34,DVB-S,QPSK -49=12140,H,30000,78,DVB-S,QPSK -50=12160,V,30000,78,DVB-S,QPSK -51=12164,H,2785,34,DVB-S,QPSK -52=12167,H,2785,34,DVB-S,QPSK -53=12171,H,2785,34,DVB-S,QPSK -54=12174,H,2785,34,DVB-S,QPSK -55=12178,H,2785,34,DVB-S,QPSK -56=12181,H,2785,34,DVB-S,QPSK -57=12185,H,2785,34,DVB-S,QPSK -58=12188,H,2785,34,DVB-S,QPSK -59=12192,H,2785,34,DVB-S,QPSK -60=12195,H,2785,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2728.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2728.ini deleted file mode 100644 index 9b148a0460..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2728.ini +++ /dev/null @@ -1,11 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2728 -2=TKSat 1 (87.2W) - -[DVB] -0=2 -1=11479,V,15000,Auto,S2,QPSK -2=12486,V,21702,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2730.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2730.ini deleted file mode 100644 index fdb17c5c09..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2730.ini +++ /dev/null @@ -1,41 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2730 -2=SES 2 (87.0W) - -[DVB] -0=32 -1=3743,V,5000,56,S2,8PSK -2=3753,V,8680,34,DVB-S,QPSK -3=3760,H,26680,Auto,DVB-S,QPSK -4=3780,V,28800,56,DVB-S,QPSK -5=3842,H,6150,78,DVB-S,QPSK -6=3887,H,18400,23,S2,8PSK -7=3949,V,4164,34,S2,8PSK -8=3954,V,2500,34,DVB-S,QPSK -9=4000,H,29125,56,S2,8PSK -10=4026,H,2300,34,S2,8PSK -11=4044,H,3910,34,DVB-S,QPSK -12=4146,H,6789,34,DVB-S,QPSK -13=4149,H,5063,34,DVB-S,QPSK -14=4188,V,3027,Auto,DVB-S,QPSK -15=11725,H,3675,23,DVB-S,QPSK -16=11737,V,8333,23,DVB-S,QPSK -17=11745,H,3979,34,DVB-S,QPSK -18=11750,V,7320,78,DVB-S,QPSK -19=11800,H,2686,34,DVB-S,QPSK -20=11804,H,1250,35,S2,8PSK -21=11811,H,11150,35,S2,8PSK -22=11820,V,30000,56,DVB-S,QPSK -23=11900,V,30000,23,DVB-S,QPSK -24=11960,H,29270,34,DVB-S,QPSK -25=12008,V,5000,12,DVB-S,QPSK -26=12009,H,2170,34,DVB-S,QPSK -27=12044,V,3200,23,S2,8PSK -28=12064,V,6510,56,DVB-S,QPSK -29=12152,H,15000,Auto,S2,8PSK -30=12165,H,6110,34,DVB-S,QPSK -31=12175,H,4342,Auto,DVB-S,QPSK -32=12184,V,3500,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2750.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2750.ini deleted file mode 100644 index 8f2358d56e..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2750.ini +++ /dev/null @@ -1,19 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2750 -2=AMC 16 (85.0W) - -[DVB] -0=10 -1=11966,H,5632,Auto,DVB-S,QPSK -2=11980,H,29270,Auto,DVB-S,QPSK -3=12000,V,29270,Auto,DVB-S,QPSK -4=12106,V,6113,Auto,DVB-S,QPSK -5=12116,V,6113,Auto,DVB-S,QPSK -6=12130,H,13021,Auto,DVB-S,QPSK -7=12144,H,3979,Auto,DVB-S,QPSK -8=12146,V,6111,Auto,DVB-S,QPSK -9=12164,V,6111,Auto,DVB-S,QPSK -10=12194,H,3978,Auto,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2760.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2760.ini deleted file mode 100644 index 253d2cced0..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2760.ini +++ /dev/null @@ -1,20 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2760 -2=Brasilsat B4 (84.0W) - -[DVB] -0=11 -1=3643,H,3565,34,DVB-S,QPSK -2=3650,V,3460,12,DVB-S,QPSK -3=3684,V,3200,34,DVB-S,QPSK -4=3690,V,3330,34,DVB-S,QPSK -5=3720,H,2222,34,DVB-S,QPSK -6=3725,H,2222,34,DVB-S,QPSK -7=3785,H,4500,56,DVB-S,QPSK -8=3806,H,1666,34,S2,8PSK -9=3852,V,3333,34,S2,8PSK -10=4135,H,2500,34,DVB-S,QPSK -11=4152,V,3255,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2770.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2770.ini deleted file mode 100644 index 12cbcc729e..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2770.ini +++ /dev/null @@ -1,38 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2770 -2=AMC 9 (83.0W) - -[DVB] -0=29 -1=3804,V,4167,34,DVB-S,QPSK -2=3810,V,2400,34,DVB-S,QPSK -3=3813,V,2222,34,DVB-S,QPSK -4=3817,V,2879,34,DVB-S,QPSK -5=3825,V,4035,56,S2,8PSK -6=3831,V,2960,56,DVB-S,QPSK -7=3912,H,2615,Auto,DVB-S,QPSK -8=11745,H,4232,56,DVB-S,QPSK -9=11751,H,4232,56,DVB-S,QPSK -10=11757,H,4232,56,DVB-S,QPSK -11=11763,H,4232,56,DVB-S,QPSK -12=11769,H,4232,56,DVB-S,QPSK -13=11775,H,4232,56,DVB-S,QPSK -14=11790,H,4232,Auto,DVB-S,QPSK -15=11803,H,4232,Auto,DVB-S,QPSK -16=11809,H,4232,Auto,DVB-S,QPSK -17=11815,H,4232,Auto,DVB-S,QPSK -18=11864,H,3979,Auto,DVB-S,QPSK -19=11871,H,13000,Auto,DVB-S,QPSK -20=11874,V,6111,34,DVB-S,QPSK -21=11889,H,13025,Auto,DVB-S,QPSK -22=11926,V,6511,34,DVB-S,QPSK -23=11953,V,3979,Auto,DVB-S,QPSK -24=11960,H,5000,34,DVB-S,QPSK -25=12002,H,3979,Auto,DVB-S,QPSK -26=12011,H,3979,Auto,DVB-S,QPSK -27=12051,V,13022,Auto,DVB-S,QPSK -28=12160,H,29269,Auto,DVB-S,QPSK -29=12180,V,29271,Auto,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2780.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2780.ini deleted file mode 100644 index 7080fc519a..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2780.ini +++ /dev/null @@ -1,40 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2780 -2=Nimiq 4 (82.0W) - -[DVB] -0=31 -1=12224,V,21500,23,DVB-S,8PSK -2=12239,H,21500,23,DVB-S,8PSK -3=12253,V,21500,23,DVB-S,8PSK -4=12268,H,21500,23,DVB-S,8PSK -5=12282,V,21500,23,DVB-S,8PSK -6=12297,H,21500,23,DVB-S,8PSK -7=12311,V,21500,23,DVB-S,8PSK -8=12326,H,21500,23,DVB-S,8PSK -9=12341,V,21500,23,DVB-S,8PSK -10=12355,H,21500,23,DVB-S,8PSK -11=12370,V,21500,23,DVB-S,8PSK -12=12384,H,21500,23,DVB-S,8PSK -13=12399,V,21500,23,DVB-S,8PSK -14=12414,H,21500,23,DVB-S,8PSK -15=12443,H,20000,78,DVB-S,QPSK -16=12457,V,21500,23,DVB-S,8PSK -17=12472,H,21500,23,DVB-S,8PSK -18=12486,V,21500,23,DVB-S,8PSK -19=12501,H,21500,23,DVB-S,8PSK -20=12516,V,21500,23,DVB-S,8PSK -21=12530,H,21500,23,DVB-S,8PSK -22=12545,V,21500,23,DVB-S,8PSK -23=12559,H,21500,23,DVB-S,8PSK -24=12574,V,21500,23,DVB-S,8PSK -25=12588,H,21500,23,DVB-S,8PSK -26=12603,V,21500,23,DVB-S,8PSK -27=12618,H,21500,23,DVB-S,8PSK -28=12632,V,21500,23,DVB-S,8PSK -29=12647,H,21500,23,DVB-S,8PSK -30=12661,V,21500,23,DVB-S,8PSK -31=12676,H,20000,Auto,DVB-S,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2812.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2812.ini deleted file mode 100644 index 61b29bb930..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2812.ini +++ /dev/null @@ -1,29 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2812 -2=Sky Mexico 1 (78.8W) - -[DVB] -0=20 -1=11720,H,30000,Auto,DVB-S,QPSK -2=11740,V,30000,Auto,DVB-S,QPSK -3=11800,H,30000,Auto,DVB-S,QPSK -4=11820,V,30000,Auto,DVB-S,QPSK -5=11880,H,30000,Auto,DVB-S,QPSK -6=11900,V,30000,Auto,DVB-S,QPSK -7=11920,H,30000,Auto,DVB-S,QPSK -8=11940,V,30000,Auto,DVB-S,QPSK -9=11960,H,30000,Auto,DVB-S,QPSK -10=11980,V,30000,Auto,DVB-S,QPSK -11=12000,H,30000,Auto,DVB-S,QPSK -12=12020,V,30000,Auto,DVB-S,QPSK -13=12040,H,30000,Auto,DVB-S,QPSK -14=12060,V,30000,Auto,DVB-S,QPSK -15=12080,H,30000,Auto,DVB-S,QPSK -16=12100,V,30000,Auto,DVB-S,QPSK -17=12120,H,30000,Auto,DVB-S,QPSK -18=12140,V,30000,Auto,DVB-S,QPSK -19=12160,H,30000,Auto,DVB-S,QPSK -20=12180,V,30000,Auto,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2820.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2820.ini deleted file mode 100644 index 0aa5cc903c..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2820.ini +++ /dev/null @@ -1,23 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2820 -2=Simón Bolívar (78.0W) - -[DVB] -0=14 -1=3838,V,6670,34,DVB-S,QPSK -2=3885,V,23000,34,DVB-S,QPSK -3=3912,V,3100,Auto,DVB-S,QPSK -4=3916,V,3002,Auto,DVB-S,QPSK -5=3922,V,3002,Auto,DVB-S,QPSK -6=11323,H,3100,Auto,DVB-S,QPSK -7=11380,H,42355,34,S2,QPSK -8=11410,V,29500,34,S2,QPSK -9=11509,V,2900,34,DVB-S,QPSK -10=11512,V,3100,34,DVB-S,QPSK -11=11520,V,4444,34,DVB-S,QPSK -12=11535,H,4340,34,DVB-S,QPSK -13=11624,V,3000,34,DVB-S,QPSK -14=11731,H,28126,56,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2830.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2830.ini deleted file mode 100644 index c6536b22be..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2830.ini +++ /dev/null @@ -1,41 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2830 -2=EchoStar 8/QuetzSat 1 (77.0W) - -[DVB] -0=32 -1=12224,V,22500,56,DVB-S,QPSK -2=12239,H,22500,56,DVB-S,QPSK -3=12253,V,20000,56,DVB-S,QPSK -4=12268,H,22500,56,DVB-S,QPSK -5=12282,V,22500,56,DVB-S,QPSK -6=12297,H,20000,56,DVB-S,QPSK -7=12311,V,22500,56,DVB-S,QPSK -8=12326,H,22500,56,DVB-S,QPSK -9=12341,V,22500,56,DVB-S,QPSK -10=12355,H,20000,56,DVB-S,QPSK -11=12370,V,22500,56,DVB-S,QPSK -12=12384,H,22500,56,DVB-S,QPSK -13=12399,V,20000,56,DVB-S,QPSK -14=12414,H,22500,56,DVB-S,QPSK -15=12428,V,20000,56,DVB-S,QPSK -16=12443,H,22500,56,DVB-S,QPSK -17=12457,V,22500,56,DVB-S,QPSK -18=12472,H,20000,56,DVB-S,QPSK -19=12486,V,20000,56,DVB-S,QPSK -20=12501,H,22500,56,DVB-S,QPSK -21=12516,V,22500,56,DVB-S,QPSK -22=12530,H,22500,56,DVB-S,QPSK -23=12545,V,22500,56,DVB-S,QPSK -24=12559,H,22500,56,DVB-S,QPSK -25=12574,V,22500,56,DVB-S,QPSK -26=12588,H,20000,56,DVB-S,QPSK -27=12603,V,22500,56,DVB-S,QPSK -28=12618,H,22500,56,DVB-S,QPSK -29=12632,V,22500,56,DVB-S,QPSK -30=12647,H,22500,56,DVB-S,QPSK -31=12661,V,20000,56,DVB-S,QPSK -32=12676,H,22500,56,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2850.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2850.ini deleted file mode 100644 index cc6088079e..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2850.ini +++ /dev/null @@ -1,98 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2850 -2=Star One C3 (75.0W) - -[DVB] -0=89 -1=3627,H,3255,34,DVB-S,QPSK -2=3632,H,3333,34,DVB-S,QPSK -3=3636,H,3333,34,DVB-S,QPSK -4=3649,H,3002,34,DVB-S,QPSK -5=3660,V,30000,23,S2,QPSK -6=3665,H,5000,34,S2,QPSK -7=3680,H,2400,34,S2,8PSK -8=3684,H,2500,34,S2,QPSK -9=3684,V,2963,34,DVB-S,QPSK -10=3689,V,2666,34,DVB-S,QPSK -11=3690,H,5000,34,S2,QPSK -12=3697,V,6990,34,S2,QPSK -13=3703,V,2400,23,DVB-S,QPSK -14=3705,H,4280,34,S2,QPSK -15=3706,V,3600,34,DVB-S,QPSK -16=3709,H,3333,34,S2,QPSK -17=3711,V,3255,34,DVB-S,QPSK -18=3714,H,3333,34,DVB-S,QPSK -19=3715,V,2535,34,DVB-S,QPSK -20=3722,H,3565,34,DVB-S,QPSK -21=3727,H,5000,34,S2,QPSK -22=3727,V,5833,34,S2,QPSK -23=3733,V,4444,34,DVB-S,QPSK -24=3735,H,5833,23,S2,QPSK -25=3736,V,2033,89,S2,QPSK -26=3740,V,2072,56,S2,QPSK -27=3745,V,5833,34,S2,QPSK -28=3747,H,6250,34,S2,QPSK -29=3754,H,6250,34,S2,QPSK -30=3765,V,4170,34,S2,QPSK -31=3770,H,17500,34,S2,QPSK -32=3771,V,4170,34,S2,QPSK -33=3776,V,5000,34,S2,8PSK -34=3780,V,2222,78,DVB-S,QPSK -35=3784,V,2500,34,S2,QPSK -36=3788,V,1111,34,DVB-S,QPSK -37=3828,V,4340,34,DVB-S,QPSK -38=3833,V,3255,34,DVB-S,QPSK -39=3837,V,2532,34,DVB-S,QPSK -40=3846,V,4340,56,DVB-S,QPSK -41=3852,V,6247,34,S2,QPSK -42=3863,V,3209,34,DVB-S,QPSK -43=3868,V,4283,34,DVB-S,QPSK -44=3874,V,6250,34,S2,QPSK -45=3883,H,3928,34,DVB-S,QPSK -46=3885,V,5000,23,S2,QPSK -47=3890,H,2170,34,DVB-S,QPSK -48=3890,V,3704,34,DVB-S,QPSK -49=3895,H,5833,34,S2,QPSK -50=3901,V,5000,34,S2,8PSK -51=3907,V,2232,34,DVB-S,QPSK -52=3910,H,12500,23,S2,QPSK -53=3911,V,2222,34,DVB-S,QPSK -54=3917,V,3750,34,S2,QPSK -55=3925,V,5000,34,S2,QPSK -56=3927,H,14100,23,S2,8PSK -57=3935,V,8000,34,DVB-S,QPSK -58=3936,H,3195,35,S2,QPSK -59=3943,V,3260,34,DVB-S,QPSK -60=3954,V,6666,34,S2,QPSK -61=3979,V,3255,34,DVB-S,QPSK -62=3986,V,5590,34,DVB-S,QPSK -63=3994,V,6250,34,S2,QPSK -64=4048,V,3330,56,DVB-S,QPSK -65=4052,V,2500,34,S2,QPSK -66=4055,V,2500,34,DVB-S,QPSK -67=4066,H,5833,23,S2,QPSK -68=4073,H,5833,34,S2,8PSK -69=4080,H,5833,23,S2,QPSK -70=4086,H,4170,34,S2,QPSK -71=4091,H,4170,34,S2,QPSK -72=4096,H,4170,34,S2,QPSK -73=4100,V,30000,56,S2,8PSK -74=4105,H,3633,34,S2,QPSK -75=4120,H,20840,34,S2,QPSK -76=4136,H,4170,34,S2,QPSK -77=4144,H,5000,34,S2,QPSK -78=4151,H,5000,34,S2,QPSK -79=4157,H,5000,34,S2,QPSK -80=4164,H,5000,34,S2,QPSK -81=4165,V,5000,34,S2,QPSK -82=4170,H,5000,34,S2,8PSK -83=4171,V,5000,34,S2,QPSK -84=4175,H,5000,34,S2,QPSK -85=4177,V,5000,34,S2,QPSK -86=4183,H,5000,34,S2,QPSK -87=4193,V,4762,34,S2,QPSK -88=4197,V,2073,56,S2,QPSK -89=11764,V,3480,23,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2873.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2873.ini deleted file mode 100644 index 6c39037ae5..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2873.ini +++ /dev/null @@ -1,40 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2873 -2=Nimiq 5 (72.7W) - -[DVB] -0=31 -1=12224,V,21500,23,DVB-S,8PSK -2=12239,H,21500,23,DVB-S,8PSK -3=12253,V,21500,23,DVB-S,8PSK -4=12268,H,21500,23,DVB-S,8PSK -5=12282,V,21500,23,DVB-S,8PSK -6=12297,H,21500,23,DVB-S,8PSK -7=12311,V,21500,23,DVB-S,8PSK -8=12326,H,21500,23,DVB-S,8PSK -9=12341,V,21500,23,DVB-S,8PSK -10=12355,H,21500,23,DVB-S,8PSK -11=12370,V,21500,23,DVB-S,8PSK -12=12384,H,21500,23,DVB-S,8PSK -13=12399,V,21500,23,DVB-S,8PSK -14=12428,V,21500,23,DVB-S,8PSK -15=12443,H,21500,23,DVB-S,8PSK -16=12457,V,21500,23,DVB-S,8PSK -17=12472,H,21500,23,DVB-S,8PSK -18=12486,V,21500,23,DVB-S,8PSK -19=12501,H,21500,23,DVB-S,8PSK -20=12516,V,21500,23,DVB-S,8PSK -21=12530,H,21500,23,DVB-S,8PSK -22=12545,V,21500,23,DVB-S,8PSK -23=12559,H,21500,23,DVB-S,8PSK -24=12574,V,21500,23,DVB-S,8PSK -25=12588,H,21500,23,DVB-S,8PSK -26=12603,V,21500,23,DVB-S,8PSK -27=12618,H,21500,23,DVB-S,8PSK -28=12632,V,21500,23,DVB-S,8PSK -29=12647,H,21500,23,DVB-S,8PSK -30=12661,V,21500,23,DVB-S,8PSK -31=12676,H,21500,23,DVB-S,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2880.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2880.ini deleted file mode 100644 index 2abb9f716b..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2880.ini +++ /dev/null @@ -1,38 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2880 -2=AMC 6 (72.0W) - -[DVB] -0=29 -1=11703,V,3979,Auto,DVB-S,QPSK -2=11709,V,4600,34,S2,8PSK -3=11715,V,4600,34,S2,8PSK -4=11720,V,4600,34,S2,8PSK -5=11725,V,3979,Auto,DVB-S,QPSK -6=11729,V,3979,Auto,DVB-S,QPSK -7=11734,V,3979,Auto,DVB-S,QPSK -8=11745,H,3979,Auto,DVB-S,QPSK -9=11746,V,3979,Auto,DVB-S,QPSK -10=11752,V,3979,Auto,DVB-S,QPSK -11=11760,V,4600,34,S2,8PSK -12=11766,V,4600,34,S2,8PSK -13=11778,V,4600,34,S2,8PSK -14=11817,H,5000,34,DVB-S,QPSK -15=11921,V,3979,Auto,DVB-S,QPSK -16=11927,V,3979,Auto,DVB-S,QPSK -17=11986,V,3979,34,DVB-S,QPSK -18=11995,V,3979,34,DVB-S,QPSK -19=12004,V,6889,Auto,DVB-S,QPSK -20=12020,H,3979,Auto,DVB-S,QPSK -21=12028,V,4600,34,S2,8PSK -22=12036,H,6111,Auto,DVB-S,QPSK -23=12040,V,3979,Auto,DVB-S,QPSK -24=12045,V,1580,Auto,DVB-S,QPSK -25=12046,H,6111,Auto,DVB-S,QPSK -26=12055,V,6890,56,DVB-S,QPSK -27=12114,V,13000,Auto,DVB-S,QPSK -28=12130,V,6111,Auto,DVB-S,QPSK -29=12188,H,6511,Auto,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2881.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2881.ini deleted file mode 100644 index 5a3d34b2c1..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2881.ini +++ /dev/null @@ -1,112 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2881 -2=AMC 6/Arsat 1 (71.9W) - -[DVB] -0=103 -1=11175,V,4200,34,DVB-S,QPSK -2=11179,V,3100,34,DVB-S,QPSK -3=11466,V,3500,34,DVB-S,QPSK -4=11540,H,3330,34,DVB-S,QPSK -5=11544,H,6660,Auto,DVB-S,QPSK -6=11546,V,12000,23,DVB-S,QPSK -7=11552,H,2591,34,DVB-S,QPSK -8=11555,H,1904,Auto,DVB-S,QPSK -9=11564,H,3200,34,DVB-S,QPSK -10=11568,H,3350,34,DVB-S,QPSK -11=11573,H,3333,34,DVB-S,QPSK -12=11577,H,3333,34,DVB-S,QPSK -13=11577,V,2400,56,DVB-S,QPSK -14=11581,H,1325,34,DVB-S,QPSK -15=11582,V,2850,34,S2,8PSK -16=11584,H,2655,78,DVB-S,QPSK -17=11595,H,1904,78,DVB-S,QPSK -18=11598,H,2500,34,DVB-S,QPSK -19=11640,V,8500,Auto,DVB-S,QPSK -20=11651,V,1904,78,DVB-S,QPSK -21=11657,H,1904,78,DVB-S,QPSK -22=11660,H,2500,Auto,S2,8PSK -23=11660,V,2943,Auto,DVB-S,QPSK -24=11667,H,6665,34,S2,QPSK -25=11670,V,30000,56,S2,QPSK -26=11675,H,1904,34,DVB-S,QPSK -27=11678,H,1904,34,DVB-S,QPSK -28=11686,V,2222,34,DVB-S,QPSK -29=11703,V,3979,Auto,DVB-S,QPSK -30=11708,H,6660,34,S2,8PSK -31=11709,V,4600,34,S2,8PSK -32=11715,V,4600,34,S2,8PSK -33=11718,H,6660,12,S2,8PSK -34=11718,V,6660,34,S2,8PSK -35=11720,V,4600,34,S2,8PSK -36=11725,V,3979,Auto,DVB-S,QPSK -37=11728,V,3300,34,DVB-S,QPSK -38=11729,V,3979,Auto,DVB-S,QPSK -39=11731,H,3124,34,DVB-S,QPSK -40=11734,H,2655,34,DVB-S,QPSK -41=11734,V,3979,Auto,DVB-S,QPSK -42=11745,V,2373,34,DVB-S,QPSK -43=11745,H,3979,Auto,DVB-S,QPSK -44=11746,V,3979,Auto,DVB-S,QPSK -45=11752,H,2373,34,DVB-S,QPSK -46=11752,V,3979,Auto,DVB-S,QPSK -47=11755,H,2963,Auto,S2,QPSK -48=11756,V,3200,34,DVB-S,QPSK -49=11760,V,4600,34,S2,8PSK -50=11766,V,4600,34,S2,8PSK -51=11778,V,4600,34,S2,8PSK -52=11779,V,3600,Auto,DVB-S,QPSK -53=11794,V,3600,Auto,DVB-S,QPSK -54=11805,V,3300,Auto,DVB-S,QPSK -55=11809,V,3350,Auto,DVB-S,QPSK -56=11817,H,5000,34,DVB-S,QPSK -57=11817,V,3333,34,DVB-S,QPSK -58=11829,V,3330,34,DVB-S,QPSK -59=11848,V,3333,34,DVB-S,QPSK -60=11851,V,3350,34,S2,QPSK -61=11853,V,2343,34,DVB-S,QPSK -62=11861,V,3330,34,DVB-S,QPSK -63=11866,V,3300,34,DVB-S,QPSK -64=11870,H,14089,23,S2,QPSK -65=11876,H,6666,Auto,DVB-S,QPSK -66=11877,V,2355,34,DVB-S,QPSK -67=11882,H,3333,34,S2,QPSK -68=11888,V,3330,34,DVB-S,QPSK -69=11892,H,3333,Auto,DVB-S,QPSK -70=11896,H,3330,34,DVB-S,QPSK -71=11897,V,3200,34,DVB-S,QPSK -72=11907,V,2373,34,DVB-S,QPSK -73=11910,V,2600,34,S2,8PSK -74=11915,V,2600,34,DVB-S,QPSK -75=11921,V,3979,Auto,DVB-S,QPSK -76=11927,V,3979,Auto,DVB-S,QPSK -77=11986,V,3979,34,DVB-S,QPSK -78=11995,V,3979,34,DVB-S,QPSK -79=12004,V,6889,Auto,DVB-S,QPSK -80=12020,H,3979,Auto,DVB-S,QPSK -81=12028,V,4600,34,S2,8PSK -82=12036,H,6111,Auto,DVB-S,QPSK -83=12040,V,3979,Auto,DVB-S,QPSK -84=12045,V,1580,Auto,DVB-S,QPSK -85=12046,H,6111,Auto,DVB-S,QPSK -86=12051,V,2200,56,DVB-S,QPSK -87=12054,H,6620,34,S2,8PSK -88=12055,V,2150,Auto,S2,8PSK -89=12058,V,2223,56,DVB-S,QPSK -90=12058,H,7400,23,DVB-S,QPSK -91=12063,V,4170,23,DVB-S,QPSK -92=12066,H,2500,34,DVB-S,QPSK -93=12067,V,3333,34,DVB-S,QPSK -94=12070,H,2000,56,DVB-S,QPSK -95=12074,V,2400,56,DVB-S,QPSK -96=12075,H,1660,56,S2,8PSK -97=12080,H,7200,34,S2,QPSK -98=12083,V,2850,78,DVB-S,QPSK -99=12086,V,4170,23,DVB-S,QPSK -100=12092,H,4000,23,DVB-S,QPSK -101=12114,V,13000,Auto,DVB-S,QPSK -102=12130,V,6111,Auto,DVB-S,QPSK -103=12188,H,6511,Auto,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2882.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2882.ini deleted file mode 100644 index 591ba2fe42..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2882.ini +++ /dev/null @@ -1,84 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2882 -2=Arsat 1 (71.8W) - -[DVB] -0=75 -1=11175,V,4200,34,DVB-S,QPSK -2=11179,V,3100,34,DVB-S,QPSK -3=11466,V,3500,34,DVB-S,QPSK -4=11540,H,3330,34,DVB-S,QPSK -5=11544,H,6660,Auto,DVB-S,QPSK -6=11546,V,12000,23,DVB-S,QPSK -7=11552,H,2591,34,DVB-S,QPSK -8=11555,H,1904,Auto,DVB-S,QPSK -9=11564,H,3200,34,DVB-S,QPSK -10=11568,H,3350,34,DVB-S,QPSK -11=11573,H,3333,34,DVB-S,QPSK -12=11577,H,3333,34,DVB-S,QPSK -13=11577,V,2400,56,DVB-S,QPSK -14=11581,H,1325,34,DVB-S,QPSK -15=11582,V,2850,34,S2,8PSK -16=11584,H,2655,78,DVB-S,QPSK -17=11595,H,1904,78,DVB-S,QPSK -18=11598,H,2500,34,DVB-S,QPSK -19=11640,V,8500,Auto,DVB-S,QPSK -20=11651,V,1904,78,DVB-S,QPSK -21=11657,H,1904,78,DVB-S,QPSK -22=11660,H,2500,Auto,S2,8PSK -23=11660,V,2943,Auto,DVB-S,QPSK -24=11667,H,6665,34,S2,QPSK -25=11670,V,30000,56,S2,QPSK -26=11675,H,1904,34,DVB-S,QPSK -27=11678,H,1904,34,DVB-S,QPSK -28=11686,V,2222,34,DVB-S,QPSK -29=11708,H,6660,34,S2,8PSK -30=11718,H,6660,12,S2,8PSK -31=11718,V,6660,34,S2,8PSK -32=11728,V,3300,34,DVB-S,QPSK -33=11731,H,3124,34,DVB-S,QPSK -34=11734,H,2655,34,DVB-S,QPSK -35=11745,V,2373,34,DVB-S,QPSK -36=11752,H,2373,34,DVB-S,QPSK -37=11755,H,2963,Auto,S2,QPSK -38=11756,V,3200,34,DVB-S,QPSK -39=11779,V,3600,Auto,DVB-S,QPSK -40=11794,V,3600,Auto,DVB-S,QPSK -41=11805,V,3300,Auto,DVB-S,QPSK -42=11809,V,3350,Auto,DVB-S,QPSK -43=11817,V,3333,34,DVB-S,QPSK -44=11829,V,3330,34,DVB-S,QPSK -45=11848,V,3333,34,DVB-S,QPSK -46=11851,V,3350,34,S2,QPSK -47=11853,V,2343,34,DVB-S,QPSK -48=11861,V,3330,34,DVB-S,QPSK -49=11866,V,3300,34,DVB-S,QPSK -50=11870,H,14089,23,S2,QPSK -51=11876,H,6666,Auto,DVB-S,QPSK -52=11877,V,2355,34,DVB-S,QPSK -53=11882,H,3333,34,S2,QPSK -54=11888,V,3330,34,DVB-S,QPSK -55=11892,H,3333,Auto,DVB-S,QPSK -56=11896,H,3330,34,DVB-S,QPSK -57=11897,V,3200,34,DVB-S,QPSK -58=11907,V,2373,34,DVB-S,QPSK -59=11910,V,2600,34,S2,8PSK -60=11915,V,2600,34,DVB-S,QPSK -61=12051,V,2200,56,DVB-S,QPSK -62=12054,H,6620,34,S2,8PSK -63=12055,V,2150,Auto,S2,8PSK -64=12058,H,7400,23,DVB-S,QPSK -65=12058,V,2223,56,DVB-S,QPSK -66=12063,V,4170,23,DVB-S,QPSK -67=12066,H,2500,34,DVB-S,QPSK -68=12067,V,3333,34,DVB-S,QPSK -69=12070,H,2000,56,DVB-S,QPSK -70=12074,V,2400,56,DVB-S,QPSK -71=12075,H,1660,56,S2,8PSK -72=12080,H,7200,34,S2,QPSK -73=12083,V,2850,78,DVB-S,QPSK -74=12086,V,4170,23,DVB-S,QPSK -75=12092,H,4000,23,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2900.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2900.ini deleted file mode 100644 index 3a4144bf6b..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2900.ini +++ /dev/null @@ -1,72 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2900 -2=Star One C2/C4 (70.0W) - -[DVB] -0=63 -1=3628,H,3000,34,DVB-S,QPSK -2=3632,H,4688,34,DVB-S,QPSK -3=3642,H,4583,34,S2,8PSK -4=3644,V,3214,34,DVB-S,QPSK -5=3648,V,2170,34,DVB-S,QPSK -6=3650,H,5000,23,S2,8PSK -7=3652,V,2777,23,DVB-S,QPSK -8=3656,H,3393,34,DVB-S,QPSK -9=3657,V,7500,23,DVB-S,QPSK -10=3665,V,2400,34,DVB-S,QPSK -11=3665,H,3818,34,DVB-S,QPSK -12=3667,V,2500,56,DVB-S,QPSK -13=3672,H,7500,23,S2,8PSK -14=3674,V,6666,34,DVB-S,QPSK -15=3680,H,7500,23,S2,8PSK -16=3685,V,5000,34,S2,8PSK -17=3689,H,7500,23,S2,8PSK -18=3690,V,2220,34,DVB-S,QPSK -19=3695,H,3599,34,DVB-S,QPSK -20=3702,V,15000,34,S2,8PSK -21=3704,H,3750,23,S2,8PSK -22=3711,V,2170,34,DVB-S,QPSK -23=3715,V,5000,34,S2,8PSK -24=3753,V,6220,34,DVB-S,QPSK -25=3808,V,7500,23,S2,QPSK -26=3816,V,6666,23,S2,8PSK -27=3825,V,6666,23,S2,8PSK -28=3833,V,4073,56,S2,8PSK -29=3874,V,7500,23,S2,8PSK -30=3887,V,7500,Auto,S2,8PSK -31=3895,V,7500,23,S2,8PSK -32=3906,V,7500,23,S2,8PSK -33=3916,V,7500,23,S2,8PSK -34=3940,V,30000,23,S2,8PSK -35=3947,H,7200,23,DVB-S,QPSK -36=3955,H,4400,34,DVB-S,QPSK -37=3959,H,1875,34,DVB-S,QPSK -38=3965,V,4069,23,DVB-S,QPSK -39=3967,H,7500,23,S2,8PSK -40=3970,V,1852,56,DVB-S,QPSK -41=3973,V,4000,23,DVB-S,QPSK -42=3973,H,7500,23,S2,8PSK -43=3978,V,3617,56,DVB-S,QPSK -44=3982,V,4573,34,S2,8PSK -45=3985,H,2170,34,DVB-S,QPSK -46=3990,V,7400,34,S2,8PSK -47=3993,H,12416,Auto,DVB-S,QPSK -48=3996,V,2300,34,DVB-S,QPSK -49=4047,V,7143,34,DVB-S,QPSK -50=10974,H,29890,34,DVB-S,QPSK -51=11014,H,29890,35,S2,QPSK -52=11130,V,29890,34,DVB-S,QPSK -53=11170,V,29890,34,DVB-S,QPSK -54=11740,H,29890,34,S2,8PSK -55=11780,H,29890,34,DVB-S,QPSK -56=11820,H,29890,34,DVB-S,QPSK -57=11880,H,41500,34,DVB-S,QPSK -58=11940,H,29890,34,DVB-S,QPSK -59=11960,V,29900,35,S2,QPSK -60=12020,V,41500,34,DVB-S,QPSK -61=12080,V,29890,34,S2,8PSK -62=12120,V,29890,34,DVB-S,QPSK -63=12160,V,28890,35,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2930.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2930.ini deleted file mode 100644 index b144562e4d..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2930.ini +++ /dev/null @@ -1,16 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2930 -2=AMC 4 (67.0W) - -[DVB] -0=7 -1=11720,V,28888,34,DVB-S,QPSK -2=11760,V,28888,34,DVB-S,QPSK -3=11800,V,28888,34,DVB-S,QPSK -4=11840,V,28888,34,DVB-S,QPSK -5=11880,V,28888,34,DVB-S,QPSK -6=11920,V,28888,34,DVB-S,QPSK -7=12162,V,9600,Auto,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2950.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2950.ini deleted file mode 100644 index 3b6a477fc3..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2950.ini +++ /dev/null @@ -1,51 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2950 -2=Star One C1 (65.0W) - -[DVB] -0=42 -1=3650,V,4440,Auto,DVB-S,QPSK -2=3669,V,4686,34,S2,8PSK -3=3670,H,9043,34,S2,QPSK -4=3687,H,3214,Auto,DVB-S,QPSK -5=3691,H,4000,23,S2,8PSK -6=3697,H,4400,23,S2,8PSK -7=3720,H,2963,34,DVB-S,QPSK -8=3732,V,2222,Auto,DVB-S,QPSK -9=3734,V,2852,34,DVB-S,QPSK -10=3736,H,1808,34,DVB-S,QPSK -11=3736,V,2853,34,DVB-S,QPSK -12=3744,H,2110,Auto,DVB-S,QPSK -13=3762,H,2222,78,DVB-S,QPSK -14=3766,H,3336,34,DVB-S,QPSK -15=3771,V,1480,34,DVB-S,QPSK -16=3774,V,2222,34,DVB-S,QPSK -17=3792,V,3393,34,DVB-S,QPSK -18=3800,H,30000,56,S2,8PSK -19=3832,H,4800,56,DVB-S,QPSK -20=3850,H,6666,Auto,DVB-S,QPSK -21=3853,H,2170,78,DVB-S,QPSK -22=3864,H,3333,34,DVB-S,QPSK -23=3876,V,2740,34,DVB-S,QPSK -24=3894,H,6666,Auto,DVB-S,QPSK -25=3920,H,27500,78,DVB-S,QPSK -26=3926,V,7072,34,S2,8PSK -27=3935,V,7072,23,S2,8PSK -28=3943,V,8500,34,S2,8PSK -29=3950,V,3200,23,S2,8PSK -30=3968,V,7500,Auto,S2,8PSK -31=3975,V,4167,34,S2,QPSK -32=4014,H,3750,Auto,S2,8PSK -33=4017,H,2083,34,S2,8PSK -34=4046,V,4000,56,DVB-S,QPSK -35=4051,V,5416,23,S2,8PSK -36=4100,V,30000,56,S2,8PSK -37=4121,H,4800,34,DVB-S,QPSK -38=4130,H,1850,23,DVB-S,QPSK -39=4140,V,30000,56,S2,8PSK -40=11885,H,2000,12,S2,QPSK -41=11893,H,2034,Auto,DVB-S,QPSK -42=11930,H,14400,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2970.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2970.ini deleted file mode 100644 index 60e1423fd8..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2970.ini +++ /dev/null @@ -1,27 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2970 -2=Telstar 14R (63.0W) - -[DVB] -0=18 -1=11600,V,13744,Auto,DVB-S,QPSK -2=11640,V,18100,78,DVB-S,QPSK -3=11706,V,2278,34,S2,QPSK -4=11710,V,3200,23,DVB-S,QPSK -5=11722,V,2963,34,DVB-S,QPSK -6=11726,V,3333,34,DVB-S,QPSK -7=11732,V,2222,Auto,DVB-S,QPSK -8=11736,V,2963,34,DVB-S,QPSK -9=11795,V,4444,Auto,DVB-S,QPSK -10=11805,V,6666,Auto,DVB-S,QPSK -11=11827,V,3200,Auto,DVB-S,QPSK -12=11844,V,5348,Auto,DVB-S,QPSK -13=11850,V,2280,34,DVB-S,QPSK -14=11871,V,2000,34,DVB-S,QPSK -15=11888,V,3330,34,DVB-S,QPSK -16=11905,V,2362,34,DVB-S,QPSK -17=11958,H,3255,Auto,DVB-S,QPSK -18=12162,H,13021,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2985.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2985.ini deleted file mode 100644 index 1dc03e67ff..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2985.ini +++ /dev/null @@ -1,41 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2985 -2=EchoStar 12/16 (61.5W) - -[DVB] -0=32 -1=12224,V,20000,78,DVB-S,QPSK -2=12239,H,21500,23,DVB-S,8PSK -3=12253,V,21500,23,DVB-S,8PSK -4=12268,H,21500,23,DVB-S,8PSK -5=12282,V,21500,23,DVB-S,8PSK -6=12297,H,21500,23,DVB-S,8PSK -7=12311,V,21500,23,DVB-S,8PSK -8=12326,H,21500,23,DVB-S,8PSK -9=12341,V,21500,23,DVB-S,8PSK -10=12355,H,21500,23,DVB-S,8PSK -11=12370,V,21500,23,DVB-S,8PSK -12=12384,H,21500,23,DVB-S,8PSK -13=12399,V,21500,23,DVB-S,8PSK -14=12414,H,20000,78,DVB-S,QPSK -15=12428,V,21500,23,DVB-S,8PSK -16=12443,H,21500,23,DVB-S,8PSK -17=12457,V,21500,23,DVB-S,8PSK -18=12472,H,21500,34,DVB-S,8PSK -19=12486,V,21500,34,DVB-S,8PSK -20=12501,H,21500,34,DVB-S,8PSK -21=12516,V,21500,34,DVB-S,8PSK -22=12530,H,21500,34,DVB-S,8PSK -23=12545,V,21500,34,DVB-S,8PSK -24=12559,H,21500,34,DVB-S,8PSK -25=12574,V,21500,34,DVB-S,8PSK -26=12588,H,21500,34,DVB-S,8PSK -27=12603,V,21500,34,DVB-S,8PSK -28=12618,H,21500,34,DVB-S,8PSK -29=12632,V,21500,34,DVB-S,8PSK -30=12647,H,21500,34,DVB-S,8PSK -31=12661,V,21500,34,DVB-S,8PSK -32=12676,H,21500,34,DVB-S,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2990.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2990.ini deleted file mode 100644 index ce35c62f5d..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/2990.ini +++ /dev/null @@ -1,67 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=2990 -2=Amazonas 2/3/4A (61.0W) - -[DVB] -0=58 -1=3630,H,2785,34,DVB-S,QPSK -2=3659,H,6666,Auto,DVB-S,QPSK -3=3668,H,6666,Auto,DVB-S,QPSK -4=3767,H,1600,34,S2,QPSK -5=3925,V,3333,34,DVB-S,QPSK -6=3927,V,2222,34,DVB-S,QPSK -7=3941,V,3480,34,DVB-S,QPSK -8=3948,H,4440,Auto,DVB-S,QPSK -9=3958,H,4440,Auto,DVB-S,QPSK -10=3967,H,6670,Auto,DVB-S,QPSK -11=3990,H,2142,34,DVB-S,QPSK -12=3996,H,7501,23,S2,8PSK -13=4139,H,4543,34,S2,QPSK -14=4142,V,2651,34,DVB-S,QPSK -15=4148,H,5384,35,S2,8PSK -16=4156,H,2813,Auto,DVB-S,QPSK -17=4160,V,2500,34,S2,QPSK -18=4164,H,3846,34,DVB-S,QPSK -19=4168,H,3461,34,DVB-S,QPSK -20=10728,H,28888,34,DVB-S,QPSK -21=10728,V,30000,34,S2,8PSK -22=10768,H,28888,34,DVB-S,QPSK -23=10768,V,30000,23,S2,8PSK -24=10808,H,30000,23,S2,8PSK -25=10848,H,30000,23,S2,8PSK -26=10888,V,28888,34,DVB-S,QPSK -27=10928,H,28888,34,DVB-S,QPSK -28=11015,H,28880,34,DVB-S,QPSK -29=11026,V,10805,23,S2,8PSK -30=11055,H,28880,34,DVB-S,QPSK -31=11095,H,28880,34,DVB-S,QPSK -32=11095,V,30000,23,S2,8PSK -33=11135,H,28880,34,DVB-S,QPSK -34=11135,V,28880,Auto,DVB-S,QPSK -35=11175,H,28888,34,DVB-S,QPSK -36=11222,H,28888,34,DVB-S,QPSK -37=11222,V,30000,23,S2,8PSK -38=11262,H,30000,23,S2,8PSK -39=11262,V,30000,23,S2,8PSK -40=11302,H,28888,34,DVB-S,QPSK -41=11342,H,28888,34,DVB-S,QPSK -42=11342,V,30000,23,S2,8PSK -43=11382,H,28888,34,DVB-S,QPSK -44=11422,H,28888,34,DVB-S,QPSK -45=11738,V,40000,23,DVB-S,QPSK -46=11851,H,28880,Auto,DVB-S,QPSK -47=11885,H,15000,23,S2,8PSK -48=11932,H,28888,23,DVB-S,QPSK -49=11972,V,30000,34,DVB-S,QPSK -50=11972,H,28888,34,DVB-S,QPSK -51=12012,H,28888,34,DVB-S,QPSK -52=12052,H,28888,34,DVB-S,QPSK -53=12060,V,18000,Auto,DVB-S,QPSK -54=12092,V,30000,23,DVB-S,QPSK -55=12092,H,28880,34,DVB-S,QPSK -56=12132,H,30000,23,S2,8PSK -57=12172,V,30000,23,DVB-S,QPSK -58=12172,H,30000,23,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3020.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3020.ini deleted file mode 100644 index 3b6673b47d..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3020.ini +++ /dev/null @@ -1,67 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=3020 -2=Intelsat 21 (58.0W) - -[DVB] -0=58 -1=3720,V,30000,89,S2,8PSK -2=3720,H,27000,34,S2,8PSK -3=3760,V,27690,78,DVB-S,QPSK -4=3760,H,30000,56,S2,8PSK -5=3785,H,5200,910,S2,QPSK -6=3791,H,3330,34,DVB-S,QPSK -7=3797,H,2218,34,DVB-S,QPSK -8=3805,H,3147,34,DVB-S,QPSK -9=3840,V,27690,78,DVB-S,QPSK -10=3840,H,27690,78,DVB-S,QPSK -11=3880,V,30000,34,S2,8PSK -12=3880,H,27690,78,DVB-S,QPSK -13=3910,V,15000,23,S2,8PSK -14=3920,H,27690,78,S2,QPSK -15=3924,V,6620,34,DVB-S,QPSK -16=3933,V,7000,34,DVB-S,QPSK -17=3952,H,15145,23,S2,8PSK -18=3960,V,30000,34,S2,8PSK -19=3972,H,9850,56,S2,QPSK -20=4000,H,28120,56,S2,8PSK -21=4040,V,30000,56,S2,8PSK -22=4040,H,26590,12,DVB-S,QPSK -23=4080,V,27690,56,DVB-S,QPSK -24=4080,H,30000,56,S2,8PSK -25=4107,H,9850,34,DVB-S,QPSK -26=4120,V,27500,34,DVB-S,QPSK -27=4122,H,2222,34,DVB-S,QPSK -28=4126,H,3700,34,DVB-S,QPSK -29=4137,H,2020,56,DVB-S,QPSK -30=4144,V,2205,34,DVB-S,QPSK -31=4147,H,6111,34,S2,QPSK -32=4151,V,3000,78,DVB-S,QPSK -33=4155,H,5632,34,DVB-S,QPSK -34=4156,V,4300,56,DVB-S,QPSK -35=4160,V,2941,34,DVB-S,QPSK -36=4166,H,5632,34,DVB-S,QPSK -37=4169,V,3000,34,DVB-S,QPSK -38=4174,V,2941,34,DVB-S,QPSK -39=4175,H,6620,34,DVB-S,QPSK -40=11648,V,2520,Auto,DVB-S,QPSK -41=11693,V,2970,Auto,DVB-S,QPSK -42=11720,H,30000,35,S2,8PSK -43=11740,V,30000,35,S2,8PSK -44=11840,H,30000,56,DVB-S,QPSK -45=11860,V,30000,35,S2,8PSK -46=11960,H,30000,Auto,DVB-S,QPSK -47=11980,V,30000,Auto,DVB-S,QPSK -48=12000,H,30000,Auto,DVB-S,QPSK -49=12020,V,30000,Auto,DVB-S,QPSK -50=12040,H,30000,Auto,DVB-S,QPSK -51=12060,V,30000,Auto,DVB-S,QPSK -52=12067,V,2522,23,DVB-S,QPSK -53=12080,H,30000,Auto,DVB-S,QPSK -54=12100,V,30000,Auto,DVB-S,QPSK -55=12120,H,30000,Auto,DVB-S,QPSK -56=12140,V,30000,Auto,DVB-S,QPSK -57=12160,H,30000,Auto,DVB-S,QPSK -58=12180,V,30000,Auto,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3045.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3045.ini deleted file mode 100644 index 1d462c1a83..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3045.ini +++ /dev/null @@ -1,107 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=3045 -2=Amazonas 1/Galaxy 11/Intelsat 805 (55.5W) - -[DVB] -0=98 -1=3478,V,5632,34,DVB-S,QPSK -2=3670,H,1374,34,DVB-S,QPSK -3=3675,V,7120,34,S2,8PSK -4=3678,H,2960,34,DVB-S,QPSK -5=3682,V,3333,34,DVB-S,QPSK -6=3687,V,3333,34,DVB-S,QPSK -7=3688,H,3320,34,DVB-S,QPSK -8=3693,H,3320,34,DVB-S,QPSK -9=3715,H,8890,34,DVB-S,QPSK -10=3719,V,1950,Auto,S2,8PSK -11=3727,V,3333,34,DVB-S,QPSK -12=3735,V,8681,34,DVB-S,QPSK -13=3740,H,1205,23,DVB-S,QPSK -14=3743,H,2500,34,S2,8PSK -15=3747,H,1600,35,S2,QPSK -16=3750,V,3750,Auto,S2,8PSK -17=3754,H,4232,34,DVB-S,QPSK -18=3759,V,18400,23,S2,8PSK -19=3759,H,2963,34,DVB-S,QPSK -20=3763,H,3000,34,S2,QPSK -21=3768,H,4427,23,DVB-S,QPSK -22=3776,H,7996,35,S2,8PSK -23=3791,V,3255,Auto,DVB-S,QPSK -24=3794,H,1600,23,S2,QPSK -25=3808,V,26666,78,DVB-S,QPSK -26=3816,H,26666,34,DVB-S,QPSK -27=3823,V,4430,34,DVB-S,QPSK -28=3836,H,2500,34,S2,QPSK -29=3839,H,2600,89,S2,QPSK -30=3842,H,2580,34,DVB-S,QPSK -31=3845,V,26700,34,DVB-S,QPSK -32=3849,H,1600,23,S2,8PSK -33=3855,H,2220,Auto,S2,8PSK -34=3859,H,3330,56,S2,8PSK -35=3872,H,9333,35,S2,8PSK -36=3890,H,3333,56,DVB-S,QPSK -37=3894,H,3617,34,DVB-S,QPSK -38=3910,H,5832,56,S2,QPSK -39=3915,H,3300,34,DVB-S,QPSK -40=3924,H,7200,34,S2,8PSK -41=3930,H,3255,23,DVB-S,QPSK -42=3936,H,3255,23,DVB-S,QPSK -43=3963,V,3330,34,DVB-S,QPSK -44=3965,H,7120,34,S2,8PSK -45=3966,V,2963,34,DVB-S,QPSK -46=3970,V,3702,23,DVB-S,QPSK -47=3972,H,6920,34,S2,8PSK -48=3978,H,3200,34,DVB-S,QPSK -49=3982,H,4440,34,DVB-S,QPSK -50=3987,V,3330,34,S2,8PSK -51=3990,V,3590,23,S2,8PSK -52=3991,H,6666,34,DVB-S,QPSK -53=4003,V,8681,34,DVB-S,QPSK -54=4011,V,3330,23,S2,8PSK -55=4015,H,30000,23,S2,8PSK -56=4023,V,4289,Auto,DVB-S,QPSK -57=4028,V,4410,34,DVB-S,QPSK -58=4042,H,7120,34,DVB-S,QPSK -59=4052,V,3125,34,DVB-S,QPSK -60=4056,H,3320,34,DVB-S,QPSK -61=4067,V,4440,34,DVB-S,QPSK -62=4070,H,7120,34,S2,8PSK -63=4080,V,4400,56,DVB-S,QPSK -64=4084,H,10560,35,S2,8PSK -65=4086,V,4074,56,S2,QPSK -66=4093,V,3617,34,DVB-S,QPSK -67=4093,H,3040,35,S2,8PSK -68=4096,H,1300,35,S2,8PSK -69=4097,V,3700,78,DVB-S,QPSK -70=4098,H,2272,56,S2,QPSK -71=4100,H,1840,35,S2,8PSK -72=4101,V,2320,89,S2,QPSK -73=4106,H,5360,35,S2,8PSK -74=4107,V,2960,34,DVB-S,QPSK -75=4111,V,1850,23,S2,8PSK -76=4111,H,4000,35,S2,8PSK -77=4127,H,2961,34,DVB-S,QPSK -78=4134,H,4444,34,DVB-S,QPSK -79=4136,V,30000,56,S2,8PSK -80=4137,H,2000,34,DVB-S,8PSK -81=4142,H,5000,34,S2,8PSK -82=4147,H,3444,34,DVB-S,QPSK -83=4151,H,2500,34,DVB-S,QPSK -84=4160,H,5600,23,S2,8PSK -85=4170,H,6111,Auto,DVB-S,QPSK -86=4177,V,30000,56,S2,8PSK -87=4193,H,4444,34,S2,QPSK -88=10976,H,22000,34,S2,8PSK -89=11006,H,23300,34,S2,8PSK -90=11024,V,23300,34,S2,8PSK -91=11036,H,23300,34,S2,8PSK -92=11054,V,23300,34,S2,8PSK -93=11066,H,23300,34,S2,8PSK -94=11096,H,23300,34,S2,8PSK -95=11126,H,23300,34,S2,8PSK -96=11156,H,23300,34,S2,8PSK -97=11186,H,23300,34,S2,8PSK -98=11921,V,39200,34,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3070.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3070.ini deleted file mode 100644 index 16baee6ce0..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3070.ini +++ /dev/null @@ -1,24 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=3070 -2=Intelsat 23 (53.0W) - -[DVB] -0=15 -1=3715,V,2500,34,S2,QPSK -2=3720,V,3906,12,DVB-S,QPSK -3=3820,V,3255,Auto,DVB-S,QPSK -4=3882,V,18808,34,DVB-S,QPSK -5=3932,V,4340,Auto,DVB-S,QPSK -6=3998,H,4445,12,DVB-S,QPSK -7=4004,H,4445,12,DVB-S,QPSK -8=4009,H,2963,34,DVB-S,QPSK -9=4012,H,2963,34,DVB-S,QPSK -10=4016,H,2963,34,DVB-S,QPSK -11=4028,H,2963,34,DVB-S,QPSK -12=4119,V,6666,34,DVB-S,QPSK -13=4135,H,4300,78,DVB-S,QPSK -14=11911,V,2821,34,DVB-S,QPSK -15=12138,H,3111,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3100.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3100.ini deleted file mode 100644 index 2155127dc4..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3100.ini +++ /dev/null @@ -1,43 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=3100 -2=Intelsat 1R (50.0W) - -[DVB] -0=34 -1=3743,V,7200,Auto,S2,QPSK -2=3760,V,2410,Auto,DVB-S,QPSK -3=3765,V,2410,12,DVB-S,QPSK -4=3778,V,5184,Auto,DVB-S,QPSK -5=3784,V,2240,Auto,DVB-S,QPSK -6=3792,V,2222,Auto,DVB-S,QPSK -7=4094,H,2963,34,DVB-S,QPSK -8=4098,H,2963,34,DVB-S,QPSK -9=4102,H,2963,34,DVB-S,QPSK -10=4106,H,2963,34,DVB-S,QPSK -11=4111,H,2963,34,DVB-S,QPSK -12=4125,V,10713,34,DVB-S,QPSK -13=4135,V,3382,34,DVB-S,QPSK -14=4141,V,5384,35,DVB-S,QPSK -15=4149,V,6153,Auto,DVB-S,QPSK -16=4182,V,7600,12,S2,8PSK -17=11050,V,27902,34,S2,QPSK -18=11090,V,27902,34,S2,QPSK -19=11130,V,27902,34,S2,QPSK -20=11170,V,27902,34,S2,QPSK -21=11455,V,4440,Auto,DVB-S,QPSK -22=11464,V,3320,Auto,DVB-S,QPSK -23=11469,V,3320,Auto,DVB-S,QPSK -24=11473,V,3320,Auto,DVB-S,QPSK -25=11478,V,3320,Auto,DVB-S,QPSK -26=11483,V,3320,Auto,DVB-S,QPSK -27=11787,H,3330,Auto,DVB-S,QPSK -28=11789,V,10000,Auto,DVB-S,QPSK -29=11797,H,6500,Auto,DVB-S,QPSK -30=11804,H,6500,Auto,DVB-S,QPSK -31=11804,V,4440,Auto,DVB-S,QPSK -32=11813,H,6500,Auto,DVB-S,QPSK -33=11816,V,2960,Auto,DVB-S,QPSK -34=11825,H,4500,Auto,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3125.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3125.ini deleted file mode 100644 index 07c07c7ff9..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3125.ini +++ /dev/null @@ -1,17 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=3125 -2=NSS 806 (47.5W) - -[DVB] -0=8 -1=3725,H,30000,34,S2,8PSK -2=3803,V,28000,34,S2,8PSK -3=4002,V,7200,34,S2,QPSK -4=4015,H,30000,23,S2,8PSK -5=4055,V,30000,56,S2,8PSK -6=4135,V,28000,34,S2,8PSK -7=4163,V,9247,56,S2,QPSK -8=4178,H,30000,23,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3150.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3150.ini deleted file mode 100644 index e322e36f86..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3150.ini +++ /dev/null @@ -1,33 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=3150 -2=Intelsat 14 (45.0W) - -[DVB] -0=24 -1=3759,V,4412,34,DVB-S,QPSK -2=3766,V,3255,34,DVB-S,QPSK -3=3769,V,2400,34,DVB-S,QPSK -4=3777,V,2400,56,DVB-S,QPSK -5=3780,V,2941,34,DVB-S,QPSK -6=3789,V,1667,Auto,S2,QPSK -7=3844,V,2222,Auto,DVB-S,QPSK -8=3853,V,11029,78,DVB-S,QPSK -9=3866,V,10073,78,DVB-S,QPSK -10=3913,H,2482,23,S2,QPSK -11=3968,V,3600,Auto,DVB-S,QPSK -12=3986,V,4411,56,DVB-S,QPSK -13=4072,V,2068,56,DVB-S,QPSK -14=4110,H,4444,34,DVB-S,QPSK -15=4165,V,4412,56,DVB-S,QPSK -16=4171,V,3309,34,DVB-S,QPSK -17=4176,V,3888,Auto,DVB-S,QPSK -18=4186,H,4960,35,S2,QPSK -19=4192,H,2075,34,DVB-S,QPSK -20=4192,V,1600,35,S2,8PSK -21=11600,V,1000,34,DVB-S,QPSK -22=11608,H,1852,56,DVB-S,QPSK -23=11638,H,5632,34,DVB-S,QPSK -24=11647,H,6620,23,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3169.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3169.ini deleted file mode 100644 index 8ed74f2ef9..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3169.ini +++ /dev/null @@ -1,76 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=3169 -2=Intelsat 11 (43.1W) - -[DVB] -0=67 -1=3717,H,22000,56,S2,8PSK -2=3718,V,21600,56,S2,8PSK -3=3736,H,29270,78,DVB-S,QPSK -4=3745,V,21610,34,S2,8PSK -5=3780,H,27690,78,DVB-S,QPSK -6=3783,V,30000,56,S2,8PSK -7=3808,V,15000,56,S2,8PSK -8=3808,H,14950,56,S2,8PSK -9=3825,H,7500,34,S2,QPSK -10=3828,V,3300,34,DVB-S,QPSK -11=3834,H,3200,35,S2,8PSK -12=3836,V,7780,23,S2,8PSK -13=3838,H,3600,34,DVB-S,QPSK -14=3844,H,3600,34,DVB-S,QPSK -15=3845,V,7700,34,S2,QPSK -16=3850,H,7500,23,S2,8PSK -17=3854,V,5945,34,DVB-S,QPSK -18=3864,V,7120,34,S2,8PSK -19=3868,H,13600,34,S2,8PSK -20=3871,V,2500,34,S2,8PSK -21=3874,V,2421,34,S2,8PSK -22=3875,H,3750,35,S2,8PSK -23=3877,V,1546,23,DVB-S,QPSK -24=3888,H,7200,34,S2,8PSK -25=3895,V,17405,34,DVB-S,QPSK -26=3927,V,30000,56,DVB-S,QPSK -27=3928,H,14060,34,S2,8PSK -28=3945,H,6250,34,S2,8PSK -29=3963,V,13400,56,DVB-S,QPSK -30=3966,H,21090,34,DVB-S,QPSK -31=3975,V,3590,56,S2,8PSK -32=3984,V,9760,34,DVB-S,QPSK -33=3992,V,7320,23,DVB-S,QPSK -34=3994,H,21090,34,DVB-S,QPSK -35=4012,V,6650,Auto,DVB-S,QPSK -36=4026,V,16900,78,DVB-S,QPSK -37=4040,H,30800,78,DVB-S,QPSK -38=4048,V,20832,34,S2,8PSK -39=4074,V,2500,56,S2,8PSK -40=4079,V,4400,34,DVB-S,QPSK -41=4113,H,19510,Auto,DVB-S,QPSK -42=4115,V,19580,34,S2,8PSK -43=4135,V,2222,34,DVB-S,QPSK -44=4140,H,9600,34,S2,8PSK -45=4149,V,20083,23,S2,8PSK -46=4150,H,7500,23,S2,8PSK -47=4168,H,4800,Auto,S2,8PSK -48=4185,H,7120,34,S2,8PSK -49=4193,H,6620,34,S2,QPSK -50=10722,V,30000,34,DVB-S,QPSK -51=10722,H,30000,34,DVB-S,QPSK -52=10802,V,30000,34,DVB-S,QPSK -53=10802,H,28000,Auto,DVB-S,QPSK -54=10882,V,30000,34,DVB-S,QPSK -55=10882,H,30000,34,DVB-S,QPSK -56=10970,V,28000,Auto,DVB-S,QPSK -57=10970,H,29000,34,DVB-S,QPSK -58=11050,V,29000,Auto,DVB-S,QPSK -59=11050,H,29000,Auto,DVB-S,QPSK -60=11130,V,29000,34,DVB-S,QPSK -61=11130,H,28000,Auto,DVB-S,QPSK -62=11222,V,30000,23,S2,8PSK -63=11222,H,30000,23,S2,8PSK -64=11302,V,30000,23,S2,8PSK -65=11302,H,30000,23,S2,8PSK -66=11382,V,30000,34,DVB-S,QPSK -67=11382,H,30000,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3195.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3195.ini deleted file mode 100644 index b331b7d64b..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3195.ini +++ /dev/null @@ -1,151 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=3195 -2=SES 6 (40.5W) - -[DVB] -0=142 -1=3626,H,2800,34,S2,8PSK -2=3628,V,2170,34,DVB-S,QPSK -3=3630,H,2222,34,DVB-S,QPSK -4=3633,H,1480,56,S2,8PSK -5=3634,V,2712,34,DVB-S,QPSK -6=3637,H,1855,34,DVB-S,QPSK -7=3641,V,2666,34,DVB-S,QPSK -8=3641,H,2788,Auto,S2,8PSK -9=3644,H,2532,34,DVB-S,QPSK -10=3646,V,6666,34,DVB-S,QPSK -11=3648,H,2068,23,S2,8PSK -12=3652,H,4000,56,DVB-S,QPSK -13=3658,H,1666,56,S2,8PSK -14=3658,V,4800,89,S2,QPSK -15=3666,V,2222,56,DVB-S,QPSK -16=3668,H,2170,34,DVB-S,QPSK -17=3673,V,4700,56,S2,8PSK -18=3673,H,4350,34,DVB-S,QPSK -19=3677,H,2000,23,S2,8PSK -20=3682,H,3333,34,DVB-S,QPSK -21=3684,V,3750,34,S2,8PSK -22=3688,V,3650,34,DVB-S,QPSK -23=3691,H,2740,23,DVB-S,QPSK -24=3694,V,5180,34,DVB-S,QPSK -25=3695,H,2963,34,DVB-S,QPSK -26=3699,V,2200,34,DVB-S,QPSK -27=3710,H,7400,78,DVB-S,QPSK -28=3725,H,10000,56,S2,8PSK -29=3732,V,8156,56,DVB-S,QPSK -30=3735,H,7400,78,DVB-S,QPSK -31=3758,H,18500,78,DVB-S,QPSK -32=3763,V,30000,56,S2,8PSK -33=3803,V,26860,78,DVB-S,QPSK -34=3803,H,27500,78,DVB-S,QPSK -35=3830,V,6142,78,DVB-S,QPSK -36=3835,V,2082,34,S2,8PSK -37=3843,H,30000,89,S2,8PSK -38=3848,V,2800,34,DVB-S,QPSK -39=3856,V,8370,34,S2,8PSK -40=3866,H,2222,78,DVB-S,QPSK -41=3870,H,3750,56,S2,8PSK -42=3875,H,3867,34,S2,QPSK -43=3883,V,26660,56,DVB-S,QPSK -44=3883,H,1837,34,S2,8PSK -45=3886,H,2617,34,S2,8PSK -46=3888,H,1050,56,S2,8PSK -47=3893,H,2217,78,DVB-S,QPSK -48=3897,H,2000,34,S2,8PSK -49=3899,H,1900,34,DVB-S,QPSK -50=3907,H,2548,34,S2,8PSK -51=3909,H,2455,34,S2,8PSK -52=3915,H,5830,23,S2,8PSK -53=3920,V,20000,35,S2,QPSK -54=3935,H,8880,34,DVB-S,QPSK -55=3937,V,2170,34,DVB-S,QPSK -56=3960,V,1259,78,DVB-S,QPSK -57=3964,V,2000,56,S2,8PSK -58=3966,V,1920,23,S2,8PSK -59=3980,V,17800,34,DVB-S,QPSK -60=3980,H,21600,34,S2,8PSK -61=3990,V,4195,34,DVB-S,QPSK -62=3998,H,1630,34,S2,8PSK -63=4000,H,1600,34,S2,8PSK -64=4002,H,1570,34,S2,8PSK -65=4004,H,1530,34,S2,8PSK -66=4006,H,1500,34,S2,8PSK -67=4008,H,1470,34,S2,8PSK -68=4013,H,6600,34,S2,8PSK -69=4021,V,3200,34,S2,8PSK -70=4025,H,12832,34,S2,8PSK -71=4028,V,8000,34,S2,8PSK -72=4047,H,3330,78,DVB-S,QPSK -73=4054,H,6666,34,DVB-S,QPSK -74=4056,V,3000,23,DVB-S,QPSK -75=4063,H,7000,56,S2,8PSK -76=4065,V,12500,34,DVB-S,QPSK -77=4070,H,4440,78,DVB-S,QPSK -78=4080,H,4937,Auto,DVB-S,QPSK -79=4081,V,6511,56,DVB-S,QPSK -80=4086,V,1476,78,DVB-S,QPSK -81=4092,H,1600,56,S2,QPSK -82=4092,V,1150,34,DVB-S,QPSK -83=4100,V,6111,34,DVB-S,QPSK -84=4111,V,2000,56,DVB-S,QPSK -85=4119,V,2960,34,DVB-S,QPSK -86=4121,H,2400,34,S2,8PSK -87=4124,V,4196,34,DVB-S,QPSK -88=4125,H,3625,56,S2,8PSK -89=4130,V,3844,78,DVB-S,QPSK -90=4132,H,2480,34,DVB-S,QPSK -91=4136,V,3000,56,S2,8PSK -92=4137,H,4400,34,DVB-S,QPSK -93=4140,V,2220,78,DVB-S,QPSK -94=4142,V,1030,78,DVB-S,QPSK -95=4142,H,2222,78,DVB-S,QPSK -96=4144,V,2800,34,S2,8PSK -97=4146,H,2571,78,DVB-S,QPSK -98=4151,V,3280,56,DVB-S,QPSK -99=4161,H,6510,34,DVB-S,QPSK -100=4168,H,2400,23,DVB-S,QPSK -101=4168,V,18392,23,S2,8PSK -102=4170,H,2222,34,DVB-S,QPSK -103=4175,H,3350,23,S2,8PSK -104=4179,H,3332,23,S2,8PSK -105=4187,V,11500,34,DVB-S,QPSK -106=4196,V,2960,56,DVB-S,QPSK -107=11480,V,30000,12,S2,8PSK -108=11480,H,30000,34,S2,8PSK -109=11520,V,30000,34,S2,8PSK -110=11520,H,30000,34,S2,8PSK -111=11560,V,30000,23,S2,8PSK -112=11560,H,30000,34,S2,8PSK -113=11600,H,30000,34,S2,8PSK -114=11600,V,30000,34,S2,8PSK -115=11640,H,30000,34,S2,8PSK -116=11640,V,30000,34,S2,8PSK -117=11680,H,30000,34,S2,8PSK -118=11680,V,30000,34,S2,8PSK -119=11736,V,22500,34,S2,8PSK -120=11764,V,22500,34,S2,8PSK -121=11796,V,22500,34,S2,8PSK -122=11824,V,22500,34,S2,8PSK -123=11856,V,22500,34,S2,8PSK -124=11884,V,22500,34,S2,8PSK -125=11916,V,22500,34,S2,8PSK -126=11944,V,22500,34,S2,8PSK -127=11976,V,22500,34,S2,8PSK -128=11976,H,22500,34,S2,8PSK -129=12004,V,22500,34,S2,8PSK -130=12004,H,22500,34,S2,8PSK -131=12036,H,22500,34,S2,8PSK -132=12036,V,22500,34,S2,8PSK -133=12064,H,22500,34,S2,8PSK -134=12064,V,22500,34,S2,8PSK -135=12096,H,22500,34,S2,8PSK -136=12096,V,22500,34,S2,8PSK -137=12124,H,22500,34,S2,8PSK -138=12124,V,22500,34,S2,8PSK -139=12156,H,22500,34,S2,8PSK -140=12156,V,22500,34,S2,8PSK -141=12184,H,22500,34,S2,8PSK -142=12184,V,22500,34,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3225.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3225.ini deleted file mode 100644 index 800e74334f..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3225.ini +++ /dev/null @@ -1,62 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=3225 -2=NSS 10/Telstar 11N (37.5W) - -[DVB] -0=53 -1=3746,V,1229,56,S2,QPSK -2=3746,H,1229,56,S2,QPSK -3=3749,V,1674,78,DVB-S,QPSK -4=3749,H,1674,78,DVB-S,QPSK -5=3756,V,1777,34,S2,8PSK -6=3756,H,1777,34,S2,8PSK -7=3833,H,2893,34,DVB-S,QPSK -8=3868,V,6666,34,DVB-S,QPSK -9=3888,H,3250,34,DVB-S,QPSK -10=3929,H,8882,34,DVB-S,QPSK -11=4044,V,3250,34,DVB-S,QPSK -12=4055,V,2700,56,DVB-S,QPSK -13=4059,V,3214,56,DVB-S,QPSK -14=4066,V,2893,34,DVB-S,QPSK -15=4068,V,2540,78,DVB-S,QPSK -16=4072,V,3150,34,DVB-S,QPSK -17=4083,H,10000,23,S2,8PSK -18=4172,H,8888,Auto,DVB-S,QPSK -19=4177,V,23500,12,S2,QPSK -20=10965,V,3300,56,DVB-S,QPSK -21=10970,V,1847,56,S2,QPSK -22=10975,H,3250,Auto,S2,QPSK -23=10975,V,2894,34,S2,8PSK -24=10978,H,3124,34,DVB-S,QPSK -25=10979,V,2894,34,S2,8PSK -26=10982,V,1000,Auto,S2,QPSK -27=10989,V,5632,34,DVB-S,QPSK -28=10991,H,6111,34,DVB-S,QPSK -29=10994,V,4800,34,S2,8PSK -30=11001,V,4280,34,DVB-S,QPSK -31=11032,V,6111,34,DVB-S,QPSK -32=11043,V,6666,78,DVB-S,QPSK -33=11482,H,11970,56,DVB-S,QPSK -34=11637,V,3885,34,S2,8PSK -35=11679,V,4090,34,S2,8PSK -36=11839,V,3125,Auto,DVB-S,QPSK -37=11875,V,5632,Auto,DVB-S,QPSK -38=12504,V,3400,78,DVB-S,QPSK -39=12515,H,3460,78,DVB-S,QPSK -40=12517,V,10800,Auto,S2,QPSK -41=12524,V,3600,Auto,DVB-S,QPSK -42=12533,V,6111,34,DVB-S,QPSK -43=12542,V,6111,34,DVB-S,QPSK -44=12543,V,3500,34,DVB-S,QPSK -45=12551,V,6111,34,DVB-S,QPSK -46=12584,V,6111,34,DVB-S,QPSK -47=12595,V,6650,34,DVB-S,QPSK -48=12606,V,9600,34,S2,8PSK -49=12615,V,3124,34,DVB-S,QPSK -50=12674,V,7500,56,S2,8PSK -51=12690,V,7500,56,S2,8PSK -52=12708,V,7200,23,S2,8PSK -53=12717,V,6620,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3255.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3255.ini deleted file mode 100644 index eb56de14b9..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3255.ini +++ /dev/null @@ -1,42 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=3255 -2=Intelsat 903 (34.5W) - -[DVB] -0=33 -1=3658,V,3300,34,DVB-S,QPSK -2=3676,V,3220,34,DVB-S,QPSK -3=4045,H,13500,23,S2,QPSK -4=4095,V,30000,34,S2,QPSK -5=4126,H,3680,23,DVB-S,QPSK -6=10960,V,5632,34,DVB-S,QPSK -7=10968,V,5632,34,DVB-S,QPSK -8=10977,V,5632,34,DVB-S,QPSK -9=10986,V,5632,34,DVB-S,QPSK -10=10993,V,7200,34,S2,QPSK -11=10995,H,44950,56,S2,QPSK -12=11028,V,5000,23,S2,8PSK -13=11049,V,13333,78,DVB-S,QPSK -14=11075,H,45000,34,S2,QPSK -15=11088,V,20640,56,S2,8PSK -16=11106,V,7750,23,S2,8PSK -17=11190,H,3333,Auto,DVB-S,QPSK -18=11495,H,45000,34,S2,QPSK -19=11555,H,30000,89,S2,QPSK -20=11568,V,6111,34,DVB-S,QPSK -21=11580,V,6220,56,DVB-S,QPSK -22=11589,V,6220,56,DVB-S,QPSK -23=11596,H,30000,89,S2,QPSK -24=11598,V,6220,56,DVB-S,QPSK -25=11604,V,4280,34,DVB-S,QPSK -26=11610,V,6111,34,DVB-S,QPSK -27=11620,V,4224,78,DVB-S,QPSK -28=11625,V,4224,78,DVB-S,QPSK -29=11631,V,4224,78,DVB-S,QPSK -30=11635,H,30000,89,S2,QPSK -31=11644,V,12000,34,DVB-S,QPSK -32=11675,V,26040,56,DVB-S,QPSK -33=11675,H,30000,89,S2,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3285.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3285.ini deleted file mode 100644 index c5632384c1..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3285.ini +++ /dev/null @@ -1,13 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=3285 -2=Intelsat 25 (31.5W) - -[DVB] -0=4 -1=4114,V,5300,Auto,DVB-S,QPSK -2=12284,V,2200,23,S2,QPSK -3=12341,V,2120,78,DVB-S,QPSK -4=12344,V,2120,78,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3300.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3300.ini deleted file mode 100644 index 7b1595a531..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3300.ini +++ /dev/null @@ -1,117 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=3300 -2=Hispasat 1D/1E (30.0W) - -[DVB] -0=108 -1=10730,H,27500,34,S2,8PSK -2=10730,V,30000,34,S2,8PSK -3=10890,V,27500,34,DVB-S,QPSK -4=10946,H,4000,910,S2,QPSK -5=11472,H,5632,34,DVB-S,QPSK -6=11495,H,6900,34,S2,8PSK -7=11503,H,4444,34,DVB-S,QPSK -8=11510,V,10000,34,DVB-S,QPSK -9=11510,H,4444,34,DVB-S,QPSK -10=11519,V,2222,56,DVB-S,QPSK -11=11522,V,2400,34,DVB-S,QPSK -12=11522,H,4400,34,S2,8PSK -13=11528,H,4400,34,S2,8PSK -14=11529,V,10000,910,S2,QPSK -15=11537,H,4500,34,DVB-S,QPSK -16=11538,V,4800,34,S2,8PSK -17=11544,V,4444,34,DVB-S,QPSK -18=11546,H,4444,34,DVB-S,QPSK -19=11550,V,5000,34,S2,8PSK -20=11551,H,5632,34,DVB-S,QPSK -21=11562,V,5000,34,S2,8PSK -22=11564,H,4444,34,DVB-S,QPSK -23=11568,V,5000,34,S2,8PSK -24=11570,H,4875,34,S2,8PSK -25=11573,V,7200,34,S2,8PSK -26=11579,V,2300,34,S2,8PSK -27=11581,H,3400,23,S2,8PSK -28=11586,H,3400,23,DVB-S,QPSK -29=11588,V,3400,23,S2,8PSK -30=11590,H,3400,23,S2,8PSK -31=11593,V,3400,23,S2,8PSK -32=11594,H,3400,23,S2,8PSK -33=11602,H,6650,34,DVB-S,QPSK -34=11603,V,6111,34,DVB-S,QPSK -35=11612,H,4500,34,DVB-S,QPSK -36=11613,V,4800,34,S2,8PSK -37=11619,V,4800,34,S2,8PSK -38=11626,V,4444,34,DVB-S,QPSK -39=11632,V,4800,34,S2,8PSK -40=11654,V,5632,34,DVB-S,QPSK -41=11661,V,4500,34,DVB-S,QPSK -42=11667,V,4500,34,DVB-S,QPSK -43=11672,V,2300,56,DVB-S,QPSK -44=11678,V,2000,56,DVB-S,QPSK -45=11683,V,3400,34,DVB-S,QPSK -46=11731,V,27500,34,DVB-S,QPSK -47=11771,V,27500,34,DVB-S,QPSK -48=11811,V,27500,34,DVB-S,QPSK -49=11851,V,27500,34,DVB-S,QPSK -50=11884,V,27500,23,DVB-S,QPSK -51=11891,V,30000,56,DVB-S,QPSK -52=11911,V,12000,34,S2,8PSK -53=11931,V,27500,34,DVB-S,QPSK -54=11958,V,2500,78,DVB-S,QPSK -55=11960,H,6666,34,S2,8PSK -56=11960,V,1110,Auto,DVB-S,QPSK -57=11969,H,7200,34,S2,8PSK -58=11977,V,3255,Auto,DVB-S,QPSK -59=11983,H,13333,34,DVB-S,QPSK -60=11987,V,3702,34,DVB-S,QPSK -61=12052,V,27500,34,DVB-S,QPSK -62=12052,H,27500,34,DVB-S,QPSK -63=12076,V,4000,89,S2,QPSK -64=12092,V,27500,34,DVB-S,QPSK -65=12092,H,27500,34,DVB-S,QPSK -66=12108,V,4190,23,DVB-S,QPSK -67=12130,H,27500,34,S2,8PSK -68=12132,H,27500,34,DVB-S,QPSK -69=12169,H,27500,34,S2,8PSK -70=12207,H,27500,34,S2,8PSK -71=12226,V,27500,34,DVB-S,QPSK -72=12246,H,27500,34,S2,8PSK -73=12303,V,27500,34,DVB-S,QPSK -74=12322,H,27500,34,DVB-S,QPSK -75=12360,H,27500,56,DVB-S,QPSK -76=12380,V,27500,34,DVB-S,QPSK -77=12399,H,27500,34,S2,8PSK -78=12425,V,4440,Auto,DVB-S,QPSK -79=12437,H,27500,34,S2,8PSK -80=12456,V,30000,56,DVB-S,QPSK -81=12476,H,27500,34,S2,8PSK -82=12528,H,4444,34,DVB-S,QPSK -83=12550,H,3400,34,DVB-S,QPSK -84=12564,V,4500,34,DVB-S,QPSK -85=12580,H,9600,34,S2,8PSK -86=12588,H,4444,34,DVB-S,QPSK -87=12593,H,3600,34,S2,8PSK -88=12600,H,3200,34,S2,8PSK -89=12604,H,3200,34,S2,8PSK -90=12608,H,3200,34,S2,8PSK -91=12618,H,6120,34,DVB-S,QPSK -92=12629,H,4444,34,DVB-S,QPSK -93=12634,H,4500,34,DVB-S,QPSK -94=12640,H,4500,34,DVB-S,QPSK -95=12645,H,4500,34,DVB-S,QPSK -96=12657,H,7200,34,S2,QPSK -97=12663,H,5000,34,S2,8PSK -98=12669,H,3600,34,S2,8PSK -99=12673,H,3400,34,DVB-S,QPSK -100=12678,H,3400,23,DVB-S,QPSK -101=12682,H,3600,34,S2,8PSK -102=12687,H,4444,34,DVB-S,8PSK -103=12700,V,1483,34,DVB-S,QPSK -104=12706,V,4444,34,DVB-S,QPSK -105=12706,H,20000,12,S2,QPSK -106=12712,V,7200,34,S2,8PSK -107=12724,V,4444,34,DVB-S,QPSK -108=12732,V,4500,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3325.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3325.ini deleted file mode 100644 index 380ed40725..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3325.ini +++ /dev/null @@ -1,34 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=3325 -2=Intelsat 907 (27.5W) - -[DVB] -0=25 -1=3648,V,30000,Auto,S2,QPSK -2=3718,V,12000,12,DVB-S,QPSK -3=3723,V,21092,Auto,S2,QPSK -4=3759,V,26665,Auto,S2,QPSK -5=3764,V,24450,34,DVB-S,QPSK -6=3784,H,6510,23,DVB-S,QPSK -7=3791,H,6510,23,DVB-S,QPSK -8=3795,V,7000,23,S2,8PSK -9=3800,V,2400,Auto,DVB-S,QPSK -10=3802,V,2000,23,DVB-S,QPSK -11=3831,V,5787,34,DVB-S,QPSK -12=3838,V,7235,34,DVB-S,QPSK -13=3855,H,4134,34,S2,8PSK -14=3859,H,5250,23,S2,8PSK -15=3873,H,3200,Auto,DVB-S,QPSK -16=3902,V,1807,34,DVB-S,QPSK -17=3936,V,4550,12,DVB-S,QPSK -18=3940,H,2400,Auto,S2,QPSK -19=4003,H,5632,34,DVB-S,QPSK -20=4054,V,4000,Auto,S2,QPSK -21=4110,H,1384,34,DVB-S,QPSK -22=4119,H,2893,34,DVB-S,QPSK -23=4151,H,1517,34,DVB-S,QPSK -24=11050,H,17100,78,DVB-S,QPSK -25=11495,V,44100,910,S2,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3355.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3355.ini deleted file mode 100644 index 542d9bd46b..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3355.ini +++ /dev/null @@ -1,106 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=3355 -2=Intelsat 905 (24.5W) - -[DVB] -0=97 -1=3653,V,3906,34,DVB-S,QPSK -2=3688,V,21050,34,DVB-S,QPSK -3=3829,V,6110,Auto,DVB-S,QPSK -4=4061,V,2848,23,DVB-S,QPSK -5=4068,H,2915,78,DVB-S,QPSK -6=4069,V,3800,12,DVB-S,QPSK -7=4122,V,5303,12,DVB-S,QPSK -8=4162,V,6111,34,DVB-S,QPSK -9=4168,V,3100,23,DVB-S,QPSK -10=4181,V,6111,34,DVB-S,QPSK -11=4192,H,2100,23,DVB-S,QPSK -12=10957,V,6660,34,S2,8PSK -13=10963,V,4800,34,S2,8PSK -14=10976,V,7200,34,S2,8PSK -15=10987,V,5000,35,S2,QPSK -16=10992,V,4800,34,S2,8PSK -17=10997,H,6666,56,DVB-S,QPSK -18=10998,V,4800,34,S2,8PSK -19=11004,H,3300,78,DVB-S,QPSK -20=11004,V,4800,34,S2,8PSK -21=11007,H,1600,56,S2,8PSK -22=11010,V,4800,34,S2,8PSK -23=11011,H,3100,78,DVB-S,QPSK -24=11015,H,1600,56,S2,8PSK -25=11017,H,1600,56,S2,8PSK -26=11020,V,3550,34,S2,8PSK -27=11022,H,4280,34,DVB-S,QPSK -28=11028,H,4280,34,DVB-S,QPSK -29=11041,V,3750,34,S2,8PSK -30=11042,H,1600,56,S2,8PSK -31=11045,V,3750,34,S2,8PSK -32=11046,H,3400,23,S2,8PSK -33=11049,V,6620,34,DVB-S,QPSK -34=11050,H,3200,56,S2,8PSK -35=11054,H,3700,34,S2,8PSK -36=11060,H,3400,23,S2,8PSK -37=11060,V,7200,34,S2,8PSK -38=11068,H,3111,34,DVB-S,QPSK -39=11072,V,4444,34,DVB-S,QPSK -40=11078,H,3400,23,S2,8PSK -41=11079,V,6111,34,DVB-S,QPSK -42=11082,H,3400,23,S2,8PSK -43=11084,V,4444,34,DVB-S,QPSK -44=11086,H,1600,56,S2,8PSK -45=11090,V,4444,34,DVB-S,QPSK -46=11090,H,4444,34,DVB-S,QPSK -47=11095,H,4800,34,S2,8PSK -48=11096,V,4444,34,DVB-S,QPSK -49=11103,V,3400,34,S2,8PSK -50=11108,V,3400,23,S2,8PSK -51=11108,H,4445,34,DVB-S,QPSK -52=11121,H,3400,23,S2,8PSK -53=11122,V,7200,34,S2,8PSK -54=11126,H,3400,23,S2,8PSK -55=11130,H,3400,23,S2,8PSK -56=11132,V,14115,12,DVB-S,QPSK -57=11134,H,3400,23,S2,8PSK -58=11139,H,3400,23,S2,8PSK -59=11144,H,3400,23,S2,8PSK -60=11148,H,3400,23,S2,8PSK -61=11148,V,3200,34,DVB-S,QPSK -62=11152,H,3400,23,S2,8PSK -63=11157,V,3400,23,S2,8PSK -64=11157,H,3400,23,S2,8PSK -65=11161,V,3400,23,S2,8PSK -66=11162,H,3400,23,S2,8PSK -67=11165,V,4834,56,S2,QPSK -68=11166,H,3400,23,S2,8PSK -69=11171,H,3516,34,S2,8PSK -70=11177,V,6666,78,DVB-S,QPSK -71=11177,H,7200,34,S2,8PSK -72=11182,H,3400,23,S2,8PSK -73=11187,H,1600,56,S2,8PSK -74=11188,V,3400,23,S2,8PSK -75=11193,V,4666,34,S2,QPSK -76=11455,V,3450,34,DVB-S,QPSK -77=11463,V,3583,89,S2,QPSK -78=11471,V,3400,23,S2,8PSK -79=11476,V,3400,23,S2,8PSK -80=11477,H,27500,34,DVB-S,QPSK -81=11488,V,11640,56,S2,8PSK -82=11509,V,3750,34,DVB-S,QPSK -83=11513,H,27500,34,DVB-S,QPSK -84=11518,V,7100,12,S2,8PSK -85=11527,V,2600,45,S2,QPSK -86=11530,V,2000,34,DVB-S,QPSK -87=11580,H,7120,34,S2,8PSK -88=11589,H,7120,34,S2,8PSK -89=11598,H,7120,34,S2,8PSK -90=11608,H,7120,34,S2,8PSK -91=11620,V,3600,34,S2,8PSK -92=11626,H,13500,78,DVB-S,QPSK -93=11636,H,3500,23,S2,8PSK -94=11638,V,21000,56,S2,8PSK -95=11642,H,3400,23,S2,8PSK -96=11646,H,1600,56,S2,8PSK -97=11650,H,3200,23,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3380.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3380.ini deleted file mode 100644 index 39d26fdbb6..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3380.ini +++ /dev/null @@ -1,64 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=3380 -2=SES 4 (22.0W) - -[DVB] -0=55 -1=3631,V,7200,34,S2,8PSK -2=3631,H,7200,Auto,S2,QPSK -3=3713,V,3254,23,DVB-S,QPSK -4=3724,H,30000,23,S2,8PSK -5=3726,H,1000,34,S2,8PSK -6=3761,V,22650,23,DVB-S,QPSK -7=3825,H,8950,56,DVB-S,QPSK -8=3966,H,2221,23,DVB-S,QPSK -9=3970,H,3332,34,DVB-S,QPSK -10=3976,H,1844,34,DVB-S,QPSK -11=4016,H,3662,23,DVB-S,QPSK -12=4033,V,3689,34,DVB-S,QPSK -13=4039,V,3906,34,DVB-S,QPSK -14=4043,V,3560,23,S2,8PSK -15=4048,V,3333,23,DVB-S,QPSK -16=4053,V,3333,23,DVB-S,QPSK -17=4056,V,2441,23,DVB-S,QPSK -18=4061,V,3333,Auto,S2,8PSK -19=4065,H,3590,34,S2,QPSK -20=4071,V,3502,34,DVB-S,QPSK -21=4097,V,23500,34,S2,QPSK -22=4115,H,3680,23,DVB-S,QPSK -23=4141,H,1925,45,S2,QPSK -24=10986,V,30000,34,DVB-S,QPSK -25=11108,H,15000,56,S2,8PSK -26=11128,H,14300,35,S2,8PSK -27=11540,H,12238,45,S2,QPSK -28=11551,V,40000,Auto,S2,8PSK -29=11552,H,3255,12,DVB-S,QPSK -30=11563,H,6111,34,DVB-S,QPSK -31=11574,H,7500,56,S2,8PSK -32=11667,H,7500,910,S2,8PSK -33=11671,V,30000,34,DVB-S,QPSK -34=11674,H,3500,34,DVB-S,QPSK -35=11684,H,8570,910,S2,8PSK -36=11693,H,7500,910,S2,8PSK -37=11777,H,4000,34,DVB-S,QPSK -38=11861,H,35000,34,DVB-S,QPSK -39=11921,H,35000,34,DVB-S,QPSK -40=12037,H,4610,34,S2,8PSK -41=12076,H,4610,34,S2,8PSK -42=12082,H,4610,34,S2,8PSK -43=12089,H,4610,34,S2,8PSK -44=12530,V,30000,34,DVB-S,QPSK -45=12570,V,30000,34,DVB-S,QPSK -46=12610,V,30000,34,DVB-S,QPSK -47=12635,H,4610,34,S2,8PSK -48=12644,H,5136,34,DVB-S,QPSK -49=12650,V,30000,34,DVB-S,QPSK -50=12653,H,3055,34,DVB-S,QPSK -51=12658,H,3055,34,DVB-S,QPSK -52=12673,H,20250,34,DVB-S,QPSK -53=12690,V,30000,34,DVB-S,QPSK -54=12717,H,1500,34,S2,8PSK -55=12730,V,30000,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3400.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3400.ini deleted file mode 100644 index c23fe0b194..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3400.ini +++ /dev/null @@ -1,18 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=3400 -2=NSS 7 (20.0W) - -[DVB] -0=9 -1=3969,V,3410,Auto,DVB-S,QPSK -2=3973,V,3410,Auto,DVB-S,QPSK -3=3977,V,3410,Auto,DVB-S,QPSK -4=4129,V,15405,12,S2,QPSK -5=11166,H,7500,34,S2,8PSK -6=11175,H,7500,34,S2,8PSK -7=11184,H,7500,34,S2,8PSK -8=11192,H,7500,34,S2,8PSK -9=11585,H,2200,12,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3420.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3420.ini deleted file mode 100644 index 2470d71f95..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3420.ini +++ /dev/null @@ -1,16 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=3420 -2=Intelsat 901 (18.0W) - -[DVB] -0=7 -1=3631,V,1600,56,S2,8PSK -2=3887,H,26500,Auto,DVB-S,QPSK -3=3961,H,2960,78,DVB-S,QPSK -4=4010,V,6730,34,S2,QPSK -5=4018,V,4444,23,DVB-S,QPSK -6=4027,V,9037,56,S2,8PSK -7=11033,V,2530,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3450.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3450.ini deleted file mode 100644 index cae2fe8b9d..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3450.ini +++ /dev/null @@ -1,92 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=3450 -2=Telstar 12 (15.0W) - -[DVB] -0=83 -1=10997,V,2894,34,DVB-S,QPSK -2=11005,H,8880,34,DVB-S,QPSK -3=11012,V,3400,34,DVB-S,QPSK -4=11016,V,3333,34,DVB-S,QPSK -5=11033,V,2130,34,DVB-S,QPSK -6=11063,V,7200,34,S2,8PSK -7=11079,H,4610,34,S2,8PSK -8=11088,H,7500,34,S2,8PSK -9=11123,H,21600,34,DVB-S,QPSK -10=11123,V,21540,34,S2,8PSK -11=11150,H,21600,34,DVB-S,QPSK -12=11150,V,19279,34,DVB-S,QPSK -13=11457,V,3255,34,DVB-S,QPSK -14=11472,H,3310,34,DVB-S,QPSK -15=11477,H,4500,34,DVB-S,QPSK -16=11487,H,7200,34,S2,QPSK -17=11497,H,7200,34,S2,8PSK -18=11498,V,6111,34,DVB-S,QPSK -19=11524,H,14400,34,S2,8PSK -20=11534,H,3200,78,DVB-S,QPSK -21=11539,H,4610,34,DVB-S,QPSK -22=11545,V,4088,34,DVB-S,QPSK -23=11546,H,4610,34,S2,8PSK -24=11564,H,7500,34,S2,8PSK -25=11591,V,2893,34,DVB-S,QPSK -26=11597,V,3200,78,DVB-S,QPSK -27=11604,V,1810,78,DVB-S,QPSK -28=11604,H,5886,23,DVB-S,QPSK -29=11611,H,4054,34,S2,8PSK -30=11618,H,7000,56,S2,8PSK -31=11625,V,3979,34,DVB-S,QPSK -32=11627,H,7000,34,S2,8PSK -33=11642,H,4610,34,S2,8PSK -34=11644,V,5632,34,DVB-S,QPSK -35=11651,V,5632,34,DVB-S,QPSK -36=11651,H,4610,34,S2,8PSK -37=11662,V,6111,78,DVB-S,QPSK -38=11667,H,3255,78,DVB-S,QPSK -39=11671,V,6666,78,DVB-S,QPSK -40=11690,V,2200,34,DVB-S,QPSK -41=11691,H,6111,34,DVB-S,QPSK -42=11709,V,3198,78,DVB-S,QPSK -43=11710,H,6750,Auto,DVB-S,QPSK -44=11720,H,6600,Auto,DVB-S,QPSK -45=11726,V,3200,Auto,DVB-S,QPSK -46=11737,H,6600,Auto,DVB-S,QPSK -47=11755,V,5500,Auto,DVB-S,QPSK -48=11771,V,4800,23,S2,8PSK -49=11860,H,45000,Auto,S2,8PSK -50=11920,H,45000,Auto,S2,8PSK -51=11964,H,14714,23,DVB-S,QPSK -52=11993,H,6666,78,DVB-S,QPSK -53=12004,H,6111,Auto,DVB-S,QPSK -54=12044,H,45000,Auto,S2,8PSK -55=12087,V,3200,34,DVB-S,QPSK -56=12094,V,2000,34,DVB-S,QPSK -57=12100,V,3200,78,DVB-S,QPSK -58=12107,V,3330,Auto,DVB-S,QPSK -59=12123,V,3480,78,DVB-S,QPSK -60=12126,V,2000,56,DVB-S,QPSK -61=12170,H,45000,56,S2,QPSK -62=12509,H,3198,78,DVB-S,QPSK -63=12511,V,7552,34,DVB-S,QPSK -64=12513,H,3400,34,S2,8PSK -65=12518,H,3198,78,DVB-S,QPSK -66=12521,H,3198,78,DVB-S,QPSK -67=12570,V,2900,34,S2,8PSK -68=12570,H,2900,34,S2,8PSK -69=12573,V,2900,34,S2,8PSK -70=12584,H,3976,34,DVB-S,QPSK -71=12589,H,1925,78,DVB-S,QPSK -72=12608,H,19279,23,DVB-S,QPSK -73=12620,V,3012,23,DVB-S,QPSK -74=12645,H,3255,34,DVB-S,QPSK -75=12658,H,3255,78,DVB-S,QPSK -76=12662,V,8000,34,DVB-S,QPSK -77=12666,H,3255,78,DVB-S,QPSK -78=12674,H,5632,34,DVB-S,QPSK -79=12676,V,14170,34,S2,8PSK -80=12696,H,5632,34,DVB-S,QPSK -81=12705,H,5632,34,DVB-S,QPSK -82=12710,V,6666,78,DVB-S,QPSK -83=12740,V,5632,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3460.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3460.ini deleted file mode 100644 index 46a7c1b624..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3460.ini +++ /dev/null @@ -1,11 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=3460 -2=Express A4 (14.0W) - -[DVB] -0=2 -1=3975,V,30000,34,S2,QPSK -2=4025,V,30000,34,S2,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3475.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3475.ini deleted file mode 100644 index e7a7afc1d4..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3475.ini +++ /dev/null @@ -1,116 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=3475 -2=Eutelsat 12 West A (12.5W) - -[DVB] -0=107 -1=10958,H,4940,34,S2,8PSK -2=10965,H,4444,78,DVB-S,QPSK -3=10971,H,4444,78,DVB-S,QPSK -4=10977,H,4444,78,DVB-S,QPSK -5=10983,H,4444,78,DVB-S,QPSK -6=10989,H,4444,78,DVB-S,QPSK -7=10995,H,4940,34,S2,8PSK -8=11001,H,4444,78,DVB-S,QPSK -9=11007,H,4444,78,DVB-S,QPSK -10=11013,H,4900,34,S2,8PSK -11=11019,H,4444,78,DVB-S,QPSK -12=11022,V,6666,78,DVB-S,QPSK -13=11025,H,4444,78,DVB-S,QPSK -14=11040,H,3270,56,DVB-S,QPSK -15=11044,H,3270,56,DVB-S,QPSK -16=11048,H,3270,56,DVB-S,8PSK -17=11052,H,3270,56,DVB-S,QPSK -18=11058,H,3270,56,DVB-S,QPSK -19=11062,H,3270,56,DVB-S,QPSK -20=11064,V,7500,910,S2,8PSK -21=11068,H,3333,34,DVB-S,QPSK -22=11070,V,3680,56,DVB-S,QPSK -23=11072,H,4500,34,DVB-S,QPSK -24=11075,V,3630,56,S2,8PSK -25=11079,V,3270,56,DVB-S,QPSK -26=11081,H,6511,34,DVB-S,QPSK -27=11083,V,3270,56,DVB-S,QPSK -28=11087,H,3400,34,S2,8PSK -29=11088,V,3400,56,DVB-S,QPSK -30=11091,H,3333,34,DVB-S,QPSK -31=11093,V,3270,56,DVB-S,QPSK -32=11097,V,3630,23,S2,8PSK -33=11103,V,3630,23,S2,8PSK -34=11108,V,3250,56,DVB-S,QPSK -35=11125,V,7100,34,DVB-S,QPSK -36=11126,H,4800,34,S2,8PSK -37=11135,V,7100,34,DVB-S,QPSK -38=11142,H,4208,56,S2,8PSK -39=11149,H,4208,56,S2,8PSK -40=11153,H,3204,34,DVB-S,QPSK -41=11160,H,3270,56,DVB-S,QPSK -42=11164,H,3270,56,DVB-S,QPSK -43=11171,H,7200,34,S2,8PSK -44=11181,H,7390,34,S2,8PSK -45=11188,H,3600,35,S2,8PSK -46=11192,H,3600,35,S2,8PSK -47=11329,H,3214,56,DVB-S,8PSK -48=11334,H,3214,56,DVB-S,QPSK -49=11340,H,2136,34,DVB-S,QPSK -50=11350,H,6700,34,S2,8PSK -51=11359,H,6700,34,S2,8PSK -52=11371,H,3400,34,DVB-S,QPSK -53=11375,H,3400,34,DVB-S,QPSK -54=11380,H,3215,34,DVB-S,QPSK -55=11393,H,12750,78,DVB-S,QPSK -56=11403,H,6111,34,DVB-S,QPSK -57=11408,V,27500,34,DVB-S,QPSK -58=11414,H,7120,34,S2,8PSK -59=11424,H,7120,34,S2,8PSK -60=11431,H,6700,34,S2,8PSK -61=11442,H,7120,34,S2,8PSK -62=11597,H,3884,Auto,DVB-S,QPSK -63=11622,H,3255,Auto,DVB-S,QPSK -64=11643,H,2398,Auto,DVB-S,QPSK -65=11645,V,4790,Auto,DVB-S,QPSK -66=11647,H,3992,Auto,DVB-S,QPSK -67=11651,V,3688,Auto,DVB-S,QPSK -68=11655,H,6666,56,DVB-S,QPSK -69=11664,H,6111,34,DVB-S,QPSK -70=11690,H,5700,34,DVB-S,QPSK -71=12507,V,3125,34,DVB-S,QPSK -72=12514,H,3600,34,S2,8PSK -73=12520,H,3400,34,DVB-S,QPSK -74=12521,V,2400,34,DVB-S,QPSK -75=12532,V,7360,56,S2,8PSK -76=12540,V,3111,78,DVB-S,QPSK -77=12546,V,6111,34,DVB-S,QPSK -78=12555,V,4104,23,S2,QPSK -79=12574,V,3400,34,DVB-S,QPSK -80=12577,H,2222,56,S2,QPSK -81=12583,H,2894,34,DVB-S,QPSK -82=12590,H,3600,23,DVB-S,QPSK -83=12595,H,1875,56,S2,8PSK -84=12606,H,2500,56,S2,8PSK -85=12606,V,3600,34,S2,8PSK -86=12614,H,8570,34,S2,8PSK -87=12614,V,8570,34,S2,8PSK -88=12634,V,7200,34,S2,8PSK -89=12638,H,14400,34,S2,8PSK -90=12648,V,9874,34,S2,8PSK -91=12650,H,3600,34,S2,8PSK -92=12661,V,4444,34,DVB-S,QPSK -93=12668,H,3213,34,DVB-S,QPSK -94=12668,V,3270,56,DVB-S,QPSK -95=12672,H,2141,34,DVB-S,QPSK -96=12672,V,3270,56,DVB-S,QPSK -97=12676,H,3178,34,DVB-S,QPSK -98=12679,V,7500,34,S2,8PSK -99=12681,H,3178,34,DVB-S,QPSK -100=12694,V,1580,56,S2,8PSK -101=12696,V,1580,56,S2,8PSK -102=12699,V,1580,56,S2,8PSK -103=12717,V,3333,78,DVB-S,QPSK -104=12718,H,36510,56,S2,8PSK -105=12723,V,6111,34,DVB-S,QPSK -106=12730,V,3254,34,DVB-S,QPSK -107=12739,V,7500,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3490.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3490.ini deleted file mode 100644 index 7d57379795..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3490.ini +++ /dev/null @@ -1,39 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=3490 -2=Express AM44 (11.0W) - -[DVB] -0=30 -1=3662,V,10808,12,DVB-S,QPSK -2=4092,V,2224,35,S2,8PSK -3=10957,V,2300,56,S2,8PSK -4=10983,V,12110,Auto,DVB-S,QPSK -5=11059,H,3124,34,DVB-S,QPSK -6=11095,H,3000,34,DVB-S,QPSK -7=11144,H,3214,34,S2,8PSK -8=11154,H,7200,34,S2,8PSK -9=11174,H,9874,34,S2,8PSK -10=11191,H,7200,34,S2,8PSK -11=11479,H,7500,34,S2,8PSK -12=11483,V,3470,78,DVB-S,QPSK -13=11492,H,6428,34,DVB-S,QPSK -14=11499,H,3214,34,DVB-S,QPSK -15=11505,H,2222,34,S2,8PSK -16=11522,H,1185,23,DVB-S,QPSK -17=11523,H,1280,56,S2,8PSK -18=11533,H,3333,34,DVB-S,QPSK -19=11542,H,3600,34,S2,QPSK -20=11542,V,2170,56,DVB-S,QPSK -21=11566,H,8000,34,S2,8PSK -22=11581,H,2050,34,DVB-S,QPSK -23=11599,H,3600,56,DVB-S,QPSK -24=11603,H,3333,34,DVB-S,QPSK -25=11608,H,5000,34,DVB-S,QPSK -26=11612,H,3333,34,DVB-S,QPSK -27=11618,H,3333,34,DVB-S,QPSK -28=11628,H,6422,56,DVB-S,QPSK -29=11642,H,3333,34,DVB-S,QPSK -30=11669,H,5000,34,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3520.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3520.ini deleted file mode 100644 index 6274b967e3..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3520.ini +++ /dev/null @@ -1,80 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=3520 -2=Eutelsat 8 West A (8.0W) - -[DVB] -0=71 -1=11471,V,27500,56,DVB-S,QPSK -2=11512,V,27500,56,DVB-S,QPSK -3=11554,V,27500,34,DVB-S,QPSK -4=11595,V,27500,34,DVB-S,QPSK -5=11637,V,27500,34,DVB-S,QPSK -6=11678,H,30000,Auto,S2,QPSK -7=11678,V,27500,34,DVB-S,QPSK -8=12509,V,4150,34,S2,QPSK -9=12509,H,5000,34,S2,8PSK -10=12513,V,4150,34,S2,QPSK -11=12515,H,2500,Auto,S2,8PSK -12=12518,V,4150,34,S2,QPSK -13=12523,V,4150,34,S2,QPSK -14=12524,H,9600,34,S2,8PSK -15=12527,V,4150,34,S2,QPSK -16=12531,V,3488,56,S2,8PSK -17=12536,V,4150,34,S2,QPSK -18=12549,H,4800,34,S2,8PSK -19=12550,V,2267,56,S2,8PSK -20=12554,H,3600,34,S2,8PSK -21=12554,V,2267,56,S2,8PSK -22=12558,V,2267,56,S2,8PSK -23=12558,H,3600,34,S2,8PSK -24=12561,V,2267,56,S2,8PSK -25=12564,V,2267,56,S2,8PSK -26=12567,V,2267,56,S2,8PSK -27=12570,V,2267,56,S2,8PSK -28=12572,H,7200,34,S2,8PSK -29=12573,V,2267,56,S2,8PSK -30=12578,V,2267,56,S2,8PSK -31=12580,H,3200,56,S2,8PSK -32=12582,V,2744,56,S2,8PSK -33=12585,H,3124,34,DVB-S,QPSK -34=12589,H,9874,34,S2,8PSK -35=12592,V,4800,34,S2,QPSK -36=12599,V,3333,78,DVB-S,QPSK -37=12601,H,6975,56,S2,8PSK -38=12606,V,1300,910,S2,8PSK -39=12609,V,2400,56,S2,8PSK -40=12613,H,3056,34,S2,QPSK -41=12614,V,2400,56,S2,8PSK -42=12619,V,2400,56,S2,8PSK -43=12624,H,7200,34,S2,8PSK -44=12627,V,2222,12,DVB-S,QPSK -45=12632,V,2500,56,S2,8PSK -46=12633,H,7200,34,S2,8PSK -47=12638,H,3055,34,DVB-S,QPSK -48=12640,V,5000,34,S2,8PSK -49=12646,V,5000,34,S2,8PSK -50=12652,V,5000,34,S2,8PSK -51=12656,H,7200,34,S2,8PSK -52=12658,V,5000,56,S2,8PSK -53=12666,H,5632,34,DVB-S,QPSK -54=12673,H,2778,34,DVB-S,QPSK -55=12676,H,2778,34,DVB-S,QPSK -56=12676,V,5632,34,DVB-S,QPSK -57=12684,H,5632,34,DVB-S,QPSK -58=12686,V,6111,34,DVB-S,QPSK -59=12695,V,6111,34,DVB-S,QPSK -60=12703,V,5632,34,DVB-S,QPSK -61=12705,H,4800,34,S2,8PSK -62=12715,H,9600,34,S2,8PSK -63=12718,V,7200,34,S2,8PSK -64=12725,V,2267,56,S2,8PSK -65=12727,H,9600,34,S2,8PSK -66=12735,V,3600,34,S2,8PSK -67=12739,H,9600,34,S2,8PSK -68=12741,V,3600,34,S2,8PSK -69=12744,V,3270,56,S2,8PSK -70=12747,H,4800,34,S2,8PSK -71=12747,V,3600,34,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3527.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3527.ini deleted file mode 100644 index b5aa217800..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3527.ini +++ /dev/null @@ -1,94 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=3527 -2=Eutelsat 7 West A/Eutelsat 8 West C/Nilesat 102/201 (7.3W) - -[DVB] -0=85 -1=10719,V,22000,34,S2,QPSK -2=10727,H,27500,56,DVB-S,QPSK -3=10758,V,27500,56,DVB-S,QPSK -4=10777,H,27500,56,DVB-S,QPSK -5=10796,V,27500,56,DVB-S,QPSK -6=10815,H,27500,56,DVB-S,QPSK -7=10834,V,27500,23,S2,8PSK -8=10853,H,27500,23,S2,8PSK -9=10873,V,27500,56,DVB-S,QPSK -10=10892,H,27500,34,DVB-S,QPSK -11=10922,V,27500,56,DVB-S,QPSK -12=10930,H,27500,56,DVB-S,QPSK -13=10971,H,27500,34,DVB-S,QPSK -14=10992,V,27500,34,DVB-S,QPSK -15=11006,H,17000,23,S2,8PSK -16=11034,V,27500,34,DVB-S,QPSK -17=11054,H,27500,34,DVB-S,QPSK -18=11075,V,27500,34,DVB-S,QPSK -19=11096,H,27500,34,DVB-S,QPSK -20=11117,V,27500,34,DVB-S,QPSK -21=11137,H,27500,34,DVB-S,QPSK -22=11158,V,27500,56,DVB-S,QPSK -23=11179,H,27500,34,DVB-S,QPSK -24=11219,H,27500,56,DVB-S,QPSK -25=11227,V,27500,56,DVB-S,QPSK -26=11258,H,27500,56,DVB-S,QPSK -27=11277,V,27500,23,S2,8PSK -28=11296,H,27500,34,DVB-S,QPSK -29=11315,V,27500,56,DVB-S,QPSK -30=11334,H,27500,56,DVB-S,QPSK -31=11354,V,27500,56,DVB-S,QPSK -32=11373,H,27500,23,S2,8PSK -33=11392,V,27500,56,DVB-S,QPSK -34=11411,H,27500,23,S2,8PSK -35=11430,V,27500,56,DVB-S,QPSK -36=11449,H,27500,56,DVB-S,QPSK -37=11476,V,27500,34,DVB-S,8PSK -38=11488,H,27500,56,DVB-S,QPSK -39=11526,H,27500,56,DVB-S,QPSK -40=11559,V,27500,56,S2,8PSK -41=11564,H,27500,56,DVB-S,QPSK -42=11595,V,27500,34,DVB-S,QPSK -43=11603,H,27500,56,DVB-S,QPSK -44=11641,H,27500,56,DVB-S,QPSK -45=11661,V,27500,23,DVB-S,QPSK -46=11680,H,27500,56,DVB-S,QPSK -47=11727,H,27500,56,S2,8PSK -48=11747,V,27500,34,DVB-S,QPSK -49=11766,H,27500,56,DVB-S,QPSK -50=11785,V,27500,34,DVB-S,QPSK -51=11804,H,27500,56,S2,QPSK -52=11823,V,27500,56,DVB-S,QPSK -53=11843,H,27500,56,DVB-S,QPSK -54=11862,V,27500,34,S2,8PSK -55=11881,H,27500,56,S2,QPSK -56=11900,V,27500,56,DVB-S,QPSK -57=11919,H,27500,34,S2,8PSK -58=11938,V,27500,34,DVB-S,QPSK -59=11958,H,27500,56,DVB-S,QPSK -60=11977,V,27500,56,DVB-S,QPSK -61=11996,H,27500,23,S2,8PSK -62=12015,V,27500,56,DVB-S,QPSK -63=12034,H,27500,56,DVB-S,QPSK -64=12054,V,27500,56,DVB-S,QPSK -65=12073,H,27500,23,S2,8PSK -66=12092,V,27500,56,S2,QPSK -67=12111,H,27500,34,DVB-S,QPSK -68=12130,V,27500,56,DVB-S,QPSK -69=12169,V,27500,56,DVB-S,QPSK -70=12188,H,27500,56,S2,QPSK -71=12207,V,27500,34,DVB-S,QPSK -72=12226,H,27500,34,DVB-S,QPSK -73=12245,V,27500,23,S2,8PSK -74=12265,H,27500,23,S2,8PSK -75=12284,V,27500,34,DVB-S,QPSK -76=12303,H,27500,56,DVB-S,QPSK -77=12322,V,27500,23,S2,8PSK -78=12341,H,27500,56,DVB-S,QPSK -79=12360,V,27500,34,DVB-S,QPSK -80=12380,H,27500,56,DVB-S,QPSK -81=12399,V,27500,56,DVB-S,QPSK -82=12418,H,27500,34,DVB-S,QPSK -83=12437,V,27500,56,DVB-S,QPSK -84=12467,H,27500,23,S2,8PSK -85=12476,V,27500,23,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3550.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3550.ini deleted file mode 100644 index 5ae30b7787..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3550.ini +++ /dev/null @@ -1,69 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=3550 -2=Eutelsat 5 West A (5.0W) - -[DVB] -0=60 -1=3630,V,3255,23,DVB-S,QPSK -2=3633,V,2018,78,DVB-S,QPSK -3=3646,V,2170,34,DVB-S,QPSK -4=3656,V,2917,35,S2,8PSK -5=3712,H,2480,78,DVB-S,QPSK -6=3717,H,2222,56,S2,8PSK -7=3719,H,1286,23,S2,8PSK -8=3721,H,1837,34,S2,8PSK -9=3727,V,29950,78,DVB-S,QPSK -10=3743,H,2785,56,DVB-S,QPSK -11=4015,V,3591,34,S2,8PSK -12=4021,V,1245,34,S2,8PSK -13=4022,V,1200,34,S2,8PSK -14=4030,V,4593,35,S2,8PSK -15=4077,H,3100,56,S2,QPSK -16=4110,H,2141,56,S2,QPSK -17=4114,H,2143,56,DVB-S,QPSK -18=4123,V,8319,34,DVB-S,QPSK -19=4137,H,2510,78,DVB-S,QPSK -20=4138,V,4434,78,DVB-S,QPSK -21=4154,H,2289,78,DVB-S,QPSK -22=4154,V,28485,56,S2,8PSK -23=4156,H,1793,78,DVB-S,QPSK -24=4159,H,1944,78,DVB-S,QPSK -25=4162,H,1500,34,DVB-S,QPSK -26=10972,V,29950,78,DVB-S,QPSK -27=11054,V,29950,78,DVB-S,QPSK -28=11059,H,23700,34,DVB-S,QPSK -29=11096,V,29950,34,S2,8PSK -30=11108,H,3125,34,DVB-S,QPSK -31=11168,H,6111,34,DVB-S,QPSK -32=11177,H,6111,34,DVB-S,QPSK -33=11184,H,5632,34,DVB-S,QPSK -34=11195,H,3333,34,DVB-S,QPSK -35=11456,H,2400,34,S2,QPSK -36=11460,H,1704,34,S2,8PSK -37=11469,H,3100,78,DVB-S,QPSK -38=11471,V,29950,34,S2,8PSK -39=11472,H,2000,34,S2,8PSK -40=11480,H,3215,34,S2,8PSK -41=11496,H,6111,34,DVB-S,QPSK -42=11505,H,5632,34,DVB-S,QPSK -43=11512,V,29950,78,DVB-S,QPSK -44=11513,H,5632,34,DVB-S,QPSK -45=11522,H,6111,34,DVB-S,QPSK -46=11538,H,8681,78,DVB-S,QPSK -47=11554,V,29950,78,DVB-S,QPSK -48=11591,V,20000,23,DVB-S,QPSK -49=11592,H,25000,12,S2,QPSK -50=11604,H,3333,34,DVB-S,QPSK -51=11608,H,3333,34,DVB-S,QPSK -52=11609,V,5968,12,DVB-S,QPSK -53=11634,H,29950,34,S2,8PSK -54=11679,V,29950,78,DVB-S,QPSK -55=12522,V,29950,23,S2,8PSK -56=12543,H,27500,34,DVB-S,QPSK -57=12564,V,29950,78,DVB-S,QPSK -58=12648,V,29500,89,S2,8PSK -59=12654,H,5500,23,S2,8PSK -60=12690,V,30000,35,S2,8PSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3560.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3560.ini deleted file mode 100644 index bf3006b2e4..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3560.ini +++ /dev/null @@ -1,73 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=3560 -2=Amos 2/3 (4.0W) - -[DVB] -0=64 -1=10722,V,30000,23,S2,8PSK -2=10722,H,27500,34,DVB-S,QPSK -3=10758,V,30000,34,S2,8PSK -4=10759,H,30000,34,DVB-S,QPSK -5=10806,V,30000,34,S2,8PSK -6=10806,H,30000,34,DVB-S,QPSK -7=10842,V,30000,34,S2,8PSK -8=10876,H,7500,23,S2,8PSK -9=10888,H,11570,34,DVB-S,QPSK -10=10889,V,30000,34,S2,8PSK -11=10890,V,27500,56,DVB-S,QPSK -12=10921,H,7500,23,S2,8PSK -13=10925,V,27500,56,DVB-S,QPSK -14=10926,V,30000,34,S2,8PSK -15=10935,H,13750,56,DVB-S,QPSK -16=10959,H,3700,34,DVB-S,QPSK -17=10972,V,30000,23,S2,8PSK -18=11006,H,3700,34,DVB-S,QPSK -19=11008,V,30000,23,S2,8PSK -20=11015,H,2295,34,DVB-S,QPSK -21=11130,H,10000,23,S2,8PSK -22=11140,H,3200,Auto,DVB-S,QPSK -23=11166,H,3333,34,DVB-S,QPSK -24=11180,H,5650,34,DVB-S,QPSK -25=11190,H,3400,34,DVB-S,QPSK -26=11222,V,27500,56,DVB-S,QPSK -27=11222,H,30000,56,S2,QPSK -28=11258,V,27500,56,DVB-S,QPSK -29=11291,H,2800,34,DVB-S,QPSK -30=11304,H,13330,34,DVB-S,QPSK -31=11315,H,5000,34,S2,8PSK -32=11332,H,12500,78,DVB-S,QPSK -33=11389,H,27500,34,DVB-S,QPSK -34=11411,H,3330,34,DVB-S,QPSK -35=11432,H,2500,34,DVB-S,QPSK -36=11435,H,2600,34,DVB-S,QPSK -37=11474,V,27500,34,DVB-S,QPSK -38=11510,V,30000,23,S2,8PSK -39=11541,V,2963,34,DVB-S,QPSK -40=11542,H,3700,34,DVB-S,QPSK -41=11544,V,1480,56,DVB-S,QPSK -42=11546,V,2600,56,S2,8PSK -43=11547,H,3333,34,DVB-S,QPSK -44=11549,V,1240,34,DVB-S,QPSK -45=11551,H,3333,56,DVB-S,QPSK -46=11552,V,1222,78,DVB-S,QPSK -47=11555,V,1240,78,DVB-S,QPSK -48=11565,V,3000,34,DVB-S,QPSK -49=11578,V,1222,78,DVB-S,QPSK -50=11580,V,1110,78,DVB-S,QPSK -51=11601,H,8888,34,DVB-S,QPSK -52=11610,H,3600,34,DVB-S,QPSK -53=11624,H,2604,56,DVB-S,QPSK -54=11625,V,3000,34,DVB-S,QPSK -55=11627,V,6295,34,S2,QPSK -56=11635,H,6333,34,DVB-S,QPSK -57=11635,V,4410,56,DVB-S,QPSK -58=11639,V,2000,56,DVB-S,QPSK -59=11647,V,8518,34,DVB-S,QPSK -60=11658,H,3333,34,DVB-S,QPSK -61=11658,V,8520,23,DVB-S,QPSK -62=11671,V,1480,34,DVB-S,QPSK -63=11684,H,3350,78,DVB-S,QPSK -64=11687,V,5185,34,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3592.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3592.ini deleted file mode 100644 index b1118d4fbb..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3592.ini +++ /dev/null @@ -1,110 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=3592 -2=Thor 5/6/7/Intelsat 10-02 (0.8W) - -[DVB] -0=101 -1=3722,V,18000,34,S2,8PSK -2=3977,H,17777,34,DVB-S,QPSK -3=3985,V,9764,23,DVB-S,QPSK -4=4025,V,7324,23,DVB-S,QPSK -5=4032,H,1000,56,S2,8PSK -6=4175,V,28000,34,DVB-S,QPSK -7=10716,H,24500,78,DVB-S,QPSK -8=10747,V,25000,34,S2,8PSK -9=10747,H,25000,34,S2,8PSK -10=10778,V,25000,34,S2,8PSK -11=10778,H,24500,78,DVB-S,QPSK -12=10809,V,24500,78,DVB-S,QPSK -13=10809,H,24500,78,DVB-S,QPSK -14=10841,H,25000,34,S2,8PSK -15=10872,V,25000,34,S2,8PSK -16=10872,H,25000,34,S2,8PSK -17=10903,V,25000,34,S2,8PSK -18=10903,H,25000,34,S2,8PSK -19=10934,V,24500,78,DVB-S,QPSK -20=10934,H,25000,34,S2,8PSK -21=10962,H,1550,78,DVB-S,QPSK -22=11038,H,2200,56,S2,8PSK -23=11048,H,3100,34,DVB-S,QPSK -24=11063,H,1500,56,S2,8PSK -25=11080,H,1100,34,DVB-S,QPSK -26=11104,H,3360,23,S2,8PSK -27=11216,V,24500,78,DVB-S,QPSK -28=11229,H,24500,78,DVB-S,QPSK -29=11247,V,24500,78,DVB-S,QPSK -30=11261,H,25000,34,S2,8PSK -31=11278,V,24500,78,DVB-S,QPSK -32=11293,H,25000,34,S2,8PSK -33=11309,V,24500,78,DVB-S,QPSK -34=11325,H,24500,78,DVB-S,QPSK -35=11341,V,25000,34,S2,8PSK -36=11357,H,24500,78,DVB-S,QPSK -37=11372,V,24500,78,DVB-S,QPSK -38=11389,H,24500,78,DVB-S,QPSK -39=11403,V,24500,78,DVB-S,QPSK -40=11421,H,24500,78,DVB-S,QPSK -41=11461,V,4937,34,S2,8PSK -42=11467,V,2500,34,S2,8PSK -43=11471,V,3300,34,S2,8PSK -44=11479,V,4936,34,S2,8PSK -45=11489,V,6680,23,S2,8PSK -46=11502,V,2220,34,S2,QPSK -47=11512,V,2222,78,DVB-S,QPSK -48=11517,V,7500,56,S2,8PSK -49=11529,V,2222,78,DVB-S,QPSK -50=11533,V,3600,Auto,S2,QPSK -51=11542,V,3472,34,S2,8PSK -52=11547,V,3472,34,S2,8PSK -53=11554,V,6111,34,DVB-S,QPSK -54=11559,V,3600,34,S2,8PSK -55=11565,V,2200,34,S2,8PSK -56=11608,H,5655,78,DVB-S,QPSK -57=11643,H,3333,34,DVB-S,QPSK -58=11727,V,28000,78,DVB-S,QPSK -59=11747,H,28000,56,DVB-S,QPSK -60=11766,V,28000,78,DVB-S,QPSK -61=11785,H,30000,34,S2,8PSK -62=11804,V,28000,78,DVB-S,QPSK -63=11823,H,30000,56,S2,8PSK -64=11843,V,30000,34,S2,8PSK -65=11900,H,28000,56,DVB-S,QPSK -66=11919,V,28000,78,DVB-S,QPSK -67=11938,H,28000,78,DVB-S,QPSK -68=11977,H,30000,34,S2,8PSK -69=11996,V,28000,78,DVB-S,QPSK -70=12015,H,30000,34,S2,8PSK -71=12034,V,30000,34,S2,8PSK -72=12054,H,30000,34,S2,8PSK -73=12073,V,28000,78,DVB-S,QPSK -74=12092,H,28000,78,DVB-S,QPSK -75=12111,V,28000,78,DVB-S,QPSK -76=12188,V,28000,78,DVB-S,QPSK -77=12207,H,30000,34,S2,8PSK -78=12226,V,27500,56,DVB-S,QPSK -79=12265,V,28000,78,DVB-S,QPSK -80=12303,V,27500,56,S2,8PSK -81=12380,V,28000,56,DVB-S,QPSK -82=12418,V,28000,78,DVB-S,QPSK -83=12456,V,28000,78,DVB-S,QPSK -84=12511,V,3300,56,S2,8PSK -85=12515,V,3300,56,S2,8PSK -86=12520,V,3700,56,S2,8PSK -87=12524,V,3750,56,S2,8PSK -88=12527,H,27500,34,DVB-S,QPSK -89=12529,V,4750,56,S2,8PSK -90=12535,V,5000,89,S2,8PSK -91=12541,V,6660,56,S2,8PSK -92=12563,H,27500,34,DVB-S,QPSK -93=12563,V,27500,34,DVB-S,QPSK -94=12607,H,27500,34,DVB-S,QPSK -95=12607,V,26667,23,S2,8PSK -96=12643,H,27500,34,DVB-S,QPSK -97=12643,V,27500,34,DVB-S,QPSK -98=12687,H,27500,34,DVB-S,QPSK -99=12687,V,27500,34,DVB-S,QPSK -100=12723,H,27500,34,DVB-S,QPSK -101=12735,V,8800,56,DVB-S,QPSK diff --git a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3594.ini b/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3594.ini deleted file mode 100644 index f762d2f6fb..0000000000 --- a/MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/ini/satellite/3594.ini +++ /dev/null @@ -1,10 +0,0 @@ -; file generated on saturday, 22nd of august 2015, 19:35:09 [GMT] -; by online transponder .ini generator @ http://satellites-xml.eu -; please let us know if you find any inconsistencies in this file -[SATTYPE] -1=3594 -2=Thor 7 (0.6W) - -[DVB] -0=1 -1=12207,H,30000,34,S2,8PSK |
