* update v4l-utils to 1.28.1-2
This commit is contained in:
parent
70e1312451
commit
b6b4f37fd1
@ -1,32 +1,35 @@
|
||||
pkgbase = v4l-utils
|
||||
pkgdesc = Userspace tools and conversion library for Video 4 Linux
|
||||
pkgver = 1.28.1
|
||||
pkgrel = 1
|
||||
pkgrel = 2
|
||||
url = https://linuxtv.org/
|
||||
arch = x86_64
|
||||
license = LGPL
|
||||
makedepends = qt5-base
|
||||
makedepends = qt6-base
|
||||
makedepends = qt6-5compat
|
||||
makedepends = alsa-lib
|
||||
makedepends = meson
|
||||
makedepends = clang
|
||||
makedepends = doxygen
|
||||
makedepends = libbpf
|
||||
depends = hicolor-icon-theme
|
||||
depends = gcc-libs
|
||||
depends = libbpf
|
||||
depends = libjpeg-turbo
|
||||
depends = systemd-libs
|
||||
depends = json-c
|
||||
optdepends = qt5-base: for qv4l2 and qvidcap
|
||||
optdepends = qt6-base: for qv4l2 and qvidcap
|
||||
optdepends = qt6-5compat: for qv4l2
|
||||
optdepends = alsa-lib: for qv4l2
|
||||
optdepends = libbpf: for ir-keytable
|
||||
provides = libv4l=1.28.1
|
||||
conflicts = libv4l
|
||||
replaces = libv4l
|
||||
backup = etc/rc_maps.cfg
|
||||
source = https://linuxtv.org/downloads/v4l-utils/v4l-utils-1.28.1.tar.xz
|
||||
source = https://linuxtv.org/downloads/v4l-utils/v4l-utils-1.28.1.tar.xz.asc
|
||||
source = v4l-utils-qt-6.7-compat.patch
|
||||
validpgpkeys = 05D0169C26E41593418129DF199A64FADFB500FF
|
||||
sha256sums = 0fa075ce59b6618847af6ea191b6155565ccaa44de0504581ddfed795a328a82
|
||||
sha256sums = SKIP
|
||||
sha256sums = 8f00f6af2ea090e472d1a4ac8c0aa824d8847894cdeb379a64b8bbef4c5d7ecc
|
||||
|
||||
pkgname = v4l-utils
|
||||
|
@ -2,7 +2,7 @@
|
||||
# Maintainer: Thomas Bächler <thomas@archlinux.org>
|
||||
pkgname=v4l-utils
|
||||
pkgver=1.28.1
|
||||
pkgrel=1.1
|
||||
pkgrel=2
|
||||
pkgdesc="Userspace tools and conversion library for Video 4 Linux"
|
||||
arch=(x86_64 powerpc64le powerpc64 powerpc riscv64)
|
||||
url="https://linuxtv.org/"
|
||||
@ -11,18 +11,26 @@ replaces=('libv4l')
|
||||
conflicts=('libv4l')
|
||||
backup=(etc/rc_maps.cfg)
|
||||
license=('LGPL')
|
||||
depends=('hicolor-icon-theme' 'gcc-libs' 'libjpeg-turbo' 'systemd-libs' 'json-c')
|
||||
makedepends=('qt5-base' 'alsa-lib' 'meson' 'clang' 'doxygen' 'libbpf')
|
||||
optdepends=('qt5-base: for qv4l2 and qvidcap' 'alsa-lib: for qv4l2' 'libbpf: for ir-keytable')
|
||||
source=(https://linuxtv.org/downloads/v4l-utils/${pkgname}-${pkgver}.tar.xz{,.asc})
|
||||
depends=('hicolor-icon-theme' 'gcc-libs' 'libbpf' 'libjpeg-turbo' 'systemd-libs' 'json-c')
|
||||
makedepends=('qt6-base' 'qt6-5compat' 'alsa-lib' 'meson' 'clang' 'doxygen')
|
||||
optdepends=('qt6-base: for qv4l2 and qvidcap'
|
||||
'qt6-5compat: for qv4l2'
|
||||
'alsa-lib: for qv4l2')
|
||||
source=(https://linuxtv.org/downloads/v4l-utils/${pkgname}-${pkgver}.tar.xz{,.asc}
|
||||
v4l-utils-qt-6.7-compat.patch)
|
||||
sha256sums=('0fa075ce59b6618847af6ea191b6155565ccaa44de0504581ddfed795a328a82'
|
||||
'SKIP')
|
||||
'SKIP'
|
||||
'8f00f6af2ea090e472d1a4ac8c0aa824d8847894cdeb379a64b8bbef4c5d7ecc')
|
||||
validpgpkeys=('05D0169C26E41593418129DF199A64FADFB500FF') # Gregor Jasny <gjasny@googlemail.com>
|
||||
|
||||
prepare() {
|
||||
# HACK: inform upstream to make this configurable
|
||||
cd "${pkgname}-${pkgver}"
|
||||
sed -i 's/sbin/bin/' utils/v4l2-dbg/meson.build
|
||||
|
||||
# Fix compatibility with Qt >= 6.7
|
||||
# https://github.com/gjasny/v4l-utils/commit/cb8d855fad89b89044bb5ae3812f86a6578d4955
|
||||
patch -Np1 -i ../v4l-utils-qt-6.7-compat.patch
|
||||
}
|
||||
|
||||
build() {
|
||||
|
51
v4l-utils/v4l-utils-qt-6.7-compat.patch
Normal file
51
v4l-utils/v4l-utils-qt-6.7-compat.patch
Normal file
@ -0,0 +1,51 @@
|
||||
From cb8d855fad89b89044bb5ae3812f86a6578d4955 Mon Sep 17 00:00:00 2001
|
||||
From: Hans Verkuil <hverkuil@xs4all.nl>
|
||||
Date: Thu, 7 Nov 2024 16:54:51 +0100
|
||||
Subject: [PATCH] qv4l2/qvidcap: bind shader program in paintGL()
|
||||
|
||||
Starting in Qt 6.7.0, vertex buffers and shader programs are unbound
|
||||
just before calling QOpenGLWidget::paintGL(). In the case of qv4l2
|
||||
and qvidcap this means that in order to stay compatible with Qt 6.7
|
||||
the shader program has to be bound in paintGL each time, otherwise
|
||||
nothing would be rendered.
|
||||
|
||||
In the case of qv4l2 it would still render (although I am not quite
|
||||
sure how), but it would generate openGL errors, and in the case of
|
||||
qvidcap nothing would be shown after the first frame was rendered.
|
||||
|
||||
Adding the extra bind calls fixes this issue.
|
||||
|
||||
Many thanks to Laurent Pinchart for pointing me to a similar fix in
|
||||
libcamera.
|
||||
|
||||
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
|
||||
---
|
||||
utils/qv4l2/capture-win-gl.cpp | 1 +
|
||||
utils/qvidcap/paint.cpp | 2 ++
|
||||
2 files changed, 3 insertions(+)
|
||||
|
||||
diff --git a/utils/qv4l2/capture-win-gl.cpp b/utils/qv4l2/capture-win-gl.cpp
|
||||
index 5b635eb7e..5558365d0 100644
|
||||
--- a/utils/qv4l2/capture-win-gl.cpp
|
||||
+++ b/utils/qv4l2/capture-win-gl.cpp
|
||||
@@ -622,6 +622,7 @@ void CaptureWinGLEngine::paintGL()
|
||||
|
||||
if (m_formatChange)
|
||||
changeShader();
|
||||
+ m_shaderProgram.bind();
|
||||
|
||||
if (m_frameData == NULL) {
|
||||
paintFrame();
|
||||
diff --git a/utils/qvidcap/paint.cpp b/utils/qvidcap/paint.cpp
|
||||
index 0246de60e..8c62bcbde 100644
|
||||
--- a/utils/qvidcap/paint.cpp
|
||||
+++ b/utils/qvidcap/paint.cpp
|
||||
@@ -116,6 +116,8 @@ void CaptureWin::paintGL()
|
||||
if (!supportedFmt(m_v4l_fmt.g_pixelformat()))
|
||||
return;
|
||||
|
||||
+ m_program->bind();
|
||||
+
|
||||
switch (m_v4l_fmt.g_pixelformat()) {
|
||||
case V4L2_PIX_FMT_YUYV:
|
||||
case V4L2_PIX_FMT_YVYU:
|
Loading…
x
Reference in New Issue
Block a user