Browse Source

update socket interfaces

Luke Pulverenti 8 years ago
parent
commit
9776ca09db
100 changed files with 546 additions and 7152 deletions
  1. 3 3
      Emby.Common.Implementations/Net/NetAcceptSocket.cs
  2. 5 5
      Emby.Common.Implementations/Net/SocketAcceptor.cs
  3. 31 16
      Emby.Common.Implementations/Net/SocketFactory.cs
  4. 10 6
      Emby.Common.Implementations/Net/UdpSocket.cs
  5. 2 2
      Emby.Server.Core/HttpServerFactory.cs
  6. 1 0
      Emby.Server.Implementations/Emby.Server.Implementations.csproj
  7. 37 82
      Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs
  8. 397 0
      Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunManager.cs
  9. 2 2
      Emby.Server.Implementations/Udp/UdpServer.cs
  10. 2 2
      MediaBrowser.Model/MediaBrowser.Model.csproj
  11. 28 0
      MediaBrowser.Model/Net/IAcceptSocket.cs
  12. 19 19
      MediaBrowser.Model/Net/ISocket.cs
  13. 9 7
      MediaBrowser.Model/Net/ISocketFactory.cs
  14. 0 28
      MediaBrowser.Model/Net/IUdpSocket.cs
  15. 0 105
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ChannelScan.cs
  16. 0 79
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtcp/ReportBlock.cs
  17. 0 68
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtcp/RtcpAppPacket.cs
  18. 0 59
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtcp/RtcpByePacket.cs
  19. 0 203
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtcp/RtcpListener.cs
  20. 0 37
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtcp/RtcpPacket.cs
  21. 0 68
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtcp/RtcpReceiverReportPacket.cs
  22. 0 105
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtcp/RtcpSenderReportPacket.cs
  23. 0 57
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtcp/RtcpSourceDescriptionPacket.cs
  24. 0 65
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtcp/SourceDescriptionBlock.cs
  25. 0 60
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtcp/SourceDescriptionItem.cs
  26. 0 160
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtp/RtpListener.cs
  27. 0 116
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtp/RtpPacket.cs
  28. 0 88
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtsp/RtspMethod.cs
  29. 0 140
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtsp/RtspRequest.cs
  30. 0 149
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtsp/RtspResponse.cs
  31. 0 688
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtsp/RtspSession.cs
  32. 0 251
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtsp/RtspStatusCode.cs
  33. 0 347
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/SatIpDiscovery.cs
  34. 0 184
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/SatIpHost.cs
  35. 0 25
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/TransmissionMode.cs
  36. 0 90
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Utils.cs
  37. 0 100
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0030.ini
  38. 0 102
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0049.ini
  39. 0 134
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0070.ini
  40. 0 40
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0090.ini
  41. 0 206
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0100.ini
  42. 0 106
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0130.ini
  43. 0 156
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0160.ini
  44. 0 60
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0170.ini
  45. 0 127
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0192.ini
  46. 0 19
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0200.ini
  47. 0 103
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0215.ini
  48. 0 127
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0235.ini
  49. 0 19
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0255.ini
  50. 0 107
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0260.ini
  51. 0 101
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0282.ini
  52. 0 96
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0305.ini
  53. 0 30
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0308.ini
  54. 0 10
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0310.ini
  55. 0 24
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0315.ini
  56. 0 47
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0330.ini
  57. 0 111
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0360.ini
  58. 0 79
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0380.ini
  59. 0 60
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0390.ini
  60. 0 30
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0400.ini
  61. 0 199
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0420.ini
  62. 0 35
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0435.ini
  63. 0 23
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0450.ini
  64. 0 49
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0460.ini
  65. 0 31
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0475.ini
  66. 0 10
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0480.ini
  67. 0 30
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0490.ini
  68. 0 11
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0505.ini
  69. 0 28
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0510.ini
  70. 0 11
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0520.ini
  71. 0 24
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0525.ini
  72. 0 28
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0530.ini
  73. 0 37
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0549.ini
  74. 0 31
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0560.ini
  75. 0 67
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0570.ini
  76. 0 48
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0600.ini
  77. 0 70
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0620.ini
  78. 0 28
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0642.ini
  79. 0 15
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0650.ini
  80. 0 39
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0660.ini
  81. 0 110
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0685.ini
  82. 0 20
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0705.ini
  83. 0 14
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0721.ini
  84. 0 47
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0740.ini
  85. 0 44
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0750.ini
  86. 0 85
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0765.ini
  87. 0 112
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0785.ini
  88. 0 74
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0830.ini
  89. 0 38
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0851.ini
  90. 0 30
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0865.ini
  91. 0 13
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0875.ini
  92. 0 34
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0880.ini
  93. 0 59
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0900.ini
  94. 0 84
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0915.ini
  95. 0 19
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0922.ini
  96. 0 77
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0935.ini
  97. 0 47
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0950.ini
  98. 0 28
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0965.ini
  99. 0 80
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/1005.ini
  100. 0 13
      MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/1030.ini

+ 3 - 3
Emby.Common.Implementations/Net/NetSocket.cs → Emby.Common.Implementations/Net/NetAcceptSocket.cs

