diff options
| author | Luke <luke.pulverenti@gmail.com> | 2017-09-21 17:37:31 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-09-21 17:37:31 -0400 |
| commit | 8586c9f6a7dc8562da1f6bca2b3ce53398dd03b5 (patch) | |
| tree | 6292159c4b83abb76c243b2ff64c1278d0b2ae18 /Emby.Server.Implementations | |
| parent | 81843431a4a5763ccf8af7165f4876b203ca24f5 (diff) | |
| parent | e5f340d6b7c914428e6b68ec1bbfeb9e27234b32 (diff) | |
Merge pull request #2905 from MediaBrowser/dev
Dev
Diffstat (limited to 'Emby.Server.Implementations')
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) { |
