diff options
Diffstat (limited to 'nongnu/packages/video.scm')
-rw-r--r-- | nongnu/packages/video.scm | 122 |
1 files changed, 96 insertions, 26 deletions
diff --git a/nongnu/packages/video.scm b/nongnu/packages/video.scm index b7f9b5b..e5af3a1 100644 --- a/nongnu/packages/video.scm +++ b/nongnu/packages/video.scm @@ -1,34 +1,23 @@ -;;; GNU Guix --- Functional package management for GNU +;;; SPDX-License-Identifier: GPL-3.0-or-later ;;; Copyright © 2022 Jelle Licht <jlicht@fsfe.org> -;;; -;;; This file is not part of GNU Guix. -;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. +;;; 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 licenses) #:prefix license:)) + #:use-module (guix utils) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (nongnu packages chromium)) (define-public gmmlib (package (name "gmmlib") - (version "22.1.3") + (version "22.3.19") (source (origin (method git-fetch) (uri (git-reference @@ -37,7 +26,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "10gk8bi8xa2bgiqmjbphb9acvbmvgwv9kg0z75cfxazlsx5k7jb1")))) + "0p3wp6xcvpb4jzw4fsf6554qy91iblmq9y50ph3iy29m19q6nznb")))) (build-system cmake-build-system) (arguments ;; Tests are run as part of the normal build step @@ -53,7 +42,7 @@ for VAAPI.") (define-public intel-media-driver (package (name "intel-media-driver") - (version "22.2.2") + (version "24.1.5") (source (origin (method git-fetch) (uri (git-reference @@ -62,16 +51,16 @@ for VAAPI.") (file-name (git-file-name name version)) (sha256 (base32 - "1wvx3kvsdq7n5khl0pf7hf1ks4lwqnyjdq8sbjhd7irs3v3prj4j")))) + "1jm4imld48scj0j499wq5zbdjv4gg7hg2sawljqnjvy09dmp09bs")))) (build-system cmake-build-system) (inputs (list libva gmmlib)) (native-inputs (list pkg-config)) (arguments - '(#:tests? #f ;Tests are run as part of the normal build step - #:configure-flags - (list "-DENABLE_NONFREE_KERNELS=OFF" - (string-append "-DLIBVA_DRIVERS_PATH=" - (assoc-ref %outputs "out") "/lib/dri")))) + (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 @@ -86,3 +75,84 @@ for VAAPI.") 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.")))) |