@@ -8,14 +8,14 @@ using MediaBrowser.Model.Logging;
 
 namespace Emby.Common.Implementations.Net
 {
-    public class NetSocket : ISocket
+    public class NetAcceptSocket : IAcceptSocket
     {
         public Socket Socket { get; private set; }
         private readonly ILogger _logger;
 
         public bool DualMode { get; private set; }
 
-        public NetSocket(Socket socket, ILogger logger, bool isDualMode)
+        public NetAcceptSocket(Socket socket, ILogger logger, bool isDualMode)
         {
             if (socket == null)
             {
@@ -82,7 +82,7 @@ namespace Emby.Common.Implementations.Net
         }
 
         private SocketAcceptor _acceptor;
-        public void StartAccept(Action<ISocket> onAccept, Func<bool> isClosed)
+        public void StartAccept(Action<IAcceptSocket> onAccept, Func<bool> isClosed)
         {
             _acceptor = new SocketAcceptor(_logger, Socket, onAccept, isClosed, DualMode);
 

+ 5 - 5
Emby.Common.Implementations/Net/SocketAcceptor.cs

@@ -10,10 +10,10 @@ namespace Emby.Common.Implementations.Net
         private readonly ILogger _logger;
         private readonly Socket _originalSocket;
         private readonly Func<bool> _isClosed;
-        private readonly Action<ISocket> _onAccept;
+        private readonly Action<IAcceptSocket> _onAccept;
         private readonly bool _isDualMode;
 
-        public SocketAcceptor(ILogger logger, Socket originalSocket, Action<ISocket> onAccept, Func<bool> isClosed, bool isDualMode)
+        public SocketAcceptor(ILogger logger, Socket originalSocket, Action<IAcceptSocket> onAccept, Func<bool> isClosed, bool isDualMode)
         {
             if (logger == null)
             {
@@ -54,7 +54,7 @@ namespace Emby.Common.Implementations.Net
             }
             else
             {
-                // socket must be cleared since the context object is being reused
+                // acceptSocket must be cleared since the context object is being reused
                 acceptEventArg.AcceptSocket = null;
             }
 
@@ -102,7 +102,7 @@ namespace Emby.Common.Implementations.Net
                 return;
             }
 
-            // http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.acceptasync%28v=vs.110%29.aspx
+            // http://msdn.microsoft.com/en-us/library/system.net.sockets.acceptSocket.acceptasync%28v=vs.110%29.aspx
             // Under certain conditions ConnectionReset can occur
             // Need to attept to re-accept
             if (e.SocketError == SocketError.ConnectionReset)
@@ -117,7 +117,7 @@ namespace Emby.Common.Implementations.Net
             if (acceptSocket != null)
             {
                 //ProcessAccept(acceptSocket);
-                _onAccept(new NetSocket(acceptSocket, _logger, _isDualMode));
+                _onAccept(new NetAcceptSocket(acceptSocket, _logger, _isDualMode));
             }
 
             // Accept the next connection request

+ 31 - 16
Emby.Common.Implementations/Net/SocketFactory.cs

@@ -31,7 +31,7 @@ namespace Emby.Common.Implementations.Net
             _logger = logger;
         }
 
-        public ISocket CreateSocket(IpAddressFamily family, MediaBrowser.Model.Net.SocketType socketType, MediaBrowser.Model.Net.ProtocolType protocolType, bool dualMode)
+        public IAcceptSocket CreateAcceptSocket(IpAddressFamily family, MediaBrowser.Model.Net.SocketType socketType, MediaBrowser.Model.Net.ProtocolType protocolType, bool dualMode)
         {
             try
             {
@@ -46,7 +46,7 @@ namespace Emby.Common.Implementations.Net
                     socket.DualMode = true;
                 }
 
-                return new NetSocket(socket, _logger, dualMode);
+                return new NetAcceptSocket(socket, _logger, dualMode);
             }
             catch (SocketException ex)
             {
@@ -54,13 +54,30 @@ namespace Emby.Common.Implementations.Net
             }
         }
 
-        #region ISocketFactory Members
+        public ISocket CreateTcpSocket(IpAddressInfo remoteAddress, int remotePort)
+        {
+            if (remotePort < 0) throw new ArgumentException("remotePort cannot be less than zero.", "remotePort");
+
+            var retVal = new Socket(AddressFamily.InterNetwork, System.Net.Sockets.SocketType.Stream, System.Net.Sockets.ProtocolType.Tcp);
+            try
+            {
+                retVal.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
+                return new UdpSocket(retVal, new IpEndPointInfo(remoteAddress, remotePort));
+            }
+            catch
+            {
+                if (retVal != null)
+                    retVal.Dispose();
+
+                throw;
+            }
+        }
 
         /// <summary>
-        /// Creates a new UDP socket and binds it to the specified local port.
+        /// Creates a new UDP acceptSocket and binds it to the specified local port.
         /// </summary>
-        /// <param name="localPort">An integer specifying the local port to bind the socket to.</param>
-        public IUdpSocket CreateUdpSocket(int localPort)
+        /// <param name="localPort">An integer specifying the local port to bind the acceptSocket to.</param>
+        public ISocket CreateUdpSocket(int localPort)
         {
             if (localPort < 0) throw new ArgumentException("localPort cannot be less than zero.", "localPort");
 
@@ -80,10 +97,10 @@ namespace Emby.Common.Implementations.Net
         }
 
         /// <summary>
-        /// Creates a new UDP socket that is a member of the SSDP multicast local admin group and binds it to the specified local port.
+        /// Creates a new UDP acceptSocket that is a member of the SSDP multicast local admin group and binds it to the specified local port.
         /// </summary>
-        /// <returns>An implementation of the <see cref="IUdpSocket"/> interface used by RSSDP components to perform socket operations.</returns>
-        public IUdpSocket CreateSsdpUdpSocket(IpAddressInfo localIpAddress, int localPort)
+        /// <returns>An implementation of the <see cref="ISocket"/> interface used by RSSDP components to perform acceptSocket operations.</returns>
+        public ISocket CreateSsdpUdpSocket(IpAddressInfo localIpAddress, int localPort)
         {
             if (localPort < 0) throw new ArgumentException("localPort cannot be less than zero.", "localPort");
 
@@ -108,13 +125,13 @@ namespace Emby.Common.Implementations.Net
         }
 
         /// <summary>
-        /// Creates a new UDP socket that is a member of the specified multicast IP address, and binds it to the specified local port.
+        /// Creates a new UDP acceptSocket that is a member of the specified multicast IP address, and binds it to the specified local port.
         /// </summary>
-        /// <param name="ipAddress">The multicast IP address to make the socket a member of.</param>
-        /// <param name="multicastTimeToLive">The multicast time to live value for the socket.</param>
+        /// <param name="ipAddress">The multicast IP address to make the acceptSocket a member of.</param>
+        /// <param name="multicastTimeToLive">The multicast time to live value for the acceptSocket.</param>
         /// <param name="localPort">The number of the local port to bind to.</param>
         /// <returns></returns>
-        public IUdpSocket CreateUdpMulticastSocket(string ipAddress, int multicastTimeToLive, int localPort)
+        public ISocket CreateUdpMulticastSocket(string ipAddress, int multicastTimeToLive, int localPort)
         {
             if (ipAddress == null) throw new ArgumentNullException("ipAddress");
             if (ipAddress.Length == 0) throw new ArgumentException("ipAddress cannot be an empty string.", "ipAddress");
@@ -128,7 +145,7 @@ namespace Emby.Common.Implementations.Net
 #if NET46
 				retVal.ExclusiveAddressUse = false;
 #else
-                // The ExclusiveAddressUse socket option is a Windows-specific option that, when set to "true," tells Windows not to allow another socket to use the same local address as this socket
+                // The ExclusiveAddressUse acceptSocket option is a Windows-specific option that, when set to "true," tells Windows not to allow another acceptSocket to use the same local address as this acceptSocket
                 // See https://github.com/dotnet/corefx/pull/11509 for more details
                 if (System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform(System.Runtime.InteropServices.OSPlatform.Windows))
 				{
@@ -154,7 +171,5 @@ namespace Emby.Common.Implementations.Net
                 throw;
             }
         }
-
-        #endregion
     }
 }

