summaryrefslogtreecommitdiff
path: root/nongnu/packages
diff options
context:
space:
mode:
authorHilton Chain <hako@ultrarare.space>2026-04-13 16:54:27 +0800
committerHilton Chain <hako@ultrarare.space>2026-04-16 23:01:33 +0800
commit3af03293acbab1f7b5b7e1c3285bf9e4c3e97236 (patch)
treeda879e925557f986d8452b751887a3ab3add3d92 /nongnu/packages
parent4f0a0c8956cba9f103071d3552f25f2e15e06612 (diff)
nongnu: ffmpeg/nvidia: Expose variants in command-line interface.
* nongnu/packages/nvidia.scm (define-ffmpeg-nvidia): New macro. (ffmpeg/nvidia-390, ffmpeg/nvidia-470, ffmpeg/nvidia-580, ffmpeg/nvidia-590) (ffmpeg/nvidia-595, ffmpeg/nvidia-beta, ffmpeg-6/nvidia-390) (ffmpeg-6/nvidia-470, ffmpeg-6/nvidia-580, ffmpeg-6/nvidia-590) (ffmpeg-6/nvidia-595, ffmpeg-6/nvidia-beta): Define using it. (ffmpeg/nvidia): Alias to ffmpeg/nvidia-580. (ffmpeg-6/nvidia): Alias to ffmpeg-6/nvidia-580. (ffmpeg-nvidia-user-alias-390, ffmpeg-nvidia-user-alias-470) (ffmpeg-nvidia-user-alias-580, ffmpeg-nvidia-user-alias-590) (ffmpeg-nvidia-user-alias-595, ffmpeg-nvidia-user-alias-beta) (ffmpeg-6-nvidia-user-alias-390, ffmpeg-6-nvidia-user-alias-470) (ffmpeg-6-nvidia-user-alias-580, ffmpeg-6-nvidia-user-alias-590) (ffmpeg-6-nvidia-user-alias-595, ffmpeg-6-nvidia-user-alias-beta): New variables. * README.org (Package variants for NVIDIA proprietary driver): Update.
Diffstat (limited to 'nongnu/packages')
-rw-r--r--nongnu/packages/nvidia.scm141
1 files changed, 74 insertions, 67 deletions
diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm
index be59ec4..72b32c7 100644
--- a/nongnu/packages/nvidia.scm
+++ b/nongnu/packages/nvidia.scm
@@ -1641,76 +1641,83 @@ support. For dependency of other packages, use @code{nvidia-driver} instead.")
heroic-nvidia-beta
(package-version nvidia-driver-beta))
-(define-public ffmpeg/nvidia
- (hidden-package
- (package
- (inherit ffmpeg)
- (name "ffmpeg-nvidia")
- (inputs
- (modify-inputs inputs
- (prepend nv-codec-headers)))
- (arguments
- (substitute-keyword-arguments arguments
- ((#:configure-flags flags)
- ;; Currently only interested in NVENC.
- ;; Might be better to make a ffmpeg-nonfree with all nonfree codecs
- ;; in the future.
- #~(cons* "--enable-cuvid"
- "--enable-ffnvcodec"
- "--enable-encoder=hevc_nvenc"
- "--enable-encoder=h264_nvenc"
- #$flags))))
- (description
- (string-append
- (package-description ffmpeg)
- " This build of FFmpeg includes the nonfree NVIDIA encoder for
-@code{h264_nvenc} and @code{hevc_nvenc} hardware encoding on NVIDIA GPUs.")))))
+(define-syntax define-ffmpeg-nvidia
+ (syntax-rules ()
+ ((_ name ffmpeg driver)
+ (define-public name
+ (hidden-package
+ ((replace-nvidia-driver driver)
+ (package
+ (inherit ffmpeg)
+ (inputs
+ (modify-inputs inputs
+ (prepend nv-codec-headers)))
+ (arguments
+ (substitute-keyword-arguments arguments
+ ((#:configure-flags flags)
+ #~(cons* "--enable-cuvid"
+ "--enable-ffnvcodec"
+ "--enable-encoder=hevc_nvenc"
+ "--enable-encoder=h264_nvenc"
+ #$flags)))))))))
+ ((_ name alias ffmpeg-nvidia alias-version)
+ (define-public name
+ (package
+ (inherit (package-with-alias alias ffmpeg-nvidia))
+ (version alias-version))))))
-(define-public ffmpeg-6/nvidia
- (hidden-package
- (package
- (inherit ffmpeg-6)
- (inputs
- (modify-inputs inputs
- (prepend nv-codec-headers)))
- (arguments
- (substitute-keyword-arguments arguments
- ((#:configure-flags flags)
- ;; Currently only interested in NVENC.
- ;; Might be better to make a ffmpeg-nonfree with all nonfree codecs
- ;; in the future.
- #~(cons* "--enable-cuvid"
- "--enable-ffnvcodec"
- "--enable-encoder=hevc_nvenc"
- "--enable-encoder=h264_nvenc"
- #$flags))))
- (description (package-description ffmpeg/nvidia)))))
+(define-ffmpeg-nvidia ffmpeg/nvidia-390 ffmpeg nvda-390)
+(define-ffmpeg-nvidia ffmpeg/nvidia-470 ffmpeg nvda-470)
+(define-ffmpeg-nvidia ffmpeg/nvidia-580 ffmpeg nvda-580)
+(define-ffmpeg-nvidia ffmpeg/nvidia-590 ffmpeg nvda-590)
+(define-ffmpeg-nvidia ffmpeg/nvidia-595 ffmpeg nvda-595)
+(define-ffmpeg-nvidia ffmpeg/nvidia-beta ffmpeg nvda-beta)
+(define-public ffmpeg/nvidia ffmpeg/nvidia-580)
-(define-public ffmpeg/nvidia-390
- ((replace-nvidia-driver nvda-390) ffmpeg/nvidia))
-(define-public ffmpeg/nvidia-470
- ((replace-nvidia-driver nvda-470) ffmpeg/nvidia))
-(define-public ffmpeg/nvidia-580
- ((replace-nvidia-driver nvda-580) ffmpeg/nvidia))
-(define-public ffmpeg/nvidia-590
- ((replace-nvidia-driver nvda-590) ffmpeg/nvidia))
-(define-public ffmpeg/nvidia-595
- ((replace-nvidia-driver nvda-595) ffmpeg/nvidia))
-(define-public ffmpeg/nvidia-beta
- ((replace-nvidia-driver nvda-beta) ffmpeg/nvidia))
-(define-public ffmpeg-6/nvidia-390
- ((replace-nvidia-driver nvda-390) ffmpeg/nvidia))
-(define-public ffmpeg-6/nvidia-470
- ((replace-nvidia-driver nvda-470) ffmpeg/nvidia))
-(define-public ffmpeg-6/nvidia-580
- ((replace-nvidia-driver nvda-580) ffmpeg/nvidia))
-(define-public ffmpeg-6/nvidia-590
- ((replace-nvidia-driver nvda-590) ffmpeg/nvidia))
-(define-public ffmpeg-6/nvidia-595
- ((replace-nvidia-driver nvda-595) ffmpeg/nvidia))
-(define-public ffmpeg-6/nvidia-beta
- ((replace-nvidia-driver nvda-beta) ffmpeg/nvidia))
+(define-ffmpeg-nvidia ffmpeg-6/nvidia-390 ffmpeg-6 nvda-390)
+(define-ffmpeg-nvidia ffmpeg-6/nvidia-470 ffmpeg-6 nvda-470)
+(define-ffmpeg-nvidia ffmpeg-6/nvidia-580 ffmpeg-6 nvda-580)
+(define-ffmpeg-nvidia ffmpeg-6/nvidia-590 ffmpeg-6 nvda-590)
+(define-ffmpeg-nvidia ffmpeg-6/nvidia-595 ffmpeg-6 nvda-595)
+(define-ffmpeg-nvidia ffmpeg-6/nvidia-beta ffmpeg-6 nvda-beta)
+(define-public ffmpeg-6/nvidia ffmpeg-6/nvidia-580)
+(define-ffmpeg-nvidia ffmpeg-nvidia-user-alias-390 "ffmpeg-nvidia"
+ ffmpeg/nvidia-390
+ (package-version nvidia-driver-390))
+(define-ffmpeg-nvidia ffmpeg-nvidia-user-alias-470 "ffmpeg-nvidia"
+ ffmpeg/nvidia-470
+ (package-version nvidia-driver-470))
+(define-ffmpeg-nvidia ffmpeg-nvidia-user-alias-580 "ffmpeg-nvidia"
+ ffmpeg/nvidia-580
+ (package-version nvidia-driver-580))
+(define-ffmpeg-nvidia ffmpeg-nvidia-user-alias-590 "ffmpeg-nvidia"
+ ffmpeg/nvidia-590
+ (package-version nvidia-driver-590))
+(define-ffmpeg-nvidia ffmpeg-nvidia-user-alias-595 "ffmpeg-nvidia"
+ ffmpeg/nvidia-595
+ (package-version nvidia-driver-595))
+(define-ffmpeg-nvidia ffmpeg-nvidia-user-alias-beta "ffmpeg-nvidia-beta"
+ ffmpeg/nvidia-beta
+ (package-version nvidia-driver-beta))
+(define-ffmpeg-nvidia ffmpeg-6-nvidia-user-alias-390 "ffmpeg-6-nvidia"
+ ffmpeg-6/nvidia-390
+ (package-version nvidia-driver-390))
+(define-ffmpeg-nvidia ffmpeg-6-nvidia-user-alias-470 "ffmpeg-6-nvidia"
+ ffmpeg-6/nvidia-470
+ (package-version nvidia-driver-470))
+(define-ffmpeg-nvidia ffmpeg-6-nvidia-user-alias-580 "ffmpeg-6-nvidia"
+ ffmpeg-6/nvidia-580
+ (package-version nvidia-driver-580))
+(define-ffmpeg-nvidia ffmpeg-6-nvidia-user-alias-590 "ffmpeg-6-nvidia"
+ ffmpeg-6/nvidia-590
+ (package-version nvidia-driver-590))
+(define-ffmpeg-nvidia ffmpeg-6-nvidia-user-alias-595 "ffmpeg-6-nvidia"
+ ffmpeg-6/nvidia-595
+ (package-version nvidia-driver-595))
+(define-ffmpeg-nvidia ffmpeg-6-nvidia-user-alias-beta "ffmpeg-6-nvidia-beta"
+ ffmpeg-6/nvidia-beta
+ (package-version nvidia-driver-beta))
(define* (replace-mesa obj #:key (driver nvda))
(let ((rebuild (replace-nvidia-driver driver)))