From 7c6a32ca6b2d9383cb74978171e224128f658e24 Mon Sep 17 00:00:00 2001 From: Jason Dove <1695733+jasongdove@users.noreply.github.com> Date: Mon, 4 May 2026 21:43:02 -0500 Subject: [PATCH] feat: use amf and rkmpp hw accel with next engine --- .../Commands/StartFFmpegNextSessionHandler.cs | 2 ++ ErsatzTV.Core/Next/Config/ChannelConfig.cs | 12 +++++++++++- ErsatzTV/ErsatzTV.csproj | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/ErsatzTV.Application/Streaming/Commands/StartFFmpegNextSessionHandler.cs b/ErsatzTV.Application/Streaming/Commands/StartFFmpegNextSessionHandler.cs index dcc8d3db2..dba572f53 100644 --- a/ErsatzTV.Application/Streaming/Commands/StartFFmpegNextSessionHandler.cs +++ b/ErsatzTV.Application/Streaming/Commands/StartFFmpegNextSessionHandler.cs @@ -338,8 +338,10 @@ public class StartFFmpegNextSessionHandler( }, Accel = ffmpegProfile.HardwareAcceleration switch { + HardwareAccelerationKind.Amf => AccelEnum.Amf, HardwareAccelerationKind.Nvenc => AccelEnum.Cuda, HardwareAccelerationKind.Qsv => AccelEnum.Qsv, + HardwareAccelerationKind.Rkmpp => AccelEnum.Rkmpp, HardwareAccelerationKind.Vaapi => AccelEnum.Vaapi, HardwareAccelerationKind.VideoToolbox => AccelEnum.Videotoolbox, _ => null diff --git a/ErsatzTV.Core/Next/Config/ChannelConfig.cs b/ErsatzTV.Core/Next/Config/ChannelConfig.cs index b9351939d..e9665eedd 100644 --- a/ErsatzTV.Core/Next/Config/ChannelConfig.cs +++ b/ErsatzTV.Core/Next/Config/ChannelConfig.cs @@ -151,7 +151,7 @@ namespace ErsatzTV.Core.Next.Config public enum Mode { Burn, Convert }; - public enum AccelEnum { Cuda, Qsv, Vaapi, Videotoolbox, Vulkan }; + public enum AccelEnum { Amf, Cuda, Qsv, Rkmpp, Vaapi, Videotoolbox, Vulkan }; public enum VideoFormat { H264, Hevc }; @@ -280,10 +280,14 @@ namespace ErsatzTV.Core.Next.Config var value = serializer.Deserialize(reader); switch (value) { + case "amf": + return AccelEnum.Amf; case "cuda": return AccelEnum.Cuda; case "qsv": return AccelEnum.Qsv; + case "rkmpp": + return AccelEnum.Rkmpp; case "vaapi": return AccelEnum.Vaapi; case "videotoolbox": @@ -304,12 +308,18 @@ namespace ErsatzTV.Core.Next.Config var value = (AccelEnum)untypedValue; switch (value) { + case AccelEnum.Amf: + serializer.Serialize(writer, "amf"); + return; case AccelEnum.Cuda: serializer.Serialize(writer, "cuda"); return; case AccelEnum.Qsv: serializer.Serialize(writer, "qsv"); return; + case AccelEnum.Rkmpp: + serializer.Serialize(writer, "rkmpp"); + return; case AccelEnum.Vaapi: serializer.Serialize(writer, "vaapi"); return; diff --git a/ErsatzTV/ErsatzTV.csproj b/ErsatzTV/ErsatzTV.csproj index 20b03f4db..a53166854 100644 --- a/ErsatzTV/ErsatzTV.csproj +++ b/ErsatzTV/ErsatzTV.csproj @@ -55,7 +55,7 @@ - +