+ 10 - 6
Emby.Common.Implementations/Net/UdpSocket.cs

@@ -14,7 +14,7 @@ namespace Emby.Common.Implementations.Net
     // THIS IS A LINKED FILE - SHARED AMONGST MULTIPLE PLATFORMS	
     // Be careful to check any changes compile and work for all platform projects it is shared in.
 
-    internal sealed class UdpSocket : DisposableManagedObjectBase, IUdpSocket
+    internal sealed class UdpSocket : DisposableManagedObjectBase, ISocket
     {
 
         #region Fields
@@ -23,8 +23,6 @@ namespace Emby.Common.Implementations.Net
         private int _LocalPort;
         #endregion
 
-        #region Constructors
-
         public UdpSocket(Socket socket, int localPort, IPAddress ip)
         {
             if (socket == null) throw new ArgumentNullException("socket");
@@ -36,7 +34,13 @@ namespace Emby.Common.Implementations.Net
             _Socket.Bind(new IPEndPoint(ip, _LocalPort));
         }
 
-        #endregion
+        public UdpSocket(Socket socket, IpEndPointInfo endPoint)
+        {
+            if (socket == null) throw new ArgumentNullException("socket");
+
+            _Socket = socket;
+            _Socket.Connect(NetworkManager.ToIPEndPoint(endPoint));
+        }
 
         public IpAddressInfo LocalIPAddress
         {
@@ -44,9 +48,9 @@ namespace Emby.Common.Implementations.Net
             private set;
         }
 
-        #region IUdpSocket Members
+        #region ISocket Members
 
-        public Task<SocketReceiveResult> ReceiveAsync()
+        public Task<SocketReceiveResult> ReceiveAsync(CancellationToken cancellationToken)
         {
             ThrowIfDisposed();
 

+ 2 - 2
Emby.Server.Core/HttpServerFactory.cs

@@ -76,9 +76,9 @@ namespace Emby.Server.Core
 
     public class StreamFactory : IStreamFactory
     {
-        public Stream CreateNetworkStream(ISocket socket, bool ownsSocket)
+        public Stream CreateNetworkStream(IAcceptSocket acceptSocket, bool ownsSocket)
         {
-            var netSocket = (NetSocket)socket;
+            var netSocket = (NetAcceptSocket)acceptSocket;
 
             return new NetworkStream(netSocket.Socket, ownsSocket);
         }

+ 1 - 0
Emby.Server.Implementations/Emby.Server.Implementations.csproj

@@ -169,6 +169,7 @@
     <Compile Include="LiveTv\RecordingImageProvider.cs" />
     <Compile Include="LiveTv\RefreshChannelsScheduledTask.cs" />
     <Compile Include="LiveTv\TunerHosts\BaseTunerHost.cs" />
+    <Compile Include="LiveTv\TunerHosts\HdHomerun\HdHomerunManager.cs" />
     <Compile Include="LiveTv\TunerHosts\HdHomerun\HdHomerunDiscovery.cs" />
     <Compile Include="LiveTv\TunerHosts\HdHomerun\HdHomerunHost.cs" />
     <Compile Include="LiveTv\TunerHosts\HdHomerun\HdHomerunLiveStream.cs" />

+ 37 - 82
Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs

@@ -28,13 +28,15 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
         private readonly IHttpClient _httpClient;
         private readonly IFileSystem _fileSystem;
         private readonly IServerApplicationHost _appHost;
+        private readonly ISocketFactory _socketFactory;
 
-        public HdHomerunHost(IServerConfigurationManager config, ILogger logger, IJsonSerializer jsonSerializer, IMediaEncoder mediaEncoder, IHttpClient httpClient, IFileSystem fileSystem, IServerApplicationHost appHost)
+        public HdHomerunHost(IServerConfigurationManager config, ILogger logger, IJsonSerializer jsonSerializer, IMediaEncoder mediaEncoder, IHttpClient httpClient, IFileSystem fileSystem, IServerApplicationHost appHost, ISocketFactory socketFactory)
             : base(config, logger, jsonSerializer, mediaEncoder)
         {
             _httpClient = httpClient;
             _fileSystem = fileSystem;
             _appHost = appHost;
+            _socketFactory = socketFactory;
         }
 
         public string Name
@@ -104,14 +106,14 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
         }
 
         private readonly Dictionary<string, DiscoverResponse> _modelCache = new Dictionary<string, DiscoverResponse>();
-        private async Task<string> GetModelInfo(TunerHostInfo info, CancellationToken cancellationToken)
+        private async Task<DiscoverResponse> GetModelInfo(TunerHostInfo info, bool throwAllExceptions, CancellationToken cancellationToken)
         {
             lock (_modelCache)
             {
                 DiscoverResponse response;
                 if (_modelCache.TryGetValue(info.Url, out response))
                 {
-                    return response.ModelNumber;
+                    return response;
                 }
             }
 
@@ -135,67 +137,57 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
                         _modelCache[info.Id] = response;
                     }
 
-                    return response.ModelNumber;
+                    return response;
                 }
             }
             catch (HttpException ex)
             {
-                if (ex.StatusCode.HasValue && ex.StatusCode.Value == System.Net.HttpStatusCode.NotFound)
+                if (!throwAllExceptions && ex.StatusCode.HasValue && ex.StatusCode.Value == System.Net.HttpStatusCode.NotFound)
                 {
                     var defaultValue = "HDHR";
+                    var response = new DiscoverResponse
+                    {
+                        ModelNumber = defaultValue
+                    };
                     // HDHR4 doesn't have this api
                     lock (_modelCache)
                     {
-                        _modelCache[info.Id] = new DiscoverResponse
-                        {
-                            ModelNumber = defaultValue
-                        };
+                        _modelCache[info.Id] = response;
                     }
-                    return defaultValue;
+                    return response;
                 }
 
                 throw;
             }
         }
 
