Browse Source

Lowering the VRAM usage on NVDEC decoder

Nyanmisaka 3 years ago
parent
commit
4239f80c81
1 changed files with 2 additions and 5 deletions
  1. 2 5
      MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs

+ 2 - 5
MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs

@@ -771,10 +771,6 @@ namespace MediaBrowser.Controller.MediaEncoding
 
                 args.Append(GetCudaDeviceArgs(0, CudaAlias))
                      .Append(GetFilterHwDeviceArgs(CudaAlias));
-
-                // workaround for "No decoder surfaces left" error,
-                // but will increase vram usage. https://trac.ffmpeg.org/ticket/7562
-                args.Append(" -extra_hw_frames 3");
             }
             else if (string.Equals(optHwaccelType, "amf", StringComparison.OrdinalIgnoreCase))
             {
@@ -4431,7 +4427,8 @@ namespace MediaBrowser.Controller.MediaEncoding
             {
                 if (options.EnableEnhancedNvdecDecoder && isCudaSupported && isCodecAvailable)
                 {
-                    return " -hwaccel cuda" + (outputHwSurface ? " -hwaccel_output_format cuda" : string.Empty) + (isAv1 ? " -c:v av1" : string.Empty);
+                    // set -threads 1 to nvdec decoder explicitly since it doesn't implement threading support.
+                    return " -hwaccel cuda" + (outputHwSurface ? " -hwaccel_output_format cuda" : string.Empty) + " -threads 1" + (isAv1 ? " -c:v av1" : string.Empty);
                 }
             }