Browse Source

fix errors; add nouveau vaapi driver option (#692)

* fix service shutdown errors

* add nouveau vaapi driver option
pull/696/head
Jason Dove 4 years ago committed by GitHub
parent
commit
6be5111195
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      CHANGELOG.md
  2. 2
      ErsatzTV.Core/FFmpeg/FFmpegLibraryProcessService.cs
  3. 3
      ErsatzTV.Core/FFmpeg/FFmpegProcessBuilder.cs
  4. 3
      ErsatzTV.Core/FFmpeg/VaapiDriver.cs
  5. 7
      ErsatzTV/Services/EmbyService.cs
  6. 7
      ErsatzTV/Services/FFmpegWorkerService.cs
  7. 7
      ErsatzTV/Services/JellyfinService.cs
  8. 7
      ErsatzTV/Services/PlexService.cs
  9. 8
      ErsatzTV/Services/SchedulerService.cs
  10. 16
      ErsatzTV/Services/WorkerService.cs

1
CHANGELOG.md

@ -10,6 +10,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). @@ -10,6 +10,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
### Added
- Perform additional duration analysis on files with missing duration metadata
- Add `nouveau` VAAPI driver option
## [0.4.3-alpha] - 2022-03-05
### Fixed

2
ErsatzTV.Core/FFmpeg/FFmpegLibraryProcessService.cs

@ -391,6 +391,8 @@ public class FFmpegLibraryProcessService : IFFmpegProcessService @@ -391,6 +391,8 @@ public class FFmpegLibraryProcessService : IFFmpegProcessService
return "iHD";
case VaapiDriver.RadeonSI:
return "radeonsi";
case VaapiDriver.Nouveau:
return "nouveau";
}
}

3
ErsatzTV.Core/FFmpeg/FFmpegProcessBuilder.cs

@ -682,6 +682,9 @@ internal class FFmpegProcessBuilder @@ -682,6 +682,9 @@ internal class FFmpegProcessBuilder
case VaapiDriver.RadeonSI:
startInfo.EnvironmentVariables["LIBVA_DRIVER_NAME"] = "radeonsi";
break;
case VaapiDriver.Nouveau:
startInfo.EnvironmentVariables["LIBVA_DRIVER_NAME"] = "nouveau";
break;
}
}

3
ErsatzTV.Core/FFmpeg/VaapiDriver.cs

@ -8,5 +8,6 @@ public enum VaapiDriver @@ -8,5 +8,6 @@ public enum VaapiDriver
Default = 0,
iHD = 1,
i965 = 2,
RadeonSI = 3
RadeonSI = 3,
Nouveau = 4
}

7
ErsatzTV/Services/EmbyService.cs

@ -25,6 +25,8 @@ public class EmbyService : BackgroundService @@ -25,6 +25,8 @@ public class EmbyService : BackgroundService
}
protected override async Task ExecuteAsync(CancellationToken cancellationToken)
{
try
{
if (!File.Exists(FileSystemLayout.EmbySecretsPath))
{
@ -82,6 +84,11 @@ public class EmbyService : BackgroundService @@ -82,6 +84,11 @@ public class EmbyService : BackgroundService
}
}
}
catch (Exception ex) when (ex is TaskCanceledException or OperationCanceledException)
{
_logger.LogInformation("Emby service shutting down");
}
}
private async Task SynchronizeSources(
SynchronizeEmbyMediaSources request,

7
ErsatzTV/Services/FFmpegWorkerService.cs

@ -26,6 +26,8 @@ public class FFmpegWorkerService : BackgroundService @@ -26,6 +26,8 @@ public class FFmpegWorkerService : BackgroundService
}
protected override async Task ExecuteAsync(CancellationToken cancellationToken)
{
try
{
_logger.LogInformation("FFmpeg worker service started");
@ -63,4 +65,9 @@ public class FFmpegWorkerService : BackgroundService @@ -63,4 +65,9 @@ public class FFmpegWorkerService : BackgroundService
}
}
}
catch (Exception ex) when (ex is TaskCanceledException or OperationCanceledException)
{
_logger.LogInformation("FFmpeg worker service shutting down");
}
}
}