-        public async Task<List<LiveTvTunerInfo>> GetTunerInfos(TunerHostInfo info, CancellationToken cancellationToken)
+        private async Task<List<LiveTvTunerInfo>> GetTunerInfos(TunerHostInfo info, CancellationToken cancellationToken)
         {
-            var model = await GetModelInfo(info, cancellationToken).ConfigureAwait(false);
+            var model = await GetModelInfo(info, false, 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>();
 
-            }).ConfigureAwait(false))
+            using (var manager = new HdHomerunManager(_socketFactory))
             {
-                var tuners = new List<LiveTvTunerInfo>();
-                using (var sr = new StreamReader(stream, System.Text.Encoding.UTF8))
+                // Legacy HdHomeruns are IPv4 only
+                var ipInfo = new IpAddressInfo(info.Url, IpAddressFamily.InterNetwork);
+
+                for (int i = 0; i < model.TunerCount; ++i)
                 {
-                    while (!sr.EndOfStream)
+                    var name = String.Format("Tuner {0}", i + 1);
+                    var currentChannel = "none"; /// @todo Get current channel and map back to Station Id      
+                    var isAvailable = await manager.CheckTunerAvailability(ipInfo, i, cancellationToken).ConfigureAwait(false);
+                    LiveTvTunerStatus status = isAvailable ? LiveTvTunerStatus.Available : LiveTvTunerStatus.LiveTv;
+                    tuners.Add(new LiveTvTunerInfo
                     {
-                        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
-                            });
-                        }
-                    }
+                        Name = name,
+                        SourceType = string.IsNullOrWhiteSpace(model.ModelNumber) ? Name : model.ModelNumber,
+                        ProgramName = currentChannel,
+                        Status = status
+                    });
                 }
-                return tuners;
             }
+            return tuners;
         }
 
         public async Task<List<LiveTvTunerInfo>> GetTunerInfos(CancellationToken cancellationToken)
@@ -244,34 +236,6 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
             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; }
@@ -455,8 +419,8 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
 
             try
             {
-                var model = await GetModelInfo(info, cancellationToken).ConfigureAwait(false);
-                model = model ?? string.Empty;
+                var modelInfo = await GetModelInfo(info, false, cancellationToken).ConfigureAwait(false);
+                var model = modelInfo == null ? string.Empty : (modelInfo.ModelNumber ?? string.Empty);
 
                 if ((model.IndexOf("hdtc", StringComparison.OrdinalIgnoreCase) != -1))
                 {
@@ -531,18 +495,8 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
             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
-
-                }).ConfigureAwait(false))
-                {
-                    var response = JsonSerializer.DeserializeFromStream<DiscoverResponse>(stream);
-
-                    info.DeviceId = response.DeviceID;
-                }
+                var modelInfo = await GetModelInfo(info, true, CancellationToken.None).ConfigureAwait(false);
+                info.DeviceId = modelInfo.DeviceID;
             }
             catch (HttpException ex)
             {
@@ -573,6 +527,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
             public string DeviceAuth { get; set; }
             public string BaseURL { get; set; }
             public string LineupURL { get; set; }
+            public int TunerCount { get; set; }
         }
     }
 }

+ 397 - 0
Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunManager.cs

