summaryrefslogtreecommitdiffstats
path: root/source/l/gst-plugins-good/gst-plugins-good.gcc11.patch
blob: f44e3a72071b705a49a640a3b50b5988b788e4df (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
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