commit: ccc0e75d6ffe73bba47c7afb2afdd2bd15cec2e2 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 19:03:24 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ccc0e75d
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 <AT> gentoo.org> media-plugins/gst-plugins-qt6/Manifest | 1 + .../files/gst-plugins-qt6-1.24.11-kamoso.patch | 141 ++++++++++++++++++++ .../gst-plugins-qt6/gst-plugins-qt6-1.24.11.ebuild | 142 +++++++++++++++++++++ media-plugins/gst-plugins-qt6/metadata.xml | 11 ++ 4 files changed, 295 insertions(+) diff --git a/media-plugins/gst-plugins-qt6/Manifest b/media-plugins/gst-plugins-qt6/Manifest new file mode 100644 index 000000000000..cdd65c89f53a --- /dev/null +++ b/media-plugins/gst-plugins-qt6/Manifest @@ -0,0 +1 @@ +DIST gst-plugins-good-1.24.11.tar.xz 2937828 BLAKE2B 66d2f4ff4564d34a0cb26c6bd00d7dd933d7674a08ea8119e94c32f2088c8f3aebc006e4288309bb3c2b5862f44806f74395609f4c58f2d563247dd8acf4f49d SHA512 7b15baf2aa0aa72f469d0c44cc13a892b85e7d4e08d04c44bfeb0ff475aa274474adcf652ed4fb9bca22155d04afa47898a423d3b5844a9b597337a3ab46faed 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 000000000000..365f9676bd25 --- /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 000000000000..9c25fdf5e266 --- /dev/null +++ b/media-plugins/gst-plugins-qt6/gst-plugins-qt6-1.24.11.ebuild @@ -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 +} diff --git a/media-plugins/gst-plugins-qt6/metadata.xml b/media-plugins/gst-plugins-qt6/metadata.xml new file mode 100644 index 000000000000..0860df6049c5 --- /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>