@@ -0,0 +1,397 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Text.RegularExpressions;
+using System.Threading;
+using System.Threading.Tasks;
+using MediaBrowser.Model.Net;
+
+namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
+{
+    public class HdHomerunManager : IDisposable
+    {
+        public static int HdHomeRunPort = 65001;
+        // Message constants
+        private static byte GetSetName = 3;
+        private static byte GetSetValue = 4;
+        private static byte GetSetLockkey = 21;
+        private static ushort GetSetRequest = 4;
+        private static ushort GetSetReply = 5;
+
+        private uint? _lockkey = null;
+        private int _activeTuner = 0;
+        private readonly ISocketFactory _socketFactory;
+        private IpAddressInfo _remoteIp;
+
+        public HdHomerunManager(ISocketFactory socketFactory)
+        {
+            _socketFactory = socketFactory;
+        }
+
+        public void Dispose()
+        {
+            var task = StopStreaming();
+
+            Task.WaitAll(task);
+        }
+
+        public async Task<bool> CheckTunerAvailability(IpAddressInfo remoteIp, int tuner, CancellationToken cancellationToken)
+        {
+            var ipEndPoint = new IpEndPointInfo(remoteIp, HdHomeRunPort);
+            var tcpClient = _socketFactory.CreateTcpSocket(remoteIp, HdHomeRunPort);
+            var lockkeyMsg = CreateGetMessage(tuner, "lockkey");
+            await tcpClient.SendAsync(lockkeyMsg, lockkeyMsg.Length, ipEndPoint, cancellationToken);
+            var response = await tcpClient.ReceiveAsync(cancellationToken).ConfigureAwait(false);
+            string returnVal;
+            ParseReturnMessage(response.Buffer, response.ReceivedBytes, out returnVal);
+
+            return (returnVal == "none");
+        }
+
+        public async Task StartStreaming(IpAddressInfo remoteIp, IpAddressInfo localIp, int localPort, string url, int numTuners, CancellationToken cancellationToken)
+        {
+            _remoteIp = remoteIp;
+            // parse url for channel and program
+            string frequency, program;
+            if (!ParseUrl(url, out frequency, out program))
+            {
+                return;
+            }
+
+            var tcpClient = _socketFactory.CreateTcpSocket(_remoteIp, HdHomeRunPort);
+
+            if (!_lockkey.HasValue)
+            {
+                var rand = new Random();
+                _lockkey = (uint)rand.Next();
+            }
+
+            var ipEndPoint = new IpEndPointInfo(_remoteIp, HdHomeRunPort);
+
+            for (int i = 0; i < numTuners; ++i)
+            {
+                if (!await CheckTunerAvailability(_remoteIp, i, cancellationToken).ConfigureAwait(false))
+                    continue;
+
+                _activeTuner = i;
+                var lockKeyString = String.Format("{0:d}", _lockkey.Value);
+                var lockkeyMsg = CreateSetMessage(i, "lockkey", lockKeyString, null);
+                await tcpClient.SendAsync(lockkeyMsg, lockkeyMsg.Length, ipEndPoint, cancellationToken).ConfigureAwait(false);
+                var response = await tcpClient.ReceiveAsync(cancellationToken).ConfigureAwait(false);
+                string returnVal;
+                // parse response to make sure it worked
+                if (!ParseReturnMessage(response.Buffer, response.ReceivedBytes, out returnVal))
+                    continue;
+
+                var channelMsg = CreateSetMessage(i, "channel", frequency, _lockkey.Value);
+                await tcpClient.SendAsync(channelMsg, channelMsg.Length, ipEndPoint, cancellationToken).ConfigureAwait(false);
+                await tcpClient.ReceiveAsync(cancellationToken).ConfigureAwait(false);
+                // parse response to make sure it worked
+                if (!ParseReturnMessage(response.Buffer, response.ReceivedBytes, out returnVal))
+                {
+                    await ReleaseLockkey(tcpClient).ConfigureAwait(false);
+                    continue;
+                }
+
+                if (program != String.Empty)
+                {
+                    var programMsg = CreateSetMessage(i, "program", program, _lockkey.Value);
+                    await tcpClient.SendAsync(programMsg, programMsg.Length, ipEndPoint, cancellationToken).ConfigureAwait(false);
+                    await tcpClient.ReceiveAsync(cancellationToken).ConfigureAwait(false);
+                    // parse response to make sure it worked
+                    if (!ParseReturnMessage(response.Buffer, response.ReceivedBytes, out returnVal))
+                    {
+                        await ReleaseLockkey(tcpClient).ConfigureAwait(false);
+                        continue;
+                    }
+                }
+
+                var targetValue = String.Format("rtp://{0}:{1}", localIp, localPort);
+                var targetMsg = CreateSetMessage(i, "target", targetValue, _lockkey.Value);
+
+                await tcpClient.SendAsync(targetMsg, targetMsg.Length, ipEndPoint, cancellationToken).ConfigureAwait(false);
+                response = await tcpClient.ReceiveAsync(cancellationToken).ConfigureAwait(false);
+                // parse response to make sure it worked
+                if (!ParseReturnMessage(response.Buffer, response.ReceivedBytes, out returnVal))
+                {
+                    await ReleaseLockkey(tcpClient).ConfigureAwait(false);
+                    continue;
+                }
+
+                break;
+            }
+        }
+
+        public async Task StopStreaming()
+        {
+            if (!_lockkey.HasValue)
+                return;
+
+            using (var socket = _socketFactory.CreateTcpSocket(_remoteIp, HdHomeRunPort))
+            {
+                await ReleaseLockkey(socket).ConfigureAwait(false);
+            }
+        }
+
+        private async Task ReleaseLockkey(ISocket tcpClient)
+        {
+            var releaseTarget = CreateSetMessage(_activeTuner, "target", "none", _lockkey);
+            await tcpClient.SendAsync(releaseTarget, releaseTarget.Length, new IpEndPointInfo(_remoteIp, HdHomeRunPort), CancellationToken.None).ConfigureAwait(false);
+            await tcpClient.ReceiveAsync(CancellationToken.None).ConfigureAwait(false);
+            var releaseKeyMsg = CreateSetMessage(_activeTuner, "lockkey", "none", _lockkey);
+            _lockkey = null;
+            await tcpClient.SendAsync(releaseKeyMsg, releaseKeyMsg.Length, new IpEndPointInfo(_remoteIp, HdHomeRunPort), CancellationToken.None).ConfigureAwait(false);
+            await tcpClient.ReceiveAsync(CancellationToken.None).ConfigureAwait(false);
+        }
+
+        private static bool ParseUrl(string url, out string frequency, out string program)
+        {
+            frequency = String.Empty;
+            program = String.Empty;
+            var regExp = new Regex(@"\/ch(\d+)-?(\d*)");
+            var match = regExp.Match(url);
+            if (match.Success)
+            {
+                frequency = match.Groups[1].Value;
+                program = match.Groups[2].Value;
+                return true;
+            }
+
+            return false;
+        }
+
+        private static byte[] CreateGetMessage(int tuner, string name)
+        {
+            var byteName = Encoding.UTF8.GetBytes(String.Format("/tuner{0}/{1}\0", tuner, name));
+            int messageLength = byteName.Length + 10; // 4 bytes for header + 4 bytes for crc + 2 bytes for tag name and length
+
+            var message = new byte[messageLength];
+
+            int offset = InsertHeaderAndName(byteName, messageLength, message);
+
+            bool flipEndian = BitConverter.IsLittleEndian;
+
+            // calculate crc and insert at the end of the message
+            var crcBytes = BitConverter.GetBytes(HdHomerunCrc.GetCrc32(message, messageLength - 4));
+            if (flipEndian)
+                Array.Reverse(crcBytes);
+            Buffer.BlockCopy(crcBytes, 0, message, offset, 4);
+
+            return message;
+        }
+
+        private static byte[] CreateSetMessage(int tuner, String name, String value, uint? lockkey)
+        {
+            var byteName = Encoding.UTF8.GetBytes(String.Format("/tuner{0}/{1}\0", tuner, name));
+            var byteValue = Encoding.UTF8.GetBytes(String.Format("{0}\0", value));
+
+            int messageLength = byteName.Length + byteValue.Length + 12;
+            if (lockkey.HasValue)
+                messageLength += 6;
+
+            var message = new byte[messageLength];
+
+            int offset = InsertHeaderAndName(byteName, messageLength, message);
+
+            bool flipEndian = BitConverter.IsLittleEndian;
+
+            message[offset] = GetSetValue;
+            offset++;
+            message[offset] = Convert.ToByte(byteValue.Length);
+            offset++;
+            Buffer.BlockCopy(byteValue, 0, message, offset, byteValue.Length);
+            offset += byteValue.Length;
+            if (lockkey.HasValue)
+            {
+                message[offset] = GetSetLockkey;
+                offset++;
+                message[offset] = (byte)4;
+                offset++;
+                var lockKeyBytes = BitConverter.GetBytes(lockkey.Value);
+                if (flipEndian)
+                    Array.Reverse(lockKeyBytes);
+                Buffer.BlockCopy(lockKeyBytes, 0, message, offset, 4);
+                offset += 4;
+            }
+
+            // calculate crc and insert at the end of the message
+            var crcBytes = BitConverter.GetBytes(HdHomerunCrc.GetCrc32(message, messageLength - 4));
+            if (flipEndian)
+                Array.Reverse(crcBytes);
+            Buffer.BlockCopy(crcBytes, 0, message, offset, 4);
+
+            return message;
+        }
+
+        private static int InsertHeaderAndName(byte[] byteName, int messageLength, byte[] message)
+        {
+            // check to see if we need to flip endiannes
+            bool flipEndian = BitConverter.IsLittleEndian;
+            int offset = 0;
+
+            // create header bytes
+            var getSetBytes = BitConverter.GetBytes(GetSetRequest);
+            var msgLenBytes = BitConverter.GetBytes((ushort)(messageLength - 8)); // Subtrace 4 bytes for header and 4 bytes for crc
+
+            if (flipEndian)
+            {
+                Array.Reverse(getSetBytes);
+                Array.Reverse(msgLenBytes);
+            }
+
+            // insert header bytes into message
+            Buffer.BlockCopy(getSetBytes, 0, message, offset, 2);
+            offset += 2;
+            Buffer.BlockCopy(msgLenBytes, 0, message, offset, 2);
+            offset += 2;
+
+            // insert tag name and length
+            message[offset] = GetSetName;
+            offset++;
+            message[offset] = Convert.ToByte(byteName.Length);
+            offset++;
+
+            // insert name string
+            Buffer.BlockCopy(byteName, 0, message, offset, byteName.Length);
+            offset += byteName.Length;
+
+            return offset;
+        }
+
+        private static bool ParseReturnMessage(byte[] buf, int numBytes, out string returnVal)
+        {
+            returnVal = String.Empty;
+
+            if (numBytes < 4)
+                return false;
+
+            var flipEndian = BitConverter.IsLittleEndian;
+            int offset = 0;
+            byte[] msgTypeBytes = new byte[2];
+            Buffer.BlockCopy(buf, offset, msgTypeBytes, 0, msgTypeBytes.Length);
+
+            if (flipEndian)
+                Array.Reverse(msgTypeBytes);
+
+            var msgType = BitConverter.ToUInt16(msgTypeBytes, 0);
+            offset += 2;
+
+            if (msgType != GetSetReply)
+                return false;
+
+            byte[] msgLengthBytes = new byte[2];
+            Buffer.BlockCopy(buf, offset, msgLengthBytes, 0, msgLengthBytes.Length);
+            if (flipEndian)
+                Array.Reverse(msgLengthBytes);
+
+            var msgLength = BitConverter.ToUInt16(msgLengthBytes, 0);
+            offset += 2;
+
+            if (numBytes < msgLength + 8)
+                return false;
+
+            var nameTag = buf[offset];
+            offset++;
+
+            var nameLength = buf[offset];
+            offset++;
+
+            // skip the name field to get to value for return
+            offset += nameLength;
+
+            var valueTag = buf[offset];
+            offset++;
+
+            var valueLength = buf[offset];
+            offset++;
+
+            returnVal = Encoding.UTF8.GetString(buf, offset, valueLength - 1); // remove null terminator
+            return true;
+        }
+
+        private class HdHomerunCrc
+        {
+            private static UInt32[] crc_table = {
+            0x00000000, 0x77073096, 0xee0e612c, 0x990951ba,
+            0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,
+            0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,
+            0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91,
+            0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de,
+            0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,
+            0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec,
+            0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5,
+            0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,
+            0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,
+            0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940,
+            0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,
+            0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116,
+            0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f,
+            0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
+            0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d,
+            0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a,
+            0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,
+            0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818,
+            0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,
+            0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,
+            0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457,
+            0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c,
+            0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,
+            0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2,
+            0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb,
+            0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,
+            0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9,
+            0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086,
+            0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
+            0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4,
+            0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad,
+            0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,
+            0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683,
+            0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8,
+            0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,
+            0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe,
+            0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7,
+            0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,
+            0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,
+            0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252,
+            0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,
+            0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60,
+            0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79,
+            0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
+            0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f,
+            0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04,
+            0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,
+            0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a,
+            0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,
+            0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,
+            0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21,
+            0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e,
+            0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,
+            0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c,
+            0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45,
+            0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,
+            0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db,
+            0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0,
+            0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
+            0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6,
+            0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,
+            0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
+            0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d };
+
+            public static UInt32 GetCrc32(byte[] bytes, int numBytes)
+            {
+                var hash = 0xffffffff;
+                for (var i = 0; i < numBytes; i++)
+                    hash = (hash >> 8) ^ crc_table[(hash ^ bytes[i]) & 0xff];
+
+                var tmp = ~hash & 0xffffffff;
+                var b0 = tmp & 0xff;
+                var b1 = (tmp >> 8) & 0xff;
+                var b2 = (tmp >> 16) & 0xff;
+                var b3 = (tmp >> 24) & 0xff;
+                hash = (b0 << 24) | (b1 << 16) | (b2 << 8) | b3;
+                return hash;
+            }
+        }
+    }
+}

