commit: 26ad2f1710c521c5ce3388c97039ad1a34da4b03 Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> AuthorDate: Wed Jul 9 17:38:23 2025 +0000 Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> CommitDate: Wed Jul 9 17:46:06 2025 +0000 URL: https://gitweb.gentoo.org/proj/kde.git/commit/?id=26ad2f17
media-plugins/gst-plugins-qt6: add 1.24.11 temporarily as standalone pkg ... not using gstreamer-meson.eclass until necessary changes hit ::gentoo. Bug: https://bugs.gentoo.org/810814 Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org> .../files/gst-plugins-qt6-1.24.11-kamoso.patch | 141 +++++++++++++++++++++ .../gst-plugins-qt6/gst-plugins-qt6-1.24.11.ebuild | 60 +++++++++ media-plugins/gst-plugins-qt6/metadata.xml | 11 ++ profiles/categories | 1 + 4 files changed, 213 insertions(+) diff --git a/media-plugins/gst-plugins-qt6/files/gst-plugins-qt6-1.24.11-kamoso.patch b/media-plugins/gst-plugins-qt6/files/gst-plugins-qt6-1.24.11-kamoso.patch new file mode 100644 index 0000000000..365f9676bd --- /dev/null +++ b/media-plugins/gst-plugins-qt6/files/gst-plugins-qt6-1.24.11-kamoso.patch @@ -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 <[email protected]> +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 + diff --git a/media-plugins/gst-plugins-qt6/gst-plugins-qt6-1.24.11.ebuild b/media-plugins/gst-plugins-qt6/gst-plugins-qt6-1.24.11.ebuild new file mode 100644 index 0000000000..646c8a4f29 --- /dev/null +++ b/media-plugins/gst-plugins-qt6/gst-plugins-qt6-1.24.11.ebuild @@ -0,0 +1,60 @@ +# 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/pkgconfig + virtual/perl-JSON-PP +" + +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 -Ddv 1394=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 +} diff --git a/media-plugins/gst-plugins-qt6/metadata.xml b/media-plugins/gst-plugins-qt6/metadata.xml new file mode 100644 index 0000000000..0860df6049 --- /dev/null +++ b/media-plugins/gst-plugins-qt6/metadata.xml @@ -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>[email protected]</email> + <name>Gentoo KDE Project</name> + </maintainer> + <upstream> + <remote-id type="freedesktop-gitlab">gstreamer/gstreamer</remote-id> + </upstream> +</pkgmetadata> diff --git a/profiles/categories b/profiles/categories index e5ed1db0bd..38feb7e9f7 100644 --- a/profiles/categories +++ b/profiles/categories @@ -23,6 +23,7 @@ kde-misc kde-plasma media-gfx media-libs +media-plugins media-sound media-video net-im
