media-plugins/gst-plugins-qt5: new package

Dependency for >net-im/nheko-0.8.2.

Bug: https://bugs.gentoo.org/810814
Package-Manager: Portage-3.0.20, Repoman-3.0.2
Signed-off-by: Nicolas Werner <nicolas.werner@hotmail.de>
Signed-off-by: Ronny (tastytea) Gutbrod <gentoo@tastytea.de>
This commit is contained in:
Nicolas Werner
2021-07-26 00:40:31 +02:00
committed by Ronny (tastytea) Gutbrod
parent d0309b9ef6
commit cea32f337b
4 changed files with 303 additions and 0 deletions

View File

@@ -0,0 +1 @@
DIST gst-plugins-good-1.18.4.tar.xz 3277572 BLAKE2B 8acfb975d19eabc681184d0096328051a9a02e5f849599dbad1233a0e9254e1a2d2bef75d8afdc779a7ca01a71b15d1e83a843749c0ef5f7ab2b5818067ab898 SHA512 764c66383c93e57f9c5e7742002013e07e7b25750d6974d6c07744433e8ceb7570e829e68278e2bc5214f77158311a6b3bfb013d615cf66205d8d7a9e2d54b86

View File

@@ -0,0 +1,249 @@
From 612102fdbc3f813bf9d3406165692b5f742e51a6 Mon Sep 17 00:00:00 2001
From: Matthew Waters <matthew@centricular.com>
Date: Thu, 18 Mar 2021 19:52:53 +1100
Subject: [PATCH] gst: don't use volatile to mean atomic
volatile is not sufficient to provide atomic guarantees and real atomics
should be used instead. GCC 11 has started warning about using volatile
with atomic operations.
https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719
Discovered in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/868
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/911>
---
ext/jack/gstjack.c | 6 +++---
ext/jack/gstjackaudiosink.c | 2 +-
ext/jack/gstjackaudiosrc.c | 2 +-
ext/pulse/pulsesink.h | 2 +-
ext/qt/gstqsgtexture.cc | 2 +-
ext/qt/gstqtglutility.cc | 2 +-
ext/qt/qtglrenderer.cc | 6 +++---
ext/qt/qtitem.cc | 2 +-
ext/qt/qtwindow.cc | 4 ++--
ext/vpx/gstvpxdec.c | 2 +-
ext/vpx/gstvpxenc.c | 16 ++++++++--------
gst/audioparsers/gstac3parse.h | 2 +-
sys/rpicamsrc/gstrpicamsrc.c | 2 +-
sys/ximage/ximageutil.c | 2 +-
14 files changed, 26 insertions(+), 26 deletions(-)
diff --git a/ext/jack/gstjack.c b/ext/jack/gstjack.c
index ca98dc405..fdd507d87 100644
--- a/ext/jack/gstjack.c
+++ b/ext/jack/gstjack.c
@@ -28,7 +28,7 @@
GType
gst_jack_connect_get_type (void)
{
- static volatile gsize jack_connect_type = 0;
+ static gsize jack_connect_type = 0;
if (g_once_init_enter (&jack_connect_type)) {
static const GEnumValue jack_connect_enums[] = {
@@ -50,7 +50,7 @@ gst_jack_connect_get_type (void)
GType
gst_jack_transport_get_type (void)
{
- static volatile gsize type = 0;
+ static gsize type = 0;
if (g_once_init_enter (&type)) {
static const GFlagsValue flag_values[] = {
@@ -84,7 +84,7 @@ gst_jack_client_free (gpointer jclient)
GType
gst_jack_client_get_type (void)
{
- static volatile gsize jack_client_type = 0;
+ static gsize jack_client_type = 0;
if (g_once_init_enter (&jack_client_type)) {
/* hackish, but makes it show up nicely in gst-inspect */
diff --git a/ext/jack/gstjackaudiosink.c b/ext/jack/gstjackaudiosink.c
index ee7cea8c0..6e8d04ae5 100644
--- a/ext/jack/gstjackaudiosink.c
+++ b/ext/jack/gstjackaudiosink.c
@@ -131,7 +131,7 @@ gst_jack_audio_sink_free_channels (GstJackAudioSink * sink)
static GType
gst_jack_ring_buffer_get_type (void)
{
- static volatile gsize ringbuffer_type = 0;
+ static gsize ringbuffer_type = 0;
if (g_once_init_enter (&ringbuffer_type)) {
static const GTypeInfo ringbuffer_info = {
diff --git a/ext/jack/gstjackaudiosrc.c b/ext/jack/gstjackaudiosrc.c
index 1d2cf82ee..d43a447a7 100644
--- a/ext/jack/gstjackaudiosrc.c
+++ b/ext/jack/gstjackaudiosrc.c
@@ -151,7 +151,7 @@ gst_jack_audio_src_free_channels (GstJackAudioSrc * src)
static GType
gst_jack_ring_buffer_get_type (void)
{
- static volatile gsize ringbuffer_type = 0;
+ static gsize ringbuffer_type = 0;
if (g_once_init_enter (&ringbuffer_type)) {
static const GTypeInfo ringbuffer_info = { sizeof (GstJackRingBufferClass),
diff --git a/ext/pulse/pulsesink.h b/ext/pulse/pulsesink.h
index 86f3dcdbb..51ec86a25 100644
--- a/ext/pulse/pulsesink.h
+++ b/ext/pulse/pulsesink.h
@@ -72,7 +72,7 @@ struct _GstPulseSink
GstStructure *properties;
pa_proplist *proplist;
- volatile gint format_lost;
+ gint format_lost;
GstClockTime format_lost_time;
};
diff --git a/ext/qt/gstqsgtexture.cc b/ext/qt/gstqsgtexture.cc
index 1f0a2e6e1..00e2ddad0 100644
--- a/ext/qt/gstqsgtexture.cc
+++ b/ext/qt/gstqsgtexture.cc
@@ -35,7 +35,7 @@ GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
GstQSGTexture::GstQSGTexture ()
{
- static volatile gsize _debug;
+ static gsize _debug;
initializeOpenGLFunctions();
diff --git a/ext/qt/gstqtglutility.cc b/ext/qt/gstqtglutility.cc
index acb89b6e1..d2c092202 100644
--- a/ext/qt/gstqtglutility.cc
+++ b/ext/qt/gstqtglutility.cc
@@ -66,7 +66,7 @@ gst_qt_get_gl_display ()
{
GstGLDisplay *display = NULL;
QGuiApplication *app = static_cast<QGuiApplication *> (QCoreApplication::instance ());
- static volatile gsize _debug;
+ static gsize _debug;
g_assert (app != NULL);
diff --git a/ext/qt/qtglrenderer.cc b/ext/qt/qtglrenderer.cc
index 2ad5601fc..52965fd0b 100644
--- a/ext/qt/qtglrenderer.cc
+++ b/ext/qt/qtglrenderer.cc
@@ -22,7 +22,7 @@ GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
static void
init_debug (void)
{
- static volatile gsize _debug;
+ static gsize _debug;
if (g_once_init_enter (&_debug)) {
GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "qtglrenderer", 0,
@@ -115,7 +115,7 @@ typedef enum
struct SharedRenderData
{
- volatile int refcount;
+ int refcount;
SharedRenderDataState state;
GMutex lock;
GCond cond;
@@ -130,7 +130,7 @@ shared_render_data_new (void)
{
struct SharedRenderData *ret = g_new0 (struct SharedRenderData, 1);
- ret->refcount = 1;
+ g_atomic_int_set (&ret->refcount, 1);
g_mutex_init (&ret->lock);
return ret;
diff --git a/ext/qt/qtitem.cc b/ext/qt/qtitem.cc
index 2869ea92b..da2b70190 100644
--- a/ext/qt/qtitem.cc
+++ b/ext/qt/qtitem.cc
@@ -112,7 +112,7 @@ void InitializeSceneGraph::run()
QtGLVideoItem::QtGLVideoItem()
{
- static volatile gsize _debug;
+ static gsize _debug;
if (g_once_init_enter (&_debug)) {
GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "qtglwidget", 0, "Qt GL Widget");
diff --git a/ext/qt/qtwindow.cc b/ext/qt/qtwindow.cc
index 9360c3337..7c44ac54e 100644
--- a/ext/qt/qtwindow.cc
+++ b/ext/qt/qtwindow.cc
@@ -103,7 +103,7 @@ QtGLWindow::QtGLWindow ( QWindow * parent, QQuickWindow *src ) :
QQuickWindow( parent ), source (src)
{
QGuiApplication *app = static_cast<QGuiApplication *> (QCoreApplication::instance ());
- static volatile gsize _debug;
+ static gsize _debug;
g_assert (app != NULL);
@@ -152,7 +152,7 @@ QtGLWindow::beforeRendering()
g_mutex_lock (&this->priv->lock);
- static volatile gsize once = 0;
+ static gsize once = 0;
if (g_once_init_enter(&once)) {
this->priv->start = QDateTime::currentDateTime().toMSecsSinceEpoch();
g_once_init_leave(&once,1);
diff --git a/ext/vpx/gstvpxdec.c b/ext/vpx/gstvpxdec.c
index 19a24870c..adf842813 100644
--- a/ext/vpx/gstvpxdec.c
+++ b/ext/vpx/gstvpxdec.c
@@ -79,7 +79,7 @@ gst_vpx_dec_post_processing_flags_get_type (void)
{C_FLAGS (VP8_MFQE), "Multi-frame quality enhancement", "mfqe"},
{0, NULL, NULL}
};
- static volatile GType id = 0;
+ static GType id = 0;
if (g_once_init_enter ((gsize *) & id)) {
GType _id;
diff --git a/gst/audioparsers/gstac3parse.h b/gst/audioparsers/gstac3parse.h
index 0e7af5acd..81e2104d5 100644
--- a/gst/audioparsers/gstac3parse.h
+++ b/gst/audioparsers/gstac3parse.h
@@ -62,7 +62,7 @@ struct _GstAc3Parse {
gint blocks;
gboolean eac;
gboolean sent_codec_tag;
- volatile gint align;
+ gint align;
GstPadChainFunction baseparse_chainfunc;
};
diff --git a/sys/rpicamsrc/gstrpicamsrc.c b/sys/rpicamsrc/gstrpicamsrc.c
index 2aa28f488..6ab601631 100644
--- a/sys/rpicamsrc/gstrpicamsrc.c
+++ b/sys/rpicamsrc/gstrpicamsrc.c
@@ -292,7 +292,7 @@ gst_rpi_cam_src_sensor_mode_get_type (void)
"640x480 4:3 60.1-90fps", "640x480-fast"},
{0, NULL, NULL}
};
- static volatile GType id = 0;
+ static GType id = 0;
if (g_once_init_enter ((gsize *) & id)) {
GType _id;
_id = g_enum_register_static ("GstRpiCamSrcSensorMode", values);
diff --git a/sys/ximage/ximageutil.c b/sys/ximage/ximageutil.c
index 57c9392c7..018b60515 100644
--- a/sys/ximage/ximageutil.c
+++ b/sys/ximage/ximageutil.c
@@ -26,7 +26,7 @@
GType
gst_meta_ximage_api_get_type (void)
{
- static volatile GType type;
+ static GType type;
static const gchar *tags[] = { "memory", NULL };
if (g_once_init_enter (&type)) {
--
GitLab

View File

@@ -0,0 +1,34 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
GST_ORG_MODULE=gst-plugins-good
inherit gstreamer-meson
DESCRIPTION="Qt5 QML video sink plugin for GStreamer"
KEYWORDS="~amd64"
IUSE="+egl orc wayland +X"
REQUIRED_USE="
wayland? ( egl )
"
RDEPEND="
>=media-libs/gst-plugins-base-${PV}:${SLOT}[egl?,opengl,wayland?,X?]
media-libs/mesa[egl?,X?]
dev-qt/qtcore:5
dev-qt/qtdeclarative:5
dev-qt/qtgui:5
egl? ( dev-qt/qtgui:5[eglfs] )
wayland? ( dev-qt/qtwayland:5 )
X? ( dev-qt/qtx11extras:5 )
"
DEPEND="${RDEPEND}"
PATCHES=(
"${FILESDIR}/gst-dont-use-volatile-to-mean-atomic-1.18.4.patch"
)
GST_PLUGINS_BUILD_DIR="qt"

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>gentoo@tastytea.de</email>
<name>Ronny (tastytea) Gutbrod</name>
</maintainer>
<longdescription lang="en">
GStreamer plugin for the Qt Qml elements
Includes the following elements:
* qmlgloverlay A filter that renders a QML scene onto a video stream
* qmlglsink A video sink that renders to a QQuickItem
* qmlglsrc A video src that captures a window from a QML view
</longdescription>
<use>
<flag name="egl">Enable EGL support.</flag>
</use>
</pkgmetadata>