@ -23,6 +23,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
@@ -23,6 +23,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Scripts live in config / scripts / mpegts
- Each script gets its own subfolder which contains an `mpegts.yml` definition and corresponding windows (powershell) and linux (bash) scripts
- The global MPEG-TS script can be configured in **Settings** > **FFmpeg** > **Default MPEG-TS Script**
- Add `.avs` AviSynth Script support to all local libraries
- `.avs` was added as a valid extension, so they should behave the same any other video file
- There are two requirements for AviSynth Scripts to work:
- FFmpeg needs to be compiled with AviSynth support (not currently available in Docker)
@ -44,7 +35,7 @@ public class UpdateFFmpegSettingsHandler : IRequestHandler<UpdateFFmpegSettings,
@@ -44,7 +35,7 @@ public class UpdateFFmpegSettingsHandler : IRequestHandler<UpdateFFmpegSettings,
returnBaseError.New($"{name} path does not exist");
}
@ -71,21 +62,21 @@ public class UpdateFFmpegSettingsHandler : IRequestHandler<UpdateFFmpegSettings,
@@ -71,21 +62,21 @@ public class UpdateFFmpegSettingsHandler : IRequestHandler<UpdateFFmpegSettings,
@ -95,12 +86,12 @@ public class UpdateFFmpegSettingsHandler : IRequestHandler<UpdateFFmpegSettings,
@@ -95,12 +86,12 @@ public class UpdateFFmpegSettingsHandler : IRequestHandler<UpdateFFmpegSettings,
@ -111,7 +102,7 @@ public class UpdateFFmpegSettingsHandler : IRequestHandler<UpdateFFmpegSettings,
@@ -111,7 +102,7 @@ public class UpdateFFmpegSettingsHandler : IRequestHandler<UpdateFFmpegSettings,
request.Settings.ExtractEmbeddedSubtitles=false;
}
await_configElementRepository.Upsert(
awaitconfigElementRepository.Upsert(
ConfigElementKey.FFmpegExtractEmbeddedSubtitles,
request.Settings.ExtractEmbeddedSubtitles,
cancellationToken);
@ -119,48 +110,50 @@ public class UpdateFFmpegSettingsHandler : IRequestHandler<UpdateFFmpegSettings,
@@ -119,48 +110,50 @@ public class UpdateFFmpegSettingsHandler : IRequestHandler<UpdateFFmpegSettings,
@ -73,6 +73,9 @@ public class GetTroubleshootingInfoHandler : IRequestHandler<GetTroubleshootingI
@@ -73,6 +73,9 @@ public class GetTroubleshootingInfoHandler : IRequestHandler<GetTroubleshootingI
.AsNoTracking()
.ToListAsync(cancellationToken);
boolaviSynthDemuxer=false;
boolaviSynthInstalled=false;
stringnvidiaCapabilities=null;
StringBuilderqsvCapabilities=new();
StringBuildervaapiCapabilities=new();
@ -157,6 +160,10 @@ public class GetTroubleshootingInfoHandler : IRequestHandler<GetTroubleshootingI
@@ -157,6 +160,10 @@ public class GetTroubleshootingInfoHandler : IRequestHandler<GetTroubleshootingI
@ -189,6 +196,8 @@ public class GetTroubleshootingInfoHandler : IRequestHandler<GetTroubleshootingI
@@ -189,6 +196,8 @@ public class GetTroubleshootingInfoHandler : IRequestHandler<GetTroubleshootingI
@ -36,19 +41,14 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
@@ -36,19 +41,14 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
@ -72,12 +72,16 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
@@ -72,12 +72,16 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
@ -95,7 +99,7 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
@@ -95,7 +99,7 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
"FFmpeg does not support {HardwareAcceleration} acceleration; will use software mode",
hardwareAccelerationMode);
@ -107,7 +111,7 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
@@ -107,7 +111,7 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
@ -148,13 +152,13 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
@@ -148,13 +152,13 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
// if we don't have a list of cuda devices, fall back to ffmpeg check
@ -288,13 +292,14 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
@@ -288,13 +292,14 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
@ -303,7 +308,27 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
@@ -303,7 +308,27 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
@ -311,13 +336,13 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
@@ -311,13 +336,13 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
@ -328,21 +353,25 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
@@ -328,21 +353,25 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
@ -353,32 +382,70 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
@@ -353,32 +382,70 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
@ -390,7 +457,7 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
@@ -390,7 +457,7 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
{
// this shouldn't really happen
_logger.LogError(
logger.LogError(
"Cannot detect VAAPI capabilities without device {Device}",
vaapiDevice);
@ -402,16 +469,16 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
@@ -402,16 +469,16 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
_logger.LogWarning("Unable to determine VAAPI capabilities; please install vainfo");
logger.LogWarning("Unable to determine VAAPI capabilities; please install vainfo");
returnnewDefaultHardwareCapabilities();
}
@ -424,7 +491,7 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
@@ -424,7 +491,7 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
{
if(display=="drm")
{
_logger.LogDebug(
logger.LogDebug(
"Detected {Count} VAAPI profile entrypoints using {Driver} {Device}",
profileEntrypoints.Count,
driver,
@ -432,26 +499,26 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
@@ -432,26 +499,26 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
}
else
{
_logger.LogDebug(
logger.LogDebug(
"Detected {Count} VAAPI profile entrypoints using {Display} {Driver}",
"Error detecting VAAPI capabilities; some hardware accelerated features will be unavailable");
returnnewNoHardwareCapabilities();
}
_logger.LogWarning(
logger.LogWarning(
"Error detecting VAAPI capabilities; some hardware accelerated features will be unavailable");
returnnewNoHardwareCapabilities();
@ -461,32 +528,32 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
@@ -461,32 +528,32 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
@ -499,7 +566,7 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
@@ -499,7 +566,7 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
_logger.LogWarning("Unable to determine QSV capabilities; please install vainfo");
logger.LogWarning("Unable to determine QSV capabilities; please install vainfo");
returnnewDefaultHardwareCapabilities();
}
@ -510,13 +577,13 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
@@ -510,13 +577,13 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
@ -526,7 +593,7 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
@@ -526,7 +593,7 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
}
catch(Exceptionex)
{
_logger.LogWarning(
logger.LogWarning(
ex,
"Error detecting QSV capabilities; some hardware accelerated features will be unavailable");
returnnewNoHardwareCapabilities();
@ -535,9 +602,9 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
@@ -535,9 +602,9 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
@ -545,14 +612,14 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
@@ -545,14 +612,14 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
@ -560,9 +627,21 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
@@ -560,9 +627,21 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
// do nothing
}
_logger.LogWarning(
logger.LogWarning(
"Error detecting NVIDIA GPU capabilities; some hardware accelerated features will be unavailable");
@ -28,11 +30,13 @@ public class LocalStatisticsProvider : ILocalStatisticsProvider
@@ -28,11 +30,13 @@ public class LocalStatisticsProvider : ILocalStatisticsProvider
@ -52,6 +56,12 @@ public class LocalStatisticsProvider : ILocalStatisticsProvider
@@ -52,6 +56,12 @@ public class LocalStatisticsProvider : ILocalStatisticsProvider