Subject: [bug#38403] [PATCH] gnu: Add intel-vaapi-driver-g45-h264.

From: Jelle Licht <[email-masked]>
Date: Wed, 27 Nov 2019 17:59:02 +0100

Hey Guix,

I am not sure if this package offers any practical benefit or not, so I
defer to someone who actually knows what they are talking about to make
a judgment call ;-).

This variant of intel-vaapi-driver is a backport of the ancient g45-h264
branch that used to be maintained by the intel-vaapi-driver team. As far
as I know, the reason they don't maintain this branch anymore is that
hardware accelerated h264 decoding on the G45 chipset was much too slow
for 1080p video, as by default it only had 32MB of VRAM to work with.

It so happens that the librebooted Thinkpad T400 has one of these
G45-based iGPUs, with one change: the iGPU has 256MB VRAM
available. Using this package and a `hwdec=vaapi' setting in
~/.config/mpv/mpv.conf, I enjoy smooth video playback and low CPU usage
for 1080p video using mpv.

>From 8727588a6bca185f17480efc7327774b041e240d Mon Sep 17 00:00:00 2001
From: Jelle Licht <[email-masked]>
Date: Wed, 27 Nov 2019 16:16:47 +0100
Subject: [PATCH] gnu: Add intel-vaapi-driver-g45-h264.

* gnu/packages/video.scm (intel-vaapi-driver-g45-h264): New variable.
---
 gnu/packages/video.scm | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 9836f67386..5eb0c7175f 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -2787,6 +2787,35 @@ post-processing of video formats like MPEG2, H.264/AVC, and VC-1.")
     (license (list license:bsd-2        ; src/gen9_vp9_const_def.c
                    license:expat))))    ; the rest, excluding the test suite
 
+(define-public intel-vaapi-driver-g45-h264
+  (let ((base intel-vaapi-driver))
+    (package
+      (inherit base)
+      (name "intel-vaapi-driver-g45-h264")
+      (version "2.3.0")
+      (source (origin
+                (method url-fetch)
+                (uri
+                 (string-append
+                  "https://bitbucket.org/alium/g45-h264/downloads/intel-driver-g45-h264-"
+                  version ".tar.gz"))
+                (sha256
+                 (base32
+                  "0hf6h6754qf2sfhfq5i6pwn5dc06hjib6m05r8999ilbvrv4axar"))))
+      (arguments
+       (substitute-keyword-arguments (package-arguments base)
+         ((#:phases phases '%standard-phases)
+          `(modify-phases ,phases
+             (add-before 'bootstrap 'skip-premature-configure
+               (lambda _
+                 (setenv "NOCONFIGURE" "set")
+                 #t))))))
+      (native-inputs
+       `(("autoconf" ,autoconf)
+         ("automake" ,automake)
+         ("libtool" ,libtool)
+         ,@(package-native-inputs base))))))
+
 (define-public openh264
   (package
     (name "openh264")
-- 
2.24.0