+ 2 - 2
Emby.Server.Implementations/Udp/UdpServer.cs

@@ -128,7 +128,7 @@ namespace Emby.Server.Implementations.Udp
         /// <summary>
         /// The _udp client
         /// </summary>
-        private IUdpSocket _udpClient;
+        private ISocket _udpClient;
         private readonly ISocketFactory _socketFactory;
 
         /// <summary>
@@ -148,7 +148,7 @@ namespace Emby.Server.Implementations.Udp
             {
                 try
                 {
-                    var result = await _udpClient.ReceiveAsync().ConfigureAwait(false);
+                    var result = await _udpClient.ReceiveAsync(CancellationToken.None).ConfigureAwait(false);
 
                     OnMessageReceived(result);
                 }

+ 2 - 2
MediaBrowser.Model/MediaBrowser.Model.csproj

@@ -137,9 +137,9 @@
     <Compile Include="Dto\NameValuePair.cs" />
     <Compile Include="Logging\IConsoleLogger.cs" />
     <Compile Include="Net\IpEndPointInfo.cs" />
-    <Compile Include="Net\ISocket.cs" />
+    <Compile Include="Net\IAcceptSocket.cs" />
     <Compile Include="Net\ISocketFactory.cs" />
-    <Compile Include="Net\IUdpSocket.cs" />
+    <Compile Include="Net\ISocket.cs" />
     <Compile Include="Net\SocketReceiveResult.cs" />
     <Compile Include="Services\IHttpResult.cs" />
     <Compile Include="Social\ISharingRepository.cs" />

+ 28 - 0
MediaBrowser.Model/Net/IAcceptSocket.cs

@@ -0,0 +1,28 @@
+using System;
+
+namespace MediaBrowser.Model.Net
+{
+    public interface IAcceptSocket : IDisposable
+    {
+        bool DualMode { get; }
+        IpEndPointInfo LocalEndPoint { get; }
+        IpEndPointInfo RemoteEndPoint { get; }
+        void Close();
+        void Shutdown(bool both);
+        void Listen(int backlog);
+        void Bind(IpEndPointInfo endpoint);
+
+        void StartAccept(Action<IAcceptSocket> onAccept, Func<bool> isClosed);
+    }
+
+    public class SocketCreateException : Exception
+    {
+        public SocketCreateException(string errorCode, Exception originalException)
+            : base(errorCode, originalException)
+        {
+            ErrorCode = errorCode;
+        }
+
+        public string ErrorCode { get; private set; }
+    }
+}

+ 19 - 19
MediaBrowser.Model/Net/ISocket.cs

@@ -1,28 +1,28 @@
 using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
 
 namespace MediaBrowser.Model.Net
 {
+    /// <summary>
+    /// Provides a common interface across platforms for UDP sockets used by this SSDP implementation.
+    /// </summary>
     public interface ISocket : IDisposable
     {
-        bool DualMode { get; }
-        IpEndPointInfo LocalEndPoint { get; }
-        IpEndPointInfo RemoteEndPoint { get; }
-        void Close();
-        void Shutdown(bool both);
-        void Listen(int backlog);
-        void Bind(IpEndPointInfo endpoint);
+        IpAddressInfo LocalIPAddress { get; }
 
-        void StartAccept(Action<ISocket> onAccept, Func<bool> isClosed);
-    }
-
-    public class SocketCreateException : Exception
-    {
-        public SocketCreateException(string errorCode, Exception originalException)
-            : base(errorCode, originalException)
-        {
-            ErrorCode = errorCode;
-        }
+        /// <summary>
+        /// Waits for and returns the next UDP message sent to this socket (uni or multicast).
+        /// </summary>
+        /// <returns></returns>
+        Task<SocketReceiveResult> ReceiveAsync(CancellationToken cancellationToken);
 
-        public string ErrorCode { get; private set; }
+        /// <summary>
+        /// Sends a UDP message to a particular end point (uni or multicast).
+        /// </summary>
+        Task SendAsync(byte[] buffer, int bytes, IpEndPointInfo endPoint, CancellationToken cancellationToken);
     }
-}
+}

