mirror of
https://gitlab.com/nonguix/nonguix.git
synced 2024-11-23 00:48:08 +01:00
779ef9a393
* nongnu/packages/video.scm (obs-with-cef): New variable. Signed-off-by: Jonathan Brielmaier <jonathan.brielmaier@web.de>
158 lines
6.6 KiB
Scheme
158 lines
6.6 KiB
Scheme
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
|
;;; Copyright © 2022 Jelle Licht <jlicht@fsfe.org>
|
|
;;; Copyright © 2024 Oleg Pykhalov <go.wigust@gmail.com>
|
|
|
|
(define-module (nongnu packages video)
|
|
#:use-module (gnu packages pkg-config)
|
|
#:use-module (gnu packages video)
|
|
#:use-module (guix build utils)
|
|
#:use-module (guix build-system cmake)
|
|
#:use-module (guix gexp)
|
|
#:use-module (guix git-download)
|
|
#:use-module (guix packages)
|
|
#:use-module (guix utils)
|
|
#:use-module ((guix licenses) #:prefix license:)
|
|
#:use-module (nongnu packages chromium))
|
|
|
|
(define-public gmmlib
|
|
(package
|
|
(name "gmmlib")
|
|
(version "22.3.15")
|
|
(source (origin
|
|
(method git-fetch)
|
|
(uri (git-reference
|
|
(url "https://github.com/intel/gmmlib")
|
|
(commit (string-append "intel-gmmlib-" version))))
|
|
(file-name (git-file-name name version))
|
|
(sha256
|
|
(base32
|
|
"0qmdprqarqdz8z6s1av2vmd7ma5yaswxkxzdjci57fgyylqkjlri"))))
|
|
(build-system cmake-build-system)
|
|
(arguments
|
|
;; Tests are run as part of the normal build step
|
|
'(#:tests? #f))
|
|
(home-page "https://github.com/intel/gmmlib")
|
|
(synopsis "Intel Graphics Memory Management Library")
|
|
(description
|
|
"This package provides device specific and buffer management for the
|
|
Intel Graphics Compute Runtime for OpenCL and the Intel Media Driver
|
|
for VAAPI.")
|
|
(license license:expat)))
|
|
|
|
(define-public intel-media-driver
|
|
(package
|
|
(name "intel-media-driver")
|
|
(version "23.4.3")
|
|
(source (origin
|
|
(method git-fetch)
|
|
(uri (git-reference
|
|
(url "https://github.com/intel/media-driver")
|
|
(commit (string-append "intel-media-" version))))
|
|
(file-name (git-file-name name version))
|
|
(sha256
|
|
(base32
|
|
"0rgjakygfzy6d3jz38nnjvcvqyjnwz2b4vfh1ifqfcm3bw56fmr9"))))
|
|
(build-system cmake-build-system)
|
|
(inputs (list libva gmmlib))
|
|
(native-inputs (list pkg-config))
|
|
(arguments
|
|
(list #:tests? #f ;Tests are run as part of the normal build step
|
|
#:configure-flags
|
|
#~(list "-DENABLE_NONFREE_KERNELS=OFF"
|
|
(string-append "-DLIBVA_DRIVERS_PATH="
|
|
#$output "/lib/dri"))))
|
|
;; XXX Because of <https://issues.guix.gnu.org/issue/22138>, we need to add
|
|
;; this to all VA-API back ends instead of once to libva.
|
|
(native-search-paths
|
|
(list (search-path-specification
|
|
(variable "LIBVA_DRIVERS_PATH")
|
|
(files '("lib/dri")))))
|
|
(supported-systems '("i686-linux" "x86_64-linux"))
|
|
(home-page "https://github.com/intel/media-driver")
|
|
(synopsis "Intel Media Driver for VAAPI")
|
|
(description
|
|
"This package provides a VA-API user mode driver supporting hardware
|
|
accelerated decoding, encoding, and video post processing for the GEN based
|
|
graphics hardware.")
|
|
(license (list license:expat license:bsd-3))))
|
|
|
|
(define-public intel-media-driver/nonfree
|
|
(package
|
|
(inherit intel-media-driver)
|
|
(name "intel-media-driver-nonfree")
|
|
(arguments
|
|
(substitute-keyword-arguments (package-arguments intel-media-driver)
|
|
((#:configure-flags flags #~'())
|
|
#~(cons "-DENABLE_NONFREE_KERNELS=ON"
|
|
(delete "-DENABLE_NONFREE_KERNELS=OFF" #$flags)))))
|
|
(synopsis
|
|
(string-append
|
|
(package-synopsis intel-media-driver)
|
|
" with nonfree kernels"))
|
|
(description
|
|
(string-append
|
|
(package-description intel-media-driver)
|
|
" This build of intel-media-driver includes nonfree blobs to fully enable the
|
|
video decode capabilities of supported Intel GPUs."))))
|
|
|
|
(define-public obs-with-cef
|
|
(package
|
|
(inherit obs)
|
|
(name "obs-with-cef")
|
|
(inputs
|
|
(append (package-inputs obs)
|
|
`(("chromium-embedded-framework" ,chromium-embedded-framework))))
|
|
(arguments
|
|
(substitute-keyword-arguments (package-arguments obs)
|
|
((#:configure-flags flags)
|
|
#~(append #$flags
|
|
'("-DBUILD_BROWSER=ON"
|
|
"-DCEF_ROOT_DIR=../source/cef")))
|
|
((#:phases phases)
|
|
#~(modify-phases #$phases
|
|
(add-before 'configure 'add-cef
|
|
(lambda* (#:key inputs #:allow-other-keys)
|
|
(let ((chromium-embedded-framework
|
|
#$(this-package-input "chromium-embedded-framework")))
|
|
(mkdir-p "cef/Release")
|
|
(mkdir-p "cef/Resources")
|
|
(for-each (lambda (file)
|
|
(symlink file (string-append "cef/Release/"
|
|
(basename file)))
|
|
(symlink file (string-append "cef/Resources/"
|
|
(basename file))))
|
|
(filter
|
|
(lambda (file)
|
|
(not (string= (basename (dirname file))
|
|
"locales")))
|
|
(find-files
|
|
(string-append chromium-embedded-framework
|
|
"/share/cef"))))
|
|
(symlink (string-append chromium-embedded-framework
|
|
"/lib/libcef.so")
|
|
"cef/Release/libcef.so")
|
|
(mkdir-p "cef/libcef_dll_wrapper")
|
|
(symlink (string-append chromium-embedded-framework
|
|
"/lib/libcef_dll_wrapper.a")
|
|
"cef/libcef_dll_wrapper/libcef_dll_wrapper.a")
|
|
(symlink (string-append chromium-embedded-framework
|
|
"/include")
|
|
"cef/include"))))
|
|
(add-after 'install 'symlink-obs-browser
|
|
;; Required for lib/obs-plugins/obs-browser.so file.
|
|
(lambda* (#:key outputs #:allow-other-keys)
|
|
(symlink
|
|
(string-append #$output
|
|
"/lib/libobs-frontend-api.so.0")
|
|
(string-append #$output
|
|
"/lib/obs-plugins/libobs-frontend-api.so.0"))
|
|
(symlink
|
|
(string-append #$output
|
|
"/lib/libobs.so.0")
|
|
(string-append #$output
|
|
"/lib/obs-plugins/libobs.so.0"))))))))
|
|
(description
|
|
(string-append
|
|
(package-description obs)
|
|
" This build of OBS includes embeded Chromium-based browser to enable
|
|
Browser source."))))
|