media-plugins/gst-plugins-qt6: add 1.24.11 as standalone package

... temporarily, not using gstreamer-meson.eclass until necessary
no-multilib compatibility changes are made.

See also: https://github.com/gentoo/gentoo/pull/42781
Closes: https://bugs.gentoo.org/810814
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
This commit is contained in:
Andreas Sturmlechner
2025-07-09 19:38:23 +02:00
parent bd83a27e88
commit ccc0e75d6f
4 changed files with 295 additions and 0 deletions

View File

@@ -0,0 +1 @@
DIST gst-plugins-good-1.24.11.tar.xz 2937828 BLAKE2B 66d2f4ff4564d34a0cb26c6bd00d7dd933d7674a08ea8119e94c32f2088c8f3aebc006e4288309bb3c2b5862f44806f74395609f4c58f2d563247dd8acf4f49d SHA512 7b15baf2aa0aa72f469d0c44cc13a892b85e7d4e08d04c44bfeb0ff475aa274474adcf652ed4fb9bca22155d04afa47898a423d3b5844a9b597337a3ab46faed

View File

@@ -0,0 +1,141 @@
https://mail.kde.org/pipermail/release-team/2025-June/013691.html
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9226
From ae57ec2ebbbbac9de40dd36e2ed54b12fe7ed869 Mon Sep 17 00:00:00 2001
From: Aleix Pol <aleixpol@kde.org>
Date: Mon, 26 May 2025 23:51:16 +0200
Subject: [PATCH] qml6glitem,qtitem: Allow configuring if the item will consume
input events
At the moment we are always accepting the input events to forward into
GStreamer infrastructure. This works but we might have other uses for
such events elsewhere in the QtQuick scene so allow opting out to this
behaviour.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9226>
---
ext/qt6/qt6glitem.cc | 22 +++++++++++++++++--
ext/qt6/qt6glitem.h | 9 +++++++-
2 files changed, 28 insertions(+), 3 deletions(-)
diff --git a/ext/qt6/qt6glitem.cc b/ext/qt6/qt6glitem.cc
index 971a027de969..d1d89c3fd7f3 100644
--- a/ext/qt6/qt6glitem.cc
+++ b/ext/qt6/qt6glitem.cc
@@ -193,6 +193,16 @@ Qt6GLVideoItem::setForceAspectRatio(bool force_aspect_ratio)
emit forceAspectRatioChanged(force_aspect_ratio);
}
+void
+Qt6GLVideoItem::setAcceptEvents(bool accept)
+{
+ if (accept == acceptEvents)
+ return;
+
+ acceptEvents = accept;
+ Q_EMIT acceptEventsChanged(acceptEvents);
+}
+
bool
Qt6GLVideoItem::getForceAspectRatio()
{
@@ -487,18 +497,22 @@ Qt6GLVideoItem::wheelEvent(QWheelEvent * event)
g_object_unref (element);
}
g_mutex_unlock (&this->priv->lock);
+
+ event->setAccepted(acceptEvents);
}
void
-Qt6GLVideoItem::hoverEnterEvent(QHoverEvent *)
+Qt6GLVideoItem::hoverEnterEvent(QHoverEvent *event)
{
mouseHovering = true;
+ event->setAccepted(acceptEvents);
}
void
-Qt6GLVideoItem::hoverLeaveEvent(QHoverEvent *)
+Qt6GLVideoItem::hoverLeaveEvent(QHoverEvent *event)
{
mouseHovering = false;
+ event->setAccepted(acceptEvents);
}
void
@@ -527,6 +541,7 @@ Qt6GLVideoItem::hoverMoveEvent(QHoverEvent * event)
}
}
g_mutex_unlock (&this->priv->lock);
+ event->setAccepted(acceptEvents);
}
void
@@ -589,6 +604,7 @@ Qt6GLVideoItem::touchEvent(QTouchEvent * event)
g_object_unref (element);
g_mutex_unlock (&this->priv->lock);
+ event->setAccepted(acceptEvents);
}
void
@@ -641,12 +657,14 @@ Qt6GLVideoItem::mousePressEvent(QMouseEvent * event)
{
forceActiveFocus();
sendMouseEvent(event, TRUE);
+ event->setAccepted(acceptEvents);
}
void
Qt6GLVideoItem::mouseReleaseEvent(QMouseEvent * event)
{
sendMouseEvent(event, FALSE);
+ event->setAccepted(acceptEvents);
}
void
diff --git a/ext/qt6/qt6glitem.h b/ext/qt6/qt6glitem.h
index bfe28a1fc606..886a4a221f54 100644
--- a/ext/qt6/qt6glitem.h
+++ b/ext/qt6/qt6glitem.h
@@ -73,7 +73,10 @@ class Qt6GLVideoItem : public QQuickItem, protected QOpenGLFunctions
READ getForceAspectRatio
WRITE setForceAspectRatio
NOTIFY forceAspectRatioChanged)
-
+ Q_PROPERTY(bool acceptEvents
+ READ getAcceptEvents
+ WRITE setAcceptEvents
+ NOTIFY acceptEventsChanged)
public:
Qt6GLVideoItem();
~Qt6GLVideoItem();
@@ -83,6 +86,8 @@ public:
void setForceAspectRatio(bool);
bool getForceAspectRatio();
bool itemInitialized();
+ bool getAcceptEvents() const { return acceptEvents; }
+ void setAcceptEvents(bool accept);
QSharedPointer<Qt6GLVideoItemInterface> getInterface() { return proxy; };
/* private for C interface ... */
@@ -91,6 +96,7 @@ public:
Q_SIGNALS:
void itemInitializedChanged();
void forceAspectRatioChanged(bool);
+ void acceptEventsChanged(bool acceptEvents);
private Q_SLOTS:
void handleWindowChanged(QQuickWindow * win);
@@ -120,6 +126,7 @@ private:
quint32 mousePressedButton;
bool mouseHovering;
+ bool acceptEvents = true;
QSharedPointer<Qt6GLVideoItemInterface> proxy;
};
--
GitLab