7
ErsatzTV/Services/JellyfinService.cs

@ -25,6 +25,8 @@ public class JellyfinService : BackgroundService @@ -25,6 +25,8 @@ public class JellyfinService : BackgroundService
}
protected override async Task ExecuteAsync(CancellationToken cancellationToken)
{
try
{
if (!File.Exists(FileSystemLayout.JellyfinSecretsPath))
{
@ -82,6 +84,11 @@ public class JellyfinService : BackgroundService @@ -82,6 +84,11 @@ public class JellyfinService : BackgroundService
}
}
}
catch (Exception ex) when (ex is TaskCanceledException or OperationCanceledException)
{
_logger.LogInformation("Jellyfin service shutting down");
}
}
private async Task SynchronizeSources(
SynchronizeJellyfinMediaSources request,

7
ErsatzTV/Services/PlexService.cs

@ -25,6 +25,8 @@ public class PlexService : BackgroundService @@ -25,6 +25,8 @@ public class PlexService : BackgroundService
}
protected override async Task ExecuteAsync(CancellationToken cancellationToken)
{
try
{
if (!File.Exists(FileSystemLayout.PlexSecretsPath))
{
@ -82,6 +84,11 @@ public class PlexService : BackgroundService @@ -82,6 +84,11 @@ public class PlexService : BackgroundService
}
}
}
catch (Exception ex) when (ex is TaskCanceledException or OperationCanceledException)
{
_logger.LogInformation("Plex service shutting down");
}
}
private async Task<List<PlexMediaSource>> SynchronizeSources(
SynchronizePlexMediaSources request,

8
ErsatzTV/Services/SchedulerService.cs

@ -51,7 +51,15 @@ public class SchedulerService : BackgroundService @@ -51,7 +51,15 @@ public class SchedulerService : BackgroundService
int currentMinutes = DateTime.Now.TimeOfDay.Minutes;
int toWait = currentMinutes < 30 ? 30 - currentMinutes : 60 - currentMinutes;
_logger.LogDebug("Scheduler sleeping for {Minutes} minutes", toWait);
try
{
await Task.Delay(TimeSpan.FromMinutes(toWait), cancellationToken);
}
catch (TaskCanceledException)
{
// do nothing
}
if (!cancellationToken.IsCancellationRequested)
{

16
ErsatzTV/Services/WorkerService.cs

@ -28,11 +28,18 @@ public class WorkerService : BackgroundService @@ -28,11 +28,18 @@ public class WorkerService : BackgroundService
}
protected override async Task ExecuteAsync(CancellationToken cancellationToken)
{
try
{
_logger.LogInformation("Worker service started");
await foreach (IBackgroundServiceRequest request in _channel.ReadAllAsync(cancellationToken))
{
if (cancellationToken.IsCancellationRequested)
{
break;
}
using IServiceScope scope = _serviceScopeFactory.CreateScope();
try
@ -83,6 +90,10 @@ public class WorkerService : BackgroundService @@ -83,6 +90,10 @@ public class WorkerService : BackgroundService
break;
}
}
catch (ObjectDisposedException) when (cancellationToken.IsCancellationRequested)
{
// this can happen when we're shutting down
}
catch (Exception ex)
{
_logger.LogWarning(ex, "Failed to process background service request");
@ -99,4 +110,9 @@ public class WorkerService : BackgroundService @@ -99,4 +110,9 @@ public class WorkerService : BackgroundService
}
}
}
catch (Exception ex) when (ex is TaskCanceledException or OperationCanceledException)
{
_logger.LogInformation("Worker service shutting down");
}
}
}
Loading…
Cancel
Save