aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations
diff options
context:
space:
mode:
authorLuke <luke.pulverenti@gmail.com>2017-09-21 17:37:31 -0400
committerGitHub <noreply@github.com>2017-09-21 17:37:31 -0400
commit8586c9f6a7dc8562da1f6bca2b3ce53398dd03b5 (patch)
tree6292159c4b83abb76c243b2ff64c1278d0b2ae18 /Emby.Server.Implementations
parent81843431a4a5763ccf8af7165f4876b203ca24f5 (diff)
parente5f340d6b7c914428e6b68ec1bbfeb9e27234b32 (diff)
Merge pull request #2905 from MediaBrowser/dev
Dev
Diffstat (limited to 'Emby.Server.Implementations')
-rw-r--r--Emby.Server.Implementations/ApplicationHost.cs2
-rw-r--r--Emby.Server.Implementations/Dto/DtoService.cs2
-rw-r--r--Emby.Server.Implementations/Library/LibraryManager.cs8
-rw-r--r--Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHttpStream.cs36
-rw-r--r--Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunUdpStream.cs32
5 files changed, 45 insertions, 35 deletions
diff --git a/Emby.Server.Implementations/ApplicationHost.cs b/Emby.Server.Implementations/ApplicationHost.cs
index 713ece421..47b969eca 100644
--- a/Emby.Server.Implementations/ApplicationHost.cs
+++ b/Emby.Server.Implementations/ApplicationHost.cs
@@ -2208,7 +2208,7 @@ namespace Emby.Server.Implementations
{
var updateLevel = SystemUpdateLevel;
var cacheLength = updateLevel == PackageVersionClass.Release ?
- TimeSpan.FromHours(4) :
+ TimeSpan.FromHours(12) :
TimeSpan.FromMinutes(5);
var result = await new GithubUpdater(HttpClient, JsonSerializer).CheckForUpdateResult("MediaBrowser",
diff --git a/Emby.Server.Implementations/Dto/DtoService.cs b/Emby.Server.Implementations/Dto/DtoService.cs
index c5fcc0e4c..1854829a2 100644
--- a/Emby.Server.Implementations/Dto/DtoService.cs
+++ b/Emby.Server.Implementations/Dto/DtoService.cs
@@ -571,7 +571,7 @@ namespace Emby.Server.Implementations.Dto
}
}
- if (!(item is LiveTvProgram) || fields.Contains(ItemFields.PlayAccess))
+ if (/*!(item is LiveTvProgram) ||*/ fields.Contains(ItemFields.PlayAccess))
{
dto.PlayAccess = item.GetPlayAccess(user);
}
diff --git a/Emby.Server.Implementations/Library/LibraryManager.cs b/Emby.Server.Implementations/Library/LibraryManager.cs
index eab52e5e8..5871e180e 100644
--- a/Emby.Server.Implementations/Library/LibraryManager.cs
+++ b/Emby.Server.Implementations/Library/LibraryManager.cs
@@ -433,6 +433,14 @@ namespace Emby.Server.Implementations.Library
_fileSystem.DeleteFile(fileSystemInfo.FullName);
}
}
+ catch (FileNotFoundException)
+ {
+ // may have already been deleted manually by user
+ }
+ catch (DirectoryNotFoundException)
+ {
+ // may have already been deleted manually by user
+ }
catch (IOException)
{
if (isRequiredForDelete)
diff --git a/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHttpStream.cs b/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHttpStream.cs
index af064755d..17b3713c4 100644
--- a/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHttpStream.cs
+++ b/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHttpStream.cs
@@ -96,7 +96,9 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
BufferContent = false,
// Increase a little bit
- TimeoutMs = 30000
+ TimeoutMs = 30000,
+
+ EnableHttpCompression = false
}, "GET").ConfigureAwait(false))
{
@@ -146,35 +148,35 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
});
}
- public Task CopyToAsync(Stream stream, CancellationToken cancellationToken)
- {
- return CopyFileTo(_tempFilePath, stream, cancellationToken);
- }
-
- protected async Task CopyFileTo(string path, Stream outputStream, CancellationToken cancellationToken)
+ public async Task CopyToAsync(Stream stream, CancellationToken cancellationToken)
{
- long startPosition = -20000;
-
- _logger.Info("Live stream starting position is {0} bytes", startPosition.ToString(CultureInfo.InvariantCulture));
-
var allowAsync = false;//Environment.OperatingSystem != MediaBrowser.Model.System.OperatingSystem.Windows;
// use non-async filestream along with read due to https://github.com/dotnet/corefx/issues/6039
- using (var inputStream = (FileStream)GetInputStream(path, allowAsync))
+ using (var inputStream = (FileStream)GetInputStream(_tempFilePath, allowAsync))
{
- if (startPosition > 0)
- {
- inputStream.Seek(-20000, SeekOrigin.End);
- }
+ TrySeek(inputStream, -20000);
while (!cancellationToken.IsCancellationRequested)
{
- StreamHelper.CopyTo(inputStream, outputStream, 81920, cancellationToken);
+ StreamHelper.CopyTo(inputStream, stream, 81920, cancellationToken);
//var position = fs.Position;
//_logger.Debug("Streamed {0} bytes to position {1} from file {2}", bytesRead, position, path);
}
}
}
+
+ private void TrySeek(FileStream stream, long offset)
+ {
+ try
+ {
+ stream.Seek(offset, SeekOrigin.End);
+ }
+ catch (Exception ex)
+ {
+ _logger.ErrorException("Error seeking stream", ex);
+ }
+ }
}
}
diff --git a/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunUdpStream.cs b/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunUdpStream.cs
index 6c21066fb..c530d48c2 100644
--- a/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunUdpStream.cs
+++ b/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunUdpStream.cs
@@ -168,30 +168,18 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
});
}
- public Task CopyToAsync(Stream stream, CancellationToken cancellationToken)
+ public async Task CopyToAsync(Stream stream, CancellationToken cancellationToken)
{
- return CopyFileTo(_tempFilePath, stream, cancellationToken);
- }
-
- protected async Task CopyFileTo(string path, Stream outputStream, CancellationToken cancellationToken)
- {
- long startPosition = -20000;
-
- _logger.Info("Live stream starting position is {0} bytes", startPosition.ToString(CultureInfo.InvariantCulture));
-
var allowAsync = false;//Environment.OperatingSystem != MediaBrowser.Model.System.OperatingSystem.Windows;
// use non-async filestream along with read due to https://github.com/dotnet/corefx/issues/6039
- using (var inputStream = (FileStream)GetInputStream(path, allowAsync))
+ using (var inputStream = (FileStream)GetInputStream(_tempFilePath, allowAsync))
{
- if (startPosition > 0)
- {
- inputStream.Seek(-20000, SeekOrigin.End);
- }
+ TrySeek(inputStream, -20000);
while (!cancellationToken.IsCancellationRequested)
{
- StreamHelper.CopyTo(inputStream, outputStream, 81920, cancellationToken);
+ StreamHelper.CopyTo(inputStream, stream, 81920, cancellationToken);
//var position = fs.Position;
//_logger.Debug("Streamed {0} bytes to position {1} from file {2}", bytesRead, position, path);
@@ -199,6 +187,18 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
}
}
+ private void TrySeek(FileStream stream, long offset)
+ {
+ try
+ {
+ stream.Seek(offset, SeekOrigin.End);
+ }
+ catch (Exception ex)
+ {
+ _logger.ErrorException("Error seeking stream", ex);
+ }
+ }
+
private static int RtpHeaderBytes = 12;
private void CopyTo(ISocket udpClient, Stream target, TaskCompletionSource<bool> openTaskCompletionSource, CancellationToken cancellationToken)
{