[PATCH] gnu: Add v4l2loopback-linux-module.

  • Done
  • quality assurance status badge
Details
2 participants
  • Morgan.J.Smith
  • Tobias Geerinckx-Rice
Owner
unassigned
Submitted by
Morgan.J.Smith
Severity
normal
M
M
Morgan.J.Smith wrote on 8 Jun 2020 05:49
(address . guix-patches@gnu.org)(name . Morgan Smith)(address . Morgan.J.Smith@outlook.com)
DM5PR1001MB21056EE80613C3F9FDFCA857C5850@DM5PR1001MB2105.namprd10.prod.outlook.com
From: Morgan Smith <Morgan.J.Smith@outlook.com>

* gnu/packages/linux.scm (v4l2loopback-linux-module): New variable.
---
gnu/packages/linux.scm | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)

Toggle diff (54 lines)
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index db03160085..20ba222790 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -43,6 +43,7 @@
;;; Copyright © 2020 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1134,6 +1135,39 @@ module allows the control of the backlight level or luminance property when
supported under @file{/sys/class/backlight/}.")
(license license:gpl2+)))
+(define-public v4l2loopback-linux-module
+ (package
+ (name "v4l2loopback-linux-module")
+ (version "0.12.5")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/umlaeute/v4l2loopback.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1qi4l6yam8nrlmc3zwkrz9vph0xsj1cgmkqci4652mbpbzigg7vn"))))
+ (build-system linux-module-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (invoke "make"
+ "--directory=./tests"
+ (string-append "CC=" ,(cc-for-target))))))))
+ (home-page "https://github.com/umlaeute/v4l2loopback")
+ (synopsis "Linux kernel module that allows you to create \"virtual video devices\"")
+ (description "This module allows you to create \"virtual video devices\"
+normal (v4l2) applications will read these devices as if they were ordinary
+video devices, but the video will not be read from e.g. a capture card but
+instead it is generated by another application. this allows you for instance
+to apply some nifty video effects on your Jitsi video... it also allows some
+more serious things (e.g. using it to add streaming capabilities to an
+application by the means of hooking GStreamer into the loopback devices).")
+ (license license:gpl2+)))
+
;;;
;;; Pluggable authentication modules (PAM).
--
2.26.2
T
T
Tobias Geerinckx-Rice wrote on 8 Jun 2020 10:37
(address . Morgan.J.Smith@outlook.com)
87lfkyq7fu.fsf@nckx
Morgan,

Morgan.J.Smith@outlook.com ???
Toggle quote (25 lines)
> + (package
> + (name "v4l2loopback-linux-module")
> + (version "0.12.5")
> + (source (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url
> "https://github.com/umlaeute/v4l2loopback.git")
> + (commit (string-append "v" version))))
> + (file-name (git-file-name name version))
> + (sha256
> + (base32
> +
> "1qi4l6yam8nrlmc3zwkrz9vph0xsj1cgmkqci4652mbpbzigg7vn"))))
> + (build-system linux-module-build-system)
> + (arguments
> + `(#:phases
> + (modify-phases %standard-phases
> + (replace 'check
> + (lambda _
> + (invoke "make"
> + "--directory=./tests"
> + (string-append "CC="
> ,(cc-for-target))))))))

This only builds the ‘test_dqbuf’ executable, but doesn't run it.
Trying to fails with:

usage: tests/test_dqbuf <videodevice>

i.e. it needs the kernel module to be loaded as we discussed on
IRC. That's the norm for kernel drivers. For obvious reasons,
loading them in the build environment isn't an option.

(Computers are magic and one could virtualise a kernel, similar to
what we do with Xvfb for X11 tests, but it would work only for
drivers that don't require any hardware and excuse me the word
‘overkill’ is knocking at the door.)

Toggle quote (4 lines)
> + (synopsis "Linux kernel module that allows you to create
> \"virtual video devices\"")

Life hack: s/that allows you//

Toggle quote (15 lines)
> + (description "This module allows you to create \"virtual
> video devices\"
> +normal (v4l2) applications will read these devices as if they
> were ordinary
> +video devices, but the video will not be read from e.g. a
> capture card but
> +instead it is generated by another application. this allows you
> for instance
> +to apply some nifty video effects on your Jitsi video... it
> also allows some
> +more serious things (e.g. using it to add streaming
> capabilities to an
> +application by the means of hooking GStreamer into the loopback
> devices).")

Double-spacing between sentences is mandatory in Texinfo, because
we are all boomers.

I was just about to push with the edits below, but… OK. Done
separately as fdcd193744dbb92d3478c8e4e6c4f4336a872831 et al.

Thanks!

T G-R
Toggle diff (36 lines)
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 3a8d45e20b..c40b33a0a9 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -1150,23 +1150,17 @@ supported under @file{/sys/class/backlight/}.")
(base32
"1qi4l6yam8nrlmc3zwkrz9vph0xsj1cgmkqci4652mbpbzigg7vn"))))
(build-system linux-module-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda _
- (invoke "make"
- "--directory=./tests"
- (string-append "CC=" ,(cc-for-target))))))))
(home-page "https://github.com/umlaeute/v4l2loopback")
- (synopsis "Linux kernel module that allows you to create \"virtual video devices\"")
- (description "This module allows you to create \"virtual video devices\"
-normal (v4l2) applications will read these devices as if they were ordinary
-video devices, but the video will not be read from e.g. a capture card but
-instead it is generated by another application. this allows you for instance
-to apply some nifty video effects on your Jitsi video... it also allows some
-more serious things (e.g. using it to add streaming capabilities to an
-application by the means of hooking GStreamer into the loopback devices).")
+ (synopsis "Linux kernel module to create virtual V4L2 video devices")
+ (description
+ "This Linux module creates virtual video devices. @acronym{V4L2, Video
+for Linux 2} applications will treat these as ordinary video devices but read
+video data generated by another application, instead of a hardware device such
+as a capture card.
+
+This lets you apply nifty effects to your Jitsi video, for example, but also
+allows some more serious things like adding streaming capabilities to an
+application by hooking GStreamer into the loopback device.")
(license license:gpl2+)))
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQT12iAyS4c9C3o4dnINsP+IT1VteQUCXt341QAKCRANsP+IT1Vt
efEZAP9Ma1rz80mnabX5ltqqUuvZ2leGi02YR6SGajT4uS1LCgEA+yxPT4JxRsY8
id2CegAYUw2TlNQqCNpCBAjB+BhKugs=
=pvMY
-----END PGP SIGNATURE-----

T
T
Tobias Geerinckx-Rice wrote on 8 Jun 2020 10:38
(no subject)
(address . control@debbugs.gnu.org)
87img2q7dw.fsf@nckx
close 41759
?