View File

@@ -0,0 +1,142 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
GST_ORG_MODULE=gst-plugins-good
PYTHON_COMPAT=( python3_{11..13} )
inherit meson python-any-r1 xdg-utils
DESCRIPTION="Qt6 QML video sink plugin for GStreamer"
HOMEPAGE="https://gstreamer.freedesktop.org/"
SRC_URI="https://gstreamer.freedesktop.org/src/${GST_ORG_MODULE}/${GST_ORG_MODULE}-${PV}.tar.xz"
S="${WORKDIR}/${GST_ORG_MODULE}-${PV}"
LICENSE="GPL-2"
SLOT="1.0"
KEYWORDS="~amd64"
IUSE="X"
RESTRICT="test"
DEPEND="
dev-qt/qtbase:6=[gui,opengl,wayland,X?]
dev-qt/qtdeclarative:6[opengl]
>=media-libs/gst-plugins-base-${PV}:${SLOT}[opengl,wayland,X?]
"
RDEPEND="${DEPEND}
>=dev-libs/glib-2.64.0:2
>=media-libs/gstreamer-$(ver_cut 1-2):${SLOT}
>=media-libs/${GST_ORG_MODULE}-${PV}:${SLOT}
"
RDEPEND+=" || ( >=dev-qt/qtbase-6.10:6[wayland] <dev-qt/qtwayland-6.10:6 )"
BDEPEND="${PYTHON_DEPS}
app-arch/xz-utils
virtual/perl-JSON-PP
virtual/pkgconfig
"
PATCHES=( "${FILESDIR}/${P}-kamoso.patch" ) # in >=1.26.3, bug #958983
src_configure() {
xdg_environment_reset
local emesonargs=(
$(meson_feature X qt-x11)
-Dqt-egl=disabled
-Dqt-wayland=enabled
# disable all else:
-Dalpha=disabled
-Dapetag=disabled
-Daudiofx=disabled
-Daudioparsers=disabled
-Dauparse=disabled
-Dautodetect=disabled
-Davi=disabled
-Dcutter=disabled
-Ddebugutils=disabled
-Ddeinterlace=disabled
-Ddtmf=disabled
-Deffectv=disabled
-Dequalizer=disabled
-Dflv=disabled
-Dflx=disabled
-Dgoom=disabled
-Dgoom2k1=disabled
-Dicydemux=disabled
-Did3demux=disabled
-Dimagefreeze=disabled
-Dinterleave=disabled
-Disomp4=disabled
-Dlaw=disabled
-Dlevel=disabled
-Dmatroska=disabled
-Dmonoscope=disabled
-Dmultifile=disabled
-Dmultipart=disabled
-Dreplaygain=disabled
-Drtp=disabled
-Drtpmanager=disabled
-Drtsp=disabled
-Dshapewipe=disabled
-Dsmpte=disabled
-Dspectrum=disabled
-Dudp=disabled
-Dvideobox=disabled
-Dvideocrop=disabled
-Dvideofilter=disabled
-Dvideomixer=disabled
-Dwavenc=disabled
-Dwavparse=disabled
-Dxingmux=disabled
-Dy4m=disabled
-Dadaptivedemux2=disabled
-Daalib=disabled
-Damrnb=disabled
-Damrwbdec=disabled
-Dbz2=disabled
-Dcairo=disabled
-Ddirectsound=disabled
-Ddv=disabled
-Ddv1394=disabled
-Dflac=disabled
-Dgdk-pixbuf=disabled
-Dgtk3=disabled
-Djack=disabled
-Djpeg=disabled
-Dlame=disabled
-Dlibcaca=disabled
-Dmpg123=disabled
-Doss=disabled
-Doss4=disabled
-Dosxaudio=disabled
-Dosxvideo=disabled
-Dpng=disabled
-Dpulse=disabled
-Dshout2=disabled
-Dspeex=disabled
-Dtaglib=disabled
-Dtwolame=disabled
-Dvpx=disabled
-Dwaveform=disabled
-Dwavpack=disabled
-Dqt5=disabled
-Dqt6=enabled
-Dsoup=disabled
-Dv4l2=disabled
-Dximagesrc=disabled
-Dorc=disabled
-Dexamples=disabled
-Dpackage-name="Gentoo GStreamer ebuild"
-Dpackage-origin="https://www.gentoo.org"
)
meson_src_configure
}
src_compile () {
meson_src_compile ext/qt6/libgstqml6.so
}
src_install () {
insinto /usr/$(get_libdir)/gstreamer-1.0
doins "${BUILD_DIR}"/ext/qt6/libgstqml6.so
}

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>kde@gentoo.org</email>
<name>Gentoo KDE Project</name>
</maintainer>
<upstream>
<remote-id type="freedesktop-gitlab">gstreamer/gstreamer</remote-id>
</upstream>
</pkgmetadata>