v4l2loopback: update to 0.13.1

This commit is contained in:
Quincy Fleming 2024-03-23 13:02:38 -05:00 committed by Andrew Benson
parent 0f5554a1c8
commit a0dd29c53b
4 changed files with 3 additions and 140 deletions

View File

@ -1,37 +0,0 @@
From 3407c4262b1d72307a8106008874c112de1e3549 Mon Sep 17 00:00:00 2001
From: Rodrigo Oliveira <mdkcore@qtrnn.io>
Date: Thu, 20 Oct 2022 18:41:43 -0300
Subject: [PATCH 1/2] Backport PR #477 [1]
[1] https://github.com/umlaeute/v4l2loopback/pull/477/commits/3312a6d0461d6d2d82a411f26c34e380bd3cee27
---
v4l2loopback.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/v4l2loopback.c b/v4l2loopback.c
index 7e47a43..22e9795 100644
--- a/v4l2loopback.c
+++ b/v4l2loopback.c
@@ -2038,15 +2038,17 @@ static ssize_t v4l2_loopback_read(struct file *file, char __user *buf,
static ssize_t v4l2_loopback_write(struct file *file, const char __user *buf,
size_t count, loff_t *ppos)
{
+ struct v4l2_loopback_opener *opener;
struct v4l2_loopback_device *dev;
int write_index;
struct v4l2_buffer *b;
MARK();
dev = v4l2loopback_getdevice(file);
+ opener = fh_to_opener(file->private_data);
- /* there's at least one writer, so don'stop announcing output capabilities */
- dev->ready_for_output = 0;
+ if (WRITER != opener->type)
+ return -EINVAL;
if (!dev->ready_for_capture) {
int ret = allocate_buffers(dev);
--
2.38.1

View File

@ -1,68 +0,0 @@
From 40a880b4640486262ca0b5171dec88d633278366 Mon Sep 17 00:00:00 2001
From: Rodrigo Oliveira <mdkcore@qtrnn.io>
Date: Thu, 20 Oct 2022 18:44:11 -0300
Subject: [PATCH 2/2] Backport PR #485 [1]
[1] https://github.com/umlaeute/v4l2loopback/pull/485
---
v4l2loopback.c | 22 +++++++++++++++++++---
1 file changed, 19 insertions(+), 3 deletions(-)
diff --git a/v4l2loopback.c b/v4l2loopback.c
index 22e9795..1be694c 100644
--- a/v4l2loopback.c
+++ b/v4l2loopback.c
@@ -1730,19 +1730,19 @@ static int vidioc_streamon(struct file *file, void *fh, enum v4l2_buf_type type)
switch (type) {
case V4L2_BUF_TYPE_VIDEO_OUTPUT:
- opener->type = WRITER;
- dev->ready_for_output = 0;
if (!dev->ready_for_capture) {
int ret = allocate_buffers(dev);
if (ret < 0)
return ret;
+ opener->type = WRITER;
+ dev->ready_for_output = 0;
dev->ready_for_capture = 1;
}
return 0;
case V4L2_BUF_TYPE_VIDEO_CAPTURE:
- opener->type = READER;
if (!dev->ready_for_capture)
return -EIO;
+ opener->type = READER;
return 0;
default:
return -EINVAL;
@@ -2042,11 +2042,27 @@ static ssize_t v4l2_loopback_write(struct file *file, const char __user *buf,
struct v4l2_loopback_device *dev;
int write_index;
struct v4l2_buffer *b;
+ int err = 0;
+
MARK();
dev = v4l2loopback_getdevice(file);
opener = fh_to_opener(file->private_data);
+ if (UNNEGOTIATED == opener->type) {
+ spin_lock(&dev->lock);
+
+ if (dev->ready_for_output) {
+ err = vidioc_streamon(file, file->private_data, V4L2_BUF_TYPE_VIDEO_OUTPUT);
+ }
+
+ spin_unlock(&dev->lock);
+
+ if (err < 0)
+ return err;
+ }
+
+
if (WRITER != opener->type)
return -EINVAL;
--
2.38.1

View File

@ -1,33 +0,0 @@
From e7edf2f55b7eb71b69984110f3c8e31b8ac6285e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?=
<zmoelnig@umlautS.umlaeute.mur.at>
Date: Fri, 5 Aug 2022 18:42:22 +0200
Subject: [PATCH] Backported dkms-patch from Ubuntu
Closes: https://github.com/umlaeute/v4l2loopback/issues/498
---
dkms.conf | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/dkms.conf b/dkms.conf
index f697db2b..7d5ed75c 100644
--- a/dkms.conf
+++ b/dkms.conf
@@ -3,8 +3,15 @@ PACKAGE_VERSION="0.12.7"
if [ -f $kernel_source_dir/.config ]; then
. $kernel_source_dir/.config
- if [ "${CONFIG_VIDEO_V4L2:-n}" = "n" ]; then
- BUILD_EXCLUSIVE_KERNEL="REQUIRES CONFIG_VIDEO_V4L2"
+ if ! { echo "$kernelver"; echo 5.18; } | sort -V -C; then
+ # for linux>=5.18, CONFIG_VIDEO_V4L2 has been renamed to CONFIG_VIDEO_DEV
+ if [ "${CONFIG_VIDEO_DEV:-n}" = "n" ]; then
+ BUILD_EXCLUSIVE_KERNEL="REQUIRES CONFIG_VIDEO_DEV"
+ fi
+ else
+ if [ "${CONFIG_VIDEO_V4L2:-n}" = "n" ]; then
+ BUILD_EXCLUSIVE_KERNEL="REQUIRES CONFIG_VIDEO_V4L2"
+ fi
fi
fi

View File

@ -1,6 +1,6 @@
# Template file for 'v4l2loopback'
pkgname=v4l2loopback
version=0.12.7
version=0.13.1
revision=1
hostmakedepends="help2man"
depends="dkms"
@ -9,13 +9,14 @@ maintainer="John <me@johnnynator.dev>"
license="GPL-2.0-or-later"
homepage="https://github.com/umlaeute/v4l2loopback"
distfiles="https://github.com/umlaeute/v4l2loopback/archive/v${version}.tar.gz"
checksum=e0782b8abe8f2235e2734f725dc1533a0729e674c4b7834921ade43b9f04939b
checksum=39af7d134ec2d8602c6bb2d2977fde28fdb4db6497577ba36048152b02825fe3
dkms_modules="v4l2loopback ${version}"
do_install() {
make DESTDIR=${DESTDIR} PREFIX=/usr install-utils install-man
vmkdir usr/src/v4l2loopback-${version}
vcopy Makefile usr/src/v4l2loopback-${version}
vcopy Kbuild usr/src/v4l2loopback-${version}
vcopy dkms.conf usr/src/v4l2loopback-${version}
vcopy "*.c" usr/src/v4l2loopback-${version}
vcopy "*.h" usr/src/v4l2loopback-${version}