From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yann E. MORIN Date: Tue, 20 Jun 2017 18:00:37 +0200 Subject: [Buildroot] [PATCH 1/1] v4l2loopback: new package In-Reply-To: <1497905501-5946-1-git-send-email-alexandre.esse.dev@gmail.com> References: <1497905501-5946-1-git-send-email-alexandre.esse.dev@gmail.com> Message-ID: <20170620160037.GB2892@scaer> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: buildroot@busybox.net Alexandre, All, On 2017-06-19 22:51 +0200, Alexandre Esse spake thusly: > This package provides a kernel module and utilities in order to use > v4l2loopback virtual devices. > 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. Thank you for this contribution, it is very much interesting! :-) See some comments below... > Signed-off-by: Alexandre Esse > --- > DEVELOPERS | 1 + > package/Config.in | 1 + > package/v4l2loopback/Config.in | 23 +++++++++++++++++++++++ > package/v4l2loopback/v4l2loopback.hash | 2 ++ > package/v4l2loopback/v4l2loopback.mk | 19 +++++++++++++++++++ > 5 files changed, 46 insertions(+) > create mode 100644 package/v4l2loopback/Config.in > create mode 100644 package/v4l2loopback/v4l2loopback.hash > create mode 100644 package/v4l2loopback/v4l2loopback.mk > > diff --git a/DEVELOPERS b/DEVELOPERS > index afc4596..c9f3559 100644 > --- a/DEVELOPERS > +++ b/DEVELOPERS > @@ -66,6 +66,7 @@ F: package/tz/ > > N: Alexandre Esse > F: package/kvazaar/ > +F: package/v4l2loopback/ > > N: Alistair Francis > F: package/xen/ > diff --git a/package/Config.in b/package/Config.in > index 9df0b42..db6c197 100644 > --- a/package/Config.in > +++ b/package/Config.in > @@ -49,6 +49,7 @@ menu "Audio and video applications" > source "package/udpxy/Config.in" > source "package/upmpdcli/Config.in" > source "package/v4l2grab/Config.in" > + source "package/v4l2loopback/Config.in" > source "package/vlc/Config.in" > source "package/vorbis-tools/Config.in" > source "package/wavpack/Config.in" > diff --git a/package/v4l2loopback/Config.in b/package/v4l2loopback/Config.in > new file mode 100644 > index 0000000..157bd20 > --- /dev/null > +++ b/package/v4l2loopback/Config.in > @@ -0,0 +1,23 @@ > +config BR2_PACKAGE_V4L2LOOPBACK > + bool "v4l2loopback" > + help > + 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. So if I understand correctly, this is a kernel module, so you need to depend on a kernel being built: depends on BR2_LINUX_KERNEL > +if BR2_PACKAGE_V4L2LOOPBACK > + > +config BR2_PACKAGE_V4L2LOOPBACK_UTILS > + bool "v4l2loopback-utils" > + select BR2_PACKAGE_BASH #runtine dependency > + select BR2_PACKAGE_SUDO #runtime dependency Spurious two-space after tab. Besides, you can not select bash like that, because bash has dependencies, so you need to propagate those dependencies: depends on BR2_USE_MMU # bash select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # bash select BR2_PACKAGE_BASH See e.g. package/tovid/Config.in. So, because it has requirements, you need to add a comment stating why it may not be available: config BR2_PACKAGE_V4L2LOOPBACK bool "v4l2loopback" depends on BR2_LINUX_KERNEL help blablabla if BR2_PACKAGE_V4L2LOOPBACK config BR2_PACKAGE_V4L2LOOPBACK_UTILS bool "v4l2loopback-utils" depends on BR2_USE_MMU # bash select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # bash select BR2_PACKAGE_BASH endif comment "v4l2loopback needs a Linux kernel to be built" depends on !BR2_LINUX_KERNEL > + help > + This package contains applications to interact with > + v4l2-loopback devices ("virtual video devices"). > + Currently there is only a single command line utility: > + v4l2loopback-ctl: tool to set framerate, format and timeout > + image. > + > +endif > diff --git a/package/v4l2loopback/v4l2loopback.hash b/package/v4l2loopback/v4l2loopback.hash > new file mode 100644 > index 0000000..2b69fd7 > --- /dev/null > +++ b/package/v4l2loopback/v4l2loopback.hash > @@ -0,0 +1,2 @@ > +# Locally calculated > +sha256 9bb1e8d544019bead20813877415ae974fbc22f87c69772984a4abac433f36dd v4l2loopback-v0.10.0.tar.gz > diff --git a/package/v4l2loopback/v4l2loopback.mk b/package/v4l2loopback/v4l2loopback.mk > new file mode 100644 > index 0000000..2dec9c4 > --- /dev/null > +++ b/package/v4l2loopback/v4l2loopback.mk > @@ -0,0 +1,19 @@ > +################################################################################ > +# > +# v4l2loopback > +# > +################################################################################ > + > +V4L2LOOPBACK_VERSION = v0.10.0 > +V4L2LOOPBACK_SITE = $(call github,umlaeute,v4l2loopback,$(V4L2LOOPBACK_VERSION)) > +V4L2LOOPBACK_LICENSE = GPL-2.0 It is "version 2 of the License, or (at your option) any later version", so: GPL-2.0+ Regards, Yann E. MORIN. > +V4L2LOOPBACK_LICENSE_FILES = COPYING > + > +ifeq ($(BR2_PACKAGE_V4L2LOOPBACK_UTILS),y) > +define V4L2LOOPBACK_INSTALL_TARGET_CMDS > + $(INSTALL) -D -m 0755 $(@D)/utils/v4l2loopback-ctl $(TARGET_DIR)/usr/bin/v4l2loopback-ctl > +endef > +endif > + > +$(eval $(kernel-module)) > +$(eval $(generic-package)) > -- > 2.7.4 > > _______________________________________________ > buildroot mailing list > buildroot at busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'