+ 9 - 7
MediaBrowser.Model/Net/ISocketFactory.cs

@@ -2,7 +2,7 @@
 namespace MediaBrowser.Model.Net
 {
     /// <summary>
-    /// Implemented by components that can create a platform specific UDP socket implementation, and wrap it in the cross platform <see cref="IUdpSocket"/> interface.
+    /// Implemented by components that can create a platform specific UDP socket implementation, and wrap it in the cross platform <see cref="ISocket"/> interface.
     /// </summary>
     public interface ISocketFactory
 	{
@@ -11,13 +11,15 @@ namespace MediaBrowser.Model.Net
 		/// Createa a new unicast socket using the specified local port number.
 		/// </summary>
 		/// <param name="localPort">The local port to bind to.</param>
-		/// <returns>A <see cref="IUdpSocket"/> implementation.</returns>
-		IUdpSocket CreateUdpSocket(int localPort);
+		/// <returns>A <see cref="ISocket"/> implementation.</returns>
+		ISocket CreateUdpSocket(int localPort);
+
+        ISocket CreateTcpSocket(IpAddressInfo remoteAddress, int remotePort);
 
         /// <summary>
         /// Createa a new unicast socket using the specified local port number.
         /// </summary>
-        IUdpSocket CreateSsdpUdpSocket(IpAddressInfo localIp, int localPort);
+        ISocket CreateSsdpUdpSocket(IpAddressInfo localIp, int localPort);
 
         /// <summary>
         /// Createa a new multicast socket using the specified multicast IP address, multicast time to live and local port.
@@ -25,10 +27,10 @@ namespace MediaBrowser.Model.Net
         /// <param name="ipAddress">The multicast IP address to bind to.</param>
         /// <param name="multicastTimeToLive">The multicast time to live value. Actually a maximum number of network hops for UDP packets.</param>
         /// <param name="localPort">The local port to bind to.</param>
-        /// <returns>A <see cref="IUdpSocket"/> implementation.</returns>
-        IUdpSocket CreateUdpMulticastSocket(string ipAddress, int multicastTimeToLive, int localPort);
+        /// <returns>A <see cref="ISocket"/> implementation.</returns>
+        ISocket CreateUdpMulticastSocket(string ipAddress, int multicastTimeToLive, int localPort);
 
-        ISocket CreateSocket(IpAddressFamily family, SocketType socketType, ProtocolType protocolType, bool dualMode);
+        IAcceptSocket CreateAcceptSocket(IpAddressFamily family, SocketType socketType, ProtocolType protocolType, bool dualMode);
     }
 
     public enum SocketType

+ 0 - 28
MediaBrowser.Model/Net/IUdpSocket.cs

@@ -1,28 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading;
-using System.Threading.Tasks;
-
-namespace MediaBrowser.Model.Net
-{
-    /// <summary>
-    /// Provides a common interface across platforms for UDP sockets used by this SSDP implementation.
-    /// </summary>
-    public interface IUdpSocket : IDisposable
-    {
-        IpAddressInfo LocalIPAddress { get; }
-
-        /// <summary>
-        /// Waits for and returns the next UDP message sent to this socket (uni or multicast).
-        /// </summary>
-        /// <returns></returns>
-        Task<SocketReceiveResult> ReceiveAsync();
-
-        /// <summary>
-        /// Sends a UDP message to a particular end point (uni or multicast).
-        /// </summary>
-        Task SendAsync(byte[] buffer, int bytes, IpEndPointInfo endPoint, CancellationToken cancellationToken);
-    }
-}

+ 0 - 105
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ChannelScan.cs

@@ -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
-    }
-}

+ 0 - 79
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtcp/ReportBlock.cs

@@ -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);
-
-            
-        }
-    }
-}

+ 0 - 68
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtcp/RtcpAppPacket.cs

@@ -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();
-        }
-    }
-}

