mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-01 23:28:08 -07:00
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:
1
media-plugins/gst-plugins-qt6/Manifest
Normal file
1
media-plugins/gst-plugins-qt6/Manifest
Normal file
@@ -0,0 +1 @@
|
||||
DIST gst-plugins-good-1.24.11.tar.xz 2937828 BLAKE2B 66d2f4ff4564d34a0cb26c6bd00d7dd933d7674a08ea8119e94c32f2088c8f3aebc006e4288309bb3c2b5862f44806f74395609f4c58f2d563247dd8acf4f49d SHA512 7b15baf2aa0aa72f469d0c44cc13a892b85e7d4e08d04c44bfeb0ff475aa274474adcf652ed4fb9bca22155d04afa47898a423d3b5844a9b597337a3ab46faed
|
||||
@@ -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
|
||||
|
||||
142
media-plugins/gst-plugins-qt6/gst-plugins-qt6-1.24.11.ebuild
Normal file
142
media-plugins/gst-plugins-qt6/gst-plugins-qt6-1.24.11.ebuild
Normal 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
|
||||
}
|
||||
11
media-plugins/gst-plugins-qt6/metadata.xml
Normal file
11
media-plugins/gst-plugins-qt6/metadata.xml
Normal 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>
|
||||
Reference in New Issue
Block a user