mirror of
git://slackware.nl/current.git
synced 2025-01-31 19:57:23 +01:00
317 lines
9.8 KiB
Diff
317 lines
9.8 KiB
Diff
|
From a1bf3d8d540a25268d612a489e1e836d6ea737b0 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/941>
|
||
|
---
|
||
|
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 | 14 +++++++-------
|
||
|
gst/audioparsers/gstac3parse.h | 2 +-
|
||
|
sys/rpicamsrc/gstrpicamsrc.c | 2 +-
|
||
|
sys/ximage/ximageutil.c | 2 +-
|
||
|
14 files changed, 25 insertions(+), 25 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 a05d26edd..bfa79cda0 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 7659800b6..bc99639b4 100644
|
||
|
--- a/ext/qt/qtitem.cc
|
||
|
+++ b/ext/qt/qtitem.cc
|
||
|
@@ -104,7 +104,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 e92aa85c7..74cc3c970 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/ext/vpx/gstvpxenc.c b/ext/vpx/gstvpxenc.c
|
||
|
index cd5b30d14..4b3b4f770 100644
|
||
|
--- a/ext/vpx/gstvpxenc.c
|
||
|
+++ b/ext/vpx/gstvpxenc.c
|
||
|
@@ -165,7 +165,7 @@ gst_vpx_enc_end_usage_get_type (void)
|
||
|
{VPX_CQ, "Constant Quality Mode (CQ) mode", "cq"},
|
||
|
{0, NULL, NULL}
|
||
|
};
|
||
|
- static volatile GType id = 0;
|
||
|
+ static GType id = 0;
|
||
|
|
||
|
if (g_once_init_enter ((gsize *) & id)) {
|
||
|
GType _id;
|
||
|
@@ -188,7 +188,7 @@ gst_vpx_enc_multipass_mode_get_type (void)
|
||
|
{VPX_RC_LAST_PASS, "Last pass of multipass encoding", "last-pass"},
|
||
|
{0, NULL, NULL}
|
||
|
};
|
||
|
- static volatile GType id = 0;
|
||
|
+ static GType id = 0;
|
||
|
|
||
|
if (g_once_init_enter ((gsize *) & id)) {
|
||
|
GType _id;
|
||
|
@@ -210,7 +210,7 @@ gst_vpx_enc_kf_mode_get_type (void)
|
||
|
{VPX_KF_DISABLED, "Don't automatically place keyframes", "disabled"},
|
||
|
{0, NULL, NULL}
|
||
|
};
|
||
|
- static volatile GType id = 0;
|
||
|
+ static GType id = 0;
|
||
|
|
||
|
if (g_once_init_enter ((gsize *) & id)) {
|
||
|
GType _id;
|
||
|
@@ -232,7 +232,7 @@ gst_vpx_enc_tuning_get_type (void)
|
||
|
{VP8_TUNE_SSIM, "Tune for SSIM", "ssim"},
|
||
|
{0, NULL, NULL}
|
||
|
};
|
||
|
- static volatile GType id = 0;
|
||
|
+ static GType id = 0;
|
||
|
|
||
|
if (g_once_init_enter ((gsize *) & id)) {
|
||
|
GType _id;
|
||
|
@@ -256,7 +256,7 @@ gst_vpx_enc_scaling_mode_get_type (void)
|
||
|
{VP8E_ONETWO, "1:2", "1:2"},
|
||
|
{0, NULL, NULL}
|
||
|
};
|
||
|
- static volatile GType id = 0;
|
||
|
+ static GType id = 0;
|
||
|
|
||
|
if (g_once_init_enter ((gsize *) & id)) {
|
||
|
GType _id;
|
||
|
@@ -280,7 +280,7 @@ gst_vpx_enc_token_partitions_get_type (void)
|
||
|
{VP8_EIGHT_TOKENPARTITION, "Eight token partitions", "8"},
|
||
|
{0, NULL, NULL}
|
||
|
};
|
||
|
- static volatile GType id = 0;
|
||
|
+ static GType id = 0;
|
||
|
|
||
|
if (g_once_init_enter ((gsize *) & id)) {
|
||
|
GType _id;
|
||
|
@@ -303,7 +303,7 @@ gst_vpx_enc_er_flags_get_type (void)
|
||
|
"Allow partitions to be decoded independently", "partitions"},
|
||
|
{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 a148d4106..f719acb4c 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
|
||
|
|
||
|
|