+ 0 - 59
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtcp/RtcpByePacket.cs

@@ -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();
-        }
-    }
-}

+ 0 - 203
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtcp/RtcpListener.cs

@@ -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);
-            }
-        }
-    }
-}

+ 0 - 37
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtcp/RtcpPacket.cs

@@ -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;             
-        }
-    }
-}

+ 0 - 68
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtcp/RtcpReceiverReportPacket.cs

@@ -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();
-        }
-    }
-}

+ 0 - 105
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtcp/RtcpSenderReportPacket.cs

@@ -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();
-        }
-    }
-}

+ 0 - 57
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtcp/RtcpSourceDescriptionPacket.cs

@@ -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();
-        }
-    }
-}

+ 0 - 65
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtcp/SourceDescriptionBlock.cs

@@ -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);            
-        }
-    }
-}

+ 0 - 60
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtcp/SourceDescriptionItem.cs

@@ -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);
-            }            
-        }
-    }
-}

+ 0 - 160
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtp/RtpListener.cs

@@ -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);
-            }
-        }
-    }
-}

+ 0 - 116
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtp/RtpPacket.cs

@@ -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();
-        }
-
-    }
-
-}

+ 0 - 88
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtsp/RtspMethod.cs

@@ -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;
-        }
-    }
-}

+ 0 - 140
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtsp/RtspRequest.cs

@@ -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());
-        }
-    }
-}

+ 0 - 149
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtsp/RtspResponse.cs

@@ -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;
-        }
-    }
-}

+ 0 - 688
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtsp/RtspSession.cs

@@ -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;
-        }
-    }
-}

+ 0 - 251
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Rtsp/RtspStatusCode.cs

@@ -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
-    }
-}

+ 0 - 347
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/SatIpDiscovery.cs

@@ -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.Dlna;
-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,
-                        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; }
-    }
-}

+ 0 - 184
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/SatIpHost.cs

@@ -1,184 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Globalization;
-using System.Linq;
-using System.Threading;
-using System.Threading.Tasks;
-using Emby.Server.Implementations.LiveTv.TunerHosts;
-using MediaBrowser.Model.IO;
-using MediaBrowser.Common.Configuration;
-using MediaBrowser.Common.Extensions;
-using MediaBrowser.Common.IO;
-using MediaBrowser.Common.Net;
-using MediaBrowser.Controller;
-using MediaBrowser.Controller.Configuration;
-using MediaBrowser.Controller.IO;
-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;
-
-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, false, 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
-                };
-
-                mediaSource.InferTotalBitrate(true);
-
-                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;
-        }
-    }
-}

+ 0 - 25
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/TransmissionMode.cs

@@ -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
-    }
-}

+ 0 - 90
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/Utils.cs

@@ -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);
-
-    }
-}

+ 0 - 100
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0030.ini

@@ -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

+ 0 - 102
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0049.ini

@@ -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

+ 0 - 134
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0070.ini

@@ -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

+ 0 - 40
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0090.ini

@@ -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

+ 0 - 206
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0100.ini

@@ -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

+ 0 - 106
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0130.ini

@@ -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

+ 0 - 156
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0160.ini

@@ -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

+ 0 - 60
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0170.ini

@@ -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

+ 0 - 127
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0192.ini

@@ -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

+ 0 - 19
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0200.ini

@@ -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

+ 0 - 103
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0215.ini

@@ -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

+ 0 - 127
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0235.ini

@@ -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

+ 0 - 19
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0255.ini

@@ -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

+ 0 - 107
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0260.ini

@@ -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

+ 0 - 101
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0282.ini

@@ -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

+ 0 - 96
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0305.ini

@@ -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

+ 0 - 30
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0308.ini

@@ -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

+ 0 - 10
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0310.ini

@@ -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

+ 0 - 24
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0315.ini

@@ -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

+ 0 - 47
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0330.ini

@@ -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

+ 0 - 111
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0360.ini

@@ -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

+ 0 - 79
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0380.ini

@@ -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

+ 0 - 60
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0390.ini

@@ -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

+ 0 - 30
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0400.ini

@@ -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

+ 0 - 199
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0420.ini

@@ -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

+ 0 - 35
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0435.ini

@@ -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

+ 0 - 23
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0450.ini

@@ -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

+ 0 - 49
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0460.ini

@@ -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

+ 0 - 31
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0475.ini

@@ -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

+ 0 - 10
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0480.ini

@@ -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

+ 0 - 30
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0490.ini

@@ -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

+ 0 - 11
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0505.ini

@@ -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

+ 0 - 28
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0510.ini

@@ -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

+ 0 - 11
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0520.ini

@@ -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

+ 0 - 24
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0525.ini

@@ -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

+ 0 - 28
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0530.ini

@@ -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

+ 0 - 37
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0549.ini

@@ -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

+ 0 - 31
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0560.ini

@@ -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

+ 0 - 67
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0570.ini

@@ -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

+ 0 - 48
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0600.ini

@@ -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

+ 0 - 70
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0620.ini

@@ -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

+ 0 - 28
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0642.ini

@@ -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

+ 0 - 15
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0650.ini

@@ -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

+ 0 - 39
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0660.ini

@@ -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

+ 0 - 110
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0685.ini

@@ -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

+ 0 - 20
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0705.ini

@@ -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

+ 0 - 14
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0721.ini

@@ -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

+ 0 - 47
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0740.ini

@@ -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

+ 0 - 44
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0750.ini

@@ -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

+ 0 - 85
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0765.ini

@@ -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

+ 0 - 112
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0785.ini

@@ -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

+ 0 - 74
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0830.ini

@@ -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

+ 0 - 38
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0851.ini

@@ -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

+ 0 - 30
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0865.ini

@@ -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

+ 0 - 13
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0875.ini

@@ -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

+ 0 - 34
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0880.ini

@@ -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

+ 0 - 59
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0900.ini

@@ -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

+ 0 - 84
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0915.ini

@@ -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

+ 0 - 19
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0922.ini

@@ -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

+ 0 - 77
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0935.ini

@@ -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

+ 0 - 47
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0950.ini

@@ -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

+ 0 - 28
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/0965.ini

@@ -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

+ 0 - 80
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/1005.ini

@@ -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

+ 0 - 13
MediaBrowser.Server.Startup.Common/LiveTv/TunerHosts/SatIp/ini/satellite/1030.ini

@@ -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

Some files were not shown because too many files changed in this diff