Changes of Revision 28
gstreamer-plugins-ugly-codecs.changes
Changed
x
1
2
-------------------------------------------------------------------
3
+Wed Mar 12 19:33:05 UTC 2025 - Bjørn Lie <zaitor@opensuse.org>
4
+
5
+- Update to version 1.26.0
6
+
7
+-------------------------------------------------------------------
8
Mon Feb 3 09:26:26 UTC 2025 - Bjørn Lie <zaitor@opensuse.org>
9
10
- Update to version 1.24.12
11
gstreamer-plugins-ugly-codecs.spec
Changed
14
1
2
3
%define _name gst-plugins-ugly
4
%define gst_branch 1.0
5
-%define _version 1.24.0
6
+%define _version 1.26.0
7
8
Name: gstreamer-plugins-ugly-codecs
9
-Version: 1.24.12
10
+Version: 1.26.0
11
Release: 0
12
Summary: Codecs/plugins for gstreamer-plugins-ugly
13
License: LGPL-2.1-or-later
14
_service
Changed
11
1
2
<service name="download_url">
3
<param name="host">gstreamer.freedesktop.org</param>
4
<param name="protocol">https</param>
5
- <param name="path">/src/gst-plugins-ugly/gst-plugins-ugly-1.24.12.tar.xz</param>
6
+ <param name="path">/src/gst-plugins-ugly/gst-plugins-ugly-1.26.0.tar.xz</param>
7
</service>
8
<service name="set_version" mode="buildtime"/>
9
</services>
10
\ No newline at end of file
11
_service:download_url:gst-plugins-ugly-1.24.12.tar.xz/ChangeLog -> _service:download_url:gst-plugins-ugly-1.26.0.tar.xz/ChangeLog
Changed
679
1
2
-=== release 1.24.12 ===
3
+=== release 1.26.0 ===
4
5
-2025-01-29 20:12:29 +0000 Tim-Philipp Müller <tim@centricular.com>
6
-
7
- * NEWS:
8
- * RELEASE:
9
- * gst-plugins-ugly.doap:
10
- * meson.build:
11
- Release 1.24.12
12
-
13
-2025-01-23 20:55:15 +1100 Brad Hards <bradh@frogmouth.net>
14
-
15
- * ext/x264/gstx264enc.c:
16
- x264enc: switch to GstByteWriter
17
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8360>
18
-
19
-2025-01-16 17:16:53 +1100 Brad Hards <bradh@frogmouth.net>
20
-
21
- * ext/x264/gstx264enc.c:
22
- x264enc: add missing data to AvcDecoderConfigurationRecord
23
- This adds the data required in AVCDecoderConfigurationRecord for
24
- higher profile (High variants) configurations - everything in the if(...) {...} part
25
- of ISO/IEC 14496-15:2024 Section 5.3.2.1.2. (or 5.3.3.1.2 in the 2019 version).
26
- Resolves an error flagged by ComplianceWarden when muxing this into ISOBMFF.
27
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8360>
28
-
29
-2025-01-06 20:11:58 +0000 Tim-Philipp Müller <tim@centricular.com>
30
-
31
- * meson.build:
32
- Back to development after 1.24.11
33
-
34
-=== release 1.24.11 ===
35
-
36
-2025-01-06 19:48:08 +0000 Tim-Philipp Müller <tim@centricular.com>
37
+2025-03-11 20:14:44 +0000 Tim-Philipp Müller <tim@centricular.com>
38
39
* NEWS:
40
+ * README.md:
41
* RELEASE:
42
* gst-plugins-ugly.doap:
43
* meson.build:
44
- Release 1.24.11
45
+ Release 1.26.0
46
47
-2024-12-03 23:39:54 +0000 Tim-Philipp Müller <tim@centricular.com>
48
+2025-02-23 23:52:57 +0000 Tim-Philipp Müller <tim@centricular.com>
49
50
* meson.build:
51
- Back to development after 1.24.10
52
+ Back to development after 1.25.90
53
54
-=== release 1.24.10 ===
55
+=== release 1.25.90 ===
56
57
-2024-12-03 23:29:07 +0000 Tim-Philipp Müller <tim@centricular.com>
58
+2025-02-23 23:44:10 +0000 Tim-Philipp Müller <tim@centricular.com>
59
60
* NEWS:
61
* RELEASE:
62
* gst-plugins-ugly.doap:
63
* meson.build:
64
- Release 1.24.10
65
+ Release 1.25.90
66
67
-2024-11-03 17:37:09 +0000 Tim-Philipp Müller <tim@centricular.com>
68
+2025-02-23 16:56:31 +0000 Tim-Philipp Müller <tim@centricular.com>
69
70
- * po/es.po:
71
* po/hr.po:
72
- * po/ro.po:
73
+ * po/pt_BR.po:
74
gst-plugins-ugly: update translations
75
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7820>
76
-
77
-2024-10-30 20:40:12 +0000 Tim-Philipp Müller <tim@centricular.com>
78
-
79
- * meson.build:
80
- Back to development after 1.24.9
81
-
82
-=== release 1.24.9 ===
83
-
84
-2024-10-30 20:33:30 +0000 Tim-Philipp Müller <tim@centricular.com>
85
-
86
- * NEWS:
87
- * RELEASE:
88
- * gst-plugins-ugly.doap:
89
- * meson.build:
90
- Release 1.24.9
91
-
92
-2024-09-19 12:12:53 +0200 Tim-Philipp Müller <tim@centricular.com>
93
-
94
- * meson.build:
95
- Back to development after 1.24.8
96
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7549>
97
-
98
-=== release 1.24.8 ===
99
-
100
-2024-09-19 12:01:21 +0200 Tim-Philipp Müller <tim@centricular.com>
101
-
102
- * NEWS:
103
- * RELEASE:
104
- * gst-plugins-ugly.doap:
105
- * meson.build:
106
- Release 1.24.8
107
-
108
-2024-08-21 12:33:28 +0100 Tim-Philipp Müller <tim@centricular.com>
109
-
110
- * meson.build:
111
- Back to development after 1.24.7
112
113
-=== release 1.24.7 ===
114
-
115
-2024-08-21 12:25:15 +0100 Tim-Philipp Müller <tim@centricular.com>
116
-
117
- * NEWS:
118
- * RELEASE:
119
- * gst-plugins-ugly.doap:
120
- * meson.build:
121
- Release 1.24.7
122
-
123
-2024-07-29 16:48:02 +0100 Tim-Philipp Müller <tim@centricular.com>
124
+2025-02-09 17:47:32 +0000 Tim-Philipp Müller <tim@centricular.com>
125
126
* meson.build:
127
- Back to development after 1.24.6
128
+ Back to development after 1.25.50
129
130
-=== release 1.24.6 ===
131
+=== release 1.25.50 ===
132
133
-2024-07-29 16:41:37 +0100 Tim-Philipp Müller <tim@centricular.com>
134
+2025-02-09 17:35:17 +0000 Tim-Philipp Müller <tim@centricular.com>
135
136
* NEWS:
137
* RELEASE:
138
* gst-plugins-ugly.doap:
139
* meson.build:
140
- Release 1.24.6
141
-
142
-2024-07-22 09:29:52 +0200 Sebastian Gross <sgross@emlix.com>
143
-
144
- * gst/asfdemux/gstasfdemux.c:
145
- asfdemux: Be more lenient towards malformed header
146
- VLC counts METADATA as 1 even if the specification states you must not.
147
- This leads to asfdemux failing since there are no bytes left when asfdemux
148
- tries to extract the "last" header.
149
- Do not fail hard in this case and try to proceed when everything else went
150
- fine.
151
- So at least gst-discoverer will see what's in the file.
152
- Closes #3684
153
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7216>
154
-
155
-2024-06-20 13:02:19 +0100 Tim-Philipp Müller <tim@centricular.com>
156
-
157
- * meson.build:
158
- Back to development after 1.24.5
159
-
160
-=== release 1.24.5 ===
161
+ Release 1.25.50
162
163
-2024-06-20 12:54:15 +0100 Tim-Philipp Müller <tim@centricular.com>
164
+2024-06-11 17:46:11 +0200 Ruben Gonzalez <rgonzalez@fluendo.com>
165
166
- * NEWS:
167
- * RELEASE:
168
- * gst-plugins-ugly.doap:
169
* meson.build:
170
- Release 1.24.5
171
-
172
-2024-05-29 13:51:27 +0300 Tim-Philipp Müller <tim@centricular.com>
173
-
174
- * meson.build:
175
- Back to development after 1.24.4
176
-
177
-=== release 1.24.4 ===
178
-
179
-2024-05-29 13:44:50 +0300 Tim-Philipp Müller <tim@centricular.com>
180
-
181
- * NEWS:
182
- * RELEASE:
183
- * gst-plugins-ugly.doap:
184
- * meson.build:
185
- Release 1.24.4
186
-
187
-2024-04-30 00:36:59 +0100 Tim-Philipp Müller <tim@centricular.com>
188
-
189
- * meson.build:
190
- Back to development after 1.24.3
191
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6772>
192
-
193
-=== release 1.24.3 ===
194
-
195
-2024-04-30 00:15:23 +0100 Tim-Philipp Müller <tim@centricular.com>
196
-
197
- * NEWS:
198
- * RELEASE:
199
- * gst-plugins-ugly.doap:
200
- * meson.build:
201
- Release 1.24.3
202
-
203
-2024-04-10 00:04:02 +0100 Tim-Philipp Müller <tim@centricular.com>
204
-
205
- * meson.build:
206
- Back to development after 1.24.2
207
-
208
-=== release 1.24.2 ===
209
-
210
-2024-04-09 21:48:55 +0100 Tim-Philipp Müller <tim@centricular.com>
211
+ meson: use nls option to ENABLE_NLS
212
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7017>
213
214
- * NEWS:
215
- * RELEASE:
216
- * gst-plugins-ugly.doap:
217
- * meson.build:
218
- Release 1.24.2
219
-
220
-2024-03-22 01:38:06 +0100 Tim-Philipp Müller <tim@centricular.com>
221
-
222
- * meson.build:
223
- Back to development
224
-
225
-=== release 1.24.1 ===
226
-
227
-2024-03-21 21:47:53 +0100 Tim-Philipp Müller <tim@centricular.com>
228
-
229
- * NEWS:
230
- * RELEASE:
231
- * gst-plugins-ugly.doap:
232
- * meson.build:
233
- Release 1.24.1
234
-
235
-2024-03-05 13:45:27 +0000 Tim-Philipp Müller <tim@centricular.com>
236
-
237
- * meson.build:
238
- Back to development
239
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6264>
240
-
241
-=== release 1.24.0 ===
242
+2025-01-23 20:55:15 +1100 Brad Hards <bradh@frogmouth.net>
243
244
-2024-03-04 23:51:42 +0000 Tim-Philipp Müller <tim@centricular.com>
245
+ * ext/x264/gstx264enc.c:
246
+ x264enc: switch to GstByteWriter
247
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8346>
248
249
- * NEWS:
250
- * README.md:
251
- * RELEASE:
252
- * gst-plugins-ugly.doap:
253
- * meson.build:
254
- Release 1.24.0
255
+2025-01-16 17:16:53 +1100 Brad Hards <bradh@frogmouth.net>
256
257
-2024-02-26 09:27:40 +0100 Edward Hervey <edward@centricular.com>
258
+ * ext/x264/gstx264enc.c:
259
+ x264enc: add missing data to AvcDecoderConfigurationRecord
260
+ This adds the data required in AVCDecoderConfigurationRecord for
261
+ higher profile (High variants) configurations - everything in the if(...) {...} part
262
+ of ISO/IEC 14496-15:2024 Section 5.3.2.1.2. (or 5.3.3.1.2 in the 2019 version).
263
+ Resolves an error flagged by ComplianceWarden when muxing this into ISOBMFF.
264
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8308>
265
266
- * README.md:
267
- * RELEASE:
268
- docs: Use Discourse and Matrix as prefered communication channels
269
- Part of: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6220
270
+2025-01-15 17:36:00 +0100 Mathieu Duponchelle <mathieu@centricular.com>
271
272
-=== release 1.23.90 ===
273
+ * docs/meson.build:
274
+ docs: generate hotdoc configs for libraries with our helper script
275
+ With this patch, configure time is identical no matter whether doc is
276
+ enabled or not.
277
+ The configuration files also now contain explicitly-listed sources with
278
+ no wildcards.
279
+ For the four libraries where hotdoc needs to use clang to generate the
280
+ documentation (as opposed to the rest of the libraries where hotdoc uses
281
+ the gir), the script will call pkg-config to determine the appropriate
282
+ C flags.
283
+ This means a side effect of this patch is that pkg-config files are now
284
+ generated for the gstadaptivedemux and gstopencv libraries.
285
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8312>
286
287
-2024-02-23 18:20:11 +0000 Tim-Philipp Müller <tim@centricular.com>
288
+2025-01-17 16:51:22 +0100 Mathieu Duponchelle <mathieu@centricular.com>
289
290
- * NEWS:
291
- * RELEASE:
292
- * gst-plugins-ugly.doap:
293
* meson.build:
294
- Release 1.23.90
295
+ meson: bump minimum version to 1.4 in every subprojects
296
+ 36c01d05797ad9c7778939c54870f979bdcbba1f bumped to 1.4 for gst-devtools
297
+ and the root project, but we usually keep those in sync everywhere.
298
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8312>
299
300
-2023-09-17 18:47:31 +0200 Jochen Henneberg <jh@henneberg-systemdesign.com>
301
-
302
- * gst/asfdemux/gstrtpasfdepay.c:
303
- rtpasfdepay: Enabled header extension aggregation
304
- Because this depayloader may build several output buffers within one
305
- process run we push them all into a GstBufferList and push them out at
306
- once to make sure that each buffer gets notified about each header
307
- extension.
308
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5378>
309
-
310
-2024-02-15 16:38:53 +0000 Tim-Philipp Müller <tim@centricular.com>
311
+2025-01-14 15:00:43 +0000 Tim-Philipp Müller <tim@centricular.com>
312
313
* meson.build:
314
- Back to development
315
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6126>
316
+ Back to development after 1.25.1
317
318
-=== release 1.23.2 ===
319
+=== release 1.25.1 ===
320
321
-2024-02-15 15:37:17 +0000 Tim-Philipp Müller <tim@centricular.com>
322
+2025-01-14 14:52:48 +0000 Tim-Philipp Müller <tim@centricular.com>
323
324
* NEWS:
325
* RELEASE:
326
* gst-plugins-ugly.doap:
327
* meson.build:
328
- Release 1.23.2
329
+ Release 1.25.1
330
331
-2024-02-14 00:38:10 +0000 Tim-Philipp Müller <tim@centricular.com>
332
+2025-01-13 18:10:31 +0100 Mathieu Duponchelle <mathieu@centricular.com>
333
334
- * po/lv.po:
335
- gst-plugins-ugly: update translations
336
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6113>
337
-
338
-2024-02-10 19:47:24 +0000 Tim-Philipp Müller <tim@centricular.com>
339
-
340
- * docs/gst_plugins_cache.json:
341
- * gst/realmedia/asmrules.c:
342
- * gst/realmedia/asmrules.h:
343
- * gst/realmedia/gstrdtbuffer.c:
344
- * gst/realmedia/gstrdtbuffer.h:
345
+ * docs/meson.build:
346
+ * ext/a52dec/meson.build:
347
+ * ext/cdio/meson.build:
348
+ * ext/dvdread/meson.build:
349
+ * ext/mpeg2dec/meson.build:
350
+ * ext/sidplay/meson.build:
351
+ * ext/x264/meson.build:
352
+ * gst/asfdemux/meson.build:
353
+ * gst/dvdlpcmdec/meson.build:
354
+ * gst/dvdsub/meson.build:
355
+ * gst/meson.build:
356
* gst/realmedia/meson.build:
357
- * gst/realmedia/rdtdepay.c:
358
- * gst/realmedia/rdtdepay.h:
359
- * gst/realmedia/rdtjitterbuffer.c:
360
- * gst/realmedia/rdtjitterbuffer.h:
361
- * gst/realmedia/rdtmanager.c:
362
- * gst/realmedia/rdtmanager.h:
363
- * gst/realmedia/realhash.c:
364
- * gst/realmedia/realhash.h:
365
- * gst/realmedia/realmedia.c:
366
- * gst/realmedia/rtspreal.c:
367
- * gst/realmedia/rtspreal.h:
368
- realmedia: remove RealServer RTSP extension, RDT handling and PNM source
369
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6091>
370
-
371
-2024-02-06 18:09:02 +0000 Tim-Philipp Müller <tim@centricular.com>
372
-
373
* meson.build:
374
- Back to development
375
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6066>
376
+ docs: port plugins to explicit sources
377
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8273>
378
379
-=== release 1.23.1 ===
380
-
381
-2024-02-06 16:37:19 +0000 Tim-Philipp Müller <tim@centricular.com>
382
-
383
- * NEWS:
384
- * RELEASE:
385
- * gst-plugins-ugly.doap:
386
- * meson.build:
387
- Release 1.23.1
388
-
389
-2024-01-28 11:15:01 +0000 Tim-Philipp Müller <tim@centricular.com>
390
+2025-01-10 08:58:11 +0100 Edward Hervey <edward@centricular.com>
391
392
+ * gst/asfdemux/gstasfdemux.c:
393
+ * gst/realmedia/rademux.c:
394
* meson.build:
395
- meson: bump Meson requirement to >= 1.1 for all modules
396
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6002>
397
+ ugly: Add more warning flags
398
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>
399
400
-2023-11-02 00:03:28 +0900 Seungha Yang <seungha@centricular.com>
401
+2025-01-10 09:10:00 +0100 Edward Hervey <edward@centricular.com>
402
403
- * meson.build:
404
- meson: Fix MSVC build with GST_DISABLE_GST_DEBUG
405
- MSVC does not understand Wno-unused
406
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5585>
407
+ * ext/mpeg2dec/gstmpeg2dec.c:
408
+ mpeg2dec: Add missing fallthrough statements
409
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>
410
411
-2022-04-06 12:56:30 +0100 Tim-Philipp Müller <tim@centricular.com>
412
+2024-12-18 13:18:32 -0300 Thibault Saunier <tsaunier@igalia.com>
413
414
- * meson.build:
415
- meson: Bump GLib requirement to >= 2.64
416
- This includes fixes to make GstBus watches non-racy.
417
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2126>
418
+ * docs/meson.build:
419
+ doc: Handle gst_dep.get_variable('libexecdir') failure
420
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8178>
421
422
-2023-09-13 10:12:44 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
423
+2024-12-18 12:27:30 -0300 Thibault Saunier <tsaunier@igalia.com>
424
425
- * ext/x264/meson.build:
426
- x264: Check that minimum version is met
427
- Since the addition of monochrome encoding support, we now depends on build 156.
428
- No version check was happening so far.
429
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5325>
430
+ * docs/meson.build:
431
+ doc: Allow updating the plugins cache for all modules even if hotdoc is not present
432
+ This was possible for some modules but not all, for no good reason.
433
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8178>
434
435
-2023-06-08 14:21:07 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
436
+2021-03-05 19:00:56 +0100 Mathieu Duponchelle <mathieu@centricular.com>
437
438
* docs/gst_plugins_cache.json:
439
+ * docs/meson.build:
440
* ext/x264/gstx264enc.c:
441
- * tests/check/elements/x264enc.c:
442
- x264enc: Add monochrome 8bit support
443
- This is mapped to GStreamer GRAY8 format. This allow producing files with
444
- the chroma_format_idc 0 (monochrome). This is only availbable to high profile.
445
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4812>
446
-
447
-2023-07-07 10:08:21 +0300 Sebastian Dröge <sebastian@centricular.com>
448
-
449
- * gst/realmedia/rmdemux.c:
450
- rmdemux: Check for integer overflow when calculation audio packet size
451
- Fixes ZDI-CAN-21444
452
- https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2782
453
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5072>
454
-
455
-2023-07-07 10:08:03 +0300 Sebastian Dröge <sebastian@centricular.com>
456
-
457
- * gst/realmedia/rmdemux.c:
458
- rmdemux: Use GST_LOG_OBJECT instead of GST_LOG
459
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5072>
460
-
461
-2023-07-07 10:00:19 +0300 Sebastian Dröge <sebastian@centricular.com>
462
-
463
- * gst/realmedia/rmdemux.c:
464
- rmdemux: Check that enough SIPR audio data is available when copying
465
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5072>
466
-
467
-2023-07-07 09:59:20 +0300 Sebastian Dröge <sebastian@centricular.com>
468
-
469
- * gst/realmedia/rmdemux.c:
470
- rmdemux: Check for integer overflows when calculating the size of SIPR audio buffers
471
- Fixes ZDI-CAN-21443
472
- Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2782
473
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5072>
474
-
475
-2023-07-07 09:59:04 +0300 Sebastian Dröge <sebastian@centricular.com>
476
-
477
- * gst/realmedia/rmdemux.c:
478
- rmdemux: Use GST_LOG_OBJECT instead of GST_LOG
479
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5072>
480
-
481
-2023-07-05 18:46:25 -0600 Olivier Crête <olivier.crete@collabora.com>
482
-
483
- * scripts/gen-changelog.py:
484
- gst-omx: Retire the whole package
485
- The OpenMAX standard is long dead and even the Raspberry Pi OS
486
- no longer supports it.
487
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4976>
488
-
489
-2023-07-12 09:27:22 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
490
-
491
- * tests/check/meson.build:
492
- meson: Always use forward slashes in defines with paths
493
- Fixes the following build failure on MSYS2:
494
- ```
495
- ../subprojects/gstreamer/tests/check/elements/filesrc.c: In function 'test_seeking':
496
- ../subprojects/gstreamer/tests/check/elements/filesrc.c:107:53: error: incomplete universal character name \U
497
- 107 | g_object_set (G_OBJECT (src), "location", TESTFILE, NULL);
498
- | ^
499
- ../subprojects/gstreamer/tests/check/elements/filesrc.c:107:53: warning: unknown escape sequence: '\A'
500
- ../subprojects/gstreamer/tests/check/elements/filesrc.c:107:53: warning: unknown escape sequence: '\g'
501
- ../subprojects/gstreamer/tests/check/elements/filesrc.c:107:53: warning: unknown escape sequence: '\s'
502
- ../subprojects/gstreamer/tests/check/elements/filesrc.c:107:53: warning: unknown escape sequence: '\g'
503
- ../subprojects/gstreamer/tests/check/elements/filesrc.c:107:53: warning: unknown escape sequence: '\c'
504
- ```
505
- Due to: `-DTESTFILE=\"C:\\Users\\Administrator\...`
506
- https://gitlab.freedesktop.org/nirbheek/gstreamer/-/jobs/45317733
507
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5018>
508
-
509
-2023-03-07 14:05:54 +0100 Stéphane Cerveau <scerveau@igalia.com>
510
-
511
- * tests/meson.build:
512
- gstreamer-full: add full static support
513
- Allow a project to use gstreamer-full as a static library
514
- and link to create a binary without dependencies.
515
- Introduce the option 'gst-full-target-type' to
516
- select the build type, dynamic(default) or static.
517
- In gstreamer-full/static build configuration gstreamer (gst.c)
518
- needs the symbol gst_init_static_plugins which is defined
519
- in gstreamer-full.
520
- All the tests and examples are linking with gstreamer but the
521
- symbol gst_init_static_plugins is only defined in the gstreamer-full
522
- library. gstreamer-full can not be built first as it needs to know what plugins
523
- will be built.
524
- One option would be to build all the examples and tests after
525
- gstreamer-full as the tools.
526
- Disable tools build in subprojects too as it will be built at the end of
527
- build process.
528
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4128>
529
-
530
-2023-05-17 22:58:46 +0200 Ruben Gonzalez <rgonzalez@fluendo.com>
531
-
532
- * README.md:
533
- README.md: fix current version
534
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4662>
535
+ * ext/x264/gstx264enc.h:
536
+ x264enc: expose nal-hrd property
537
+ It can be used to force true CBR, and will cause the encoder
538
+ to output null padding packets.
539
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/908>
540
541
-2023-05-10 08:57:40 +0200 Edward Hervey <edward@centricular.com>
542
+2024-11-15 11:46:14 -0300 Thibault Saunier <tsaunier@igalia.com>
543
544
- * ext/mpeg2dec/gstmpeg2dec.c:
545
- mpeg2dec: Fix conflicting type declaration
546
- It was always a GstFlowReturn
547
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4588>
548
-
549
-2023-04-28 16:06:24 +0100 Tim-Philipp Müller <tim@centricular.com>
550
-
551
- * REQUIREMENTS:
552
- * docs/gst_plugins_cache.json:
553
- * ext/amrnb/GstAmrnbEnc.prs:
554
- * ext/amrnb/README:
555
- * ext/amrnb/amrnb.c:
556
- * ext/amrnb/amrnbdec.c:
557
- * ext/amrnb/amrnbdec.h:
558
- * ext/amrnb/amrnbenc.c:
559
- * ext/amrnb/amrnbenc.h:
560
- * ext/amrnb/meson.build:
561
- * ext/amrwbdec/README:
562
- * ext/amrwbdec/amrwb.c:
563
- * ext/amrwbdec/amrwbdec.c:
564
- * ext/amrwbdec/amrwbdec.h:
565
- * ext/amrwbdec/meson.build:
566
- * ext/meson.build:
567
- * meson_options.txt:
568
- * tests/check/elements/amrnbenc.c:
569
- * tests/check/gst-plugins-ugly.supp:
570
- * tests/check/meson.build:
571
- amrnb, amrwbdec: move AMR-NB and AMR-WB plugins to -good
572
- Fedora ships these libraries as part of the main distribution now,
573
- and they are decades old anyway so don't implement any of the newer
574
- features.
575
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4512>
576
+ * meson.build:
577
+ meson: Bump minimum version to 1.3
578
+ Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4025
579
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7899>
580
581
-2023-03-19 15:35:29 -0300 Thibault Saunier <tsaunier@igalia.com>
582
+2024-11-03 17:30:40 +0000 Tim-Philipp Müller <tim@centricular.com>
583
584
* docs/meson.build:
585
- doc: Avoid shelling out to hotdoc to generate plugins config files
586
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4479>
587
+ meson: bail out earlier in docs subdir if docs are disabled
588
+ The gst_dep.get_variable('libexecdir') may fail in some scenarios
589
+ (e.g. building a module alone inside an uninstalled devenv) and
590
+ it shouldn't really be reached in the first place if docs are
591
+ disabled via options.
592
+ Also to avoid confusing meson messages when cross-compiling or
593
+ doing a static build.
594
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7818>
595
596
-2023-04-11 11:50:57 -0400 Arun Raghavan <arun@asymptotic.io>
597
+2024-11-03 17:37:09 +0000 Tim-Philipp Müller <tim@centricular.com>
598
599
- * ext/x264/gstx264enc.c:
600
- x264enc: Check more video info fields to decide whether to reconfigure encoder
601
- The encoder is also initialised using interlace mode, colorimetry, chroma-site
602
- and multiview mode, so let's make sure we only skip reinitialising the encoder
603
- in set_format() if none of those have changed.
604
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4395>
605
+ * po/es.po:
606
+ * po/hr.po:
607
+ * po/ro.po:
608
+ gst-plugins-ugly: update translations
609
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7819>
610
611
-2023-03-17 16:32:45 +0200 Sebastian Dröge <sebastian@centricular.com>
612
+2024-10-16 08:22:53 -0300 Eli Mallon <eli@aquareum.tv>
613
614
- * tests/check/elements/x264enc.c:
615
- plugins: Fix various trivial clang compiler warnings
616
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4210>
617
+ * ext/x264/gstx264enc.h:
618
+ gstx264enc: fix for static builds on windows
619
+ Fixes #3911
620
+ Co-authored-by: L. E. Segovia <amy@centricular.com>
621
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7672>
622
623
-2023-03-15 18:53:09 +0000 Tim-Philipp Müller <tim@centricular.com>
624
+2024-08-09 10:41:57 +0300 Sebastian Dröge <sebastian@centricular.com>
625
626
- * gst/asfdemux/gstasfdemux.c:
627
- gst-plugins-ugly: re-indent with GNU indent 2.2.12
628
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4182>
629
+ * ext/x264/gstx264enc.c:
630
+ common: Stop using GQuark-based GstStructure name API
631
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432>
632
633
-2023-01-08 17:15:12 +0000 Tim-Philipp Müller <tim@centricular.com>
634
+2024-07-22 09:29:52 +0200 Sebastian Gross <sgross@emlix.com>
635
636
- * ext/mpeg2dec/gstmpeg2dec.c:
637
- mpeg2dec: drop use of GSlice
638
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695>
639
+ * gst/asfdemux/gstasfdemux.c:
640
+ asfdemux: Be more lenient towards malformed header
641
+ VLC counts METADATA as 1 even if the specification states you must not.
642
+ This leads to asfdemux failing since there are no bytes left when asfdemux
643
+ tries to extract the "last" header.
644
+ Do not fail hard in this case and try to proceed when everything else went
645
+ fine.
646
+ So at least gst-discoverer will see what's in the file.
647
+ Closes #3684
648
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7209>
649
650
-2023-01-08 17:15:00 +0000 Tim-Philipp Müller <tim@centricular.com>
651
+2020-04-08 10:40:42 -0400 Xavier Claessens <xavier.claessens@collabora.com>
652
653
- * ext/x264/gstx264enc.c:
654
- x264enc: drop use of GSlice
655
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695>
656
+ * meson.build:
657
+ * meson_options.txt:
658
+ build: Add missing common options that are yielding in subprojects
659
+ - Align `glib_debug`, `glib_assert` and `glib_checks` options with GLib,
660
+ otherwise glib subproject won't inherit their value. Previous names
661
+ and values are preserved using Meson's deprecation mechanism.
662
+ - Add `extra-checks` and `benchmarks` options in the main project so it
663
+ can be inherited in GStreamer subprojects.
664
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1165>
665
666
-2023-01-23 23:04:53 +0000 Tim-Philipp Müller <tim@centricular.com>
667
+2024-03-05 12:58:57 +0000 Tim-Philipp Müller <tim@centricular.com>
668
669
+ * README.md:
670
+ * RELEASE:
671
* meson.build:
672
Back to development
673
- Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3775>
674
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6261>
675
676
-=== release 1.22.0 ===
677
+=== release 1.24.0 ===
678
679
_service:download_url:gst-plugins-ugly-1.24.12.tar.xz/NEWS -> _service:download_url:gst-plugins-ugly-1.26.0.tar.xz/NEWS
Changed
3995
1
2
-GStreamer 1.24 Release Notes
3
+GStreamer 1.26 Release Notes
4
5
-GStreamer 1.24.0 was originally released on 4 March 2024.
6
+GStreamer 1.26.0 was originally released on 11 March 2025.
7
8
-The latest bug-fix release in the stable 1.24 series is 1.24.10 and was released on 06 January 2025.
9
+See https://gstreamer.freedesktop.org/releases/1.26/ for the latest version of this document.
10
11
-See https://gstreamer.freedesktop.org/releases/1.24/ for the latest version of this document.
12
-
13
-Last updated: Tuesday 06 January 2025, 19:30 UTC (log)
14
+Last updated: Tuesday 11 March 2025, 20:00 UTC (log)
15
16
## Introduction
17
18
The GStreamer team is proud to announce a new major feature release in the stable 1.x API series of your favourite
19
cross-platform multimedia framework!
20
21
-As always, this release is again packed with many new features, bug fixes and other improvements.
22
+As always, this release is again packed with many new features, bug fixes, and other improvements.
23
24
## Highlights
25
26
-- New Discourse forum and Matrix chat space
27
-- New Analytics and Machine Learning abstractions and elements
28
-- Playbin3 and decodebin3 are now stable and the default in gst-play-1.0, GstPlay/GstPlayer
29
-- The va plugin is now preferred over gst-vaapi and has higher ranks
30
-- GstMeta serialization/deserialization and other GstMeta improvements
31
-- New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
32
-- New unixfd plugin for efficient 1:N inter-process communication on Linux
33
-- cudaipc source and sink for zero-copy CUDA memory sharing between processes
34
-- New intersink and intersrc elements for 1:N pipeline decoupling within the same process
35
-- Qt5 + Qt6 QML integration improvements including qml6glsrc, qml6glmixer, qml6gloverlay, and qml6d3d11sink elements
36
-- DRM Modifier Support for dmabufs on Linux
37
-- OpenGL, Vulkan and CUDA integration enhancements
38
-- Vulkan H.264 and H.265 video decoders
39
-- RTP stack improvements including new RFC7273 modes and more correct header extension handling in depayloaders
40
-- WebRTC improvements such as support for ICE consent freshness, and a new webrtcsrc element to complement webrtcsink
41
-- WebRTC signallers and webrtcsink implementations for LiveKit and AWS Kinesis Video Streams
42
-- WHIP server source and client sink, and a WHEP source
43
-- Precision Time Protocol (PTP) clock support for Windows and other additions
44
-- Low-Latency HLS (LL-HLS) support and many other HLS and DASH enhancements
45
-- New W3C Media Source Extensions library
46
-- Countless closed caption handling improvements including new cea608mux and cea608tocea708 elements
47
-- Translation support for awstranscriber
48
-- Bayer 10/12/14/16-bit depth support
49
-- MPEG-TS support for asynchronous KLV demuxing and segment seeking, plus various new muxer features
50
-- Capture source and sink for AJA capture and playout cards
51
-- SVT-AV1 and VA-API AV1 encoders, stateless AV1 video decoder
52
-- New uvcsink element for exporting streams as UVC camera
53
-- DirectWrite text rendering plugin for windows
54
-- Direct3D12-based video decoding, conversion, composition, and rendering
55
-- AMD Advanced Media Framework AV1 + H.265 video encoders with 10-bit and HDR support
56
-- AVX/AVX2 support and NEON support on macOS on Apple ARM64 CPUs via new liborc
57
-- GStreamer C# bindings have been updated
58
-- Rust bindings improvements and many new and improved Rust plugins
59
-- Rust plugins now shipped in packages for all major platforms including Android and iOS
60
+- H.266 Versatile Video Coding (VVC) codec support
61
+- Low Complexity Enhancement Video Coding (LCEVC) support
62
+- Closed captions: H.264/H.265 extractor/inserter, cea708overlay, cea708mux, tttocea708 and more
63
+- New hlscmafsink, hlssink3, and hlsmultivariantsink; HLS/DASH client and dashsink improvements
64
+- New AWS and Speechmatics transcription, translation and TTS services elements, plus translationbin
65
+- Splitmux lazy loading and dynamic fragment addition support
66
+- Matroska: H.266 video and rotation tag support, defined latency muxing
67
+- MPEG-TS: support for H.266, JPEG XS, AV1, VP9 codecs and SMPTE ST-2038 and ID3 meta; mpegtslivesrc
68
+- ISO MP4: support for H.266, Hap, Lagarith lossless codecs; raw video support; rotation tags
69
+- SMPTE 2038 ancillary data streams support
70
+- JPEG XS image codec support
71
+- Analytics: New TensorMeta; N-to-N relationships; Mtd to carry segmentation masks
72
+- ONVIF metadata extractor and conversion to/from relation metas
73
+- New originalbuffer element that can restore buffers again after transformation steps for analytics
74
+- Improved Python bindings for analytics API
75
+- Lots of Vulkan integration and Vulkan Video decoder/encoder improvements
76
+- OpenGL integration improvements, esp. in glcolorconvert, gldownload, glupload
77
+- Qt5/Qt6 QML GL sinks now support direct DMABuf import from hardware decoders
78
+- CUDA: New compositor, Jetson NVMM memory support, stream-ordered allocator
79
+- NVCODEC AV1 video encoder element, and ndsdewarp
80
+- New Direct3D12 integration support library
81
+- New d3d12swapchainsink and d3d12deinterlace elements and D3D12 sink/source for zero-copy IPC
82
+- Decklink HDR support (PQ + HLG) and frame scheduling enhancements
83
+- AJA capture source clock handling and signal loss recovery improvements
84
+- RTP and RTSP: New rtpbin sync modes, client-side MIKEY support in rtspsrc
85
+- New Rust rtpbin2, rtprecv, rtpsend, and many new Rust RTP payloaders and depayloaders
86
+- webrtcbin support for basic rollbacks and other improvements
87
+- webrtcsink: support for more encoders, SDP munging, and a built-in web/signalling server
88
+- webrtcsrc/sink: support for uncompressed audio/video and NTP & PTP clock signalling and synchronization
89
+- rtmp2: server authentication improvements incl. Limelight CDN (llnw) authentication
90
+- New Microsoft WebView2 based web browser source element
91
+- The GTK3 plugin has gained support for OpenGL/WGL on Windows
92
+- Many GTK4 paintable sink improvements
93
+- GstPlay: id-based stream selection and message API improvements
94
+- Real-time pipeline visualization in a browser using a new dots tracer and viewer
95
+- New tracers for tracking memory usage, pad push timings, and buffer flow as pcap files
96
+- VA hardware-acclerated H.266/VVC decoder, VP8 and JPEG encoders, VP9/VP8 alpha decodebins
97
+- Video4Linux2 elements support DMA_DRM caps negotiation now
98
+- V4L2 stateless decoders implement inter-frame resolution changes for AV1 and VP9
99
+- Editing services: support for reverse playback and audio channel reordering
100
+- New QUIC-based elements for working with raw QUIC streams, RTP-over-QUIC (RoQ) and WebTransport
101
+- Apple AAC audio encoder and multi-channel support for the Apple audio decoders
102
+- cerbero: Python bindings and introspection support; improved Windows installer based on WiX5
103
- Lots of new plugins, features, performance improvements and bug fixes
104
105
## Major new features and changes
106
107
-### Discourse forum and Matrix chat space
108
+### H.266 Versatile Video Coding (VVC) codec support
109
110
-- The new Discourse forum and Matrix chat space are now our preferred communication channels for support and developer chat.
111
+- The H.266 / VVC video codec is a successor to H.265 / HEVC and is standardised in ISO/IEC 23090-3.
112
113
-- The mailing lists and IRC channel are on their way to being phased out, but Discourse can be used via e-mail as well.
114
+- A new h266parse element was added, along with parsing API, typefinding support and some codec utility functions in the
115
+ gst-plugins-base utility library.
116
117
-- For release announcements please subscribe to the News + Announcements category on Discourse, although we will continue to
118
- also send announcements to the mailing list for the time being.
119
+- A H.266 decoder base class for hardware-accelerated decoders was added and used to implement a VA-API-based
120
+ hardware-accelerated H.266 decoder.
121
122
-### Playbin3, decodebin3 now stable and default
123
+- The FFmpeg H.266 decoder is exposed now (from FFmpeg 7.0 onwards).
124
125
-- After a year of stability, testing and more improvements, playbin3, and its various components (uridecodebin3, decodebin3
126
- and urisourcebin), are now the recommended playback components.
127
+- H.266 / VVC muxing and demuxing support was implemented for MP4, Matroska and MPEG-TS containers.
128
129
-- Some playback components have now switched to defaulting to playbin3: gst-play-1.0 and the GstPlay / GstPlayer libraries.
130
- Application developers are strongly recommended to switch to using those components instead of the legacy playbin and
131
- (uri)decodebin.
132
+- A VVdeC-based H.266 decoder element was added to the Rust plugins, based on the Fraunhofer Versatile Video Decoder library.
133
134
-Improvements in this cycle:
135
+### JPEG XS image codec support
136
137
-- Better support missing/faulty decoders, attempt to use another one or gracefully un-select the stream.
138
+- JPEG XS is a visually lossless, low-latency, intra-only video codec for video production workflows, standardised in ISO/IEC
139
+ 21122.
140
141
-- Many fixes for more complex gapless and instant-switching scenarios
142
+- JPEG XS encoder and decoder elements based on the SVT JPEG XS library were added, including support for muxing JPEG XS into
143
+ MPEG-TS and demuxing it. Both interlaced and progressive modes are supported.
144
145
-- Lower latency for live pipelines
146
+### Low Complexity Enhancement Video Coding (LCEVC) support
147
148
-- Fix for “chained” streams (ex: Ogg, or PMT update in MPEG-TS)
149
+- LCEVC is a codec that provides an enhancement layer on top of another codec such as H.264 for example. It is standardised as
150
+ MPEG-5 Part 2.
151
152
-- Fixes for hardware-accelerated playback with subtitles (provided the sink can handle offloading composition). This was also
153
- partly due to a historical confusion between subtitle “decoders” (which decode the format to text and “parsers” (which only
154
- do timing detection and optional seeking).
155
+- LCEVC encoder and decoder elements based on V-Nova’s SDK libraries were added, including support in h264parse for extracting
156
+ the enhancement layer from H.264 and decoding it via a lcevch264decodebin element.
157
158
-### GstMeta serialization/deserialization and other GstMeta improvements
159
+### Closed captions improvements
160
161
-- GstMeta serialization/deserialization allows metas to be transmitted or stored. This is used by the unixfd and cudaipc
162
- plugins for inter-process communication (IPC). Implemented so far for GstCustomMeta, GstVideoMeta, GstAudioMeta and
163
- GstReferenceTimestampMeta.
164
+- New H.264 and H.265 closed captions extractor and inserter elements.
165
166
-- Simplified GstCustomMeta registration with gst_meta_register_custom_simple() for the simple case where tags and transform
167
- functions are not needed.
168
+ - These extractor elements don’t actually extract captions from the bitstream, but rely on parser elements to do that and
169
+ add them to buffers in form of caption metas. The problem is that streams might contain B-frames, in which case the
170
+ captions in the bitstream will not be in presentation order and extracting them requires frame-reordering in the same
171
+ way that a decoder would do. These new elements will do exactly that and allow you to extract captions in presentation
172
+ order without having to decode the stream.
173
174
-- GstMetaClearFunction clears the content of the meta. This will be called by buffer pools when a pooled buffer is returned to
175
- the pool.
176
+ - The inserter elements do something similar and insert caption SEIs into the H.264 or H.265 bitstream, taking into
177
+ account frame ordering.
178
179
-- Add gst_meta_info_new() and gst_meta_info_register() to register a GstMeta in two steps for easier extensibility.
180
+ - This is useful if one wants to extract, process and re-insert captions into an existing video bitstream without decoding
181
+ and re-encoding it (in which case the decoder and encoder would handle the caption reordering).
182
183
-### New unixfd plugin for efficient 1:N inter-process communication on Linux
184
+- cdpserviceinject: New element for injecting a CDP service descriptor into closed caption CDP packets
185
186
-- unixfdsink and unixfdsrc are elements that, inspired by shmsink andn shmsrc, send UNIX file descriptors (e.g. memfd, dmabuf)
187
- from one sink to multiple source elements in other processes on Linux.
188
+- cea708overlay: New element for overlaying CEA608 / CEA708 closed captions over video streams.
189
190
-- The unixfdsink proposes a memfd/shm allocator to upstream elements which allows for example videotestsrc to write directly
191
- into memory that can be transfered to other processes without copying.
192
+- The cc708overlay element has been deprecated in favour of the cea708overlay element from the Rust plugins set.
193
194
-### New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
195
+- cea608mux gained a "force-live" property to make it always in live mode and aggregate on timeout regardless of whether any
196
+ live sources are linked upstream.
197
198
-- Previously only various specific GstMeta for ancillary data were provided, such as GstVideoCaptionMeta and GstVideoAFDMeta.
199
- The new GstAncillaryMeta allows passing arbitrary ancillary data between elements, including custom and non-standard
200
- ancillary data. See GstAncillaryMeta for details.
201
+- cea708mux: New element that allows to mux multiple CEA708 services into a single stream.
202
203
-- Add with gst_buffer_add_ancillary_meta() and retrieve with gst_buffer_get_ancillary_meta() or
204
- gst_buffer_iterate_ancillary_meta().
205
+- cccombiner has two new properties:
206
207
-- Supported by the newly added AJA sink and source elements
208
+ - "input-meta-processing" controls how input closed caption metas are processed and can be used to e.g. discard closed
209
+ captions from the input pad if the matching video buffer already has closed caption on it.
210
211
-### DSD audio support
212
+ - "schedule-timeout" to support timing out captions without EOS
213
214
-- DSD audio is a non-PCM raw audio format representation and the GstAudio library gained support for this in form of new
215
- GstDsdInfo and GstDsdFormat API.
216
+- tttocea708: New element for converting timed-text to CEA708 closed captions
217
218
-- Support for DSD audio has been implemented in alsasink as well as the GstAudioSink and GstAudioRingBuffer base classes, and
219
- the gst-libav plugin to enable FFmpeg-based DSD elements and functionality.
220
+- Miscellaneous improvements and spec compliance fixes
221
222
-### Analytics and Machine Learning
223
+### Speech to Text, Translation and Speech Synthesis
224
225
-- A new library, GstAnalytics, has been added. It defines a GstAnalyticsRelationMeta that can efficiently hold a large number
226
- of observations from a data analysis process, for example from machine learning. It also contains a matrix of the
227
- relationship between those observations.
228
+- awstranscriber2, awstranslate: New elements around the AWS transcription and translation services.
229
230
-- Three types of metadata are already defined in the library: object detection, classification and tracking.
231
+- polly: New element around the AWS text-to-speech polly services
232
233
-- A new objectdetectionoverlay element has been merged that draws the bounding boxes and the classes from the object detection
234
- and classification metadata types.
235
+- speechmatics: New transcriber / speech-to-text and translation element
236
237
-- The onnxinference element has been split into two parts. The first part works with the ONNX Runtime library to do the actual
238
- inference, while the second part called ssdobjectdetector interprets the produced tensor. This new element creates
239
- GstAnalyticsRelationMeta.
240
+- translationbin: Helper bin around translation elements, similar to the already existing transcriberbin for transcriptions.
241
242
-- The onnxinference element now accepts video frames without transformation if the module declares that it accepts the “Image”
243
- type and the format is something that GStreamer knows.
244
+### HLS DASH adaptive streaming improvements
245
246
-- In the next release, tensor decoders such as ssdobjectdetector will live outside of the ONNX plugin so they can be used with
247
- other machine learning acceleration frameworks.
248
+- The adaptivedemux2 client implementation gained support for file:// URIs and as such the ability to play HLS and DASH from
249
+ local files. It also no longer sends spurious flush events when it loses sync in live streams, as that is unexpected and
250
+ will be handled poorly in non-playback scenarios. Lastly, support for HTTP request retries was added via the "max-retries"
251
+ property, along with some exponential backoff logic which can be fine-tuned via properties.
252
253
-### Qt5 + Qt6 QML integration improvements
254
+- dashsink has received period duration fixes for dynamic MPDs and some memory leak fixes.
255
256
-- The Qt5 qmlglsink, qmlgloverlay, qmlglmixer received support for directly consuming BGRA and YV12 video frames without a
257
- prior glcolorconvert.
258
+- hlscmafsink, hlssink3: New single-variant HLS sink elements that can output CMAF (fMP4) or MPEG-TS fragments.
259
260
-- New qml6glsrc, qml6glmixer, and qml6gloverlay elements as Qt6 counterparts to the existing Qt5 elements, also with support
261
- for directly consuming BGRA and YV12 video frames without a prior glcolorconvert.
262
+- hlsmultivariantsink: New sink element that can output an HLS stream with multiple variants
263
264
-- qml6d3d11sink is a new Direct3D11 Qt6 QML sink for Windows as an alternative to the existing qml6glsink.
265
+### splitmuxsrc, splitmuxsink: lazy loading and dynamic fragment addition
266
267
-### DRM Modifier Support for dmabufs on Linux
268
+- splitmuxsrc and splitmuxsink were originally designed to handle a small number of large file fragments, e.g. for situations
269
+ where one doesn’t want to exceed a certain file size when recording to legacy file systems. It was also designed for playing
270
+ back a static set of file fragments that have been created by an earlier recording session and no longer changes. Over time
271
+ people have found more applications and use cases for the splitmux elements and have been deploying them in different
272
+ scenarios, exposing the limits of the current implementation.
273
274
-The Linux dmabuf subsystem provides buffer sharing across different hardware device drivers and subsystems, and is used
275
-extensively by the DRM subsystem to exchange buffers between processes, contexts, and library APIs within the same process, and
276
-also to exchange buffers with other subsystems such as Linux Media.
277
+- In this release, splitmuxsink and splitmuxsrc gained new abilities aimed at improving support for recordings with a large
278
+ number of files, and for adding fragments on the fly to allow playback of ongoing recordings:
279
280
-In GStreamer, it’s used on the capture side (v4l2src, pipewire), hardware-accelerated video decoders and encoders, OpenGL
281
-integration, Wayland renderers, etc.
282
+ - You can now add fragments directly to splitmuxsrc and provide the offset and duration in the stream:
283
284
-GStreamer has had support for dmabufs for a long time and was able to negotiate “zero-copy” paths between different components,
285
-however it only supported and assumed simple linear formats and was not able to negotiate complex non-linear formats. This meant
286
-that dmabuf support actually had to be disabled in many scenarios to avoid “garbled video”.
287
+ - Providing offset and duration means splitmuxsrc doesn’t need to scan the file to measure it and calculate it. That
288
+ makes for much faster startup.
289
290
-With GStreamer 1.24 there is now full DRM modifier support and complex non-linear formats can be supported and negotiated
291
-between components.
292
+ - The new "add-fragment" signal can be used to add files to the set dynamically - allowing to be playing an ongoing
293
+ recording and adding files to the playback set as they are finished.
294
295
-This is achieved with an extra drm_format field in video/x-raw(memory:DMABuf), format=(string)DMA_DRM caps, e.g.
296
-drm-format=(string)NV12:0x0x0100000000000001.
297
+ - splitmuxsrc no longer keeps all files open, but instead only keeps 100 files open by default, configurable with the
298
+ "num-open-fragments" property.
299
300
-See the GStreamer DMA buffers design documentation for more details.
301
+ - There is a new "num-lookahead" property on splitmuxsrc to trigger (re)opening files a certain distance ahead of the play
302
+ position.
303
304
-This is used in the VA-API va plugin, waylandsink, the MSDK plugin, and the OpenGL integration. Video4Linux support is expected
305
-to land in one of the next minor releases.
306
+ - splitmuxsink will report fragment offset and fragment duration via a message on the bus when closing a file. This
307
+ information can then be used to add the new fragment to a splitmuxsrc.
308
309
-New API has been added for easy handling of these new caps:
310
+### MPEG-TS container format improvements
311
312
-- GstVideoInfoDmaDrm plus associated functions, similar to GstVideoInfo, including conversion to and from GstVideoInfo with
313
- gst_video_info_dma_drm_from_video_info() and gst_video_info_dma_drm_to_video_info()
314
+- The MPEG-TS muxer and demuxer gained support for
315
316
-- GST_VIDEO_DMA_DRM_CAPS_MAKE
317
+ - H.266 / VVC video muxing and demuxing
318
+ - JPEG-XS video muxing and demuxing
319
+ - VP9 video muxing and demuxing (using a custom mapping)
320
+ - AV1 video muxing and demuxing (using a custom mapping, since the work-in-progress specification effort doesn’t seem to
321
+ be going anywhere anytime soon)
322
+ - SMPTE ST-2038 ancillary metadata streams (see section above)
323
324
-- GST_VIDEO_FORMAT_DMA_DRM
325
+- mpegtsmux gained support for muxing ID3 metadata into the TS stream, as well as SMPTE 302M audio.
326
327
-### OpenGL integration enhancements
328
+- It’s also possible to disable sending SCTE-35 null (heartbeat) packets now in mpegtsmux by setting the
329
+ "scte-35-null-interval" to 0.
330
331
-- When using EGL, if both OpenGL ES and OpenGL are available, OpenGL ES is preferred over OpenGL. OpenGL ES supports some
332
- necessary features required for dmabuf support. This does not apply if an external library/application chooses an OpenGL API
333
- first.
334
+- tsparse now handles 192-byte M2TS packets
335
336
-- Improved support for dmabuf use cases. The glupload element now supports the new and improved dmabuf negotiation with
337
- explicit modifiers.
338
+- mpegtslivesrc: New source element that can wrap a live MPEG-TS source (e.g. SRT or UDP source) and provides a clock based on
339
+ the PCR.
340
341
-- Base classes for mixing with OpenGL are now public API. GstGLBaseMixer and GstGLMixer are exposed matching the existing
342
- filter-based GstGLBaseFilter and GstGLFilter base classes. The new OpenGL mixer base classes are based on
343
- GstVideoAggregator.
344
+### Matroska container format improvements
345
346
-- Add support for a ‘surfaceless’ EGL context using EGL_MESA_platform_surfaceless.
347
+- H.266 / VVC video muxing and demuxing support
348
349
-- Expose Vivante Framebuffer build-related files (pkg-config, gir) as public API
350
+- matroskamux
351
352
-- Add support for more video formats:
353
+ - was ported to the GstAggregator base class, ensuring defined-latency muxing in live streaming pipelines.
354
+ - gained rotation tag support
355
356
- - A420 8/10/12/16-bit.
357
- - A422 8/10/12/16-bit.
358
- - A444 8/10/12/16-bit.
359
- - I420 10/12 bit.
360
- - RBGA.
361
+- matroskademux now also supports seeks with a stop position in push mode.
362
363
-- Add support for tiled video formats
364
+### ISO MP4 container format improvements
365
366
- - NV12_16L32S (Mediatek format)
367
- - NV12_4L4 (Verisilicon Hantro format)
368
+- can mux and demux H.266 / VVC in MP4 now
369
370
-- glcolorconvert now has API for retrieving shader strings for:
371
+- can demux Hap video now, as well as Lagarith lossless video and ISO/IEC 23003-5 raw PCM audio.
372
373
- - swizzling (reordering components).
374
- - YUV->RGB conversion.
375
- - RGB->YUV conversion.
376
+- qtdemux handles keyunit-only trick mode also in push mode now
377
378
-- Add more helpers for information about a particular video and/or GL format e.g. number of components, bytes used, or pixel
379
- ordering.
380
+- support for ISO/IEC 23001-17 raw video in MP4 in qtdemux and isomp4mux.
381
382
-- glvideomixer has new sink pad properties sizing-policy, xalign, yalign matching compositor.
383
+- support for rotation tags in the muxers and demuxers was improved to correctly handle per-media and per-track rotations, and
384
+ support for flips was added as well.
385
386
-- GstGLBufferPool now has a configuration option for allowing a number of buffers to be always outstanding allowing for
387
- reducing the potential synchronisation delay when reusing OpenGL memory backed buffers.
388
+SMPTE 2038 ancillary data streams
389
390
-### Vulkan integration enhancements
391
+- SMPTE 2038 (pdf) is a generic system to put VBI-style ancillary data into an MPEG-TS container. This could include all kinds
392
+ of metadata such as scoreboard data or game clocks, and of course also closed captions, in this case in form of a distinct
393
+ stream completely separate from any video bitstream.
394
395
-- Add support for the Vulkan H.264 and H.265 decoders.
396
+- A number of new elements in the GStreamer Rust closedcaption plugin add support for this, along with mappings for it in the
397
+ MPEG-TS muxer and demuxer. The new elements are:
398
399
-- Add support for timeline semaphores.
400
+ - st2038ancdemux: splits SMPTE ST-2038 ancillary metadata (as received from tsdemux) into separate streams per DID/SDID
401
+ and line/horizontal_offset. Will add a sometimes pad with details for each ancillary stream. Also has an always source
402
+ pad that just outputs all ancillary streams for easy forwarding or remuxing, in case none of the ancillary streams need
403
+ to be modified or dropped.
404
405
-- Optionally use newer Vulkan functions for format selection.
406
+ - st2038ancmux: muxes SMPTE ST-2038 ancillary metadata streams into a single stream for muxing into MPEG-TS with
407
+ mpegtsmux. Combines ancillary data on the same line if needed, as is required for MPEG-TS muxing. Can accept individual
408
+ ancillary metadata streams as inputs and/or the combined stream from st2038ancdemux.
409
410
-- Add support for GPU-assisted validation.
411
+ If the video framerate is known, it can be signalled to the ancillary data muxer via the output caps by adding a
412
+ capsfilter behind it, with e.g. meta/x-st-2038,framerate=30/1.
413
414
-- Vulkan/Wayland: add support for xdg_wm_base protocol for creating a visible debug window. Required as the previous wl_shell
415
- interface is being removed from compositors.
416
+ This allows the muxer to bundle all packets belonging to the same frame (with the same timestamp), but that is not
417
+ required. In case there are multiple streams with the same DID/SDID that have an ST-2038 packet for the same frame, it
418
+ will prioritise the one from more recently created request pads over those from earlier created request pads (which
419
+ might contain a combined stream for example if that’s fed first).
420
421
-### CUDA / NVCODEC integration and feature additions
422
+ - st2038anctocc: extracts closed captions (CEA-608 and/or CEA-708) from SMPTE ST-2038 ancillary metadata streams and
423
+ outputs them on the respective sometimes source pad (src_cea608 or src_cea708). The data is output as a closed caption
424
+ stream with caps closedcaption/x-cea-608,format=s334-1a or closedcaption/x-cea-708,format=cdp for further processing by
425
+ other GStreamer closed caption processing elements.
426
+
427
+ - cctost2038anc: takes closed captions (CEA-608 and/or CEA-708) as produced by other GStreamer closed caption processing
428
+ elements and converts them into SMPTE ST-2038 ancillary data that can be fed to st2038ancmux and then to mpegtsmux for
429
+ splicing/muxing into an MPEG-TS container. The line-number and horizontal-offset properties should be set to the desired
430
+ line number and horizontal offset.
431
432
-- New cudaipcsrc and cudaipcsink elements for zero-copy CUDA memory sharing between processes
433
+### Analytics
434
435
-- New nvJPEG library based nvjpegenc JPEG encoder element
436
+- Added a GstTensorMeta: This meta is designed to carry tensors from the inference element to the model-specific tensor
437
+ decoder. This also includes a basic GstTensor class containing a single tensor. The actual tensor data is a GstBuffer.
438
439
-- The NVIDIA desktop GPU decoder nvh264sldec, nvh265sldec, nvvp8sldec, and nvvp9sldec elements were renamed to nvh264dec,
440
- nvh265dec, nvvp8dec, and nvvp9dec, respectively.
441
+- Add N_TO_N relationship to GstAnalyticsRelationMeta: This makes it possible to describe N-to-N relationships. For example,
442
+ between classes and regions in an instance segmentation.
443
444
-- GStreamer NVIDIA H.264 and H.265 encoders except for nvh264enc and nvh265enc gained support for CEA708 Closed Caption
445
- inserting.
446
+- Add a new analytics Mtd to carry segmentation masks: Being part of the GstAnalyticsMeta, it can be in relationship with the
447
+ other Mtd, such as the classification and object detection bounding boxes.
448
449
-- OpenGL memory support is added to nv{cuda,autogpu}h264enc and nv{cuda,autogpu}h265enc elements
450
+- onvifmetadataextractor: New element that can extract ONVIF metadata from GstMetas into a separate stream
451
452
-- CUDA stream integration: As of 1.24, CUDA stream synchronization is an application’s responsibility, and GStreamer will not
453
- execute unnecessary synchronization operations. If an application needs direct access to CUDA memory via GST_MAP_CUDA map
454
- flag, cuStreamSynchronize() or gst_cuda_memory_sync() call is required unless application-side CUDA operation is executed
455
- with the GstCudaMemory’s associated CUDA stream.
456
+- originalbuffer: New plugin with originalbuffersave / originalbufferrestore elements that allow saving an original buffer,
457
+ modifying it for analytics, and then restoring the original buffer content while keeping any additional metadata that was
458
+ added.
459
460
-### RTP stack improvements
461
+- relationmeta: New plugin with elements converting between GstRelationMeta and ONVIF XML metadata.
462
463
-- New rtppassthroughpay element which just passes RTP packets through unchanged, but appears like an RTP payloader element.
464
- This is useful for relaying an RTP stream as-is through gst-rtsp-server, which expects an RTP payloader with certain
465
- properties at the end of an RTSP media sub-pipeline.
466
+- Improved Python bindings for a more Pythonic interface when iterating over GstRelationMeta’s mtd
467
468
-- New “timeout-inactive-rtp-sources” property on rtpbin, sdpdemux and rtpsession to allow applications to disable automatic
469
- timeout of sources from which no data has been received for a while.
470
+### Vulkan integration enhancements
471
472
-- rtpvp8pay, rtpvp9pay: expose “picture-id” as a property, and add a “picture-id-offset” property to the VP9 payloader to
473
- bring it in line with the VP8 payloader.
474
+- Vulkan Integration Improvements:
475
476
-- rtpjitterbuffer has seen improved media clock handling (clock equality and clock setting/resetting), as well as two new
477
- properties that allow reconstruction of absolute PTP timestamps without actually syncing to the PTP clock, which can be
478
- useful in scenarios where one wants to reconstruct the absolute PTP clock timestamps on a machine that doesn’t have access
479
- to the network of the PTP clock provider. The two new properties are:
480
+ - Memory Management: Non-coherent memory is now invalidated when mapping for read in vkmemory.
481
482
- - “rfc7273-use-system-clock”: allows the jitter buffer to assume that the system clock is synced sufficiently close to the
483
- media clock used by an RFC7273 stream. By default the property is disabled and the jitter buffer will create a media
484
- clock and try to sync to it, but this is only required to determine in which wraparound period from the media clock’s
485
- Epoch the current RTP timestamps refer to (and thus to reconstruct absolute time stamps from them). If the property is
486
- enabled the wraparound period and current offset from the Epoch will be determined based on the local system clock,
487
- which means that no direct network connection to the media clock provider is needed to reconstruct absolute timestamps.
488
- There is also no start-up delay, because there’s no clock sync that needs to be established first.
489
+ - Color Space Selection: The vkswapper component now chooses the correct color space based on the format.
490
491
- - “rfc7273-reference-timestamp-meta-only”: If this property is enabled then the jitter buffer will do the normal timestamp
492
- calculations for the output buffers according to the configured mode instead of making use of the RFC7273 media clock
493
- for that. It will still calculate RFC7273 media clock timestamps, but only attach them to the output buffers in form of
494
- a clock reference meta.
495
+ - Vulkan Plugin Compatibility: Support added for cases where glslc is not available for building Vulkan plugins, along
496
+ with GLSL compiler support for glslang.
497
498
-- RTP payloaders and depayloaders now have an “extensions” property for retrieving the list of currently enabled RTP header
499
- extensions.
500
+ - Fullscreen Quad Updates: Improved support for setting NULL input/output buffers and added checks for unset video info.
501
502
-- rtpbin and webrtcbin no longer blindly set properties on the jitter buffer assuming it’s a standard rtpjitterbuffer, but
503
- instead check if the property is available first, to better support non-standard jitterbuffers or even an identity element
504
- in lieu of a jitter buffer.
505
+ - Vulkan Buffer Pool Enhancements: Buffer pool access flags and usage configurations have been refined, offering better
506
+ performance for video decoding and encoding.
507
508
-- RTP header extension handling fixes for depayloaders that aggregate multiple input buffers into a single output buffer.
509
- Before, only the last RTP input buffer was checked for header extensions. Now the depayloader remembers all RTP packets
510
- pushed before an output buffer is produced and checks all RTP input buffers for header extensions.
511
+- Decoder/Encoder Improvements:
512
513
- - Affected depayloaders: rtph264depay, rtph265depay, rtpvp8depay, rtpvp9depay, rtpxqtdepay, rtpasfdepay, rtpmp4gdepay,
514
- rtpsbcdepay, rtpvorbisdepay, rtpmp4vdepay, rtptheoradepay, rtpsv3vdepay, rtpmp4adepay, rtpklvdepay, rtpjpegdepay,
515
- rtpj2kdepay, rtph263pdepay, rtph263depay, rtph261depay. rtpgstdepay.
516
+ - H264 Decoder: Enhancements to the vkh264dec component for better support of extended profiles and interlaced content
517
+ decoding.
518
519
-### WebRTC improvements
520
+ - H265 Decoder fixes: vkh265dec updated for proper handling of VPS/SPS on demand, along with fixes to PicOrderCntVal.
521
522
-- Add support for ICE consent freshness (RFC 7675). This requires libnice >= 0.1.22.
523
+ - Encoder Performance: Various internal optimizations to the Vulkan encoder, including removal of redundant references and
524
+ better management of the DPB view.
525
526
-- Advertise the local side of an end-of-candidates with an empty candidate string.
527
+- Vulkan Instance and Device Management:
528
529
-- Add the number of Data Channels opened and closed to webrtcbin’s statistics.
530
+ - Device Handling: Added new utility functions for managing Vulkan device instances, including
531
+ gst_vulkan_instance_create_device_with_index and gst_vulkan_ensure_element_device.
532
533
-- Various improvements and feature additions in the Rust webrtc plugin, which provides webrtcsrc and webrtcsink elements as
534
- well as specific elements for different WebRTC signalling protocols. See the Rust plugins section below for more details.
535
+ - Device Context Management: Updates to manage Vulkan context handling more effectively within the application.
536
537
-### Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
538
+### OpenGL integration enhancements
539
540
-- hlsdemux2 now supports Low-Latency HLS (LL-HLS)
541
+- glcolorconvert gained support for more formats and conversions:
542
543
-- hlsdemux2 asynchronous playlist download and update improves responsiveness and bandwith usage.
544
+ - Planar YUV <-> planar YUV conversions
545
+ - Converting to and from v210 in general
546
+ - v210 <-> planar YUV
547
+ - UYVY and YUY2 <-> planar YUV
548
+ - v210 <-> UYVY and YUY2
549
+ - Support for Y444_10, Y444_16, I422_10, I422_12 pixel formats (both little endian and big endian variants)
550
551
-- hlsdemux2 handles fallback variant URLs.
552
+- gldownload can import DMABufs from a downstream pool
553
554
-- hlsdemux2 is more responsive and accurate when handling seeks.
555
+- glupload gained a DRM raw uploader
556
557
-- dashdemux2 and hlsdemux2 have a new “start-bitrate” property, improving the decision for which initial stream variant that
558
- will be used.
559
+### Qt5 + Qt6 QML integration improvements
560
561
-- dashdemux2, hlsdemux2, mssdemux2 have received many improvements regarding seeking, along with support for “early-seek”
562
- which allows playback to start immediately from the requested position without any previous download.
563
+- qmlglsink, qml6glsink now support external-oes textures, which allows direct DMABuf import from hardware decoders. Both also
564
+ support NV12 as an input format now.
565
566
-- dashdemux2, hlsdemux2, mssdemux2 better handle errors on or near the live edge.
567
+- qmlglsink gained support for RGB16/BGR16 as input format
568
569
-- dashsink can now use the dashmp4mux muxer from the Rust plugins and will also produce better and RFC 6381-compatible codec
570
- strings. The “suggested-presentation-delay” property allows to set the suggested presentation delay in the MPD.
571
+- qmlgl6src can now use a downstream buffer pool when available
572
573
-- No development took place on the legacy demuxers (dashdemux, hlsdemux, mssdemux). Application developers are reminded to use
574
- the new demuxers instead. They are automatically picked up when using urisourcebin, uridecodebin3 or playbin3.
575
+- qmlgloverlay make the depth/stencil buffer optional, which reduces memory bandwidth on Windows.
576
577
-### W3C Media Source Extensions library
578
+### CUDA / NVCODEC integration and feature additions
579
580
-- A new GStreamer library (mse) implementing the W3C Media Source Extensions specification was added.
581
+- Added AV1 video encoder nvav1enc
582
583
-- Applications can embed this library along with GStreamer in order to integrate software that uses the Media Source APIs
584
- without relying on a web browser engine. Typically an application consuming this library will wrap the C API with JavaScript
585
- bindings that match the Media Source API so their existing code can integrate with this library.
586
+- CUDA mode nvcuda{CODEC}enc encode elements are renamed to nv{CODEC}enc and old nv{CODEC}enc implementations are removed
587
588
-### Closed Caption handling improvements
589
+- Added support for CUDA Stream-Ordered allocator
590
591
-- ccconverter supports converting between the two CEA-608 fields.
592
+- Added cudacompositor element which is equivalent to the software compositor element but uses CUDA
593
594
-- New cea608mux element for muxing multiple CEA-608 streams together.
595
+- Added support for CUDA kernel precompile at plugin build time using nvcc and NVCODEC plugin can cache/reuse compiled CUDA
596
+ CUBIN/PTX
597
598
-- Various improvements and feature additions in the Rust-based closed caption elements. Check out the Rust plugins section
599
- below for more details.
600
+- cudaupload and cudadownload elements can support Jetson platform’s NVMM memory in addition to already supported desktop NVMM
601
+ memory
602
603
-### Precision Time Protocol (PTP) clock improvements
604
+- Introduced nvdswrapper plugin which uses NVIDIA DeepStream SDK APIs with gst-cuda in an integrated way:
605
606
-- Many fixes and compatibility/interoperability improvements.
607
+ - nvdsdewarp: NVIDIA NVWarp360 API based dewarping element
608
609
-- Better support for running on devices with multiple network interfaces.
610
+### GStreamer Direct3D12 integration
611
612
-- Allow sync to master clock on same host.
613
+- New gst-d3d12 public library. The following elements are integrated with the gst-d3d12 library:
614
615
-- PTP clock support is now also available on Windows.
616
+ - NVIDIA NVCODEC decoders and encoders can support D3D12 memory
617
+ - Intel QSV encoders can accept D3D12 memory
618
+ - All elements in dwrite plugin can support D3D12 memory
619
620
-- The standalone ptp-helper binary has been rewritten in Rust for portability and security. This works on Linux, Android,
621
- Windows, macOS, FreeBSD, NetBSD, OpenBSD, DragonFlyBSD, Solaris and Illumos. Newly supported compared to the C version is
622
- Windows. Compared to the C version various error paths are handled more correctly and a couple of memory leaks are fixed.
623
- Otherwise it should work identically. The minimum required Rust version for compiling this is 1.48, i.e. the version
624
- currently in Debian oldstable. On Windows, Rust 1.54 is needed at least.
625
+- The d3d12 library and plugin can be built with MinGW toolchain now (in addition to MSVC)
626
627
-- New ptp-helper Meson build option so PTP support can be disabled or required.
628
+- D3D12 video decoders and d3d12videosink are promoted to have higher rank than D3D11 elements
629
630
-- gst_ptp_init_full() allows for a more fine-grained and extensible configuration and initialization of the GStreamer PTP
631
- subsystem, including TTL configuration.
632
+- Added support for multiple mip-levels D3D12 textures:
633
634
-### Bayer 10/12/14/16-bit depth support
635
+ - Newly added d3d12mipmapping element can generate D3D12 textures with multiple mip-levels
636
637
-- bayer2rgb and rgb2bayer now support bayer with 10/12/14/16 bit depths
638
+ - max-mip-levels property is added to d3d12convert, d3d12videosink, and d3d12swapchainsink element, so that the elements
639
+ can generate an intermediate texture with multiple mip-levels in order to reduce downscale aliasing artifacts
640
641
-- v4l2src and videotestsrc now support bayer with 10/12/14/16 bit depths
642
+- d3d12convert, d3d12videosink, and d3d12swapchainsink support the GstColorBalanceInterface to offer color balancing functions
643
+ such as hue, saturation, and brightness adjustment
644
645
-- imagefreeze gained bayer support as well
646
+- Added d3d12ipcsink and d3d12ipcsrc elements for zero-copy GPU memory sharing between processes
647
648
-### MPEG-TS improvements
649
+- d3d12upload and d3d12download support direct GPU memory copy between D3D12 and D3D12 resources
650
651
-- mpegtsdemux gained support for
652
- - segment seeking for seamless non-flushing looping, and
653
- - synchronous KLV
654
-- mpegtsmux now
655
- - allows attaching PCR to non-PES streams
656
- - allows setting of the PES stream number for AAC audio and AVC video streams via a new “stream-number” property on the
657
- muxer sink pads. Currently the PES stream number is hard-coded to zero for these stream types.
658
- - allows writing arbitrary Opus channel mapping families and up to 255 channels
659
- - separate handling of DVB and ATSC AC3 descriptors
660
+- Added d3d12swapchainsink element to support DirectComposition or UWP/WinUI3 SwapChainPanel based applications
661
662
-## New elements and plugins
663
+- Added d3d12deinterlace element which performs deinterlacing using a GPU vendor agnostic compute shader.
664
665
-- analyticsoverlay visualises object-detection metas on a video stream.
666
+- d3d12screencapturesrc element can capture HDR enabled desktop correctly in DDA mode (DXGI Desktop Duplication API)
667
668
-- autovideoflip and autodeinterlace are two new auto elements.
669
+### Capture and playout cards support
670
671
-- AJA source and sink elements plus device provider for AJA capture and playout cards, including support for HANC/VANC
672
- ancillary data.
673
+- ajasrc: Improve clock handling, frame counting, capture timestamping, and signal loss recovery
674
675
-- New cea608mux element for muxing multiple CEA-608 streams together.
676
+- The Blackmagic Decklink plugin gained support
677
678
-- The codec2json plugin adds av12json, h2642json, h2652json and vp82json elements which convert AV1, H.264, H.265 and VP8
679
- frame parameters into human readable JSON data, which is useful for debugging and testing purposes.
680
+ - for HDR output and input (PQ + HLG static metadata)
681
682
-- New lc3 plugin with a decoder and encoder for the Bluetooth LC3 audio codec.
683
+ - all modes of Quad HDMI recorder
684
685
-- New onnxinference element to run ONNX inference models on video buffers.
686
+ - scheduling frames before they need to be displayed in decklinkvideosink
687
688
-- New rtppassthroughpay element which just passes RTP packets through unchanged, but appears like an RTP payloader element.
689
- This is mostly useful for medias that simply pass through an existing RTP stream in gst-rtsp-server.
690
+### RTP and RTSP stack improvements
691
692
-- Qt6: qml6glsrc, qml6glmixer, qml6gloverlay, and qml6d3d11sink
693
+- rtspsrc now supports client-managed MIKEY key management. Some RTSP servers (e.g. Axis cameras) expect the client to propose
694
+ the encryption key(s) to be used for SRTP / SRTCP. This is required to allow re-keying. This mode can be enabled by enabling
695
+ the "client-managed-mikey-mode" property and comes with a number of new signals ("request-rtp-key" and "request-rtcp-key"),
696
+ action signals ("set-mikey-parameter" and "remove-key") and properties ("hard-limit" and "soft-limit").
697
698
-- New SVT-AV1 encoder plugin, imported from SVT-AV1 but with many fixes.
699
+- rtpbin: Add new “never” and “ntp” RTCP sync modes
700
701
-- Many exciting new Rust elements, see Rust section below.
702
+ - Never is useful for some RTSP servers that report plain garbage both via RTCP SR and RTP-Info, for example.
703
+ - NTP is useful if synchronization should only ever happen based on RTCP SR or NTP-64 RTP header extensions.
704
705
-- New DirectWrite text rendering and Direct3D12 plugins (see Windows section below).
706
+ This is part of a bigger refactoring of the synchronization / offsetting code in rtpbin, which also makes it regularly emit
707
+ the sync signal even if no new synchronisation information is available, controlled by the new "min-sync-interval" property.
708
709
-- New vaav1enc element for encoding video in AV1 (See VA-API section)
710
+- rtpjitterbuffer: add RFC7273 active status to jitterbuffer stats so applications can easily check whether RFC7273 sync is
711
+ active.
712
713
-- New uvcsink element for exporting streams as UVC camera
714
+- rtph265depay: Add "wait-for-keyframe" "request-keyframe" properties and improve request keyframe logic
715
716
-## New element features and additions
717
+- rtppassthroughpay gained the ability to regenerate RTP timestamps from buffer timestamps via the new "retimestamp-mode"
718
+ property. This is useful in a relay RTSP server if one wants to do full drift compensation and ensure that the stream coming
719
+ out of gst-rtsp-server is not drifting compared to the pipeline clock and also not compared to the RTCP NTP times.
720
721
-- alphacombine supports I420_10LE now for 10-bit WebM/alpha support.
722
+- New Rust RTP payloaders and depayloaders for AC3, AMR, JPEG, KLV, MPEG-TS (MP2T), MPEG-4 (MP4A, MP4G), Opus, PCMU (uLaw),
723
+ PCMA (aLaw), VP8, VP9.
724
725
-- The amfcodec for hardware-accelerated video encoding using the Advanced Media Framework (AMF) SDK for AMD GPUs gained some
726
- new features:
727
+- New rtpbin2 based on separate rtprecv and rtpsend elements
728
+
729
+### WebRTC improvements
730
731
- - 10-bit and HDR support for H.265 / HEVC and AV1 video encoders
732
- - B-frame support in the H.264 encoder
733
- - Initial support of pre-analysis and pre-encoding
734
- - Initial support of Smart Access Video for optimal distribution amongst multiple AMD hardware instances.
735
+- webrtcbin improvements
736
737
-- appsink: new “propose-allocation” signal so applications can provide a buffer pool or allocators to the upstream elements,
738
- as well as “max-time” and “max-buffers” properties to configure the maximum size of the appsink-internal queue in addition
739
- to the existing “max-bytes” property.
740
+ - Make basic rollbacks work
741
742
-- autovideoconvert exposes colorspace and scaler elements for well know elements
743
+ - Add "reuse-source-pads" property: When set to FALSE, if a transceiver becomes send-only or inactive then pre-existing
744
+ source pads will receive an EOS event and no further traffic even after further renegotiation. When TRUE, pads will
745
+ simply not receive any output when the negotiated transceiver state doesn’t have incoming traffic. If renegotiated
746
+ later, the pad will receive data again.
747
748
-- avtp: add AVTP Raw Video Format payload and de-payload support.
749
+ - Early CNAME support (RFC5576): Have CNAME available to the jitterbuffer before the the first RTCP SR is received, for
750
+ rapid synchronization.
751
752
-- cacasink’s output driver can now be selected via the “driver” property.
753
+ - New "post-rtp-aux-sender" signal to allow for placement of an object after rtpbin, before sendbin. This is useful for
754
+ objects such as congestion control elements, that don’t want to be burdened by the synchronization requirements of
755
+ rtpsession.
756
757
-- camerabin: various fixes and stability improvements
758
+ - Create and associate transceivers earlier in negotiation, and other spec compliance improvements
759
760
-- clocksync: “QoS” property to optionally send QoS events upstream like a synchronising sink would.
761
+ - Statistics generation improvements for bundled streams
762
763
-- cutter: can add GstAudioLevelMeta on output buffers, which can be enabled via the new “audio-level-meta” property.
764
+- webrtcsink improvements:
765
766
-- dashdemux2 has a new “start-bitrate” property.
767
+ - Support for more encoders: nvv4l2av1enc, vpuenc_h264 (for imx8mp), nvav1enc, av1enc, rav1enc and nvh265enc.
768
769
-- dashsink can now use the dashmp4mux muxer from the Rust plugins and will also produce better and RFC 6381-compatible codec
770
- strings. The “suggested-presentation-delay” property allows to set the suggested presentation delay in the MPD.
771
+ - The new "define-encoder-bitrates" signal allows applications to fine-tune the bitrate allocation for individual streams
772
+ in cases where there are multiple encoders. By default the bitrate is split equally between encoders.
773
774
-- deinterlace: Add support for 10/12/16-bit planar YUV formats
775
+ - A generic mechanism was implemented to forward metas over the control channel.
776
777
-- The dvdspu subpicture overlay now implements GstVideoOverlayComposition support to make it work better with hardware
778
- decoders where the video data should ideally stay on the GPU/VPU and the overlay blitting be delegated to the renderer.
779
+ - Added a mechanism for SDP munging to handle server-specific quirks.
780
781
-- encodebin now automatically autoplugs timestamper elements such as h264timestamper or h265timestamper, based on new
782
- “Timestamper” element factory type and rank.
783
+ - Can expose a built-in web server and signalling server for prototyping and debugging purposes.
784
785
-- New fakevideodec element (see debugging section below).
786
+- webrtcsink and webrtcsrc enhancements:
787
788
-- filesink: “file-mode” property to allow the ability to specify rb+ file mode, which overwrites an existing file. This is
789
- useful in combination with splitmuxsink so that files can be pre-allocated which can be useful to reduce disk fragmentation
790
- over time.
791
+ - Support for raw payloads, i.e. uncompressed audio and video
792
793
-- flvmux: add “enforce-increasing-timestamps” property to allow disabling a hack that was added back in the day because
794
- librtmp as used in rtmpsink would get confused by timestamps going backwards, but this is no longer required with rtmpsink2.
795
- If set to true (still the default, for backwards compatibility), flvmux will modify buffers timestamps to ensure they are
796
- always strictly increasing, inside one stream and also between the audio and video streams.
797
+ - NTP & PTP clock signalling and synchronization support (RFC 7273)
798
799
-- giostreamsink: Add a property to close the stream on stop().
800
+ - Generic data channel control mechanism for sending upstream events back to the sender (webrtcsink)
801
802
-- h264parse improved its AU boundary detection.
803
+- webrtcsrc now has support for multiple producers
804
805
-- h264parse, h265parse, mpegvideoparse now support multiple unregistered user data SEI messages.
806
+## New elements and plugins
807
808
-- insertbin is now a registered element and available via the registry, so can be constructed via parse-launch and not just
809
- via the insertbin API.
810
+- Many exciting new Rust elements, see Rust section below.
811
812
-- jack: libjack is now loaded dynamically at runtime instead of linking it at build time. This means the plugin can be shipped
813
- on Windows and macOS and will work if there’s a user-installed JACK server/library setup.
814
+- webview2src: new Microsoft WebView2 based web browser source element
815
816
-- jpegparse now has a rank so it will be autoplugged if needed.
817
+- h264ccextractor, h264ccinserter: H.264 closed caption extractor / inserter
818
819
-- kmssink: Add auto-detection for NXP i.MX8M Plus LCDIFv3, ST STM32 LTDC, and Texas Instruments TIDSS display controllers.
820
+- h265ccextractor, h265ccinserter: H.265 closed caption extractor / inserter
821
822
-- matroskademux and matroskamux gained support for more raw video formats, namely RGBA64_LE, BGRA64_LE, GRAY10_BE32, GRAY16_LE
823
+- h266parse
824
825
-- mpg123audiodec’s rank was changed from MARGINAL to PRIMARY so it’s now higher than avdec_mp3, as it works better with
826
- “freeformat” MP3s.
827
+- lcevch264decodebin
828
829
-- msdk:
830
+- New VA elements (see below): vah266dec, vavp8enc, vajpegenc, vavp8alphadecodebin, vavp9alphadecodebin
831
832
- - DRM modifier support on Linux
833
+- svtjpegxsdec, svtjpegxsenc: SVT JPEG XS decoder/encoder
834
835
- - only expose codecs and capabilities actually supported by the platform
836
+- Many other new elements mentioned in other sections (e.g. CUDA, NVCODEC, etc.)
837
838
- - msdkvpp video post-processing:
839
+## New element features and additions
840
841
- - new “hdr-tone-mapping” property to enable HDR-to-SDR tone mapping
842
- - new compute scaling mode
843
+- audioconvert enhancements:
844
845
- - Decoders sport D3D11 and VA integration, and the VP9 decoder supports certain resolution changes.
846
+ - Add possibility to reorder input channels when audioconvert has unpositionned audio channels as input. It can now use
847
+ reordering configurations to automatically position those channels via the new "input-channels-reorder" and
848
+ "input-channels-reorder-mode" properties.
849
850
- - Encoders:
851
+ - Better handling of setting of the mix matrix at run time
852
853
- - msdkh264enc, msdkh265enc**: “pic-timing-sei” property to insert pic timing SEI
854
- - msdkh264enc, msdkh265enc**: Add properties to allow different max/min-qp values for I/P/B frames
855
- - msdkh264enc: Added BGRx format DMABuf support
856
- - Advertise special image formats in low power mode
857
+ - handles new GstRequestMixMatrix custom upstream event
858
859
-- mxfdemux gained support for FFV1 demuxing
860
+- audiorate: Take the tolerance into account when filling gaps; better accounting of the number of samples added or dropped.
861
862
-- opusenc, opusdec now support decoding and encoding more than 8 channels, and can also handle unknown/unpositioned channel
863
- layouts.
864
+- av1enc: Add "timebase" property to allow configuring a specific time base, in line with what exists for vp8enc and vp9enc
865
+ already.
866
867
-- The oss plugin gained a device provider for audio device discovery
868
+- av1parse can parse annexb streams now, and typefinding support has been added for annexb streams as well.
869
870
-- pcapparse learned how to handle the Linux “cooked” capture encapsulation v2
871
+- The GTK3 plugin has gained support for OpenGL/WGL on Windows
872
873
-- Intel Quick Sync plugin improvements:
874
+- fdsrc has a new "is-live" property to make it act like a live source and timestamp the received data with the clock running
875
+ time.
876
877
- - qsvh264enc gained more encoding options
878
- - qsvh265dec now supports GBR decoding and HEVC RExt profiles
879
+- imagefreeze: Add support for JPEG and PNG
880
881
-- qtdemux now adds audio clipping meta when playing gapless m4a content, supports CENC sample grouping, as well as the SpeedHQ
882
- video codec.
883
+- kmssink: Extended the functionality to support buffers with DRM formats along with non-linear buffers
884
885
-- ristsrc gained support for dynamic payloads via the new “caps” and “encoding-name” properties. These can be used to make the
886
- ristsrc receive other payload types than MPEG-TS.
887
+- pitch now supports reverse playback
888
889
-- rtmp2src: a new “no-eof-is-error” property was added: There is currently no way for applications to know if the stream has
890
- been properly terminated by the server or if the network connection was disconnected, as an EOS is sent in both cases. With
891
- the property set, connection errors will be reported as errors, allowing applications to distinguish between both scenarios.
892
+- queue can emit the notify signal on queue level changes if the "notify-levels" property has been set.
893
894
-- rtspsrc: new “extra-http-request-headers” property for adding custom http request headers when using http tunnelling.
895
+- qroverlay: the "pixel-size" property has been removed in favour of a new "size" property with slightly different semantics,
896
+ where the size of the square is expressed in percent of the smallest of width and height.
897
898
-- sdpdemux now supports SDP source filters as per RFC 4570; audio-only or video-only streaming can be selected via the new
899
- “media” property, and RTCP feedback can be disabled via the “rtcp-mode” property.
900
+- rsvgdec: Negotiate resolution with downstream and scale accordingly
901
902
-- splitmuxsrc uses natural ordering to sort globbed filenames now, i.e. 0, 1, 2, 10, 11 instead of 0, 1, 10, 11, 2, …
903
+- rtmp2: server authentication improvements
904
905
-- srt: Add more fields to the statistics to see how many packets were retransmitted and how many were dropped.
906
+ - Mimic librtmp’s behaviour and support additional connection parameters for the connect packet, which are commonly used
907
+ for authentication, via the new "extra-connect-args" property.
908
909
-- switchbin: many improvements, especially for caps handling and passthrough.
910
+ - Add support for Limelight CDN (llnw) authentication
911
912
-- taginject: a “scope” property was added to allow injection of global tags in addition to the current default which is stream
913
- tags.
914
+- scaletempo has gained support for a “fit-down” mode: In fit-down mode only 1.0 rates are supported, and the element will fit
915
+ audio data in buffers to their advertised duration. This is useful in speech synthesis cases, where elements such as
916
+ awspolly will generate audio data from text, and assign the duration of the input text buffers to their output buffers.
917
+ Translated or synthesised audio might be longer than the original inputs, so this makes sure the audio will be sped up to
918
+ fit the original duration, so it doesn’t go out of sync.
919
920
-- timeoverlay: add buffer-count and buffer-offset time modes.
921
+- souphttpsrc: Add the notion of "retry-backoff" and retry on 503 (service unavailable) and 500 (internal server error) http
922
+ errors.
923
924
-- udpsrc: new “multicast-source” property to support IGMPv3 Source Specific Muliticast (SSM) as per RFC 4604.
925
+- taginject now modifies existing tag events of the selected scope, with the new "merge-mode" property allowing finer control.
926
927
-- videoconvertscale, videoconvert: add a “converter-config” property to allow fine-tuning conversion parameters that are not
928
- exposed directly as property.
929
+- timecodestamper gained a new running-time source mode that converts the buffer running time into timecodes.
930
931
-- videoflip: many orientation tag handling fixes and improvements
932
+- playbin3, uridecodebin3, parsebin
933
934
-- videorate: add “drop-out-of-segment” property to force dropping of out-of-segment buffers.
935
+ - lots of stream-collection handling and stability/reliability fixes
936
+ - error/warning/info message now include the URI (if known) and stream-id
937
+ - missing plugin messages include the stream-id
938
939
-- volume now supports arbitrarily-large positive gains via a new “volume-full-range” property (it was not possibly to just
940
- allow a bigger maximum value for the existing “volume” property for GstController-related backwards-compatibility reasons).
941
+- videocodectestsink gained support for GBR_10LE, GRAY8 and GRAY10_LE{16,32} pixel formats
942
943
-- waylandsink, gtkwaylandsink: improved frame scheduling reducing frame drops and improve throughput.
944
+- videoflip gained support for the Y444_16LE and Y444_16BE pixel formats
945
946
-- webpenc now has support for animated WebP which can be enabled via the new “animated” property. By default it will just
947
- output a stand-alone WebP image for each input buffer, just like before.
948
+- videoconvertscale:
949
950
-- wpe: added a WebProcess crash handler; gained WPEWebKit 2.0 API support.
951
+ - Handle pixel aspect ratios with large numerators or denominators
952
+ - Explicitly handle the overlaycomposition meta caps feature, so it doesn’t get dropped unnecessarily
953
954
-- x264enc gained support for 8-bit monochrome video (GRAY8).
955
+- waylandsink prefers DMABuf over system memory now
956
957
-- ximagesrc gained navigation support (mouse and keyboard events).
958
+- x264enc has a new "nal-hrd" property to make the encoder signal HRD information, which is required for Blu-ray streams,
959
+ television broadcast and a few other specialist areas. It can also be used to force true CBR, and will cause the encoder to
960
+ output null padding packets.
961
962
-- y4mdec now parses extended headers to support high bit depth video.
963
+- zbar: add support for binary mode and getting symbols as raw bytes instead of a text string.
964
965
## Plugin and library moves
966
967
-- The AMR-NB and AMR-WB plugins have been moved from -ugly to -good.
968
+- macOS: atdec was moved from the applemedia plugin in -bad to the osxaudio plugin in -good, in order to be able to share
969
+ audio-related helper methods.
970
971
## Plugin and element removals
972
973
-- The entire gst-omx package and plugin has been retired. See the OMX section below for more details.
974
-
975
-- The RealServer RTSP extension, RDT handling and PNM source have been removed from the realmedia plugin.
976
-
977
-- The kate subtitle plugin has been removed.
978
+- None in this cycle
979
980
## Miscellaneous API additions
981
982
-GStreamer Core
983
+### GStreamer Core
984
985
-- gst_pipeline_get_configured_latency() and gst_pipeline_is_live() convenience functions to query liveness and configured
986
- latency of a pipeline.
987
+- gst_meta_api_type_set_params_aggregator() allows setting an GstAllocationMetaParamsAggregator function for metas, which has
988
+ been implemented for GstVideoMeta and is used to aggregate alignment requirements of multiple tee branches.
989
990
-- Plugins can now provide status info messages for plugins that will be displayed in gst-inspect-1.0 and is useful for dynamic
991
- plugins that register features at runtime. They are now able to provide information to the user why features might not be
992
- available. This is now used in the amfcodec, nvcodec, qsv, and va plugins.
993
+- gst_debug_print_object() and gst_debug_print_segment() have been made public API. The can be used to easily get string
994
+ representations of various types of (mini)objects in custom log handlers.
995
996
-- GST_OBJECT_AUTO_LOCK() and GST_PAD_STREAM_AUTO_LOCK() are g_autoptr(GMutexLocker)-based helpers for GstPad and GstObject
997
- that unlock the mutex automatically when the helper goes out of scope. This is not portable so should not be used in
998
- GStreamer code that needs to be portable to e.g. Windows with MSVC.
999
+- Added gst_aggregator_push_src_event(), so subclasses don’t just push events directly onto the source pad bypassing the base
1000
+ class without giving it the chance to send out any pending serialised events that should be sent out before.
1001
1002
-- gst_clear_context(), gst_clear_promise(), gst_clear_sample()
1003
+- GstMessage has gained APIs to generically add “details” to messages:
1004
1005
-- gst_util_ceil_log2() and gst_util_simplify_fraction() utility functions
1006
+ - gst_message_set_details()
1007
+ - gst_message_get_details()
1008
+ - gst_message_writable_details()
1009
+ - gst_message_parse_error_writable_details()
1010
+ - gst_message_parse_warning_writable_details()
1011
+ - gst_message_parse_info_writable_details() This is used in uridecodebin3 to add the triggering URI to any INFO, WARNING
1012
+ or ERROR messages posted on the bus, and in decodebin3 to add the stream ID to any missing plugin messages posted on the
1013
+ bus.
1014
1015
-- New TAG_CONTAINER_SPECIFIC_TRACK_ID tag for container specific track ID as used in an HTML5 context, plus basic support in
1016
- matroskademux, qtdemux, dashdemux and dashdemux2
1017
+- gst_util_floor_log2() returns smallest integral value not bigger than log2(v).
1018
1019
-- New utility functions to create a stream-id without a pad for elements:
1020
+- gst_util_fraction_multiply_int64() is a 64-bit variant of gst_util_fraction_multiply().
1021
1022
- - gst_element_decorate_stream_id()
1023
- - gst_element_decorate_stream_id_printf_valist()
1024
- - gst_element_decorate_stream_id_printf()
1025
+#### GstIdStr replaces GQuark in structure and caps APIs
1026
1027
-- GstQueueArray gained API for sorting and sorted insertion
1028
+- GQuarks are integer identifiers for strings that are inserted into a global hash table, allowing in theory for cheap
1029
+ equality comparisons. In GStreamer they have been used to represent GstStructure names and field names. The problem is that
1030
+ these strings once added to the global string table can never be freed again, which can lead to ever-increasing memory usage
1031
+ for processes where such name identifiers are created based on external input or on locally-created random identifiers.
1032
1033
-- Add strict GstStructure serialisation with gst_structure_serialize_full() in combination with GST_SERIALIZE_FLAG_STRICT
1034
- which only succeeds if the result can later be fully deserialised again.
1035
+- GstIdStr is a new data structure made to replace quarks in our APIs. It can hold a short string inline, a static string, or
1036
+ a reference to a heap-allocated longer string, and allows for cheap storage of short strings and cheap comparisons. It does
1037
+ not involve access to a global hash table protected by a global lock, and as most strings used in GStreamer structures are
1038
+ very short, it is actually more performant than quarks in many scenarios.
1039
1040
-- GstBaseSrc enhancements: the “automatic-eos” property can be used to do the equivalent to gst_base_src_set_automatic_eos().
1041
- gst_base_src_push_segment() sends a segment event right away which can be useful for subclasses like appsrc which have their
1042
- own internal queuing.
1043
+- GQuark-using APIs in GstStructure or GstCaps have been deprecated and equivalent APIs using GstIdStr have been added
1044
+ instead. For more details about this change watch Sebastian’s GStreamer Conference presentation “GQuark in GStreamer
1045
+ structures - what nonsense!”.
1046
1047
-- GstBaseSink gained a new custom GST_BASE_SINK_FLOW_DROPPED flow return which can be used by subclasses from the virtual
1048
- ::render method to signal to the base class that a frame is not being rendered. This is used in e.g. waylandsink and ensures
1049
- that elements such as fpsdisplaysink will correctly report the rate of frames rendered and dropped.
1050
+- Most applications and plugins will have been using the plain string-based APIs which are not affected by this change.
1051
1052
-GstDiscoverer
1053
+#### GstVecDeque
1054
1055
-- New “load-serialized-info” signal to retrieve a serialized GstDiscovererInfo
1056
+- Moved GstQueueArray as GstVecDeque into core for use in GstBus, the ringbuffer logger and in GstBufferPool, where an overly
1057
+ complicated signaling mechanism using GstAtomicQueue and GstPoll was replaced with GstVecDeque and a simple mutex/cond.
1058
1059
-GstSDP
1060
+- GstQueueArray in libgstbase was deprecated in favour of GstVecDeque.
1061
1062
-- Add gst_sdp_message_remove_media()
1063
+- GstAtomicQueue will be deprecated once all users in GStreamer have been moved over to GstVecDeque.
1064
1065
-Video Library
1066
+### Audio Library
1067
1068
-DRM Modifier Support for dmabufs on Linux
1069
+- Added gst_audio_reorder_channels_with_reorder_map() which allows reordering the samples with a pre-calculated reorder map
1070
+ instead of re-calculating the reorder map every time.
1071
1072
-See section above.
1073
+- Add top-surround-left and top-surround-right channel positions
1074
1075
-List of Video Formats for Passthrough
1076
+- GstAudioConverter now supports more numerical types for the mix matrix, namely double, int, int64, uint, and uint64 in
1077
+ addition to plain floats.
1078
1079
-New helper API was added to get a list of all supported video formats, including DMA_DRM formats, and can be used to advertise
1080
-all supported formats for passthrough purposes:
1081
+### Plugins Base Utils Library
1082
1083
-- GST_VIDEO_FORMATS_ANY_STR, GST_VIDEO_FORMATS_ANY
1084
-- gst_video_formats_any() which can be used by bindings or for code that prefers GstVideoFormat values instead of strings.
1085
+- New AV1 caps utility functions for AV1 Codec Configuration Record codec_data handling
1086
1087
-New Video Formats
1088
+- The GstEncodingProfile (de)serialization functions are now public
1089
1090
-- 12-bit and 16-bit A420 / A422 / A444 (YUV with alpha channel) variants:
1091
+- GstEncodingProfile gained a way to specify a factory-name when specifying caps. In some cases you want to ensure that a
1092
+ specific element factory is used while requiring some specific caps, but this was not possible so far. You can now do
1093
+ e.g. qtmux:video/x-prores,variant=standard|factory-name=avenc_prores_ks to ensure that the avenc_prores_ks factory is used
1094
+ to produce the variant of prores video stream.
1095
1096
- - A444_12BE, A444_12LE
1097
- - A422_12BE, A422_12LE
1098
- - A420_12BE, A420_12LE
1099
- - A444_16BE, A444_16LE
1100
- - A422_16BE, A422_16LE
1101
- - A420_16BE, A420_16LE
1102
+### Tag Library
1103
1104
-- 8-bit A422 / A444 (YUV with alpha channel) variant:
1105
+- EXIF handling now support the CAPTURING_LIGHT_SOURCE tag
1106
1107
- - A422
1108
- - A444
1109
+- Vorbis tag handling gained support for the LYRICS tag
1110
1111
-- Planar 16-bit 4:4:4 RGB formats:
1112
+### Video Library and OpenGL Library
1113
1114
- - GBR_16BE
1115
- - GBR_16LE
1116
+- gst_video_convert_sample(), gst_video_convert_sample_async() gained support for D3D12 conversion.
1117
1118
-- RBGA, intended to be used by hardware decoders where VUYA is only supported 4:4:4 decoding surface but the stream is encoded
1119
- with GBR color space, such as HEVC and VP9 GBR streams for example.
1120
+- GstVideoEncoder: gst_video_encoder_release_frame() and gst_video_encoder_drop_frame() have been made available as public
1121
+ API.
1122
1123
-- Two tiled Mediatek 10-bit formats:
1124
+- Navigation: gained mouse double click event support
1125
1126
- - MT2110T
1127
- - MT2110R
1128
+- Video element QoS handling was improved so as to not overshoot the QoS earliest time by a factor of 2. This was fixed in the
1129
+ video decoder, encoder, aggregator and audiovisualizer base classes, as well as in the adaptivedemux, deinterlace,
1130
+ monoscope, shapewipe, and (old) videomixer elements.
1131
1132
-- Tiled 10-bit NV12 format NV12_10LE40_4L4 (Verisilicon Hantro)
1133
+- GstVideoConverter gained fast paths for v210 to/from I420_10 / I422_10
1134
1135
-## Miscellaneous performance, latency and memory optimisations
1136
+- New gst_video_dma_drm_format_from_gst_format() helper function that converts a video format into a dma drm fourcc / modifier
1137
+ pair, plus gst_video_dma_drm_format_to_gst_format() which will do the reverse.
1138
1139
-- liborc 0.4.35 (latest: 0.4.38) adds support for AVX/AVX2 and contains improvements for the SSE backend.
1140
+- In the same vein gst_gl_dma_buf_transform_gst_formats_to_drm_formats() and
1141
+ gst_gl_dma_buf_transform_drm_formats_to_gst_formats() have been added to the GStreamer OpenGL support library.
1142
1143
-- liborc 0.4.37 adds support for NEON on macOS on Apple ARM64 CPUs.
1144
+- GLDisplay/EGL: Add API (gst_gl_display_egl_set_foreign()) for overriding foreign-ness of the EGLDisplay in order to control
1145
+ whether GStreamer should call eglTerminate() or not.
1146
1147
-- Most direct use of the GLib GSLice allocator has been removed, as there is little evidence that it actually still provides
1148
- much advantage over the standard system allocator on Linux or Windows in 2024. There is strong evidence however that it
1149
- causes memory fragmentation for standard GStreamer workloads such as RTSP/RTP/WebRTC streaming.
1150
+- Additional DMA DRM format definitions/mappings:
1151
1152
-- As always there have been plenty of performance, latency and memory optimisations all over the place.
1153
+ - NV15, NV20, NV30
1154
+ - NV12_16L32S, MT2110T, MT2110R as used on Meditek SoCs
1155
+ - NV12_10LE40
1156
+ - RGB15, GRAY8, GRAY16_LE, GRAY16_BE
1157
+ - plus support for big endian DRM formats and DRM vendor modifiers
1158
1159
-## Tracing framework and debugging improvements
1160
+New Raw Video Formats
1161
1162
-- The gst-stats tool can now be passed a custom regular expression
1163
+- Packed 4:2:2 YUV with 16 bits per channel:
1164
+ - Y216_LE, Y216_BE
1165
+- Packed 4:4:4:4 YUV with alpha, with 16 bits per channel:
1166
+ - Y416_LE, Y416_BE
1167
+- 10-bit grayscale, packed into 16-bit words with left padding:
1168
+ - GRAY10_LE16
1169
1170
-- gst-debug-viewer from the devtools module has seen minor improvements and fixes
1171
+### GstPlay Library
1172
1173
-New tracers
1174
+- Add stream-id based selection of streams to better match playbin3’s API:
1175
+ - Add accessors for the stream ID and selection API based on the stream ID:
1176
+ - gst_play_stream_info_get_stream_id()
1177
+ - gst_play_set_audio_track_id()
1178
+ - gst_play_set_video_track_id()
1179
+ - gst_play_set_subtitle_track_id()
1180
+ - gst_play_set_track_ids()
1181
+ - Deprecate the old index-based APIs:
1182
+ - gst_play_stream_info_get_index()
1183
+ - gst_play_set_audio_track()
1184
+ - gst_play_set_video_track()
1185
+ - gst_play_set_subtitle_track()
1186
+ - Remove old playbin support
1187
+ - Implement the track enable API based on stream selection
1188
+- Distinguish missing plugin errors and include more details (uri, and stream-id if available) in error/warning messages:
1189
+ - gst_play_message_get_uri()
1190
+ - gst_play_message_get_stream_id()
1191
+ - GST_PLAY_ERROR_MISSING_PLUGIN
1192
+ - gst_play_message_parse_error_missing_plugin()
1193
+ - gst_play_message_parse_warning_missing_plugin()
1194
+- Improve play message API inconsistencies:
1195
+ - Consistently name parse functions according to their message type:
1196
+ - gst_play_message_parse_duration_changed()
1197
+ - gst_play_message_parse_buffering()
1198
+ - Deprecate the misnamed functions:
1199
+ - gst_play_message_parse_duration_updated()
1200
+ - gst_play_message_parse_buffering_percent()
1201
+ - Add missing parse functions:
1202
+ - gst_play_message_parse_uri_loaded()
1203
+ - gst_play_message_parse_seek_done()
1204
+- Support disabling the selected track at startup
1205
1206
-- None in this release.
1207
+## Miscellaneous performance, latency and memory optimisations
1208
1209
-Debug logging system improvements
1210
+- dvdspu: use multiple minimal sized PGS overlay rectangles instead of a single large one to minimise the total blitting
1211
+ surface in case of disjointed rectangles.
1212
1213
-- Nothing major in this cycle.
1214
+- video-frame: reduce number of memcpy() calls on frame copies if possible
1215
1216
-Fake video decoder
1217
+- video-converter: added fast path conversions between v210 and I420_10 / I422_10
1218
1219
-- The new fakevideodec element does not decode the input bitstream, it only reads video width, height and framerate from the
1220
- caps and then pushes out raw video frames of the expected size in RGB format.
1221
+- As always there have been plenty of performance, latency and memory optimisations all over the place.
1222
1223
-- It draws a snake moving from left to right in the middle of the frame, which is reasonably light weight and still provides
1224
- an idea about how smooth the rendering is.
1225
+## Miscellaneous other changes and enhancements
1226
1227
-## Tools
1228
+- netclientclock: now also emits the clock synced signal when corrupted to signal that sync has been lost.
1229
1230
-- gst-launch-1.0 gained a new --prog-name command line option to set the program name, which will be used by GTK and GStreamer
1231
- to set the class or app-id.
1232
+- GstValue, GstStructure: can now (de)serialize string arrays (G_TYPE_STRV)
1233
1234
-- gst-play-1.0 now defaults to using playbin3, but can still be made to use the old playbin by passing the --use-playbin2
1235
- command line argument.
1236
-
1237
-## GStreamer FFmpeg wrapper
1238
+## Tracing framework and debugging improvements
1239
1240
-- New avvideocompare element to compare two incoming video buffers using a specified comparison method (e.g. SSIM or PSNR).
1241
+- dot files (pipeline graph dumps) are now written to disk atomically
1242
1243
-- Prefer using FFmpeg Musepack decoder/demuxer over musepackdec as they work better with decodebin3 and playbin3 which likes
1244
- to have parsers and decoders separate.
1245
+- tracing: add hooks for gst_pad_send_event_unchecked() and GstMemory init/free
1246
1247
-- Added codec mappings for AV1, MxPEG, FFVHuff video
1248
+- tracers: Simplify params handling using GstStructure and object properties and move tracers over to property-based
1249
+ configuration (leaks, latency).
1250
1251
-- Added raw video format support for P010, VUYA, Y410, P012, Y212 and Y412.
1252
+- textoverlay, clockoverlay, timeoverlay: new "response-time-compensation" property that makes the element render the text or
1253
+ timestamp twice: Once in the normal location and once in a different sequentially predictable location for every frame. This
1254
+ is useful when measuring video latency by taking a photo with a camera of two screens showing the test video overlayed with
1255
+ timeoverlay or clockoverlay. In these cases, you will often see ghosting if the display’s pixel response time is not great,
1256
+ which makes it difficult to discern what the current timestamp being shown is. Rendering in a different location for each
1257
+ frame makes it easy to tell what the latest timestamp is. In addition, you can also use the fade-time of the previous frame
1258
+ to measure with sub-framerate accuracy when the photo was taken, not just clamped to the framerate, giving you a higher
1259
+ precision latency value.
1260
1261
-- Newer, non-deprecated APIs are used by the plugin when built with FFmpeg 6.0 or newer.
1262
+New tracers
1263
1264
-- The FFmpeg meson subproject wrap has been updated to v6.1
1265
+- memory-tracer: New tracer that can track memory usage over time
1266
1267
-- Note: see Known Issues section below for known issues with FFmpeg 6.0.0 and the latest FFmpeg 7.x release
1268
+- pad-push-timings: New tracer for tracing pad push timings
1269
1270
-## GStreamer RTSP server
1271
+- pcap-writer: New tracer that can store the buffers flowing through a pad as PCAP file
1272
1273
-- New “ensure-keyunit-on-start” property: While the suspend modes NONE and PAUSED provided a low startup latency for
1274
- connecting clients, it did not ensure that streams started on fresh data. With this new property it is possible to maintain
1275
- the low startup latency of those suspend modes while also ensuring that a stream starts on a key unit. Furthermore, by
1276
- setting the new “ensure-keyunit-on-start-timeout” property it is also possible to accept a key unit of a certain age, but
1277
- discard it if too much time has passed and instead force a new key unit.
1278
+Dot tracer/viewer
1279
1280
-- rtspclientsink: apply “port-range” property for RTCP port selection as well
1281
+- New dots tracer that simplifies the pipeline visualization workflow:
1282
+ - Automatically configures dot file directory and cleanup
1283
+ - Integrates with the pipeline-snapshotS tracer to allow dumping pipeline on demand from the gst-dots-viewer web interface
1284
+ - Uses GST_DEBUG_DUMP_DOT_DIR or falls back to $XDG_CACHE_HOME/gstreamer-dots
1285
+- New gst-dots-viewer web tool for real-time pipeline visualization
1286
+ - Provides interface to browse and visualize pipeline dot files
1287
+ - Features on-demand pipeline snapshots via “Dump Pipelines” button
1288
+ - WebSocket integration for live updates
1289
+ - Uses GST_DEBUG_DUMP_DOT_DIR or falls back to $XDG_CACHE_HOME/gstreamer-dots
1290
+- Simple usage:
1291
+ - gst-dots-viewer (starts server)
1292
+ - GST_TRACERS=dots gst-launch-1.0 videotestsrc ! autovideosink (runs with tracer)
1293
+ - View at http://localhost:3000
1294
1295
-## GStreamer VA-API support
1296
+Debug logging system improvements
1297
1298
-GstVA
1299
+- Nothing major in this cycle.
1300
1301
-- vah264dec, vah265dec, vavp8dec, vavp9dec, vampeg2dec and vaav1dec were promoted to rank PRIMARY+1 on Linux
1302
+## Tools
1303
1304
-- Improved support for dmabuf use cases. All va elements now negotiate the new and improved dmabuf capabilities with explicit
1305
- modifiers. This supports both import and export of dmabufs.
1306
+- gst-inspect-1.0 documents tracer properties now and shows element flags
1307
1308
-- Added vaav1enc element, available in recent Intel and AMD GPUs
1309
+- gst-launch-1.0 will show error messages posted during pipeline construction
1310
1311
-- Added support for the experimental VA-Win32 backend. It needs at least libva 1.18
1312
+## GStreamer FFmpeg wrapper
1313
1314
-- Improved handling of multi-GPU systems. Still, sharing buffers among them is not advised.
1315
+- Add support for H.266/VVC decoder
1316
1317
-- Bumped minimum libva version to 1.12
1318
+- Add mappings for the Hap video codec, the Quite OK Image codec (QOI) and the M101 Matrox uncompressed SD video codec.
1319
1320
-- Enhanced support for RadeonSI Mesa driver for 10bit decoding
1321
+- Don’t register elements for which we have no caps and which were non-functional as a result (showing unknown/unknown caps).
1322
1323
-- Register elements only for allowed drivers (Intel and Mesa, for the moment)
1324
+- The S302M audio encoder now supports up to 8 channels.
1325
1326
-GStreamer-VAAPI
1327
+- Various tag handling improvements in the avdemux wrappers, especially when there are both upstream tags and additional local
1328
+ tags.
1329
1330
-- The new GstVA elements (see above) should be preferred when possible.
1331
+- Support for 10-bit grayscale formats
1332
1333
-- Ranks of decoders were demoted to NONE so they won’t be used automatically by playbin and similar elements anymore.
1334
+## GStreamer RTSP server
1335
1336
-- Clean-ups and minimal fixes.
1337
+- GstRTSPOnvifMediaFactoryClass gained a ::create_backchannel_stream() vfunc. This allows subclasses to delay creation of the
1338
+ backchannel to later in the sequence, which is useful in scenarios where the RTSP server acts as a relay and the supported
1339
+ caps depend on the upstream camera, for example.
1340
1341
-- gstreamer-vaapi should be considered deprecated and may be discontinued as soon as the va plugin is fully feature
1342
- equivalent. Users who rely on gstreamer-vaapi are encouraged to migrate and test the va elements at the earliest
1343
- opportunity.
1344
+- The ONVIF backchannel example now features support for different codecs, including AAC.
1345
1346
-## GStreamer Video4Linux2 support
1347
+## VA-API integration
1348
1349
-- New uvcsink element, based on v4l2sink allow streaming your pipeline as a UVC camera using Linux UVC Gadget driver.
1350
+VA plugin
1351
1352
-- v4l2src now supports 10/12/14/16-bit bayer formats.
1353
+- New VA elements:
1354
1355
-- Stateful decoders now pass too large encoded frames over multiple buffers.
1356
+ - H.266 / VVC video decoder
1357
+ - VP8 video encoder
1358
+ - JPEG encoder
1359
+ - VP9 + VP8 alpha decodebin
1360
1361
-- AV1 Stateless video decoder.
1362
+ Remember that the availability of these elements depends on your platform and driver.
1363
1364
-- Stateless decoders now tested using Virtual driver (visl), making it possible to run the tests in the cloud based CI
1365
+- There are a lot of improvements and bug fixes, to hightlight some of them:
1366
1367
-## GStreamer OMX
1368
+ - Improved B pyramid mode for both H264 and HEVC encoding when reference frame count exceeds 2, optimizing pyramid level
1369
+ handling.
1370
+ - Enabled ICQ and QVBR modes for several encoders, including H264, H265, VP9 and AV1.
1371
+ - Updated rate control features by setting the quality factor parameter, while improving bitrate change handling.
1372
+ - Improved VP9 encoder’s ability to avoid reopening or renegotiating encoder settings when parameters remain stable.
1373
+ - Added functionality to adjust the trellis parameter in encoders.
1374
+ - Optimize encoders throughput with the introduction of output delay.
1375
+ - Added support for new interpolation methods for scaling and improvements for handling interlace modes.
1376
1377
-- The gst-omx module has been removed. The OpenMAX standard is long dead and even the Raspberry Pi OS no longer supports it.
1378
- There has not been any development since 1.22 was released. Users of these elements should switch to the Video4Linux-based
1379
- video encoders and decoders which have been the standard on embedded Linux for quite some time now.
1380
+GStreamer-VAAPI is now deprecated
1381
1382
-- Hardware vendors which still use OpenMAX are known to have non-standard forks and it is recommended that they maintain it
1383
- while planning their move to the Video4Linux API.
1384
+- gstreamer-vaapi has been deprecated and is no longer actively maintained. Users who rely on gstreamer-vaapi are encouraged
1385
+ to migrate to the va plugin’s elements at the earliest opportunity.
1386
1387
-## GStreamer Editing Services and NLE
1388
+- vaapi*enc encoders have been demoted to a rank of None, so will no longer be autoplugged in encodebin. They have also no
1389
+ longer advertise dmabuf caps or unusual pixel formats on their input pad template caps.
1390
1391
-- Implement a gesvideoscale effect which gives user the ability to chooses where a clip has to be scaled in the chain of
1392
- effects. By default scaling is done in the compositor.
1393
+## GStreamer Video4Linux2 support
1394
1395
-- Add support for gessrc as sub-timeline element so third party can implement their own formatters and use their timelines as
1396
- sub-timelines. Before that, only timelines serialized as files on the filesystem could be loaded as sub-timelines (using
1397
- gesdemux).
1398
+- Implemented DMA_DRM caps negotiation
1399
1400
-- Implement a new GESDiscovererManager singleton object making management of the discoverers used to discoverer media files
1401
- cleaner and allowing to expose the following APIs:
1402
+- Framerate negotiation improvements
1403
1404
- - load-serialize-info signal so GstDiscovererInfo can be serialized by users the way they like and load them without
1405
- requiring discovering the file when reloading a project.
1406
- - source-setup signal so user can tweak source elements during discovery
1407
+- Support for P010 and BGR10A2_LE pixel formats
1408
1409
-- Expose GESFrameCompositionMeta in public API so user can implement their own effects targetting GES which take into account
1410
- that meta.
1411
+- The V4L2 stateless decoders now support inter-frame resolution changes for AV1 and VP9
1412
1413
-- Expose audioconvert:mix-matrix property in audio sources
1414
+- The V4L2 stateful encoders can now handle dynamic frame rates (0/1), and colorimetry negotiation was also improved.
1415
1416
-- Port GESPipeline rendering to use encodebin2. This allows rendering timelines directly with a muxing sink (like hlssinkX
1417
- etc..) and leverage all new features of that new element.
1418
+## GStreamer Editing Services and NLE
1419
1420
-ges-launch
1421
+- Added support for reverse playback with a new reverse property on nlesource which is exposed child property on GESClip
1422
1423
-- Fix setting keyframes
1424
+- Input channels reordering for flexible audio channel mapping
1425
1426
-- Add an ignore-eos option
1427
+- Added support for transition in the ges-launch-1.0 timeline description format
1428
1429
-- Allow overriding container profile so that the user can build encoding profiles following the media format of a specific
1430
- media file, for example, but ensuring it is muxed using a specific format
1431
+- Added support for GstContext sharing in GESTimeline
1432
1433
-- Ensure sink elements are inside a GstBin and never in a GstPipeline
1434
+- Added basic support for duplicated children property in GESTimelineElement
1435
1436
-- Move +effect stack effects from source to last effect added, so it feels more natural to user as adding them at the
1437
- beginning of the chain while the syntax is +effect felt wrong
1438
+- validate: Add an action type to group clips
1439
1440
## GStreamer validate
1441
1442
-- In action types, add a way to avoid checking property value after setting it, in case elements do it async for example.
1443
-
1444
-- Add a vmethod to free GstValidateActionParameters to be more binding friendly.
1445
+- Added new action types:
1446
1447
-- Allow scenarios to define the pipeline state target in the metadata instead of assuming PLAYING state.
1448
+ - start-http-server: Start a new instance of our HTTP test server
1449
+ - http-requests: Send an HTTP request to a server, designed to work with our test http server
1450
1451
-- Add support to run sub-pipelines/scenarios
1452
+- HTTP server control endpoints to allow scenarios to control the server behavior, allowing simulating server failures from
1453
+ tests
1454
1455
- - Added support to forward buffers from appsink to appsrc
1456
+- Improved the select-streams action type, adding support for selecting the same streams several times
1457
1458
-- Add a way to set pipeline base-time, start-time and force using the system clock.
1459
+- Added support for forcing monitoring of all pipelines in validatetest files
1460
1461
-- Add a ‘fill-mode’ to the appsrc-push action type so we can create some type of streams easily using an appsrc, giving
1462
- control when writing scenarios without requiring files with the content.
1463
+- Enhanced support for expected Error messages on the bus
1464
1465
-- Add a “select-streams” action type to test “stream aware” elements.
1466
+- Added ways to retrieve HTTP server port in .validatetest files
1467
1468
-- Add a way to wait for a property to reach a specified value before executing an action. For example it is possible to wait
1469
- for a pad to get some specific caps set before executing an action.
1470
-
1471
-- validate: Add support to replace variables in deeply nested structures in particular for more complex action types where
1472
- some of the properties are inside structures.
1473
-
1474
-- Fixed compatibility with Python 3.12.
1475
+- Added support for lldb in the gst-validate-launcher
1476
1477
## GStreamer Python Bindings
1478
1479
1480
pythonic; as well as support for APIs that aren’t available through the regular gobject-introspection based bindings, such as
1481
e.g. GStreamer’s fundamental GLib types such as Gst.Fraction, Gst.IntRange etc.
1482
1483
-- Added a GstTagList override that makes a tag list act like a dict
1484
+- The python Meson build option has been renamed to python-exe (and will yield to the monorepo build option of the same name
1485
+ if set, in a monorepo build context).
1486
1487
-- Fix build and usage in Windows
1488
+- Added an iterator for AnalyticsRelationMeta
1489
1490
-- Various fixes for Python >= 3.12
1491
+- Implement __eq__ for Mtd classes
1492
1493
-- Rework libpython loading to be relocatable
1494
-
1495
-- Fix libpython dlopen on macOS
1496
+- Various build fixes and Windows-related fixes.
1497
1498
## GStreamer C# Bindings
1499
1500
-- The GStreamer C# bindings have been updated to a more recent version of GtkSharp and the bindings have been regenerated with
1501
- that version.
1502
-
1503
-- GStreamer API added in recent GStreamer releases is now available
1504
-
1505
-- GstRtspServer bindings have been added, plus an RTSP server example
1506
+- The C# bindings have been updated for the latest GStreamer 1.26 API
1507
1508
## GStreamer Rust Bindings and Rust Plugins
1509
1510
-The GStreamer Rust bindings and plugins are released separately with a different release cadence that’s tied to the twice-a-year
1511
-GNOME release cycle.
1512
+The GStreamer Rust bindings and plugins are released separately with a different release cadence that’s tied to the gtk-rs
1513
+release cycle.
1514
1515
-The latest release of the bindings (0.22) has already been updated for the new GStreamer 1.24 APIs, and works with any GStreamer
1516
+The latest release of the bindings (0.23) has already been updated for the new GStreamer 1.26 APIs, and works with any GStreamer
1517
version starting at 1.14.
1518
1519
gst-plugins-rs, the module containing GStreamer plugins written in Rust, has also seen lots of activity with many new elements
1520
-and plugins. The GStreamer 1.24 binaries track the 0.12 release series of gst-plugins-rs, and fixes from newer versions will be
1521
-backported as needed to the 0.12 brach for future 1.24.x bugfix releases.
1522
+and plugins. The GStreamer 1.26 binaries will be tracking the main branch of gst-plugins-rs for starters and then track the 0.14
1523
+branch once that has been released (around summer 2025). After that, fixes from newer versions will be backported as needed to
1524
+the 0.14 branch for future 1.26.x bugfix releases.
1525
1526
Rust plugins can be used from any programming language. To applications they look just like a plugin written in C or C++.
1527
1528
-### WebRTC
1529
-
1530
-- New element webrtcsrc that can act as a recvonly WebRTC client. Just like the opposite direction, webrtcsink, this can
1531
- support various different WebRTC signalling protocols. Some are included with the plugin and provide their own element
1532
- factory for easier usage but it is also possible for applications to provide new signalling protocol implementations.
1533
-
1534
-- webrtcsink now exposes the signaller as property and allows implementing a custom signaller by connecting signal handlers to
1535
- the default signaller.
1536
-
1537
-- A new signaller and webrtcsink implementation for Janus’ VideoRoom implementation. The corresponding webrtcsrc signaller
1538
- implementation is currently in a merge request in GitLab.
1539
-
1540
-- New whepsrc element that can receive WHEP WebRTC streams. This is currently not based on webrtcsrc but in the future a new
1541
- element around webrtcsrc will be added.
1542
-
1543
-- New whipserversrc element around webrtcsrc for ingesting WHIP WebRTC streams in GStreamer.
1544
-
1545
-- New whipclientsink element around webrtcsink for publishing WHIP WebRTC streams from GStreamer. This deprecates the old
1546
- whipsink element.
1547
-
1548
-- A new signaller and webrtcsink implementation for LiveKit. The corresponding webrtcsrc signaller implementation was merged
1549
- into the git repository recently.
1550
-
1551
-- A new signaller and webrtcsink implementation for AWS Kinesis Video Streams
1552
-
1553
-- webrtcsink has a new payloader-setup signal to allow the application more fine grained control over the RTP payloader
1554
- configuration, similar to the already existing encoder-setup signal for encoders.
1555
-
1556
-- webrtcsrc gained support for a custom navigation event protocol over the data channel, which is compatible with the
1557
- navigation event protocol supported by webrtcsink.
1558
+### New Rust elements
1559
1560
-- webrtcsink supports encoded streams as input. Using encoded streams will disable webrtcsinks congestion control changing any
1561
- encoded stream parameters.
1562
+- awstranscriber2, awstranslate: New elements around the AWS transcription and translation services.
1563
1564
-- webrtcsink and webrtcsrc have a new signal ‘request-encoded-filter’ to allow transformations of the encoded stream. This can
1565
- be used, for example, for the same use-cases as the WebRTC Insertable Streams API.
1566
+- cea708mux: New element that allows to mux multiple CEA708 services into a single stream.
1567
1568
-- gstwebrtc-api: JavaScript API for interacting with the default signalling protocol used by webrtcsink / webrtcsrc.
1569
+- cdpserviceinject: New element for injecting a CDP service descriptor into closed caption CDP packets
1570
1571
-… and various other smaller improvements!
1572
+- cea708overlay: New element for overlaying CEA608 / CEA708 closed captions over video streams.
1573
1574
-### RTSP
1575
+- gopbuffer: New element that can buffer a minimum duration of data delimited by discrete GOPs (Group of Picture)
1576
1577
-- New rtspsrc2 element. Only a subset of RTSP features are implemented so far:
1578
- - RTSP 1.0 support
1579
- - TCP, UDP, UDP-Multicast lower transports
1580
- - RTCP SR, RTCP RR, RTCP-based A/V sync
1581
- - Tested for correctness in multicast cases too
1582
- - Lower transport selection and order (NEW!)
1583
- - The existing rtspsrc has a hard-coded order list for lower transports
1584
- - Many advanced features are not implemented yet, such as non-live support. See the README for the current status.
1585
+- hlscmafsink, hlssink3: New single-variant HLS sink elements that can output CMAF (fMP4) or MPEG-TS fragments.
1586
1587
-### GTK4
1588
+- hlsmultivariantsink: New sink element that can output an HLS stream with multiple variants
1589
1590
-- Support for rendering GL textures on X11/EGL, X11/GLX, Wayland, macOS, and WGL/EGL on Windows.
1591
+- mpegtslivesrc: New source element that can wrap a live MPEG-TS source (e.g. SRT or UDP source) and provides a clock based on
1592
+ the PCR.
1593
1594
-- Create a window for testing purposes when running in gst-launch-1.0 or if GST_GTK4_WINDOW=1 is set.
1595
+- onvifmetadataextractor: New element that can extract ONVIF metadata from GstMetas into a separate stream
1596
1597
-- New background-color property for setting the color of the background of the frame and the borders, if any. This also allows
1598
- setting a fully transparent background.
1599
+- originalbuffer: New plugin with originalbuffersave / originalbufferrestore elements that allow saving an original buffer,
1600
+ modifying it for analytics, and then restoring the original buffer content while keeping any additional metadata that was
1601
+ added.
1602
1603
-- New scale-filter property for defining how to scale the frames.
1604
+- polly: New element around the AWS text-to-speech polly services
1605
1606
-- Add Python example application to the repository.
1607
+- quinn: New plugin that contains various QUIC-based elements for working with raw QUIC streams, RTP-over-QUIC (RoQ) and
1608
+ WebTransport.
1609
1610
-- Various bugfixes, including support for the new GTK 4.14 GL renderer. The plugin needs to be built with at least the
1611
- gtk_v4_10 feature to work with the new GTK 4.14 GL renderer, and will work best if built with the gtk_v4_14 feature.
1612
+- relationmeta: New plugin with elements converting between GstRelationMeta and ONVIF XML metadata.
1613
1614
-### Closed Caption
1615
+- New Rust RTP payloaders and depayloaders for AC3, AMR, JPEG, KLV, MPEG-TS (MP2T), MPEG-4 (MP4A, MP4G), Opus, PCMU (uLaw),
1616
+ PCMA (aLaw), VP8, VP9.
1617
1618
-- Add cea608tocea708 element for upconverting CEA-608 captions to their CEA-708 representation.
1619
+- New rtpbin2 based on rtprecv / rtpsend elements
1620
1621
-- Add support for translations within transcriberbin.
1622
+- speechmatics: New transcriber / speech-to-text and translation element
1623
1624
-- awstranscriber supports translating the transcribed text into different languages, including multiple languages at the same
1625
- time.
1626
-
1627
-- awstranscriber is using the new HTTP/2-based API now instead of the WebSocket-based one.
1628
-
1629
-### Other new elements
1630
-
1631
-- New awss3putobjectsink that works similar to awss3sink but with a different upload strategy.
1632
+- New spotifylyricssrc element for grabbing lyrics from Spotify.
1633
1634
-- New hlscmafsink element for writing HLS streams with CMAF/ISOBMFF fragments.
1635
+- streamgrouper: New element that takes any number of streams as input and adjusts their stream-start events in such a way
1636
+ that they all belong to the same stream group.
1637
1638
-- New inter plugin with new intersink and intersrc elements that allow to 1:N connect different pipelines in the same process.
1639
- This is implemented around the appsrc / appsink-based StreamProducer API that is provided as part of the GStreamer Rust
1640
- bindings, and is also used inside webrtcsrc and webrtcsink.
1641
+- translationbin: Helper bin around translation elements, similar to the already existing transcriberbin for transcriptions.
1642
1643
-- New livesync element that allows maintaining a contiguous live stream without gaps from a potentially unstable source.
1644
+- tttocea708: New element for converting timed-text to CEA708 closed captions
1645
1646
-- New isomp4mux non-fragmented MP4 muxer element.
1647
+- A VVdeC-based H.266 decoder element was added to the Rust plugins, based on the Fraunhofer Versatile Video Decoder library.
1648
1649
-### Other improvements
1650
+For a full list of changes in the Rust plugins see the gst-plugins-rs ChangeLog between versions 0.12 (shipped with GStreamer
1651
+1.24) and 0.14.x (shipped with GStreamer 1.26).
1652
1653
-- audiornnoise
1654
- - Attach audio level meta to output buffers.
1655
- - Add voice detection threshold property
1656
-- fmp4mux
1657
- - Add support for CMAF-style chunking, e.g. low-latency / LL HLS and DASH
1658
- - Add support for muxing Opus, VP8, VP9 and AV1 streams
1659
- - Add ‘offset-to-zero’ property and make media/track timescales configurable
1660
-- hlssink3
1661
- - Allow adding EXT-X-PROGRAM-DATE-TIME tag to the manifest.
1662
- - Allow generating I-frame-only playlist
1663
-- ndi
1664
- - Closed Caption support in ndisrc / ndisink
1665
- - Zero-copy output support in ndisrc for raw video and audio
1666
-- spotifyaudiosrc: Support configurable bitrate
1667
-
1668
-For a full list of changes in the Rust plugins see the gst-plugins-rs ChangeLog between versions 0.9 (shipped with GStreamer
1669
-1.22) and 0.12 (shipped with GStreamer 1.24).
1670
-
1671
-## Cerbero Rust support
1672
-
1673
-- As of GStreamer 1.24, the GStreamer Rust plugins are shipped as part of our binary packages on all major platforms. This
1674
- includes Android and iOS now in addition to macOS and Windows/MSVC.
1675
+Note that at the time of GStreamer 1.26.0 gst-plugins-rs 0.14 was not released yet and the git main branch was included instead
1676
+(see above). As such, the ChangeLog also did not contain the changes between the latest 0.13 release and 0.14.0.
1677
1678
## Build and Dependencies
1679
1680
-- Meson >= 1.1 is now required for all modules
1681
-
1682
-- The GLib requirement has been bumped to >= 2.64
1683
+- Meson >= 1.4 is now required for all modules
1684
1685
-- liborc >= 0.4.38 is strongly recommended
1686
+- liborc >= 0.4.41 is strongly recommended
1687
1688
- libnice >= 0.1.22 is strongly recommended, as it is required for WebRTC ICE consent freshness (RFC 7675).
1689
1690
-- gst-libav was updated for FFmpeg API deprecations and removals
1691
+- The ASIO plugin dropped its external SDK header dependency, so it can always be built and shipped more easily.
1692
1693
-- libwebpmux is required for the animated WebP support
1694
+- Require tinyalsa >= 1.1.0 when building the tinyalsa plugin
1695
1696
-- The wpe plugin gained support for the WPEWebKit 2.0 API version
1697
+- The srtp plugin now requires libsrtp2, support for libsrtp1 was dropped.
1698
1699
-- Bumped minimum libva version to 1.12 for the va plugin.
1700
+Monorepo build
1701
1702
-- zxing: added support for the zxing-c++ 2.0 API
1703
+- The FFmpeg subproject wrap was updated to 7.1
1704
1705
-- The ptp-helper for Precision Time Protocol (PTP) support in GStreamer core has been rewritten in Rust, and the minimum
1706
- required Rust version for building this is 1.48, i.e. the version currently in Debian oldstable. On Windows, at least Rust
1707
- 1.54 is needed. There is a new ptp-helper Meson feature option that can be used to make sure everything needed for PTP
1708
- support is available (if set to ptp-helper=enabled). cargo is not required for building.
1709
-
1710
-- gst-plugins-rs requires Rust 1.70 or newer.
1711
-
1712
-- Link to libsoup at build time in all cases on non-Linux, and only load it dynamically on Linux systems where we might need
1713
- to support a mix of applications with dependencies that might be using libsoup2 or libsoup3. A “soup-version” meson build
1714
- option was added to prefer a specific version. Distros should make sure that libsoup is still a package dependency, since
1715
- it’s still required at runtime for the soup and adaptivedemux2 plugins to function.
1716
-
1717
-- libjack is now dynamically loaded at runtime by the JACK audio plugin, and no longer a hard build dependency. However, it
1718
- still is a runtime dependency, so distros should make sure it remains a package dependency.
1719
-
1720
-Monorepo build (née gst-build)
1721
-
1722
-- There is now a top-level meson build option to enable/require webrtc
1723
-
1724
-- The FFmpeg subproject wrap was udpated to 6.1
1725
-
1726
-- A libvpx wrap was added (for VP8/VP9 software encoding/decoding)
1727
+- Many other wrap updates
1728
1729
gstreamer-full
1730
1731
-- Add full static build support, including on Windows: Allow a project to use gstreamer-full as a static library and link to
1732
- create a binary without dependencies. Introduce the meson build option gst-full-target-type to select the build type:
1733
- dynamic (default) or static.
1734
-
1735
-- Registers all full features in a plugin now to offer the possibility to get information at the plugin level and get it from
1736
- the registry. All the full features are now registered in a fullstaticfeatures meta plugin instead of having a NULL plugin.
1737
+- No major changes
1738
1739
Development environment
1740
1741
-- add VSCode IDE integration
1742
+- Local pre-commit checks via git hooks have been moved over to pre-commit, including the code indentation check.
1743
1744
-- gst-env.py: Output a setting for the prompt with --only-environment
1745
+- Code indentation checking no longer relies on a locally installed copy of GNU indent (which had different outcomes depending
1746
+ on the exact version installed). Instead pre-commit will automatically install the gst-indent-1.0 indentation tool through
1747
+ pip, which also works on Windows and macOS.
1748
1749
-### Cerbero
1750
+- A pre-commit hook has been added to check documentation cache updates and since tags.
1751
1752
-Cerbero is a meta build system used to build GStreamer plus dependencies on platforms where dependencies are not readily
1753
-available, such as Windows, Android, iOS, and macOS.
1754
+- Many meson wrap updates, including to FFmpeg 7.1
1755
1756
-General improvements
1757
+- The uninstalled development environment should work better on macOS now, also in combination with homebrew (e.g. when
1758
+ libsoup comes from homebrew).
1759
1760
-- New plugins have been added
1761
- - codecalpha dvbsubenc rtponvif switchbin videosignal isac ivfparse inter rtspsrc2
1762
-- JACK plugin is now available all platforms (previously only Linux), and will be loaded if the JACK library is found at
1763
- plugin load time
1764
-- Several recipes were ported to meson, leading to faster builds and better MSVC support
1765
- - ffmpeg, gperf, lame, libvpx, ogg, opencore-amr, sbc, speex, tiff, webrtc-audio-processing
1766
- - For more information, please see the tracker issue
1767
-- Some recipes are now outdated or unnecessary and have been removed:
1768
- - intltool, libkate
1769
-- Various recipe updated to their latest versions
1770
-- Rust toolchain updated to 1.76.0 (latest as of writing)
1771
-- Rust plugins are now stripped and debug info split out correctly, reducing their size
1772
-- Fix several spurious build issues, especially with the Rust toolchain
1773
-- CMake is picked up from the system if available
1774
-- Cerbero will no longer OOM or consume excessive resources on low-end systems
1775
-- Python recipes have been moved from setuptools to virtualenv
1776
-- Fixed support for Python 3.12+
1777
-
1778
-macOS
1779
-
1780
-- Minimum macOS version has been increased to 10.13 (High Sierra)
1781
- - Released 5½ years ago, >95% marketshare
1782
-- Fix macOS app store validation issue caused by absolute RPATHs
1783
-- Rosetta is automatically installed if required for universal builds on Apple Silicon
1784
-- The official macOS binaries now also include static libs for the GStreamer Rust plugins
1785
-
1786
-iOS
1787
-
1788
-- Minimum iOS version has been increased to 12.0
1789
-- The iOS binary packages now include the GStreamer Rust plugins
1790
-- tremor and ivorbisdec plugins are no longer shipped on iOS
1791
-
1792
-Windows
1793
-
1794
-- New features shipped with the official binaries:
1795
- - plugins: dwrite d3d12 (MSVC) soundtouch (MSVC) taglib (MSVC) webrtcdsp (MSVC)
1796
- - plugin features: d3d11-wgc (Windows Graphics Capture Support)
1797
- - libraries: gstdxva-1.0
1798
-- New qml6 plugin can be built on Windows with the qt6 variant enabled
1799
- - Similar to qt5, this plugin cannot be included in the official binaries
1800
-- GLib process handling helpers for Windows are now shipped
1801
-- Windows 11 SDK is now required for builds
1802
- - Visual Studio 2019 and newer ship this SDK
1803
-- MSYS is now deprecated for building Windows binaries, will be removed in the next release
1804
- - MSYS2 is required, and the bootstrap script tools/bootstrap-windows.ps can install it for you
1805
-- Windows bootstrap script tools/bootstrap-windows.ps1 is much more interactive and user-friendly now
1806
-- Fixed Pango crash on 32-bit Windows
1807
-- WiX packaging now works with cross-windows builds from linux
1808
-
1809
-Linux
1810
-
1811
-- Linux packages will now also include static libs for the GStreamer Rust plugins
1812
-- Add Python support for multiarch distributions
1813
-- Build fixes for various recipes on multiarch distributions
1814
-- Use arch-specific libdir correctly on multiarch distributions
1815
-- gst-omx was removed from gstreamer, and hence is no longer shipped
1816
-- Fixed Gentoo support
1817
-- Added support for RHEL 9
1818
-- Added support for Rocky Linux
1819
-- Added support for Manjaro Linux
1820
-
1821
-Android
1822
-
1823
-- Android NDK has been updated to r25c
1824
- - Only the Clang toolchain is used from the NDK now (both target and host)
1825
- - gnustl has been completely removed
1826
-- The Android binary packages now include the GStreamer Rust plugins
1827
-- tremor and ivorbisdec plugins are no longer shipped on Android
1828
-- openh264 plugin no longer enables ASM optimizations on Android x86 due to relocation errors
1829
+- New python-exe Meson build option to override the target Python installation to use. This will be picked up by the
1830
+ gst-python and gst-editing-sevices subprojects.
1831
1832
## Platform-specific changes and improvements
1833
1834
### Android
1835
1836
-- Add NDK implementation of Android MediaCodec. This reduces the amount of Java <-> native calls, which should reduce
1837
- overhead.
1838
-
1839
-- Add support for AV1 to the androidmedia video encoder and decoder.
1840
+- The recommended mechanism to build Android apps has changed from Android.mk to CMake-in-Gradle using
1841
+ FindGStreamerMobile.cmake. Android.mk support has been deprecated and will be removed in the next stable release. For more
1842
+ information, see below, in the Cerbero section.
1843
+- More H.264/H.265 profiles and levels have been added to the androidmedia hardware-accelerated video encoder and decoder
1844
+ elements, along with mappings for a number of additional pixel formats for P010, packed 4:2:0 variants and RGBA layouts,
1845
+ which fixes problems with android decoders refusing to output raw video frames with decoders that announce support for these
1846
+ common pixel formats and only allow the ‘hardware surfaces output’ path.
1847
1848
### Apple macOS and iOS
1849
1850
-- osxaudio: audio clock improvements (interpolate based on system time)
1851
-
1852
-- Set activation policy in gst_macos_main() and in osxvideosink and glimagesink. Setting the policy to
1853
- NSApplicationActivationPolicyAccessory by default makes sure that we can activate windows programmatically or by clicking on
1854
- them. Without that, windows would disappear if you clicked outside them and there would be no way to bring them to front
1855
- again. This change also allows osxvideosink to receive navigation events correctly.
1856
-
1857
-### Windows
1858
-
1859
-- New DirectWrite text rendering plugin with dwriteclockoverlay, dwritetimeoverlay, dwritetextoverlay, dwritesubtitlemux, and
1860
- dwritesubtitleoverlay elements, including closed caption overlay support in dwritetextoverlay.
1861
-
1862
-- PTP clock support is now also available on Windows
1863
-
1864
-- qml6d3d11sink is a new Direct3D11 Qt6 QML sink for Windows as an alternative to the existing qml6glsink.
1865
-
1866
-- wasapi2 audio plugin:
1867
-
1868
- - Added an option to monitor a loopback device’s mute state
1869
- - Allows process loopback capture on Windows 10
1870
-
1871
-- win32ipc supports zero-copy rendering now through a shared bufferpool.
1872
-
1873
-- Add a Windows-specific plugin loader implementation (gst-plugin-scanner), so plugin loading during registry updates happens
1874
- in an external process on Windows as well.
1875
-
1876
-- gst_video_convert_sample() which is often used for thumbnailing gained a D3D11 specific conversion path.
1877
-
1878
-- d3d11 plugin:
1879
-
1880
- - d3d11mpeg2dec element is promoted to PRIMARY + 1 rank
1881
- - Added d3d11ipcsrc and d3d11ipcsink elements for zero-copy GPU memory sharing between multiple processes.
1882
- - Added HLSL shader pre-compilation (at binary build time) support in MSVC build.
1883
- - d3d11videosink and d3d11convert elements support 3D transform, MSAA (MultiSampling Anti-Aliasing) and anisotropic
1884
- sampling method.
1885
- - Added support for more raw video formats by using compute shader. A list of supported raw video formats can be found in
1886
- the d3d11videosink plugin documentation.
1887
- - Added d3d11overlay element for applications to be able to draw/blend an overlay image on Direct3D11 texture directly.
1888
-
1889
-- New Direct3D12 plugin: From a video decoding, conversion, composition, and rendering point of view, this new d3d12 plugin is
1890
- feature-wise near equivalent to the d3d11 plugin. Notable differences between d3d12 and d3d11 are:
1891
- - The GStreamer Direct3D12 integration layer is not exposed as a GStreamer API yet. Thus, other plugins such as amfcodec,
1892
- nvcodec, qsv, and dwrite are not integrated with d3d12 yet.
1893
- - H.264 video encoding support via d3d12h264enc element.
1894
- - Direct3D12 video encoding API requires Windows 11 or DirectX 12 Agility SDK
1895
- - IPC, overlay, and deinterlace elements are not implemented in d3d12
1896
- - Windows Graphics Capture API based screen capturing is not implemented in d3d12
1897
- - In this release, MSVC is the only officially supported toolchain for the d3d12 plugin build.
1898
- - All d3d12 elements are zero ranked for now. Users will need to adjust rank of each d3d12 element via GST_PLUGIN_RANK
1899
- environment or appropriate plugin feature APIs if they want these elements autoplugged.
1900
-
1901
-## Documentation improvements
1902
-
1903
-- hotdoc has been updated to the latest version, and the theme has also been updated, which should fix various usability
1904
- issues.
1905
-
1906
-## Possibly Breaking Changes
1907
-
1908
-- gst_plugin_feature_check_version() has been updated to fix unexpected version check behaviour for git versions. It would
1909
- return TRUE if the plugin version is for a git development version (e.g. 1.24.0.1) and the check is for the “next” micro
1910
- version (1.24.1). Now it no longer does this. This just brings the runtime version check in line with the build time version
1911
- checks which have been fixed some time ago.
1912
-
1913
-- GstAudioAggregator and subclasses such as audiomixer now sync property values to output timestamp, which is what
1914
- GstVideoAggregator has been doing already since 2019, and which makes sense, as the properties need to change at every
1915
- output frame based on the output time because they may change even though the input frame is not changing.
1916
-
1917
-- rtpac3depay now outputs audio/x-ac3 instead of audio/ac3 as that is the canonical media format in GStreamer. audio/ac3 is
1918
- still sometimes accepted as input format for backwards compatibility (e.g. in rtpac3pay or ac3parse), but shouldn’t be
1919
- output.
1920
-
1921
-- timecodestamper: The “drop-frame” property now defaults to TRUE
1922
-
1923
-- The NVIDIA desktop GPU decoders nvh264sldec, nvh265sldec, nvvp8sldec and nvvp9sldec were renamed to nvh264dec, nvh265dec,
1924
- nvvp8dec and nvvp9dec, respectively.
1925
-
1926
-## Known Issues
1927
-
1928
-- There are known issues with FFmpeg version 6.0.0 due to opaque passing being broken in that version. This affects at least
1929
- avdec_h264, but may affect other decoders as well. Versions before 6.0.0, and 6.0.1 or higher are not affected.
1930
-
1931
-- gst-libav < 1.24.6 didn’t build against the latest FFmpeg 7.0 release. This has been worked on and tracked in this “libav:
1932
- Fix compatibility with ffmpeg 7” Merge Request.
1933
-
1934
-## Statistics
1935
-
1936
-- 4643 commits
1937
-
1938
-- 2405 Merge Requests
1939
-
1940
-- 850 Issues
1941
-
1942
-- 290+ Contributors
1943
-
1944
-- ~25% of all commits and Merge Requests were in Rust modules
1945
-
1946
-- 4747 files changed
1947
-
1948
-- 469633 lines added
1949
-
1950
-- 209842 lines deleted
1951
-
1952
-- 259791 lines added (net)
1953
-
1954
-## Contributors
1955
-
1956
-Aaron Boxer, Aaron Huang, Acky Xu, adixonn, Adrian Fiergolski, Adrien De Coninck, Akihiro Sagawa, Albert Sjölund, Alessandro
1957
-Bono, Alexande B, Alexander Slobodeniuk, Alicia Boya García, amindfv, Amir Naghdinezhad, anaghdin, Anders Hellerup Madsen,
1958
-Andoni Morales Alastruey, Antonio Kevo, Antonio Rojas, Arnaud Rebillout, Arnaud Vrac, Arun Raghavan, badcel, Balló György, Bart
1959
-Van Severen, Bastien Nocera, Benjamin Gaignard, Bilal Elmoussaoui, Brad Hards, Camilo Celis Guzman, Carlo Cabrera, Carlos
1960
-Falgueras García, Carlos Rafael Giani, Célestin Marot, Chao Guo, Charlie Blevins, Cheah, Vincent Beng Keat, Chris Degawa, Chris
1961
-Spencer, Christian Curtis Veng, Christian Meissl, Christopher Degawa, Chris Wiggins, Cidana-Developers, Colin Kinloch, Damian
1962
-Hobson-Garcia, Daniel Almeida, Daniel Knobe, Daniel Moberg, Daniel Morin, Daniel Pendse, Daniel Stone, Daniel Ulery, Dan
1963
-Searles, Dario Marino Saccavino, Dave Patrick Caberto, David Craven, David Revay, David Rosca, David Svensson Fors, Detlev
1964
-Casanova, Diego Nieto, Dominique Leroux, Dongyun Seo, Doug Nazar, Edward Hervey, Ekwang Lee, elenril, Elliot Chen, Enrique Ocaña
1965
-González, Erik Fröbrant, Eva Pace, Evgeny Pavlov, Fabian Orccon, Felix Yan, Fernando Jiménez Moreno, Florian Zwoch, François
1966
-Laignel, Frank Dana, Georges Basile Stavracas Neto, Guillaume Desmottes, Guillaume Gomez, Gwyn Ciesla, Haihua Hu, Hassene Tmar,
1967
-hassount, Heiko Becker, He Junyan, hguermaz, Hiero32, Hosang Lee, Hou Qi, Hugo Svirak, Hugues Fruchet, Hu Qian, Hyung Song,
1968
-Ignazio Pillai, Ilie Halip, Itamar Marom, Ivan Molodetskikh, Ivan Tishchenko, JackZhouVCD, Jacob Johnsson, jainl28patel, Jakub
1969
-Adam, James Cowgill, James Hilliard, James Oliver, Jan Alexander Steffens (heftig), Jan Beich, Jan Schmidt, Jan Vermaete, Jayson
1970
-Reis, Jeff Wilson, Jeongki Kim, Jeri Li, Jimmi Holst Christensen, Jimmy Ohn, Jochen Henneberg, Johan Adam Nilsson, Johan
1971
-Sternerup, John King, Jonas Danielsson, Jonas K Danielsson, Jonas Kvinge, Jordan Petridis, Jordan Yelloz, Josef Kolář, Juan
1972
-Navarro, Julien Isorce, Jun Zhao, Jurijs Satcs, Kalev Lember, Kamal Mostafa, kelvinhu325, Kevin Song, Khem Raj, Kourosh
1973
-Firoozbakht, Leander Schulten, Leif Andersen, L. E. Segovia, Lieven Paulissen, lijing0010, Lily Foster, Link Mauve, Li Yuanheng,
1974
-Loïc Le Page, Loïc Molinari, Lukas Geiger, Luke McGartland, Maksym Khomenko, Ma, Mingyang, Manel J, Marcin Kolny, Marc Leeman,
1975
-Marc Solsona, Marc Wiblishauser, Marek Vasut, Marijn Suijten, Mark Hymers, Markus Ebner, Martin Nordholts, Martin Robinson, Mart
1976
-Raudsepp, Marvin Schmidt, Mathieu Duponchelle, Matt Feury, Matthew Waters, Matthias Fuchs, Matthieu Volat, Maxim P. Dementyev,
1977
-medithe, Mengkejiergeli Ba, Michael Bunk, Michael Gruner, Michael Grzeschik, Michael Olbrich, Michael Tretter, Michiel
1978
-Westerbeek, Mihail Ivanchev, Ming Qian, Nader Mahdi, naglis, Nick Steel, Nicolas Beland, Nicolas Dufresne, Nirbheek Chauhan,
1979
-Olivier Babasse, Olivier Blin, Olivier Crête, Omar Khlif, Onur Demiralay, Patricia Muscalu, Paul Fee, Pawel Stawicki, Peter
1980
-Stensson, Philippe Normand, Philipp Zabel, PhoenixWorthVCD, Piotr Brzeziński, Priit Laes, Qian Hu, Rabindra Harlalka, Rafał
1981
-Dzięgiel, Rahul T R, rajneeshksoni, Ratchanan Srirattanamet, renjun wang, Rhythm Narula, Robert Ayrapetyan, Robert Mader, Robert
1982
-Rosengren, Robin Gustavsson, Roman Lebedev, Rouven Czerwinski, Ruben Gonzalez, Ruslan Khamidullin, Ryan Pavlik, Sanchayan Maity,
1983
-Sangchul Lee, Scott Kanowitz, Scott Moreau, SeaDve, Sean DuBois, Sebastian Dröge, Sebastian Szczepaniak, Sergey Radionov,
1984
-Seungha Yang, Shengqi Yu, Simon Himmelbauer, Slava Andrejev, Slawomir Pawlowski, soak, Stefan Brüns, Stéphane Cerveau, Stephan
1985
-Seitz, Stijn Last, Talha Khan, Taruntej Kanakamalla, Jin Chung Teng, Théo Maillart, Thibault Saunier, Thomas Schneider,
1986
-Tim-Philipp Müller, Tobias Rapp, Tong Wu, Tristan van Berkom, ttrigui, U. Artie Eoff, utzcoz, Víctor Manuel Jáquez Leal, Vivia
1987
-Nikolaidou, Wang Chuan, William Manley, Wojciech Kapsa, Xabier Rodriguez Calvar, Xavier Claessens, Xuchen Yang, Yatin Maan,
1988
-Yinhang Liu, Yorick Smilda, Yuri Fedoseev, Gang Zhao, Jack Zhou, …
1989
-
1990
-… and many others who have contributed bug reports, translations, sent suggestions or helped testing. Thank you all!
1991
-
1992
-Stable 1.24 branch
1993
-
1994
-After the 1.24.0 release there will be several 1.24.x bug-fix releases which will contain bug fixes which have been deemed
1995
-suitable for a stable branch, but no new features or intrusive changes will be added to a bug-fix release usually. The 1.24.x
1996
-bug-fix releases will be made from the git 1.24 branch, which will be a stable branch.
1997
-
1998
-1.24.0
1999
-
2000
-GStreamer 1.24.0 was released on 4 March 2024.
2001
-
2002
-1.24.1
2003
-
2004
-The first 1.24 bug-fix release (1.24.1) was released on 21 March 2024.
2005
-
2006
-This release only contains bugfixes and it should be safe to update from 1.24.0.
2007
-
2008
-Highlighted bugfixes in 1.24.1
2009
-
2010
-- Fix instant-EOS regression in audio sinks in some cases when volume is 0
2011
-- rtspsrc: server compatibility improvements and ONVIF trick mode fixes
2012
-- rtsp-server: fix issues if RTSP media was set to be both shared and reusable
2013
-- (uri)decodebin3 and playbin3 fixes
2014
-- adaptivdemux2/hlsdemux2: Fix issues with failure updating playlists
2015
-- mpeg123 audio decoder fixes
2016
-- v4l2codecs: DMA_DRM caps support for decoders
2017
-- va: various AV1 / H.264 / H.265 video encoder fixes
2018
-- vtdec: fix potential deadlock regression with ProRes playback
2019
-- gst-libav: fixes for video decoder frame handling, interlaced mode detection
2020
-- avenc_aac: support for 7.1 and 16 channel modes
2021
-- glimagesink: Fix the sink not always respecting preferred size on macOS
2022
-- gtk4paintablesink: Fix scaling of texture position
2023
-- webrtc: Allow resolution and framerate changes, and many other improvements
2024
-- webrtc: Add new LiveKit source element
2025
-- Fix usability of binary packages on arm64 iOS
2026
-- various bug fixes, memory leak fixes, and other stability and reliability improvements
2027
-
2028
-gstreamer
2029
-
2030
-- registry, ptp: Canonicalize the library path returned by dladdr
2031
-- segment: Don’t use g_return_val_if_fail() in gst_segment_to_running_time_full()
2032
-- uri: Sort uri protocol sources/sinks by feature name to break a feature rank tie
2033
-- ptp: Initialize expected DELAY_REQ seqnum to an invalid value
2034
-- ptp: Don’t install test executable
2035
-- gst-inspect: fix –exists for plugins with versions other than GStreamer’s version, like the Rust plugins
2036
-- identity: Don’t refuse seeks unless single-segment=true
2037
-
2038
-gst-plugins-base
2039
-
2040
-- audiobasesink: Don’t wait on gap events
2041
-- audioencoder: Avoid using temporarily mapped memory as base for input buffers
2042
-- decodebin3: Be more specific when sending missing plugin messages
2043
-- decodebin3: Fix re-usability issues
2044
-- decodebin3: Provide clear error message if no decoders present
2045
-- playbin3: Remove un-needed URI NULL check
2046
-- uridecodebin3: Don’t hold lock when posting messages or signals
2047
-- uridecodebin3: Handle potential double redirection errors
2048
-- glimagesink: Fix the sink not always respecting preferred size on macOS
2049
-- glupload: Do not propose allocators with sysmem, fixes warning when playing VP9 with alpha
2050
-- shmallocator: fix build on Illumos
2051
-- meson: Fix the condition to skip theoradec test
2052
-
2053
-gst-plugins-good
2054
-
2055
-- adaptivdemux/hlsdemux2: Fix issues with failure updating playlists
2056
-- mpg123audiodec: Correctly handle the case of clipping all decoded samples
2057
-- mpg123audiodec: gst_audio_decoder_allocate_output_buffer: assertion ‘size > 0’ failed
2058
-- qt: Fix description in meson build options
2059
-- qtdemux: Do not set channel-mask to zero
2060
-- rtspsrc: remove ‘deprecated’ flag from the ‘push-backchannel-sample’ signal
2061
-- rtspsrc: Consider 503 Service Not Available when handling broken control urls
2062
-- rtspsrc, rtponviftimestamp: ONVIF mode fixes
2063
-- rtspsrc: Don’t invoke close when stopping if we’ve started cleanup, fixing potential crash on shutdown
2064
-- rtpgstpay: Delay pushing of event packets until the next buffer
2065
-
2066
-gst-plugins-bad
2067
-
2068
-- asio: Fix {input,output}-channels property handling
2069
-- cuda,d3d11,d3d12bufferpool: Disable preallocation
2070
-- d3d11device: Fix adapter LUID comparison in wrapped device mode
2071
-- d3d12device: Fix IDXGIFactory2 leak
2072
-- d3d12: Fix SDK debug layer activation
2073
-- dvbsubenc: Fix bottom field size calculation
2074
-- dvdspu: avoid null dereference
2075
-- GstPlay: Fix a critical warning in error callback
2076
-- v4l2codecs: decoders: Add DMA_DRM caps support
2077
-- vaav1enc: Init the output_frame_num when resetting gf group
2078
-- vah264enc, vah265enc, vaav1enc: fix potential crash on devices without rate control
2079
-- vah265enc: checking surface alignment
2080
-- videoparsers: Don’t verbosely warn about CEA_708_PROCESS_EM_DATA_FLAG not being set
2081
-- vtdec: Fix a deadlock during ProRes playback, handle non-linked gracefully
2082
-
2083
-gst-plugins-ugly
2084
-
2085
-- No changes
2086
-
2087
-GStreamer Rust plugins
2088
-
2089
-- gtk4paintablesink: Fix scaling of texture position
2090
-- janusvrwebrtcsink: Handle 64 bit numerical room ids
2091
-- janusvrwebrtcsink: Don’t include deprecated audio/video fields in publish messages
2092
-- janusvrwebrtcsink: Handle various other messages to avoid printing errors
2093
-- livekitwebrtc: Fix shutdown behaviour
2094
-- rtpgccbwe: Don’t forward buffer lists with buffers from different SSRCs to avoid breaking assumptions in rtpsession
2095
-- sccparse: Ignore invalid timecodes during seeking
2096
-- webrtcsink: Don’t try parsing audio caps as video caps
2097
-- webrtc: Allow resolution and framerate changes
2098
-- webrtcsrc: Make producer-peer-id optional
2099
-- livekitwebrtcsrc: Add new LiveKit source element
2100
-- regex: Add support for configuring regex behaviour
2101
-- spotifyaudiosrc: Document how to use with non-Facebook accounts
2102
-- webrtcsrc: Add do-retransmission property
2103
-
2104
-gst-libav
2105
-
2106
-- avcodecmap: Increase max AAC channels to 16
2107
-- avviddec: Fix how we get back the codec frame
2108
-- avviddec: Fix interlaced mode detection
2109
-- avviddec: Double check if AV_CODEC_FLAG_COPY_OPAQUE port is safe for our scenario
2110
-
2111
-gst-rtsp-server
2112
-
2113
-- media: gst_rtsp_media_set_reusable() and gst_rtsp_media_set_shared() have become incompatible
2114
-- rtsp-stream: clear sockets when leaving bin
2115
-
2116
-gstreamer-vaapi
2117
-
2118
-- No changes
2119
-
2120
-gstreamer-sharp
2121
-
2122
-- No changes
2123
-
2124
-gst-omx
2125
-
2126
-- No changes
2127
-
2128
-gst-python
2129
-
2130
-- No changes
2131
-
2132
-gst-editing-services
2133
-
2134
-- ges: Fix critical warning
2135
-
2136
-gst-validate + gst-integration-testsuites
2137
-
2138
-- No changes
2139
-
2140
-gst-examples
2141
-
2142
-- No changes
2143
-
2144
-Development build environment
2145
-
2146
-- No changes
2147
-
2148
-Cerbero build tool and packaging changes in 1.24.1
2149
-
2150
-- gstreamer: Enable ptp helper explicitly
2151
-- gst-plugins-bad: Package new insertbin plugin
2152
-- gst-plugins-rs: Adjust parallel architecture build blocks
2153
-- libnice: update to 0.1.22
2154
-- pixman: Bump to 0.43.4
2155
-- orc: disable JIT code generation on arm64 on iOS again, fixing crashes
2156
-
2157
-Contributors to 1.24.1
2158
-
2159
-Alexander Slobodeniuk, Antonio Larrosa, Edward Hervey, Elizabeth Figura, François Laignel, Guillaume Desmottes, He Junyan, Jan
2160
-Schmidt, Jordan Yelloz, L. E. Segovia, Mark Nauwelaerts, Mathieu Duponchelle, Michael Tretter, Mikhail Rudenko, Nicolas
2161
-Dufresne, Nirbheek Chauhan, Philippe Normand, Piotr Brzeziński, Robert Mader, Ruijing Dong, Sebastian Dröge, Seungha Yang,
2162
-Thomas Goodwin, Thomas Klausner, Tim-Philipp Müller, Xi Ruoyao,
2163
-
2164
-… and many others who have contributed bug reports, translations, sent suggestions or helped testing. Thank you all!
2165
-
2166
-List of merge requests and issues fixed in 1.24.1
2167
-
2168
-- List of Merge Requests applied in 1.24.1
2169
-- List of Issues fixed in 1.24.1
2170
-
2171
-1.24.2
2172
-
2173
-The second 1.24 bug-fix release (1.24.2) was released on 9 April 2024.
2174
-
2175
-This release only contains bugfixes and it should be safe to update from 1.24.x.
2176
-
2177
-Highlighted bugfixes in 1.24.2
2178
-
2179
-- H.264 parsing regression fixes
2180
-- WavPack typefinding improvements
2181
-- Video4linux fixes and improvements
2182
-- Android build and runtime fixes
2183
-- macOS OpenGL memory leak and robustness fixes
2184
-- Qt/QML video sink fixes
2185
-- Package new analytics and mse libraries in binary packages
2186
-- Windows MSVC binary packages: fix libvpx avx/avx2/avx512 instruction set detection
2187
-- various bug fixes, memory leak fixes, and other stability and reliability improvements
2188
-
2189
-gstreamer
2190
-
2191
-- clock: Block futex_time64 usage on Android API level < 30
2192
-- basesrc: Clear submitted buffer lists consistently with buffers
2193
-- ptpclock: fix double free of domain data during deinit
2194
-- clocksync: Proxy allocation queries
2195
-- inputselector: fix possible clock leak on shutdown
2196
-- typefind: Handle WavPack block sizes > 131072
2197
-
2198
-gst-plugins-base
2199
-
2200
-- glcolorconvert: Ensure glcolorconvert does not miss supported RGB formats
2201
-- gl/macos: a couple of race/reference count fixes
2202
-- pbutils: descriptions: Don’t warn on MPEG-1 audio caps without layer field
2203
-- encodebin: Add the parser before timestamper to tosync list
2204
-- videorate: Reset last_ts when a new segment is received
2205
-
2206
-gst-plugins-good
2207
-
2208
-- qml6glsink: fix destruction of underlying texture
2209
-- qt/qt6: Fixup for dummy textures
2210
-- rtpjitterbuffer: Don’t use estimated_dts to do default skew adjustment
2211
-- rtpjitterbuffer: Use an extended RTP timestamp for the clock-base
2212
-- rtpmp4adepay: Set duration on outgoing buffers
2213
-- tests: rtpred: fix out-of-bound writes
2214
-- v4l2: allocator: Fix unref log/trace on memory release
2215
-- v4l2: Also set max_width/max_width if enum framesize fail
2216
-- v4l2: enforce a pixel aspect ratio of 1/1 if no data are available
2217
-- v4l2: fix error in calculating padding bottom for tile format
2218
-- v4l2src: need maintain the caps order in caps compare when fixate
2219
-- vpxenc: Include vpx error details in errors and warnings
2220
-
2221
-gst-plugins-bad
2222
-
2223
-- h264parse: element hangs with some video streams (regression)
2224
-- h264parse: Revert “AU boundary detection changes”
2225
-- alphadecodebin: Explicitly pass 64 bit integers as such through varargs
2226
-- atdec: Set a channel mask for channel counts greater than 2
2227
-- ccconverter: Fix caps leak and remove unnecessary code
2228
-- d3d11videosink: disconnect signals before releasing the window
2229
-- d3d11: meson: Add support for MinGW DirectXMath package and update directxmath wrap to 3.1.9
2230
-- d3d11: meson: Disable library build if DirectXMath header was not found
2231
-- dwrite: Fix crash on device update
2232
-- GstPlay: Update video_snapshot to support playbin3
2233
-- jpegparse: avi1 tag can be progressive
2234
-- jpegparse: turn some bus warnings into object ones
2235
-- qsvdecoder: Release too old frames
2236
-- ristsrc: Only free caps if needed
2237
-- va: av1enc: Correct the reference number and improve the reference setting
2238
-- va: {vp9, av1}enc: Avoid reopen encoder or renegotiate
2239
-- videoparsers: Demote CC warning message
2240
-- vkbufferpool: correct usage flags type
2241
-- vkh26xdec: a couple decoding fixes
2242
-- vtdec: Fix caps criticals during negotiation
2243
-- wpe: avoid crash with G_DEBUG=fatal_criticals and static build
2244
-- Sink missing floating references
2245
-
2246
-gst-plugins-ugly
2247
-
2248
-- No changes
2249
-
2250
-GStreamer Rust plugins
2251
-
2252
-- aws: use fixed BehaviorVersion
2253
-- aws: improve error message logs
2254
-- fmp4: Update to dash-mpd 0.16
2255
-- fmp4mux: Require gstreamer-pbutils 1.20 for the examples
2256
-- onvifmetadataparse: Reset state in PAUSED->READY after pad deactivation, fixing occasional deadlock on shutdown
2257
-- reqwest: Update to reqwest 0.12
2258
-- webrtcsink: set perfect-timestamp=true on audio encoders
2259
-- webrtcsink: improve panic message on unexpected caps during discovery
2260
-- webrtchttp: Update to reqwest 0.12
2261
-- webrtc: fix inconsistencies in documentation of object names
2262
-- Fix clippy warnings after upgrade to Rust 1.77
2263
-
2264
-gst-libav
2265
-
2266
-- avviddec: Fix AVPacket leak
2267
-
2268
-gst-rtsp-server
2269
-
2270
-- No changes
2271
-
2272
-gstreamer-vaapi
2273
-
2274
-- No changes
2275
-
2276
-gstreamer-sharp
2277
-
2278
-- No changes
2279
-
2280
-gst-omx
2281
-
2282
-- No changes
2283
-
2284
-gst-python
2285
-
2286
-- No changes
2287
-
2288
-gst-editing-services
2289
-
2290
-- ges: frame-composition-meta: Stop using keyword ‘operator’ for field in C++
2291
-
2292
-gst-validate + gst-integration-testsuites
2293
-
2294
-- No changes
2295
-
2296
-gst-examples
2297
-
2298
-- webrtc examples: set perfect-timestamp=true on opusenc for better Chrome interoperability
2299
-
2300
-Development build environment
2301
-
2302
-- flac: Add subproject wrap and allow falling back to it in the flac plugin
2303
-- libnice: bump subproject wrap to v0.1.22 (needed for ICE consent freshness support in gstwebrtc)
2304
-
2305
-Cerbero build tool and packaging changes in 1.24.2
2306
-
2307
-- glib: Block futex_time64 usage on Android API level < 30
2308
-- libvpx: Fix build with Python 3.8
2309
-- libvpx: Fix errors with avx* instruction set detection for x86* builds and MSVC
2310
-- openjpeg: Update to 2.5.2
2311
-- directxmath: Update to 3.1.9
2312
-- gst-plugins-rs: Fix superstripping for ELF breaking all plugins
2313
-- Rust-based plugin initialization hangs on Android with GStreamer 1.24.0
2314
-
2315
-Contributors to 1.24.2
2316
-
2317
-Alexander Slobodeniuk, Arnaud Vrac, Chao Guo, Chris Spencer, Daniel Morin, Edward Hervey, Elizabeth Figura, Elliot Chen, eri,
2318
-François Laignel, Guillaume Desmottes, Haihua Hu, He Junyan, Hou Qi, Jan Schmidt, Jochen Henneberg, L. E. Segovia, Martin
2319
-Nordholts, Matthew Waters, Nicolas Dufresne, Philippe Normand, Philipp Zabel, Piotr Brzeziński, Robert Guziolowski, Robert
2320
-Mader, Ruben Gonzalez, Sebastian Dröge, Seungha Yang, Taruntej Kanakamalla, Thibault Saunier, Tim Blechmann, Tim-Philipp Müller,
2321
-Víctor Manuel Jáquez Leal, Wojciech Kapsa, Xavier Claessens,
2322
-
2323
-… and many others who have contributed bug reports, translations, sent suggestions or helped testing. Thank you all!
2324
-
2325
-List of merge requests and issues fixed in 1.24.2
2326
-
2327
-- List of Merge Requests applied in 1.24.2
2328
-- List of Issues fixed in 1.24.2
2329
-
2330
-1.24.3
2331
-
2332
-The third 1.24 bug-fix release (1.24.3) was released on 30 April 2024.
2333
-
2334
-This release only contains bugfixes and it should be safe to update from 1.24.x.
2335
-
2336
-Highlighted bugfixes in 1.24.3
2337
-
2338
-- EXIF image tag parsing security fixes
2339
-- Subtitle handling improvements in parsebin
2340
-- Fix issues with HLS streams that contain VTT subtitles
2341
-- Qt6 QML sink re-render and re-sizing fixes
2342
-- unixfd ipc plugin timestamp and segment handling fixes
2343
-- vah264enc, vah265enc: Do not touch the PTS of the output frame
2344
-- vah264dec and vapostproc fixes and improvements
2345
-- v4l2: multiple fixes and improvements, incl. for mediatek JPEG decoder and v4l2 loopback
2346
-- v4l2: fix hang after seek with some v4l2 decoders
2347
-- Wayland sink fixes
2348
-- ximagesink: fix regression on RPi/aarch64
2349
-- fmp4mux, mp4mux gained FLAC audio support
2350
-- D3D11, D3D12: reliablity improvements and memory leak fixes
2351
-- Media Foundation device provider fixes
2352
-- GTK4 paintable sink improvements including support for directly importing dmabufs with GTK 4.14
2353
-- WebRTC sink/source fixes and improvements
2354
-- AWS s3sink, s3src, s3hlssink now support path-style addressing
2355
-- MPEG-TS demuxer fixes
2356
-- Python bindings fixes
2357
-- various bug fixes, memory leak fixes, and other stability and reliability improvements
2358
-
2359
-gstreamer
2360
-
2361
-- ptp: Silence Rust compiler warning about some unused trait methods
2362
-
2363
-gst-plugins-base
2364
-
2365
-- EXIF image tag parsing security fixes
2366
-- glcolorconvert: remove some dead code
2367
-- parsebin: Ensure non-time subtitle streams get “parsed”
2368
-- playbin3: Handle combiner update in case of errors
2369
-- ximagesink: initialize mask for XISelectEvents
2370
-
2371
-gst-plugins-good
2372
-
2373
-- adaptivedemux2: Playback hangs with VTT fragments
2374
-- adaptivedemux2: Avoid double usage of parsebin
2375
-- pulsedeviceprovider: Add compare_device_type_name function and missing lock
2376
-- qml6glsink: Notify that the returned QSGNode node has changes
2377
-- qml6glsink: video content resizes to new item size
2378
-- qtdemux: fix wrong full_range offset when parsing colr box
2379
-- soup: fix thread name
2380
-- v4l2: add multiplane y42b (yuv422m) support (for mediatek v4l2 jpeg decoder)
2381
-- v4l2: bufferpool: Drop writable check on output pool process
2382
-- v4l2: bufferpool: Ensure freshly created buffers are not marked as queued, fixing issues with v4l2sink on a v4l2loopback
2383
- device
2384
-- v4l2: bufferpool: queue back the buffer flagged LAST but empty, fixes hangs after seek with some decoders
2385
-- v4l2: silence valgrind warning
2386
-- vpx: Include vpx error details in errors and warnings
2387
-
2388
-gst-plugins-bad
2389
-
2390
-- d3d11device: protect device_lock vs device_new
2391
-- d3d11decoder, d3d12decoder: Fix potential use after free
2392
-- d3d11videosink: Fix rendering on keyed mutex enabled handle
2393
-- d3d12decoder: Fix d3d12 resource copy
2394
-- d3d12encoder: Fix buffer pool leak
2395
-- d3d12videosink: HWND event handling related fixes
2396
-- d3d12vp9dec: Fix Intel GPU crash occurred when decoding VP9 SVC
2397
-- dvbsubenc: fixed some memory leaks and a crash
2398
-- GstPlay: fix read duration failure issue for some type rtsp streams which have valid duration
2399
-- mediafoundation: Fix device enumeration
2400
-- mediafoundation: Fix infinite loop in device provider
2401
-- tests: fix possible libscpp build failure in gst-plugins-bad
2402
-- tsdemux, tsparse: Fix Program equality check
2403
-- tsdemux: Disable smart program update
2404
-- unixfdsink: Take segment into account when converting timestamps
2405
-- va: videoformat: use video library to get DRM fourcc
2406
-- va: radeonsi: DRM RGB formats doesn’t look correctly mapped to VA formats
2407
-- vah264enc, vah265enc: Do not touch the PTS of output frame
2408
-- vaav1enc: Change the alignment of output to “tu”
2409
-- vaallocator: disable derived all together for Mesa <23.3
2410
-- waylandsink: free staged buffer when do gst_wl_window_finalize
2411
-- wlwindow: clear configure mutex and cond when finalize
2412
-- waylandsink: config buffer pool with query size when propose_allocation
2413
-- v4l2codecs: Don’t unref allocation query caps
2414
-
2415
-gst-plugins-ugly
2416
-
2417
-- No changes
2418
-
2419
-GStreamer Rust plugins
2420
-
2421
-Fixed:
2422
-
2423
-- hrtfrender: Use a bitmask instead of an int in the caps for the channel-mask
2424
-- rtpgccbwe: Don’t log an error when pushing a buffer list fails while stopping
2425
-- webrtcsink: Don’t panic in bitrate handling with unsupported encoders
2426
-- webrtcsink: Don’t panic if unsupported input caps are used
2427
-- webrtcsrc: Allow a None producer-id in request-encoded-filter signal
2428
-
2429
-Added:
2430
-
2431
-- aws: New property to support path-style addressing
2432
-- fmp4mux / mp4mux: Support FLAC inside (f)MP4
2433
-- gtk4: Support directly importing dmabufs with GTK 4.14
2434
-- gtk4: Add force-aspect-ratio property similar to other video sinks
2435
-
2436
-gst-libav
2437
-
2438
-- libav: guard some recently dropped APIs
2439
-
2440
-gst-rtsp-server
2441
-
2442
-- No changes
2443
-
2444
-gstreamer-vaapi
2445
-
2446
-- No changes
2447
-
2448
-gstreamer-sharp
2449
-
2450
-- No changes
2451
-
2452
-gst-omx
2453
-
2454
-- No changes
2455
-
2456
-gst-python
2457
-
2458
-- Fix Python library name fetching and library searching on Windows
2459
-- Don’t link to python for the gi overrides module
2460
-
2461
-gst-editing-services
2462
-
2463
-- ges-launcher: Fix for forcing container profiles
2464
-
2465
-gst-devtools, gst-validate + gst-integration-testsuites
2466
-
2467
-- debug-viewer: Fix plugin loading machinery
2468
-- validate/flvdemux: Stop spamming audio/video on test
2469
-
2470
-gst-examples
2471
-
2472
-- No changes
2473
-
2474
-Development build environment
2475
-
2476
-- No changes
2477
-
2478
-Cerbero build tool and packaging changes in 1.24.3
2479
-
2480
-- No changes
2481
-
2482
-Contributors to 1.24.3
2483
-
2484
-Alexander Slobodeniuk, Edward Hervey, Elliot Chen, F. Duncanh, François Laignel, Haihua Hu, He Junyan, Hou Qi, Jan Schmidt,
2485
-Jimmy Ohn, Maksym Khomenko, Matthew Waters, Nicolas Dufresne, Nirbheek Chauhan, Philippe Normand, Philipp Zabel, Qian Hu (胡骞),
2486
-Sanchayan Maity, Sebastian Dröge, Seungha Yang, Simonas Kazlauskas, Taruntej Kanakamalla, Tim Blechmann, Tim-Philipp Müller, U.
2487
-Artie Eoff, Víctor Manuel Jáquez Leal, William Wedler, Xavier Claessens,
2488
-
2489
-… and many others who have contributed bug reports, translations, sent suggestions or helped testing. Thank you all!
2490
-
2491
-List of merge requests and issues fixed in 1.24.3
2492
-
2493
-- List of Merge Requests applied in 1.24.3
2494
-- List of Issues fixed in 1.24.3
2495
-
2496
-1.24.4
2497
+- atenc: added an Apple AAC audio encoder
2498
2499
-The fourth 1.24 bug-fix release (1.24.4) was released on 29 May 2024.
2500
+- atdec can now decode audio with more than two channels
2501
2502
-This release only contains bugfixes and it should be safe to update from 1.24.x.
2503
+- vtenc has received various bug fixes as well as a number of new features:
2504
2505
-Highlighted bugfixes in 1.24.4
2506
+ - Support for HEVC with alpha encoding via the new vtenc_h265a element
2507
+ - additional rate control options for constant bitrate encoding (only supported on macOS 13.0+ and iOS 16.0+ on Apple
2508
+ Silicon), setting data rate limits, and emulating CBR mode via data rate limits where CBR is not supported.
2509
+ - HLG color transfer support
2510
+ - new "max-frame-delay" property (for ProRes)
2511
2512
-- audioconvert: support more than 64 audio channels
2513
-- avvidec: fix dropped frames when doing multi-threaded decoding of I-frame codecs such as DV Video
2514
-- mpegtsmux: Correctly time out in live pipelines, esp. for sparse streams like KLV and DVB subtitles
2515
-- vtdec deadlock fixes on shutdown and format/resolution changes (as might happen with e.g. HLS/DASH)
2516
-- fmp4mux, isomp4mux: Add support for adding AV1 header OBUs into the MP4 headers, and add language from tags
2517
-- gtk4paintablesink improvements: fullscreen mode and gst-play-1.0 support
2518
-- webrtcsink: add support for insecure TLS and improve error handling and VP9 handling
2519
-- v4l2codecs: decoder: Reorder caps to prefer DMA_DRM ones, fixes issues with playbin3
2520
-- vah264enc, vah265enc: timestamp handling fixes; generate IDR frames on force-keyunit-requests, not I frames
2521
-- Visualizer plugins fixes
2522
-- Avoid using private APIs on iOS
2523
-- Various bug fixes, memory leak fixes, and other stability and reliability improvements
2524
+- Better macOS support for gst-validate tools which now use gst_macos_main() and support lldb
2525
2526
-gstreamer
2527
+- The osxaudio device provider exposes more properties including a unique id
2528
2529
-- clock: Fix 32 bit assertions in GST_TIME_TO_TIMEVAL and GST_TIME_TO_TIMESPEC
2530
-- systemclock: fix usage of __STDC_NO_ATOMICS__
2531
-- filesrc: Don’t abort on _get_osfhandle() on Windows
2532
-- tests: Avoid using “bool” for the variable name
2533
-- Various Solaris / Illumos fixes
2534
-- parse: Don’t assume that child proxy child objects are GstObjects
2535
+- osxaudio will automatically set up AVAudioSession on iOS and always expose the maximum number of channels a device supports
2536
+ with an unpositioned layout.
2537
2538
-gst-plugins-base
2539
+- The monorepo development environment should work better on macOS now
2540
2541
-- audioconvert: Support converting >64 channels
2542
-- decodebin3: Fix caps and stream leaks
2543
-- playbin(3), streamsynchronizer: Fix deadlock when streams have been flushed before others start
2544
-- videotestsrc: fix race condition when clearing cached buffer
2545
-- Fix visualization plugins
2546
-- GstDiscoverer hangs when processing media file containing mebx on MacOS
2547
-- glmixer: Add GL_SYNC_META option to buffer pool
2548
-- typefinding: Fix ID_ODD_SIZE handling regression in WavPack typefinder
2549
+- CMake apps that build macOS and iOS apps can consume GStreamer more easily now, using FindGStreamer.cmake or
2550
+ FindGStreamerMobile.cmake respectively.
2551
2552
-gst-plugins-good
2553
+- In the near future, CMake in Xcode will be the preferred way of building the iOS tutorials. See below, in the Cerbero
2554
+ section.
2555
2556
-- osxaudio: Avoid using private APIs on iOS
2557
-- qtdemux: unit test fixes for 32-bit platforms
2558
-
2559
-gst-plugins-bad
2560
-
2561
-- cudamemory: Fix offset of subsampled planar formats
2562
-- d3d11: Revert “d3d11device: protect device_lock vs device_new
2563
-- d3dshader: Fix gamma and primaries conversion pixel shader
2564
-- dtlsconnection: Fix overflow in timeout calculation on systems with 32 bit time_t
2565
-- GstPlay: Initialize debug category and error quark in class_init
2566
-- kmssink: Do not close the DRM prime handle twice
2567
-- mpegtsmux: Correctly time out and mux anyway in live pipelines
2568
-- nvcodec: Accept progressive-high profiles for h264
2569
-- nvencoder: Fix maximum QP value setting
2570
-- qsvh264dec, qsvh265dec: Fix nalu leaks
2571
-- v4l2codecs: decoder: Reorder caps to prefer DMA_DRM ones
2572
-- vah264enc, vah265enc: Let FORCE_KEYFRAME be IDR frame rather than just I frame
2573
-- vah264enc, vah265enc: Set DTS offset before PTS
2574
-- vkh26xdec: Fix stop memory leak
2575
-- vtdec: Fix deadlock when negotiating format change
2576
-- vtdec: Fix PAUSED->READY deadlock when output loop is running
2577
-- wayland: Use wl_display_create_queue_with_name
2578
-- webrtc: request-aux-sender, only sink floating refs
2579
-- webrtcbin: Allow session level setup attribute in SDP
2580
-
2581
-gst-plugins-ugly
2582
-
2583
-- No changes
2584
-
2585
-GStreamer Rust plugins
2586
-
2587
-- fmp4mux, isomp4mux: Add support for adding AV1 header OBUs into the MP4 headers
2588
-- fmp4mux, isomp4mux: Add language from tags
2589
-- gtk4paintablesink: Also create own window for gst-play-1.0
2590
-- gtk4paintablesink: Add GST_GTK4_WINDOW_FULLSCREEN environment variable to fullscreen window for testing with
2591
- e.g. gst-launch-1.0
2592
-- gtk4: Fix plugin description and update python examples
2593
-- rtpgccbwe: Log effective bitrate in more places, and log delay and loss target bitrates separately
2594
-- webrtcsink: Improve error when no encoder was found or RTP plugins were missing
2595
-- webrtcsink: Add VP9 parser after the encoder for VP9 too
2596
-- webrtc: Add support for insecure TLS connections
2597
-
2598
-gst-libav
2599
-
2600
-- avvidec: Fix dropping wrong “ghost” frames - fixing multi-threaded decoding of I-frame codecs such as DV Video
2601
-
2602
-gst-rtsp-server
2603
-
2604
-- No changes
2605
-
2606
-gstreamer-vaapi
2607
-
2608
-- No changes
2609
-
2610
-gstreamer-sharp
2611
-
2612
-- No changes
2613
-
2614
-gst-omx
2615
-
2616
-- No changes
2617
-
2618
-gst-python
2619
-
2620
-- No changes
2621
-
2622
-gst-editing-services
2623
-
2624
-- ges-pipeline: Configure encodebin before linking
2625
-
2626
-gst-devtools, gst-validate + gst-integration-testsuites
2627
-
2628
-- No changes
2629
-
2630
-gst-examples
2631
-
2632
-- No changes
2633
-
2634
-Development build environment
2635
-
2636
-- No changes
2637
-
2638
-Cerbero build tool and packaging changes in 1.24.4
2639
-
2640
-- Add Fedora 40 support
2641
-- srt: bump version to 1.5.3
2642
-- pango: Fix leaks on Windows (textoverlay plugins)
2643
-- windows runtime installer has empty qt6 msm
2644
-- WiX: assorted fixes
2645
-
2646
-Contributors to 1.24.4
2647
-
2648
-Alexander Slobodeniuk, Bill Nottingham, Brad Reitmeyer, Chris Del Guercio, Daniel Stone, Edward Hervey, Emil Pettersson, He
2649
-Junyan, Jordan Petridis, Joshua Breeden, L. E. Segovia, Martin Nordholts, Mathieu Duponchelle, Matthew Waters, Nirbheek Chauhan,
2650
-Philippe Normand, Piotr Brzeziński, Rafael Carício, Robert Ayrapetyan, Robert Mader, Sebastian Dröge, Seungha Yang, Shengqi Yu,
2651
-Stéphane Cerveau, Tim-Philipp Müller,
2652
-
2653
-… and many others who have contributed bug reports, translations, sent suggestions or helped testing. Thank you all!
2654
-
2655
-List of merge requests and issues fixed in 1.24.4
2656
-
2657
-- List of Merge Requests applied in 1.24.4
2658
-- List of Issues fixed in 1.24.4
2659
-
2660
-1.24.5
2661
-
2662
-The fifth 1.24 bug-fix release (1.24.5) was released on 20 June 2024.
2663
-
2664
-This release only contains bugfixes and it should be safe to update from 1.24.x.
2665
-
2666
-Highlighted bugfixes in 1.24.5
2667
-
2668
-- webrtcsink: Support for AV1 via nvav1enc, av1enc or rav1enc encoders
2669
-- AV1 RTP payloader/depayloader fixes to work correctly with Chrome and Pion WebRTC
2670
-- av1parse, av1dec error handling/robustness improvements
2671
-- av1enc: Handle force-keyunit events properly for WebRTC
2672
-- decodebin3: selection and collection handling improvements
2673
-- hlsdemux2: Various fixes for discontinuities, variant switching, playlist updates
2674
-- qml6glsink: fix RGB format support
2675
-- rtspsrc: more control URL handling fixes
2676
-- v4l2src: Interpret V4L2 report of sync loss as video signal loss
2677
-- d3d12 encoder, memory and videosink fixes
2678
-- vtdec: more robust error handling, fix regression
2679
-- ndi: support for NDI SDK v6
2680
-- Various bug fixes, memory leak fixes, and other stability and reliability improvements
2681
-
2682
-gstreamer
2683
-
2684
-- promise: Don’t use g_return_* for internal checks
2685
-- debug: Add missing gst_debug_log_id_literal() dummy with gst_debug=false
2686
-- ptp-helper: Add GNU/Hurd support
2687
-
2688
-gst-plugins-base
2689
-
2690
-- uridecodebin3: Don’t hold PLAY_ITEMS lock when activating them
2691
-- decodebin3: Always ensure we end up with parsebin or identity
2692
-- decodebin3: Properly support changing input collections
2693
-- decodebin3: Avoid usage of parsebin even more
2694
-- decodebin3: Fix dealing with input without caps
2695
-- video-info: Don’t crash in gst_video_info_is_equal() if one videoinfo is zero-initialized
2696
-
2697
-gst-plugins-good
2698
-
2699
-- flacparse: fix buffer overflow
2700
-- hlsdemux2: Various fixes for discontinuities, variant switching, playlist updates
2701
-- qml6glsink: fix RGB format support
2702
-- rtpdtmfdepay: fix caps negotiation with audioconvert
2703
-- rtpdtmfsrc: fix leak when shutting down mid-event
2704
-- rtspsrc: fix invalid seqnum assertions
2705
-- rtspsrc: Various control URL handling fixes
2706
-- v4l2src: Interpret V4L2 report of sync loss as video signal loss
2707
-
2708
-gst-plugins-bad
2709
-
2710
-- av1parse: Do not return error when expectedFrameId mismatch
2711
-- av1dec: Don’t treat decoding errors as fatal and print more error details
2712
-- av1enc: Handle force-keyunit events properly by requesting keyframes
2713
-- codectimestamper: never set DTS to NONE
2714
-- d3d12encoder: Do not print error log for not-supported feature
2715
-- d3d12memory: Fix staging buffer alignment
2716
-- d3d12videosink: Disconnect window signal handler on dispose as intended
2717
-- dtlssrtpenc: Don’t crash if no pad name is provided when requesting a new pad
2718
-- glcolorconvert: update existing sync meta if outbuf has one
2719
-- pcapparse: Parsing code assumes unaligned memory accesses are OK
2720
-- pcapparse: Avoid unaligned memory access
2721
-- tsdemux: Fix maximum PCR/DTS values
2722
-- vtdec: Improve error handling in edge cases
2723
-- vtdec, qtdemux: regression in 1.24.3 - internal data stream error
2724
-- uvcgadget: Use g_path_get_basename instead of libc basename
2725
-
2726
-gst-plugins-ugly
2727
-
2728
-- No changes
2729
-
2730
-GStreamer Rust plugins
2731
-
2732
-- gtk4: update flatpak integration code
2733
-- ndi: Add support for loading NDI SDK v6
2734
-- reqwesthttpsrc: Fix race condition when unlocking
2735
-- rtp: Don’t restrict payload types for payloaders
2736
-- rtp: av1pay: Correctly use N flag for marking keyframes
2737
-- rtp: av1depay: Parse internal size fields of OBUs and handle them
2738
-- webrtcsink: Refactor value retrieval to avoid lock poisoning
2739
-- webrtcsink: Add support for AV1
2740
-- webrtc: Update to async-tungstenite 0.26
2741
-- Fix various new clippy 1.79 warnings
2742
-- meson: Fix various issues in dependency management, feature detection, some regressions, and add logging
2743
-
2744
-gst-libav
2745
-
2746
-- No changes
2747
-
2748
-gst-rtsp-server
2749
-
2750
-- No changes
2751
-
2752
-gstreamer-vaapi
2753
-
2754
-- No changes
2755
-
2756
-gstreamer-sharp
2757
-
2758
-- No changes
2759
-
2760
-gst-omx
2761
-
2762
-- No changes
2763
-
2764
-gst-python
2765
-
2766
-- No changes
2767
-
2768
-gst-editing-services
2769
-
2770
-- No changes
2771
-
2772
-gst-devtools, gst-validate + gst-integration-testsuites
2773
-
2774
-- No changes
2775
-
2776
-gst-examples
2777
-
2778
-- No changes
2779
-
2780
-Development build environment
2781
-
2782
-- No changes
2783
-
2784
-Cerbero build tool and packaging changes in 1.24.5
2785
-
2786
-- osxrelocator: Fix RPATHs in deeply nested libraries
2787
-
2788
-Contributors to 1.24.5
2789
-
2790
-Angelo Verlain, Chris Del Guercio, Corentin Damman, Edward Hervey, Francisco Javier Velázquez-García, He Junyan, Jakub Adam,
2791
-Jakub Vaněk, Khem Raj, L. E. Segovia, Martin Nordholts, Mathieu Duponchelle, Nirbheek Chauhan, Piotr Brzeziński, Samuel
2792
-Thibault, Sebastian Dröge, Sergey Krivohatskiy, Seungha Yang, Tim-Philipp Müller, Zach van Rijn,
2793
-
2794
-… and many others who have contributed bug reports, translations, sent suggestions or helped testing. Thank you all!
2795
-
2796
-List of merge requests and issues fixed in 1.24.5
2797
-
2798
-- List of Merge Requests applied in 1.24.5
2799
-- List of Issues fixed in 1.24.5
2800
-
2801
-1.24.6
2802
-
2803
-The sixth 1.24 bug-fix release (1.24.6) was released on 29 July 2024.
2804
-
2805
-This release only contains bugfixes and it should be safe to update from 1.24.x.
2806
-
2807
-Highlighted bugfixes in 1.24.6
2808
-
2809
-- Fix compatibility with FFmpeg 7.0
2810
-- qmlglsink: Fix failure to display content on recent Android devices
2811
-- adaptivedemux: Fix handling of closed caption streams
2812
-- cuda: Fix runtime compiler loading with old CUDA tookit
2813
-- decodebin3 stream selection handling fixes
2814
-- d3d11compositor, d3d12compositor: Fix transparent background mode with YUV output
2815
-- d3d12converter: Make gamma remap work as intended
2816
-- h264decoder: Update output frame duration for interlaced video when second field frame is discarded
2817
-- macOS audio device provider now listens to audio devices being added/removed at runtime
2818
-- Rust plugins: audioloudnorm, s3hlssink, gtk4paintablesink, livesync and webrtcsink fixes
2819
-- videoaggregator: preserve features in non-alpha caps for subclasses with non-system memory sink caps
2820
-- vtenc: Fix redistribute latency spam
2821
-- v4l2: fixes for complex video formats
2822
-- va: Fix strides when importing DMABUFs, dmabuf handle leaks, and blocklist unmaintained Intel i965 driver for encoding
2823
-- waylandsink: Fix surface cropping for rotated streams
2824
-- webrtcdsp: Enable multi_channel processing to fix handling of stereo streams
2825
-- Various bug fixes, memory leak fixes, and other stability and reliability improvements
2826
-
2827
-gstreamer
2828
-
2829
-- downloadbuffer: fix push mode
2830
-- queue: queue2: multiqueue: Don’t work with segment.position if buffers have no timestamps
2831
-- gst-inspect-1.0: Fix leak of plugin/feature
2832
-
2833
-gst-plugins-base
2834
-
2835
-- decodebin3: Fix detection of selection done
2836
-- glvideomixer: Fix critical when setting start-time-selection
2837
-- parsebin: accept-caps handling for elements with unusual sink pad names
2838
-- subparse: Don’t use jit for regular expressions when running in valgrind
2839
-- subparse: put valgrind header availability define into config.h for subparse
2840
-- videoaggregator: preserve features in non-alpha caps
2841
-- videoscale: correct classification error
2842
-- meson: Fix invalid include flag in uninstalled gl pc file
2843
-- Fix various memory leaks
2844
-
2845
-gst-plugins-good
2846
-
2847
-- adaptivedemux: Fix handling closed caption streams
2848
-- qml/glsink: also support GLES2 needing shader ‘precision’ directives
2849
-- v4l2object: use v4l2 reported width for padded_width when complex video formats
2850
-- v4l2: meson: fix SIZEOF_OFF_T when cross-compiling with Meson >= 1.3.0
2851
-
2852
-gst-plugins-bad
2853
-
2854
-- svtav1enc: Fix segfault when flushing
2855
-- avfdeviceprovider: Fix debug category initialization
2856
-- osxaudiodeviceprovider: Listen for audio devices being added/removed
2857
-- avtp: Fixed Linux/Alpine 3.20 build
2858
-- cuda: Fix runtime compiler loading with old CUDA tookit
2859
-- d3d11compositor, d3d12compositor: Fix transparent background mode with YUV output
2860
-- d3d11converter: Fix runtime compiled shader code
2861
-- d3d12converter: Make gamma remap work as intended
2862
-- h264decoder: Update output frame duration when second field frame is discarded
2863
-- isac: Work around upstream having no shared library support for MSVC
2864
-- lc3: remove bitstream comparison in the tests
2865
-- qroverlay: redraw overlay when caps changes
2866
-- qsv: Fix critical warnings
2867
-- rtmp2: guard against calling gst_amf_node_get_type() with NULL
2868
-- srtsrc: fix case fallthrough of authentication param
2869
-- va: Blocklist unmaintained i965 driver for encoding
2870
-- va: Fix strides when importing DMABUFs
2871
-- va: Fix dmabuf handle leaks
2872
-- vadisplay: fix minor version check
2873
-- vkh265dec: Fix H.264 ref in logs
2874
-- vulkan: fix wrong stages or access in barriers
2875
-- vtenc: Fix redistribute latency spam
2876
-- waylandsink: Fix surface cropping for rotated streams
2877
-- webrtcdsp: Enable multi_channel processing
2878
-
2879
-gst-plugins-ugly
2880
-
2881
-- asfdemux: Be more lenient towards malformed header, fixes playback of files written by VLC
2882
-
2883
-GStreamer Rust plugins
2884
-
2885
-- audioloudnorm: Fix limiter buffer index wraparound off-by-one for the last buffer
2886
-- aws: s3hlssink: Do not call abort before finishing uploads
2887
-- gtk4paintablesink: Support RGBx formats in SW paths
2888
-- gtk4paintablesink: default to force-aspect-ratio=false for Paintable
2889
-- livesync: Use the actual output buffer duration of gap filler buffers
2890
-- livesync: Allow queueing up to latency buffers, also sync on the first buffer and add sync property
2891
-- webrtcsink: fix property types for rav1enc AV1 encoder
2892
-
2893
-gst-libav
2894
-
2895
-- Fix compatibility with ffmpeg 7
2896
-- avauddec: Fix crash on stop()
2897
-- avmux: Fix crash when muxer doesn’t get codecid
2898
-
2899
-gst-rtsp-server
2900
-
2901
-- No changes
2902
-
2903
-gstreamer-vaapi
2904
-
2905
-- No changes
2906
-
2907
-gstreamer-sharp
2908
-
2909
-- No changes
2910
-
2911
-gst-omx
2912
-
2913
-- No changes
2914
-
2915
-gst-python
2916
-
2917
-- No changes
2918
-
2919
-gst-editing-services
2920
-
2921
-- ges: Various leak fixes
2922
-
2923
-gst-devtools, gst-validate + gst-integration-testsuites
2924
-
2925
-- validate: Remove G_REGEX_OPTIMIZE usage, helps avoid valgrind issues
2926
-
2927
-gst-examples
2928
-
2929
-- No changes
2930
-
2931
-Development build environment
2932
-
2933
-- libgudev wrap: add fallback uri
2934
-- liblc3 wrap: update to v1.1.1
2935
-
2936
-Cerbero build tool and packaging changes in 1.24.6
2937
-
2938
-- meson: Backport fix for Glib including a GCC-only flag in the pkg-config file
2939
-- libsoup: Workaround build error with GCC 14
2940
-- libltc: Fix Windows build
2941
-- webrtc-audio-processing: Fix MinGW build
2942
-- libvpx: Also build a shared lib on macOS
2943
-- glib: Fix Windows build
2944
-- osxrelocator: Fix framework entrypoints being unable to load dylibs
2945
-- gobject-introspection, recipe: Fix more fallout from the Meson dylib ID fixes
2946
-- cargo-c.recipe: Ensure that we can change the id and rpath
2947
-
2948
-Contributors to 1.24.6
2949
-
2950
-Chris Spoelstra, Edward Hervey, François Laignel, Guillaume Desmottes, Jakub Adam, Jan Schmidt, Jordan Petridis, L. E. Segovia,
2951
-Loïc Yhuel, Matthew Waters, Nirbheek Chauhan, Piotr Brzeziński, Robert Mader, Ruben Gonzalez, Sanchayan Maity, Sebastian Dröge,
2952
-Sebastian Gross, Seungha Yang, Shengqi Yu, Taruntej Kanakamalla, Tim-Philipp Müller, tomaszmi, Víctor Manuel Jáquez Leal,
2953
-
2954
-… and many others who have contributed bug reports, translations, sent suggestions or helped testing. Thank you all!
2955
-
2956
-List of merge requests and issues fixed in 1.24.6
2957
-
2958
-- List of Merge Requests applied in 1.24.6
2959
-- List of Issues fixed in 1.24.6
2960
-
2961
-1.24.7
2962
-
2963
-The seventh 1.24 bug-fix release (1.24.7) was released on 21 August 2024.
2964
-
2965
-This release only contains bugfixes and it should be safe to update from 1.24.x.
2966
-
2967
-Highlighted bugfixes in 1.24.7
2968
-
2969
-- Fix APE and Musepack audio file and GIF playback with FFmpeg 7.0
2970
-- playbin3: Fix potential deadlock with multiple playbin3s with glimagesink used in parallel
2971
-- qt6: various qmlgl6src and qmlgl6sink fixes and improvements
2972
-- rtspsrc: expose property to force usage of non-compliant setup URLs for RTSP servers where the automatic fallback doesn’t
2973
- work
2974
-- urisourcebin: gapless playback and program switching fixes
2975
-- v4l2: various fixes
2976
-- va: Fix potential deadlock with multiple va elements used in parallel
2977
-- meson: option to disable gst-full for static-library build configurations that do not need this
2978
-- cerbero: libvpx updated to 1.14.1; map 2022Server to Windows11; disable rust variant on Linux if binutils is too old
2979
-- Various bug fixes, memory leak fixes, and other stability and reliability improvements
2980
-
2981
-gstreamer
2982
-
2983
-- bin: Don’t keep the object lock while setting a GstContext when handling NEED_CONTEXT
2984
-- core: Log pad name, not just the pointer
2985
-
2986
-gst-plugins-base
2987
-
2988
-- pbutils: descriptions: use subsampling factor to get YUV subsampling
2989
-- rtspconnection: Handle invalid argument properly
2990
-- urisourcebin: Actually drop EOS on old-school pad switch
2991
-- urisourcebin: Don’t hold lock when emitting about-to-finish
2992
-- gst-launch deadlock with two playbin3s
2993
-- xvimagesink: Fix crash in pool on error
2994
-
2995
-gst-plugins-good
2996
-
2997
-- qmlgl6src: Fix crash when use-default-fbo is not set
2998
-- qt6glwindow: Fallback to GL_RGB on CopyTexImage2D error, fixing usage with eglfs backend
2999
-- qt6glwindow: Only use GL_READ_FRAMEBUFFER when we do blits
3000
-- qt6: glwindow: Don’t leak previously rendered buffer
3001
-- rtspsrc: expose property for forcing usage of non-compliant URLs
3002
-- v4l2object: fix ARIB_STD_B67 colorimetry unmatch issue
3003
-- v4l2: Fix colorimetry mismatch for encoded format with RGB color-matrix
3004
-
3005
-gst-plugins-bad
3006
-
3007
-- aom: av1enc: restrict allowed input width and height
3008
-- h264parse: bypass check for length_size_minus_one
3009
-- h265parse: Reject FD received before SPS
3010
-- msdk: replace strcmp with g_strcmp0
3011
-- msdkvc1dec crashes (segfault)
3012
-- rsvgoverlay: add debug category
3013
-- va: don’t use GST_ELEMENT_WARNING in set_context() vmethod to fix potential deadlock
3014
-- va: deadlock when playing two videos at once
3015
-- webrtc: Add missing G_BEGIN/END_DECLS in header for C++
3016
-- wpe: initialize threading.ready before reading it
3017
-
3018
-gst-plugins-ugly
3019
-
3020
-- No changes
3021
-
3022
-GStreamer Rust plugins
3023
-
3024
-- gtk4: Move the dmabuf cfg to the correct bracket level
3025
-
3026
-gst-libav
3027
-
3028
-- avdemux: Fix deadlock with FFmpeg 7.x when serialized events are received from upstream while opening, such as e.g. APE
3029
- files with tags
3030
-- libav: return EOF when stream is out of data
3031
-- avdemux: Never return 0 from read function, which would lead to infinite loops
3032
-
3033
-gst-rtsp-server
3034
-
3035
-- No changes
3036
-
3037
-gstreamer-vaapi
3038
-
3039
-- vaapi: Fix sps_max_dec_pic_buffering_minus1 value in h265 decoder
3040
-
3041
-gstreamer-sharp
3042
-
3043
-- No changes
3044
-
3045
-gst-omx
3046
-
3047
-- No changes
3048
-
3049
-gst-python
3050
-
3051
-- No changes
3052
-
3053
-gst-editing-services
3054
-
3055
-- nlecomposition: Don’t leak QoS events
3056
-
3057
-gst-devtools, gst-validate + gst-integration-testsuites
3058
-
3059
-- validate: Fix copying of action name
3060
-
3061
-gst-examples
3062
-
3063
-- No changes
3064
-
3065
-Development build environment
3066
-
3067
-- Add a meson option to disable gst-full for static-library build configurations that do not need this
3068
-
3069
-Cerbero build tool and packaging changes in 1.24.7
3070
-
3071
-- Disable rust variant on Linux if binutils is too old
3072
-- Added 2022Server to the Windows platform distro map as Windows11
3073
-- libvpx: Update to 1.14.1
3074
-
3075
-Contributors to 1.24.7
3076
-
3077
-David Rosca, Edward Hervey, Guillaume Desmottes, Hou Qi, Jan Schmidt, Jesper Jensen, Jordan Petridis, Jordan Yelloz, L. E.
3078
-Segovia, Lyra McMillan, Mathieu Duponchelle, Max Romanov, Nicolas Dufresne, Nirbheek Chauhan, Qian Hu (胡骞), Sebastian Dröge,
3079
-Tim-Philipp Müller, Víctor Manuel Jáquez Leal,
3080
-
3081
-… and many others who have contributed bug reports, translations, sent suggestions or helped testing. Thank you all!
3082
-
3083
-List of merge requests and issues fixed in 1.24.7
3084
-
3085
-- List of Merge Requests applied in 1.24.7
3086
-- List of Issues fixed in 1.24.7
3087
-
3088
-1.24.8
3089
-
3090
-The eigth 1.24 bug-fix release (1.24.8) was released on 19 September 2024.
3091
-
3092
-This release only contains bugfixes and it should be safe to update from 1.24.x.
3093
-
3094
-Highlighted bugfixes in 1.24.8
3095
-
3096
-- decodebin3: collection handling fixes
3097
-- encodebin: Fix pad removal (and smart rendering in gst-editing-services)
3098
-- glimagesink: Fix cannot resize viewport when video size changed in caps
3099
-- matroskamux, webmmux: fix firefox compatibility issue with Opus audio streams
3100
-- mpegtsmux: Wait for data on all pads before deciding on a best pad unless timing out
3101
-- splitmuxsink: Override LATENCY query to pretend to downstream that we’re not live
3102
-- video: QoS event handling improvements
3103
-- voamrwbenc: fix list of bitrates
3104
-- vtenc: Restart encoding session when certain errors are detected
3105
-- wayland: Fix ABI break in WL context type name
3106
-- webrtcbin: Prevent crash when attempting to set answer on invalid SDP
3107
-- cerbero: ship vp8/vp9 software encoders again, which went missing in 1.24.7; ship transcode plugin
3108
-- Various bug fixes, memory leak fixes, and other stability and reliability improvements
3109
-
3110
-gstreamer
3111
-
3112
-- clock: Fix unchecked overflows in linear regression code
3113
-- meta: Add missing include of gststructure.h
3114
-- pad: Check data NULL-ness when probes are stopped
3115
-- aggregator: Immediately return NONE from simple_get_next_time() on non-TIME segments
3116
-
3117
-gst-plugins-base
3118
-
3119
-- decodebin3: Fix collection identity check
3120
-- encodebin: Fix pad removal
3121
-- glimagesink: Fix cannot resize viewport when video size changed in caps
3122
-- video: Don’t overshoot QoS earliest time by a factor of 2
3123
-- meson: gst-play: link to libm
3124
-
3125
-gst-plugins-good
3126
-
3127
-- jackaudiosrc: actually use the queried ports from JACK
3128
-- matroskamux: Include end padding in the block duration for Opus streams, fixing firefox compatibility
3129
-- osxaudio: Avoid dangling pointer on shutdown
3130
-- splitmuxsink: Override LATENCY query to pretend to downstream that we’re not live
3131
-- v4l2bufferpool: actually queue back the empty buffer flagged LAST
3132
-- v4l2videoenc: unref buffer pool after usage properly
3133
-- v4l2: encoder: Add dynamic framerate support
3134
-
3135
-gst-plugins-bad
3136
-
3137
-- GstPlay: Name the different bus
3138
-- GstPlay: check whether stream is seekable before seeking when state change
3139
-- GstPlayer: Check GstPlayerSignalDispatcher type
3140
-- mpegtsmux: Wait for data on all pads before deciding on a best pad unless timing out
3141
-- mpegtsmux: Fix refcounting issue when selecting the best pad
3142
-- uvcsink: fix caps event handling
3143
-- v4l2codecs: h265: Minimize memory allocation
3144
-- voamrwbenc: fix list of bitrates
3145
-- vtenc: Restart encoding session when certain errors are detected
3146
-- wayland: Fix ABI break in WL context type name
3147
-- webrtcbin: Prevent crash when attempting to set answer on invalid SDP
3148
-- wpe: fix gst-launch example
3149
-
3150
-gst-plugins-ugly
3151
-
3152
-- No changes
3153
-
3154
-GStreamer Rust plugins
3155
-
3156
-- No changes
3157
-
3158
-gst-libav
3159
-
3160
-- No changes
3161
-
3162
-gst-rtsp-server
3163
-
3164
-- No changes
3165
-
3166
-gstreamer-vaapi
3167
-
3168
-- No changes
3169
-
3170
-gstreamer-sharp
3171
-
3172
-- No changes
3173
-
3174
-gst-omx
3175
-
3176
-- No changes
3177
-
3178
-gst-python
3179
-
3180
-- No changes
3181
-
3182
-gst-editing-services
3183
-
3184
-- discoverer-manager: Fix race leading to assertion when stopping
3185
-- structured-interface: Fix memory leak of invalid fields GList
3186
-
3187
-gst-devtools, gst-validate + gst-integration-testsuites
3188
-
3189
-- pad-monitor: Fix remaining pad function data handling
3190
-- pad-monitor: Fix pad function data properly
3191
-
3192
-gst-examples
3193
-
3194
-- No changes
3195
-
3196
-Development build environment
3197
-
3198
-- meson: Update openjpeg wrap to 2.5.2, fixes a warning
3199
-
3200
-Cerbero build tool and packaging changes in 1.24.8
3201
-
3202
-- No vp8 / vp9 encoders packaged (regression)
3203
-- libvpx: Fix codec detection to fix vp8enc/vp9enc elements not being shipped
3204
-- gst-plugins-bad: Add missing transcode plugin
3205
-
3206
-Contributors to 1.24.8
3207
-
3208
-Andoni Morales Alastruey, Arun Raghavan, Benjamin Gaignard, Carlos Bentzen, Chao Guo, Edward Hervey, Francis Quiers, Guillaume
3209
-Desmottes, Hou Qi, Jan Schmidt,, L. E. Segovia, Michael Tretter, Nicolas Dufresne, Nirbheek Chauhan, Peter Kjellerstedt,
3210
-Philippe Normand, Piotr Brzeziński, Randy Li (ayaka), Sebastian Dröge, Thibault Saunier, Tim-Philipp Müller, Wim Taymans,
3211
-
3212
-… and many others who have contributed bug reports, translations, sent suggestions or helped testing. Thank you all!
3213
-
3214
-List of merge requests and issues fixed in 1.24.8
3215
-
3216
-- List of Merge Requests applied in 1.24.8
3217
-- List of Issues fixed in 1.24.8
3218
-
3219
-1.24.9
3220
-
3221
-The ninth 1.24 bug-fix release (1.24.9) was released on 30 October 2024.
3222
-
3223
-This release only contains bugfixes and a security fix and it should be safe to update from 1.24.x.
3224
-
3225
-Highlighted bugfixes in 1.24.9
3226
-
3227
-- gst-rtsp-server security fix
3228
-- GstAggregator start time selection and latency query fixes for force-live mode
3229
-- audioconvert: fix dynamic handling of mix matrix, and accept custom upstream event for setting one
3230
-- encodebin: fix parser selection for encoders that support multiple codecs
3231
-- flvmux improvments for pipelines where timestamps don’t start at 0
3232
-- glcontext: egl: Unrestrict the support base DRM formats
3233
-- kms: Add IMX-DCSS auto-detection in sink and fix stride with planar formats in allocator
3234
-- macOS main application event loop fixes
3235
-- mpegtsdemux: Handle PTS/DTS wraparound with ignore-pcr=true
3236
-- playbin3, decodebin3, parsebin, urisourcebin: fix races, and improve stability and stream-collection handling
3237
-- rtpmanager: fix early RTCP SR generation for sparse streams like metadata
3238
-- qml6glsrc: Reduce capture delay
3239
-- qtdemux: fix parsing of rotation matrix with 180 degree rotation
3240
-- rtpav1depay: added wait-for-keyframe and request-keyframe properties
3241
-- srt: make work with newer libsrt versions and don’t re-connect on authentication failure
3242
-- v4l2 fixes and improvement
3243
-- webrtcsink, webrtcbin and whepsrc fixes
3244
-- cerbero: fix Python 3.13 compatibility, g-i with newer setuptools, bootstrap on Arch Linux; iOS build fixes
3245
-- Ship qroverlay plugin in binary packages - Various bug fixes, memory leak fixes, and other stability and reliability
3246
- improvements
3247
-- Various bug fixes, build fixes, memory leak fixes, and other stability and reliability improvements
3248
-
3249
-gstreamer
3250
-
3251
-- aggregator: fix start time selection first with force-live
3252
-- aggregator: fix live query when force-live is TRUE
3253
-- parse-launch: Make sure children are bins before recursing in
3254
-- macos: Fix race conditions in cocoa/application main event loop
3255
-- multiqueue: Do not unref the query we get in pad->query
3256
-
3257
-gst-plugins-base
3258
-
3259
-- audioconvert: fix dynamic handling of mix matrix, accept custom upstream event for setting one
3260
-- playback: Fix a variety of decodebin3/parsebin/urisourcebin races
3261
-- playbin3: prevent crashing trying to play a corrupted mp4 file (WARNING : HIGH PITCHED CORRUPTED SOUND)
3262
-- urisourcebin: Ensure all stream-start are handled
3263
-- urisourcebin: Allow more cases for posting stream-collection
3264
-- decodebin3: Make update/posting of collection messages atomic
3265
-- decodebin3: send selected stream message as long as not all the tracks can’t select decoders
3266
-- urisourcebin/parsebin: Improve collection creation and handling
3267
-- encodebasebin: Miscellaneous fixes
3268
-- allocators: drmdumb: Fix bpp value for P010
3269
-- gldownload: use gst_gl_sync_meta_wait_cpu()
3270
-- Revert “meson: Fix invalid include flag in uninstalled gl pc file”
3271
-- gl: Fix configure error when libdrm is a subproject
3272
-- glcontext: egl: Unrestrict the support base DRM formats
3273
-- exiftag: Check the result of gst_date_time_new_local_time(), fixes criticals with malformed EXIF tags
3274
-
3275
-gst-plugins-good
3276
-
3277
-- flvmux: Use first running time on the initial header instead of 0
3278
-- rtpmanager: skip RTPSources which are not ready in the RTCP generation
3279
-- rtppassthroughpay: Fix reading clock-rate and payload type from caps
3280
-- qml6glsrc: Reduce capture delay
3281
-- qtdemux: fix parsing of matrix with 180 rotation
3282
-- qtdemux: Check fourcc of a second CEA608 atom instead of assuming it’s cdt2
3283
-- qtdemux: Skip zero-sized boxes instead of stopping to look at further boxes
3284
-- twcc: Handle wrapping of reference time
3285
-- v4l2object: append non colorimetry structure to probed caps
3286
-- v4l2: Various fixes and improvement
3287
-
3288
-gst-plugins-bad
3289
-
3290
-- avfdeviceprovider: Fix leak from the GstCaps
3291
-- codecparsers: add debug categories to bitwriters
3292
-- codectimestamper: Fix gint wraparound in pts_compare_func
3293
-- dvxa: Explicitly use cpp_std=c++11
3294
-- GstPlay: message parsing and documentation improvements
3295
-- h26xbitwriter: false have_space if aligning fails on aud
3296
-- kmsallocator: fix stride with planar formats
3297
-- kmssink: Add IMX-DCSS auto-detection
3298
-- mpegtsdemux: Handle PTS/DTS wraparound with ignore-pcr=true
3299
-- rtmp2sink: Initialize base_ts / last_ts with the actual first observed timestamp
3300
-- scenechange: fix memory leak
3301
-- srtsink: Register SRT listen callback before binding socket
3302
-- srt: Don’t attempt to reconnect on authentication failures
3303
-- tests: va: fix vapostproc test for DMABuf
3304
-- tests: lc3: Allocate the same size for the buffer and the data
3305
-- va: Fix libdrm include, plus meson and wrap changes
3306
-- vaav1enc: Do not enable palette mode by default
3307
-- vp8decoder: Fix resolution change handling
3308
-- vtdec: add support for level 6 6.1 and 6.2
3309
-- wayland: Add NV15 support
3310
-- webrtcbin: Clean up bin elements when datachannel is removed
3311
-
3312
-gst-plugins-ugly
3313
-
3314
-- No changes
3315
-
3316
-GStreamer Rust plugins
3317
-
3318
-- Build: turn lto off for dev profile for faster dev builds
3319
-- fmp4 hls_live example: Don’t set header-update-mode=update, no need to update the header in live mode
3320
-- gtk4paintablesink: Don’t check for a GL context when filtering dmabuf caps
3321
-- livesync: Log latency query results when handling latency query too
3322
-- onvifmetadatapay: Set output caps earlier, so upstream can send gap events earlier
3323
-- rtpav1depay: Add wait-for-keyframe and request-keyframe properties
3324
-- spotify: tweak dependencies
3325
-- transcriberbin: fix panic during gst-inspect-1.0 -u
3326
-- webrtcsink: fix segment format mismatch with remote offer
3327
-- webrtcsink: fix assertions when finalizing
3328
-- webrtcsink: Fix typo in “turn-servers” property description
3329
-- whepsrc: Fix incorrect default caps
3330
-
3331
-gst-libav
3332
-
3333
-- avviddec: Unlock video decoder stream lock temporarily while finishing frames
3334
-
3335
-gst-rtsp-server
3336
-
3337
-- rtsp-server: Remove pointless assertions that can happen if client provides invalid rates (security fix)
3338
-
3339
-gstreamer-vaapi
3340
-
3341
-- No changes
3342
-
3343
-gstreamer-sharp
3344
-
3345
-- No changes
3346
-
3347
-gst-omx
3348
-
3349
-- No changes
3350
-
3351
-gst-python
3352
-
3353
-- No changes
3354
-
3355
-gst-editing-services
3356
-
3357
-- ges: Fix name of GESFrameCompositionMeta API type (which caused gobject-introspection failures at build time)
3358
-
3359
-gst-devtools, gst-validate + gst-integration-testsuites
3360
-
3361
-- validate: Ignore flaky dash playbin3 issue
3362
-- validate: Blacklist more netsim tests
3363
-
3364
-gst-examples
3365
-
3366
-- No changes
3367
-
3368
-Development build environment
3369
-
3370
-- No changes
3371
-
3372
-Cerbero build tool and packaging changes in 1.24.9
3373
-
3374
-- Fix Python 3.13 compatibility
3375
-- gobject-introspection: Import patch to build against newer setuptools
3376
-- Switch from wget to curl on Fedora 40 and newer
3377
-- bootstrap: Add missing dependencies on Arch Linux
3378
-- harfbuzz: Add CXXFLAGS to fix broken build on iOS
3379
-- openssl.recipe: Stop using non-existent domain in primary tarball url
3380
-- gst-plugins-bad: ship qroverlay plugin
3381
-
3382
-Contributors to 1.24.9
3383
-
3384
-Andoni Morales Alastruey, Arun Raghavan, Benjamin Gaignard, Corentin Damman, Dave Lucia, Edward Hervey, Elliot Chen, eri,
3385
-Francisco Javier Velázquez-García, Guillaume Desmottes, He Junyan, Hugues Fruchet, Jakub Adam, James Cowgill, Jan Alexander
3386
-Steffens (heftig), Jan Schmidt, Johan Sternerup, Jordan Petridis, L. E. Segovia, Mathieu Duponchelle, Nick Steel, Nicolas
3387
-Dufresne, Nirbheek Chauhan, Ognyan Tonchev, Olivier Crête, Peter Stensson, Philippe Normand, Piotr Brzeziński, Sanchayan Maity,
3388
-Sebastian Dröge, Shengqi Yu, Stéphane Cerveau, Théo Maillart, Thibault Saunier, Tim-Philipp Müller, Víctor Manuel Jáquez Leal,
3389
-Weijian Pan, Xavier Claessens,
3390
-
3391
-… and many others who have contributed bug reports, translations, sent suggestions or helped testing. Thank you all!
3392
-
3393
-List of merge requests and issues fixed in 1.24.9
3394
-
3395
-- List of Merge Requests applied in 1.24.9
3396
-- List of Issues fixed in 1.24.9
3397
-
3398
-1.24.10
3399
-
3400
-The tenth 1.24 bug-fix release (1.24.10) was released on 03 December 2024.
3401
-
3402
-This release only contains bugfixes and security fixes. It should be safe to update from 1.24.x and we would recommend you
3403
-update at your earliest convenience.
3404
-
3405
-Highlighted bugfixes in 1.24.10
3406
-
3407
-- More than 40 security fixes across a wide range of elements following an audit by the GitHub Security Lab, including the
3408
- MP4, Matroska, Ogg and WAV demuxers, subtitle parsers, image decoders, audio decoders and the id3v2 tag parser.
3409
-- avviddec: Fix regression that could trigger assertions about width/height mismatches
3410
-- appsink and appsrc fixes
3411
-- closed caption handling fixes
3412
-- decodebin3 and urisourcebin fixes
3413
-- glupload: dmabuf: Fix emulated tiled import
3414
-- level: fix LevelMeta values outside of the stated range
3415
-- mpegtsmux, flvmux: fix potential busy looping with high cpu usage in live mode
3416
-- pipeline dot file graph generation improvements
3417
-- qt(6): fix criticals with multiple qml(6)gl{src,sink}
3418
-- rtspsrc: Optionally timestamp RTP packets with their receive times in TCP/HTTP mode to enable clock drift handling
3419
-- splitmuxsrc: reduce number of file descriptors used
3420
-- systemclock: locking order fixes
3421
-- v4l2: fix possible v4l2videodec deadlock on shutdown; 8-bit bayer format fixes
3422
-- x265: Fix build with libx265 version >= 4.1 after masteringDisplayColorVolume API change
3423
-- macOS: fix rendering artifacts in retina displays, plus ptp clock fixes
3424
-- cargo: Default to thin lto for the release profile (for faster builds with lower memory requirements)
3425
-- Various bug fixes, build fixes, memory leak fixes, and other stability and reliability improvements
3426
-- Translation updates
3427
-
3428
-gstreamer
3429
-
3430
-- allocator: Avoid integer overflow when allocating sysmem and avoid integer overflow in qtdemux theora extension parsing
3431
-- deviceprovider: fix leaking hidden providers
3432
-- gstreamer: prefix debug dot node names to prevent splitting
3433
-- pad: Never push sticky events in response to a FLUSH_STOP
3434
-- systemclock: Fix lock order violation and some cleanup
3435
-- utils: improve gst_util_ceil_log2()
3436
-- ptp: use ip_mreq instead of ip_mreqn for macos
3437
-- tracers: unlock leaks tracer if already tracking
3438
-
3439
-gst-plugins-base
3440
-
3441
-- appsink: fix timeout logic for gst_app_sink_try_pull_sample()
3442
-- appsrc: Fix use-after-free when making buffer / buffer-lists writable
3443
-- audiostreamalign: Don’t report disconts for every buffer if alignment-threshold is too small
3444
-- decodebin3: Unify collection switching checks
3445
-- discoverer: Don’t print channel layout for more than 64 channels
3446
-- discoverer: Make sure the missing elements details array is NULL-terminated in a thread-safe way
3447
-- discoverer: fix segfault in race condition adding a new uri
3448
-- id3v2: Don’t try parsing extended header if not enough data is available
3449
-- glupload: dmabuf: Fix emulated tiled import
3450
-- gl: cocoa: fix rendering artifacts in retina displays
3451
-- gl: meson: Don’t use libdrm_dep in cc.has_header()
3452
-- oggstream: fix invalid ogg_packet->packet accesses, address invalid writes CVE
3453
-- opusdec: Set at most 64 channels to NONE position
3454
-- playbin: Fix caps leak in get_n_common_capsfeatures()
3455
-- playbin3: ERROR when setting new HLS URI with instant-uri=true
3456
-- sdp: Add debug categories for message and mikey modules
3457
-- ssaparse: Search for closing brace after opening brace
3458
-- splitmuxsrc: Convert part reader to a bin with a non-async bus
3459
-- subparse: Check for NULL return of strchr() when parsing LRC subtitles
3460
-- streamsynchronizer: Only send GAP events out of source pads
3461
-- urisourcebin: Also use event probe for HLS use-cases
3462
-- video-converter: Set TIME segment format on appsrc
3463
-- vorbisdec: Set at most 64 channels to NONE position
3464
-- Translation for gst-plugins-base 1.24.0 not sync-ed with Translation Project
3465
-- Update translations
3466
-
3467
-gst-plugins-good
3468
-
3469
-- avisubtitle: Fix size checks and avoid overflows when checking sizes
3470
-- flvmux: Don’t time out in live mode if no timestamped next buffer is available
3471
-- gdkpixbufdec: Check if initializing the video info actually succeeded
3472
-- jpegdec: Directly error out on negotiation failures
3473
-- level: Fix integer overflow when filling LevelMeta
3474
-- level: produces level value outside of Stated Range
3475
-- matroskademux: header parsing fixes
3476
-- qtdemux: header and sample table parsing fixes
3477
-- qtdemux: avoid integer overflow in theora extension parsing
3478
-- qt(6)/material: ensure that we always update the context in setBuffer()
3479
-- rtspsrc: Optionally timestamp RTP packets with their receive times in TCP/HTTP mode
3480
-- rtp: Fix precision loss in gst_rtcp_ntp_to_unix()
3481
-- rtpfunnel: Ensure segment events are forwarded after flushs
3482
-- rtpmanager: don’t map READWRITE in twcc header ext
3483
-- rtph264depay, rtph265depay: Fix various OOB reads / NULL pointer dereferences in parameter-set string handling
3484
-- shout2send: Unref event at the end of the event function
3485
-- udpsrc: protect cancellable from unlock/unlock_stop race
3486
-- v4l2object: Fixed incorrect maximum value for int range
3487
-- v4l2object: Remove little endian marker on 8 bit bayer format names
3488
-- v4l2videodec: fix freeze race condition
3489
-- wavparse: Fix various (missing) size checks and other parsing problems
3490
-
3491
-gst-plugins-bad
3492
-
3493
-- ccconverter: Don’t override in_fps_entry when trying to take output
3494
-- ccutils fixes
3495
-- kmssink: Add mediatek auto-detection
3496
-- mpegtsmux: Don’t time out in live mode if no timestamped next buffer is available (fixes busy loop with high cpu usage)
3497
-- mpegvideoparse: do not set delta unit flag on unknown frame type
3498
-- mxfmux: Fix off-by-one in the month when generating a timestamp for now
3499
-- timecodestamper: Don’t fail the latency query in LTC mode if we have no framerate
3500
-- webrtc: don’t crash on invalid bundle id
3501
-- x265: Allow building with x265-4.1 (after masteringDisplayColorVolume API change)
3502
-- meson: Don’t unconditionally invoke the libsoup subproject for tests
3503
-
3504
-gst-plugins-ugly
3505
-
3506
-- No changes
3507
-
3508
-GStreamer Rust plugins
3509
-
3510
-- cargo: Default to thin lto for the release profile (for faster builds with lower memory requirements)
3511
-
3512
-gst-libav
3513
-
3514
-- avcodecmap: Use avcodec_get_supported_config() instead of struct fields
3515
-- libav: viddec: provide details if meta has the wrong resolution
3516
-- avviddec: Unlock video decoder stream lock temporarily while finishing frames
3517
-
3518
-gst-rtsp-server
3519
-
3520
-- No changes
3521
-
3522
-gstreamer-vaapi
3523
-
3524
-- No changes
3525
-
3526
-gstreamer-sharp
3527
-
3528
-- No changes
3529
-
3530
-gst-omx
3531
-
3532
-- No changes
3533
-
3534
-gst-python
3535
-
3536
-- No changes
3537
-
3538
-gst-editing-services
3539
-
3540
-- No changes
3541
-
3542
-gst-devtools, gst-validate + gst-integration-testsuites
3543
-
3544
-- validate: Fix leaks in ssim components
3545
-
3546
-gst-examples
3547
-
3548
-- No changes
3549
-
3550
-Development build environment
3551
-
3552
-- meson: Fix failing libva wrap file build
3553
-
3554
-Cerbero build tool and packaging changes in 1.24.10
3555
-
3556
-- shell: fix TemporaryDirectory error with the with statement when ZSH
3557
-- ci: update macos CI to 15 Sequoia
3558
-
3559
-Contributors to 1.24.10
3560
-
3561
-Albert Sjolund, Alicia Boya García, Andoni Morales Alastruey, Antonio Morales, Edward Hervey, Guillaume Desmottes, Jan Alexander
3562
-Steffens (heftig), Jan Schmidt, Jonas Rebmann, Jordan Petridis, Mathieu Duponchelle, Matthew Waters, Nicolas Dufresne, Nirbheek
3563
-Chauhan, Pablo Sun, Philippe Normand, Robert Rosengren, Ruben Gonzalez, Sebastian Dröge, Seungmin Kim, Stefan Riedmüller,
3564
-Stéphane Cerveau, Taruntej Kanakamalla, Théo Maillart, Thibault Saunier, Tim-Philipp Müller, Tomáš Polomský, Wilhelm Bartel, Xi
3565
-Ruoyao,
3566
-
3567
-… and many others who have contributed bug reports, translations, sent suggestions or helped testing. Thank you all!
3568
-
3569
-List of merge requests and issues fixed in 1.24.10
3570
-
3571
-- List of Merge Requests applied in 1.24.10
3572
-- List of Issues fixed in 1.24.10
3573
-
3574
-1.24.11
3575
-
3576
-The eleventh 1.24 bug-fix release (1.24.11) was released on 06 January 2025.
3577
-
3578
-This release only contains bugfixes and it should be safe to update from 1.24.x.
3579
-
3580
-Highlighted bugfixes in 1.24.11
3581
-
3582
-- playback: Fix SSA/ASS subtitles with embedded fonts
3583
-- decklink: add missing video modes and fix 8K video modes
3584
-- matroskamux: spec compliance fixes for audio-only files
3585
-- onnx: disable onnxruntime telemetry
3586
-- qtdemux: Fix base offset update when doing segment seeks
3587
-- srtpdec: Fix a use-after-free issue
3588
-- (uri)decodebin3: Fix stream change scenarios, possible deadlock on shutdown
3589
-- video: fix missing alpha flag in AV12 format description
3590
-- avcodecmap: Add some more channel position mappings
3591
-- cerbero bootstrap fixes for Windows 11
3592
-- Various bug fixes, build fixes, memory leak fixes, and other stability and reliability improvements
3593
-
3594
-gstreamer
3595
-
3596
-- No changes
3597
-
3598
-gst-plugins-base
3599
-
3600
-- appsrc: Decrease log level for item drop
3601
-- gl: raise WARNING instead of ERROR when no connector is connected
3602
-- decodebin3: Free main input even if it is not part of the list of inputs
3603
-- urisourcebin: Avoid deadlock on shutdown
3604
-- urisourcebin: Only rewrite stream-start event once
3605
-- urisourcebin/(uri)decodebin3: Fix stream change scenarios
3606
-- urisourcebin: Reference counting leak
3607
-- playbin3: leak detected with A/V playback and window closed
3608
-- videodecoder: Gracefully handle missing data without prior input segment
3609
-- videodecoder: set decode only flag by decode only buffer
3610
-- video: fix AV12 format lacking the GST_VIDEO_FORMAT_FLAG_ALPHA flag.
3611
-- Fix SSA/ASS subtitles with embedded fonts
3612
-
3613
-gst-plugins-good
3614
-
3615
-- matroskamux: Fix audio-only stream conditions and consider audio buffers as keyframes when writing out simpleblocks
3616
-- qtdemux: fix accumulated base offset in segment seeks
3617
-- rtppassthroughpay: ensure buffer is writable before mapping writable
3618
-- rtpsession: Fix twcc stats structure leak
3619
-- v4l2: object: Add P010 format
3620
-- v4l2videodec: release decode only frame in input list
3621
-
3622
-gst-plugins-bad
3623
-
3624
-- decklink: add missing video modes, fix 8K video modes
3625
-- onnx: disable onnxruntime telemetry
3626
-- srtpdec: fix build when libsrtp1 is being used
3627
-- srtpdec: Fix a use-after-free buffer issue
3628
-- va: display: Optimize out some property indirection
3629
-- vp9parse/av1parse: Add video codec tag to the tag list
3630
-- webrtc: Simplify fmtp handling in codec stats
3631
-- webrtcbin: Fix potential deadlock on bin elements cleanup
3632
-- zxing: Replace deprecated DecodeHints with ReaderOptions
3633
-- meson: Also disable drm on GNU/Hurd
3634
-
3635
-gst-plugins-ugly
3636
+### Windows
3637
3638
-- No changes
3639
+- webview2src: new Microsoft WebView2 based web browser source element
3640
3641
-GStreamer Rust plugins
3642
+- The mediafoundation plugin can also be built with MinGW now.
3643
3644
-- No changes
3645
+- The GTK3 plugin has gained support for OpenGL/WGL on Windows
3646
3647
-gst-libav
3648
+- qsv: Add support for d3d12 interop in encoder, via D3D11 textures
3649
3650
-- avcodecmap: Add some more channel position mappings
3651
+### Cerbero
3652
3653
-gst-rtsp-server
3654
+Cerbero is a meta build system used to build GStreamer plus dependencies on platforms where dependencies are not readily
3655
+available, such as Windows, Android, iOS, and macOS.
3656
3657
-- No changes
3658
+General improvements
3659
3660
-gstreamer-vaapi
3661
+- New features:
3662
3663
-- meson: Re-added required: lines accidentally removed
3664
+ - Python bindings support has been re-introduced and now supports Linux, Windows (MSVC) and macOS. Simply downloading the
3665
+ official binaries and setting PYTHONPATH to the appropriate directory is sufficient.
3666
3667
-gstreamer-sharp
3668
+ - This should make it easier for macOS and Windows users to use Python libraries, frameworks, and projects that use
3669
+ GStreamer such as Pitivi and gst-python-ml.
3670
3671
-- No changes
3672
+ - Introspection support has been re-introduced on Linux, Windows (MSVC), and macOS.
3673
3674
-gst-omx
3675
+ - New variants assert and checks to disable GLib assertions and runtime checks for performance reasons. Please note that
3676
+ these are not recommended because they have significant behavioural side-effects, make debugging harder, and should only
3677
+ be enabled when targeting extremely resource-constrained platforms.
3678
3679
-- No changes
3680
+- API/ABI changes:
3681
3682
-gst-python
3683
+ - Libsoup has been upgraded from 2.74 to 3.6, which is an API and ABI breaking change. The soup and adaptivedemux2 plugins
3684
+ are unchanged, but your applications may need updating since libsoup-2.4 and libsoup-3.0 cannot co-exist in the same
3685
+ process.
3686
3687
-- No changes
3688
+ - OpenSSL has been updated from 1.1.1 to 3.4, which is an ABI and API breaking change. Plugins are unchanged, but your
3689
+ applications may need updating.
3690
3691
-gst-editing-services
3692
+- Plugins added:
3693
3694
-- ges: Fix some reference counting and error handling
3695
-- ges-meta-container: Fix the GET_INTERFACE macro
3696
+ - The svt-av1 plugin is now shipped in the binary releases for all platforms.
3697
3698
-gst-devtools, gst-validate + gst-integration-testsuites
3699
+ - The svt-jpeg-xs plugin is now shipped in the binary releases for all platforms.
3700
3701
-- No changes
3702
+ - The x265 plugin is now shipped in the binary releases for all platforms.
3703
3704
-gst-examples
3705
+ - All gst-plugins-rs elements are now shipped in the binary releases for all platforms, except those that have C/C++
3706
+ system-deps like GTK4. For a full list, see the Rust section above.
3707
3708
-- No changes
3709
+- Plugins changed:
3710
3711
-Development build environment
3712
+ - The rsvg plugin now uses librsvg written in Rust. The only side-effects of this should be better SVG rendering and
3713
+ slightly larger plugin size.
3714
3715
-- No changes
3716
+ - The webrtc Rust plugin now also supports aws and livekit integrations .
3717
3718
-Cerbero build tool and packaging changes in 1.24.11
3719
+- Plugins removed:
3720
3721
-- Fix bootstrap on Windows 11: Install WMIC when missing
3722
+ - webrtc-audio-processing has been updated to 2.0, which means the isac plugin is no longer shipped.
3723
3724
-Contributors to 1.24.11
3725
+- Development improvements:
3726
3727
-Armin Begovic, Benjamin Gräf, Cheung Yik Pang, Christian Meissl, Daniel Morin, Dean Zhang (张安迪), Edward Hervey, Emil
3728
-Ljungdahl, Francisco Javier Velázquez-García, Guillaume Desmottes, Jan Alexander Steffens (heftig), L. E. Segovia, Matthew
3729
-Waters, Max Romanov, Nicolas Dufresne, Philippe Normand, Robert Mader, Samuel Thibault, Sebastian Dröge, Stéphane Cerveau,
3730
-Thibault Saunier, Tim-Philipp Müller,
3731
+ - Support for the shell command has been added to cross-macos-universal, since the prefix is executable despite being a
3732
+ cross-compile target
3733
3734
-… and many others who have contributed bug reports, translations, sent suggestions or helped testing. Thank you all!
3735
+ - More recipes have been ported away from Autotools to Meson and CMake, speeding up the build and increasing platform
3736
+ support.
3737
3738
-List of merge requests and issues fixed in 1.24.11
3739
+#### macOS
3740
3741
-- List of Merge Requests applied in 1.24.11
3742
-- List of Issues fixed in 1.24.11
3743
+- Python bindings support on macOS only supports using the Xcode-provided Python 3
3744
3745
-1.24.12
3746
+- MoltenVK support in the applemedia plugin now also works on arm64 when doing a cross-universal build.
3747
3748
-The twelfth 1.24 bug-fix release (1.24.12) was released on 29 January 2025.
3749
+#### iOS
3750
3751
-This release only contains bugfixes and it should be safe to update from 1.24.x.
3752
+- CMake inside Xcode will soon be the recommended way to consume GStreamer when building iOS apps, similar to Android apps.
3753
3754
-Highlighted bugfixes in 1.24.12
3755
+ - FindGStreamerMobile.cmake is the recommended way to consume GStreamer now
3756
3757
-- d3d12: Fix shaders failing to compile with newer dxc versions
3758
-- decklinkvideosink: Fix handling of caps framerate in auto mode; also a decklinkaudiosink fix
3759
-- devicemonitor: Fix potential crash macOS when a device is unplugged
3760
-- gst-libav: Fix crash in audio encoders like avenc_ac3 if input data has insufficient alignment
3761
-- gst-libav: Fix build against FFmpeg 4.2 as in Ubuntu 20.04
3762
-- gst-editing-services: Fix Python library name fetching on Windows
3763
-- netclientclock: Don’t store failed internal clocks in the cache, so applications can re-try later
3764
-- oggdemux: Seeking and duration handling fixes
3765
-- osxaudiosrc: Fixes for failing init/no output on recent iOS versions
3766
-- qtdemux: Use mvhd transform matrix and support for flipping
3767
-- rtpvp9pay: Fix profile parsing
3768
-- splitmuxsrc: Fix use with decodebin3 which would occasionally fail with an assertion when seeking
3769
-- tsdemux: Fix backwards PTS wraparound detection with ignore-pcr=true
3770
-- video-overlay-composition: Declare the video/size/orientation tags for the meta and implement scale transformations
3771
-- vtdec: Fix seeks occasionally hanging on macOS due to a race condition when draining
3772
-- webrtc: Fix duplicate payload types with RTX and multiple video codecs
3773
-- win32-pluginloader: Make sure not to create any windows when inspecting plugins
3774
-- wpe: Various fixes for re-negotiation, latency reporting, progress messages on startup
3775
-- x264enc: Add missing data to AvcDecoderConfigurationRecord in codec_data for high profile variants
3776
-- cerbero: Support using ccache with cmake if enabled
3777
-- Various bug fixes, build fixes, memory leak fixes, and other stability and reliability improvements
3778
+ - Tutorials and examples still use Xcode project files, but CMake support will be the active focus going forward
3779
3780
-gstreamer
3781
+#### Windows
3782
3783
-- device: Fix racy nullptr deref on macOS when a device is unplugged
3784
-- iterator: Added error handling to filtered iterators
3785
-- netclientclock: Don’t ever store failed internal clocks in the cache
3786
-- netclock-replay: use gst_c_args when building, fixing build failure on Solaris
3787
-- pluginloader-win32: create no window
3788
-- pluginloader-win32: fix use after free in find_helper_bin_location
3789
-- sparsefile: ensure error is set when read_buffer() returns 0
3790
-- basetransform: fix incorrect logging inside gst_base_transform_query_caps
3791
+- The minimum supported OS version is now Windows 10.
3792
3793
-gst-plugins-base
3794
+ - GStreamer itself can still be built for an older Windows, so if your project is majorly impacted by this, please open an
3795
+ issue with details.
3796
3797
-- oggdemux: fixes seeking in some cases by not overwriting a valid duration with CLOCK_TIME_NONE
3798
-- video-overlay-composition: Declare the video/size/orientation tags for the meta & implement scale transformation
3799
-- Various fixes found from adding extra warning flags
3800
+- The Windows MSI installers are now based on WiX v5, with several improvements including a much faster MSI creation process,
3801
+ improved naming in Add/Remove Programs, and more.
3802
3803
-gst-plugins-good
3804
+ - Windows installer packages: Starting with 1.26, due to security reasons, the default installation directory has changed
3805
+ from C:\gstreamer to the Program Files folder, e.g. C:\Program Files (x86)\gstreamer for the 32-bit package on 64-bit
3806
+ Windows. If you upgrade from 1.24 or older versions, the 1.26 installers will NOT keep using the existing folder.
3807
+ Nevertheless if you were using C:\gstreamer we strongly recommend you double-check the install location.
3808
3809
-- osxaudiosrc: Fixes for failing init/no output on recent iOS versions
3810
-- qtdemux: Use mvhd transform matrix and support for flipping
3811
-- qtmux: fix critical warnings on negotiation error
3812
-- rtpvp9pay: fix profile parsing
3813
-- splitmuxsrc: Ensure only a single stream-start event is pushed
3814
-- splitmuxsrc: decodebin3 Fails with assertion in mq_slot_handle_stream_start when seeking
3815
-- Various fixes found from adding extra warning flags
3816
+ - Note for MSI packagers: Starting with 1.26, the installers were ported to WiX 5.0. As part of this, the property for
3817
+ setting the installation directory has been changed to INSTALLDIR, and it now requires a full path to the desired
3818
+ directory, e.g. C:\gstreamer instead of C:\.
3819
3820
-gst-plugins-bad
3821
+ - Cross-MinGW build no longer supports the creation of MSIs. Please use tarballs.
3822
3823
-- decklinkvideosink: Fix handling of caps framerate in auto mode
3824
-- decklinkaudiosink: Don’t crash if started without corresponding video sink
3825
-- d3d12: Fix shaders failing to compile with newer dxc versions
3826
-- tsdemux: Fix backwards PTS wraparound detection with ignore-pcr=true
3827
-- vtdec: fix seeks hangs due to a race condition draining
3828
-- vtdec: seeks freeze the pipeline
3829
-- wayland: Print table split when DMABuf format changes
3830
-- webrtc: fix duplicate payload types with RTX and multiple video codecs
3831
-- wpevideosrc: Clear cached SHM buffers after caps re-negotiation
3832
-- wpe: Report latency and start-up progress messages
3833
-- wpe: remove glFlush() when filling buffer
3834
-- Fix build with gtk3 but not wayland
3835
-- Various fixes found from adding extra warning flags
3836
+- MinGW:
3837
3838
-gst-plugins-ugly
3839
+ - MinGW toolchain has been updated from GCC 8.2 → 14.2 and MinGW 6.0 → 12.0
3840
3841
-- x264enc: add missing data to AvcDecoderConfigurationRecord, and switch to GstByteWriter
3842
+ - The mediafoundation plugin is also shipped in the MinGW packages now.
3843
3844
-GStreamer Rust plugins
3845
+ - The d3d12 plugin is also shipped in the MinGW packages now.
3846
3847
-- No changes
3848
+ - Rust support has been enabled on MinGW 64-bit. Rust support cannot work on 32-bit MinGW due to differences in exception
3849
+ handling between our 32-bit MinGW toolchain and that used by the Rust project
3850
3851
-gst-libav
3852
+- The asio plugin is shipped now, since it no longer has a build-time dependency on the ASIO SDK.
3853
3854
-- avaudenc: fix crash in avenc_ac3 if input buffers are insufficiently aligned
3855
-- avcodecmap: Only use new channel positions when compiling against new enough ffmpeg
3856
-- gst-libav: 1.24.11: Fails to build with minimum supported ffmpeg version
3857
+- The new plugin webview2 is shipped with MSVC. It requires the relevant component shipped with Windows.
3858
3859
-gst-rtsp-server
3860
+#### Linux
3861
3862
-- No changes
3863
+- Preliminary support for Alma Linux has been added.
3864
3865
-gstreamer-vaapi
3866
+- RHEL distro support has been improved.
3867
3868
-- No changes
3869
+- Cerbero CI now tests the build on Ubuntu 24.04 LTS.
3870
3871
-gstreamer-sharp
3872
+- curl is used for downloading sources on Fedora instead of wget, since they have moved to wget2 despite show-stopper
3873
+ regressions such as returning a success error code on download failure.
3874
3875
-- No changes
3876
+#### Android
3877
3878
-gst-omx
3879
+- CMake inside Gradle is now the recommended way to consume GStreamer when building Android apps
3880
3881
-- No changes
3882
+ - FindGStreamerMobile.cmake is the recommended way to consume GStreamer now
3883
3884
-gst-python
3885
+ - 1.26 will support both CMake and Make inside Gradle, but the Make support will likely be removed in 1.28
3886
3887
-- No changes
3888
+ - Documentation updates are still a work-in-progress, help is appreciated
3889
3890
-gst-editing-services
3891
+- Android tutorials and examples are now built with gradle + cmake instead of gradle + make on the CI
3892
3893
-- ges: Fix Python library name fetching on Windows
3894
+## Documentation improvements
3895
3896
-gst-devtools, gst-validate + gst-integration-testsuites
3897
+- Tracer objects information is now included in the documentation
3898
3899
-- No changes
3900
+## Possibly Breaking Changes
3901
3902
-gst-examples
3903
+- qroverlay: the "pixel-size" property has been removed in favour of a new "size" property with slightly different semantics,
3904
+ where the size of the square is expressed in percent of the smallest of width and height.
3905
3906
-- No changes
3907
+- svtav1enc: The SVT-AV1 3.0.0 API exposes a different mechanism to configure the level of parallelism when encoding, which
3908
+ has been exposed as a new "level-of-parallelism" property. The old "logical-processors" property is no longer functional if
3909
+ the plugin has been compiled against the new API, which might affect encoder performance if application code setting it is
3910
+ not updated.
3911
3912
-Development build environment
3913
+- udpsrc: now disables allocated port reuse for unicast to avoid unexpected side-effects of SO_REUSEADDR where the kernel
3914
+ allocates the same listening port for multiple udpsrc.
3915
3916
-- No changes
3917
+- uridecodebin3 remove non-functional "source" property that doesn’t make sense and always returned NULL anyway.
3918
3919
-Cerbero build tool and packaging changes in 1.24.12
3920
+## Known Issues
3921
3922
-- cmake: Support using ccache if enabled
3923
+- GstBuffer now uses C11 atomics for 64 bit atomic operations if available, which may require linking to libatomic on some
3924
+ systems, but this is not done automatically yet, see issue #4177.
3925
3926
-Contributors to 1.24.12
3927
+Contributors
3928
3929
-Adrian Perez de Castro, Alan Coopersmith, Alexander Slobodeniuk, Andoni Morales Alastruey, Andrew Yooeun Chun, Brad Hards,
3930
-Carlos Bentzen, Colin Kinloch, Edward Hervey, François Laignel, Guillaume Desmottes, Jochen Henneberg, Jordan Yelloz, L. E.
3931
-Segovia, Monty C, Nirbheek Chauhan, Philippe Normand, Piotr Brzeziński, Rares Branici, Samuel Thibault, Sebastian Dröge, Silvio
3932
-Lazzeretti, Tim-Philipp Müller, Tomas Granath, Will Miller,
3933
+Aaron Boxer, Adrian Perez de Castro, Adrien De Coninck, Alan Coopersmith, Albert Sjolund, Alexander Slobodeniuk, Alex Ashley,
3934
+Alicia Boya García, Andoni Morales Alastruey, Andreas Wittmann, Andrew Yooeun Chun, Angelo Verlain, Aniket Hande, Antonio
3935
+Larrosa, Antonio Morales, Armin Begovic, Arnaud Vrac, Artem Martus, Arun Raghavan, Benjamin Gaignard, Benjamin Gräf, Bill
3936
+Nottingham, Brad Hards, Brad Reitmeyer, Branko Subasic, Carlo Caione, Carlos Bentzen, Carlos Falgueras García, cdelguercio, Chao
3937
+Guo, Cheah, Cheung Yik Pang, chitao1234, Chris Bainbridge, Chris Spencer, Chris Spoelstra, Christian Meissl, Christopher Degawa,
3938
+Chun-wei Fan, Colin Kinloch, Corentin Damman, Daniel Morin, Daniel Pendse, Daniel Stone, Dan Yeaw, Dave Lucia, David Rosca, Dean
3939
+Zhang (张安迪), Denis Yuji Shimizu, Detlev Casanova, Devon Sookhoo, Diego Nieto, Dongyun Seo, dukesook, Edward Hervey, eipachte,
3940
+Eli Mallon, Elizabeth Figura, Elliot Chen, Emil Ljungdahl, Emil Pettersson, eri, F. Duncanh, Fotis Xenakis, Francisco Javier
3941
+Velázquez-García, Francis Quiers, François Laignel, George Hazan, Glyn Davies, Guillaume Desmottes, Guillermo E. Martinez,
3942
+Haihua Hu, Håvard Graff, He Junyan, Hosang Lee, Hou Qi, Hugues Fruchet, Hyunwoo, iodar, jadarve, Jakub Adam, Jakub Vaněk, James
3943
+Cowgill, James Oliver, Jan Alexander Steffens (heftig), Jan Schmidt, Jeffery Wilson, Jendrik Weise, Jerome Colle, Jesper Jensen,
3944
+Jimmy Ohn, Jochen Henneberg, Johan Sternerup, Jonas K Danielsson, Jonas Rebmann, Jordan Petridis, Jordan Petridіs, Jordan
3945
+Yelloz, Jorge Zapata, Joshua Breeden, Julian Bouzas, Jurijs Satcs, Kévin Commaille, Kevin Wang, Khem Raj, kingosticks, Leonardo
3946
+Salvatore, L. E. Segovia, Liam, Lim, Loïc Le Page, Loïc Yhuel, Lyra McMillan, Maksym Khomenko, Marc-André Lureau, Marek Olejnik,
3947
+Marek Vasut, Marianna Smidth Buschle, Marijn Suijten, Mark-André Schadow, Mark Nauwelaerts, Markus Ebner, Martin Nordholts, Mart
3948
+Raudsepp, Mathieu Duponchelle, Matthew Waters, Maxim P. DEMENTYEV, Max Romanov, Mengkejiergeli Ba, Michael Grzeschik, Michael
3949
+Olbrich, Michael Scherle, Michael Tretter, Michiel Westerbeek, Mikhail Rudenko, Nacho Garcia, Nick Steel, Nicolas Dufresne,
3950
+Niklas Jang, Nirbheek Chauhan, Ognyan Tonchev, Olivier Crête, Oskar Fiedot, Pablo García, Pablo Sun, Patricia Muscalu, Paweł
3951
+Kotiuk, Peter Kjellerstedt, Peter Stensson, pgarciasancho, Philippe Normand, Philipp Zabel, Piotr Brzeziński, Qian Hu (胡骞),
3952
+Rafael Caricio, Randy Li (ayaka), Rares Branici, Ray Tiley, Robert Ayrapetyan, Robert Guziolowski, Robert Mader, Roberto Viola,
3953
+Robert Rosengren, RSWilli,Ruben González, Ruijing Dong, Sachin Gadag, Sam James, Samuel Thibault, Sanchayan Maity, Scott Moreau,
3954
+Sebastian Dröge, Sebastian Gross, Sebastien Cote, Sergey Krivohatskiy, Sergey Radionov, Seungha Yang, Seungmin Kim, Shengqi Yu,
3955
+Sid Sethupathi, Silvio Lazzeretti, Simonas Kazlauskas, Stefan Riedmüller, Stéphane Cerveau, Tamas Levai, Taruntej Kanakamalla,
3956
+Théo Maillart, Thibault Saunier, Thomas Goodwin, Thomas Klausner, Tihran Katolikian, Tim Blechmann, Tim-Philipp Müller, Tjitte
3957
+de Wert, Tomas Granath, Tomáš Polomský, tomaszmi, Tom Schuring, U. Artie Eoff, valadaptive, Víctor Manuel Jáquez Leal, Vivia
3958
+Nikolaidou, W. Bartel, Weijian Pan, William Wedler, Will Miller, Wim Taymans, Wojciech Kapsa, Xavier Claessens, Xi Ruoyao,
3959
+Xizhen, Yaakov Selkowitz, Yacine Bandou, Zach van Rijn, Zeno Endemann, Zhao, Zhong Hongcheng,
3960
3961
… and many others who have contributed bug reports, translations, sent suggestions or helped testing. Thank you all!
3962
3963
-List of merge requests and issues fixed in 1.24.12
3964
+Stable 1.26 branch
3965
3966
-- List of Merge Requests applied in 1.24.12
3967
-- List of Issues fixed in 1.24.12
3968
+After the 1.26.0 release there will be several 1.26.x bug-fix releases which will contain bug fixes which have been deemed
3969
+suitable for a stable branch, but no new features or intrusive changes will be added to a bug-fix release usually. The 1.26.x
3970
+bug-fix releases will be made from the git 1.26 branch, which is a stable release series branch.
3971
3972
-Schedule for 1.26
3973
+Schedule for 1.28
3974
3975
-Our next major feature release will be 1.26, and 1.25 will be the unstable development version leading up to the stable 1.26
3976
-release. The development of 1.25/1.25 will happen in the git main branch of the GStreamer mono repository.
3977
+Our next major feature release will be 1.28, and 1.27 will be the unstable development version leading up to the stable 1.28
3978
+release. The development of 1.27/1.28 will happen in the git main branch of the GStreamer mono repository.
3979
3980
-The schedule for 1.26 is yet to be decided.
3981
+The schedule for 1.28 is yet to be decided.
3982
3983
-1.26 will be backwards-compatible to the stable 1.24, 1.22, 1.20, 1.18, 1.16, 1.14, 1.12, 1.10, 1.8, 1.6, 1.4, 1.2 and 1.0
3984
+1.28 will be backwards-compatible to the stable 1.26, 1.24, 1.22, 1.20, 1.18, 1.16, 1.14, 1.12, 1.10, 1.8, 1.6, 1.4, 1.2 and 1.0
3985
release series.
3986
3987
--------------------------------------------------------------------------------------------------------------------------------
3988
3989
-These release notes have been prepared by Tim-Philipp Müller with contributions from Edward Hervey, Matthew Waters, Nicolas
3990
-Dufresne, Nirbheek Chauhan, Olivier Crête, Sebastian Dröge, Seungha Yang, Thibault Saunier, and Víctor Manuel Jáquez Leal.
3991
+These release notes have been prepared by Tim-Philipp Müller with contributions from Arun Raghavan, Daniel Morin, Nirbheek
3992
+Chauhan, Olivier Crête, Philippe Normand, Sebastian Dröge, Seungha Yang, Thibault Saunier, and Víctor Manuel Jáquez Leal.
3993
3994
License: CC BY-SA 4.0
3995
_service:download_url:gst-plugins-ugly-1.24.12.tar.xz/README.md -> _service:download_url:gst-plugins-ugly-1.26.0.tar.xz/README.md
Changed
7
1
2
-GStreamer 1.24.x stable series
3
+GStreamer 1.26.x stable series
4
5
WHAT IT IS
6
----------
7
_service:download_url:gst-plugins-ugly-1.24.12.tar.xz/RELEASE -> _service:download_url:gst-plugins-ugly-1.26.0.tar.xz/RELEASE
Changed
22
1
2
-This is GStreamer gst-plugins-ugly 1.24.12.
3
+This is GStreamer gst-plugins-ugly 1.26.0.
4
5
The GStreamer team is thrilled to announce a new major feature release
6
of your favourite cross-platform multimedia framework!
7
8
As always, this release is again packed with new features, bug fixes and
9
other improvements.
10
11
-The 1.24 release series adds new features on top of the 1.22 series and is
12
+The 1.26 release series adds new features on top of the 1.24 series and is
13
part of the API and ABI-stable 1.x release series.
14
15
Full release notes can be found at:
16
17
- https://gstreamer.freedesktop.org/releases/1.24/
18
+ https://gstreamer.freedesktop.org/releases/1.26/
19
20
Binaries for Android, iOS, Mac OS X and Windows will usually be provided
21
shortly after the release.
22
_service:download_url:gst-plugins-ugly-1.24.12.tar.xz/docs/gst_plugins_cache.json -> _service:download_url:gst-plugins-ugly-1.26.0.tar.xz/docs/gst_plugins_cache.json
Changed
47
1
2
"type": "gchararray",
3
"writable": true
4
},
5
+ "nal-hrd": {
6
+ "blurb": "Signal Hypothetical Reference Decoder information",
7
+ "conditionally-available": false,
8
+ "construct": false,
9
+ "construct-only": false,
10
+ "controllable": false,
11
+ "default": "none (0)",
12
+ "mutable": "null",
13
+ "readable": true,
14
+ "type": "GstX264EncNalHrd",
15
+ "writable": true
16
+ },
17
"noise-reduction": {
18
"blurb": "Noise reduction strength",
19
"conditionally-available": false,
20
21
}
22
23
},
24
+ "GstX264EncNalHrd": {
25
+ "kind": "enum",
26
+ "values":
27
+ {
28
+ "desc": "None",
29
+ "name": "none",
30
+ "value": "0"
31
+ },
32
+ {
33
+ "desc": "Variable bitrate",
34
+ "name": "vbr",
35
+ "value": "1"
36
+ },
37
+ {
38
+ "desc": "Constant bitrate",
39
+ "name": "cbr",
40
+ "value": "2"
41
+ }
42
+
43
+ },
44
"GstX264EncPass": {
45
"kind": "enum",
46
"values":
47
_service:download_url:gst-plugins-ugly-1.24.12.tar.xz/docs/meson.build -> _service:download_url:gst-plugins-ugly-1.26.0.tar.xz/docs/meson.build
Changed
121
1
2
subdir_done()
3
endif
4
5
-required_hotdoc_extensions = 'gst-extension'
6
plugins_cache = join_paths(meson.current_source_dir(), 'gst_plugins_cache.json')
7
if gst_dep.type_name() == 'internal'
8
gst_proj = subproject('gstreamer')
9
plugins_cache_generator = gst_proj.get_variable('plugins_cache_generator')
10
else
11
- plugins_cache_generator = find_program(join_paths(gst_dep.get_variable('libexecdir'), 'gstreamer-' + api_version, 'gst-plugins-doc-cache-generator'),
12
+ plugins_cache_generator = find_program('gst-plugins-doc-cache-generator',
13
+ dirs: join_paths(gst_dep.get_variable('libexecdir', default_value: ''), 'gstreamer-' + api_version),
14
required: false)
15
endif
16
17
18
warning('GStreamer plugin inspector for documentation not found, can\'t update the cache')
19
endif
20
21
-hotdoc_p = find_program('hotdoc', required: get_option('doc'))
22
-if not hotdoc_p.found()
23
- message('Hotdoc not found, not building the documentation')
24
- subdir_done()
25
-endif
26
-
27
-hotdoc_req = '>= 0.11.0'
28
-hotdoc_version = run_command(hotdoc_p, '--version', check: false).stdout()
29
-if not hotdoc_version.version_compare(hotdoc_req)
30
- if get_option('doc').enabled()
31
- error('Hotdoc version @0@ not found, got @1@'.format(hotdoc_req, hotdoc_version))
32
- else
33
- message('Hotdoc version @0@ not found, got @1@'.format(hotdoc_req, hotdoc_version))
34
- subdir_done()
35
- endif
36
+if get_option('doc').disabled()
37
+ subdir_done()
38
endif
39
40
-hotdoc = import('hotdoc')
41
-foreach extension: required_hotdoc_extensions
42
- if not hotdoc.has_extensions(extension)
43
- if get_option('doc').enabled()
44
- error('Documentation enabled but @0@ missing'.format(extension))
45
- endif
46
-
47
- message('@0@ extension not found, not building documentation'.format(extension))
48
- subdir_done()
49
- endif
50
-endforeach
51
-
52
build_hotdoc = true
53
docconf = configuration_data()
54
docconf.set('GST_API_VERSION', api_version)
55
56
excludes += join_paths(meson.current_source_dir(), root_rel, '..', f)
57
endforeach
58
59
-libs_doc =
60
-plugins_doc =
61
-list_plugin_res = run_command(python3, '-c',
62
-'''
63
-import sys
64
-import json
65
-
66
-with open("@0@") as f:
67
- print(':'.join(json.load(f).keys()), end='')
68
-'''.format(plugins_cache),
69
- check: true)
70
+doc_source_file = configure_file(output: 'doc_sources.json', configuration: plugin_sources, output_format: 'json')
71
+
72
+plugin_libraries = {}
73
+
74
+foreach plugin: plugins
75
+ if plugin.name().startswith('gst')
76
+ plugin_name = plugin.name().substring(3)
77
+ else
78
+ plugin_name = plugin.name()
79
+ endif
80
+
81
+ plugin_libraries += {
82
+ plugin_name: plugin.full_path()
83
+ }
84
+endforeach
85
+
86
+doc_plugin_libs_file = configure_file(output: 'doc_plugin_libs.json', configuration: plugin_libraries, output_format: 'json')
87
+
88
cdir = meson.current_source_dir()
89
-if host_machine.system() == 'windows'
90
- pathsep = ';'
91
-else
92
- pathsep = ':'
93
-endif
94
-gst_plugins_doc = run_command(
95
+plugin_hotdoc_configs = custom_target(
96
+ 'build-hotdoc-configs',
97
+ command:
98
plugins_cache_generator,
99
'hotdoc-config',
100
'--builddir', meson.current_build_dir(),
101
102
'--sitemap', cdir / 'sitemap.txt',
103
'--index', cdir / 'index.md',
104
'--gst_index', cdir / 'index.md',
105
- '--gst_c_sources',
106
- root_rel / 'sys/*/*.ch',
107
- root_rel / 'ext/*/*.ch',
108
- root_rel / 'gst/*/*.ch',
109
'--gst_c_source_filters', excludes,
110
- '--gst_cache_file', plugins_cache,
111
- check: true,
112
-).stdout().split(pathsep)
113
+ '--gst_cache_file', '@INPUT@',
114
+ '--output', '@OUTPUT@',
115
+ '--gst_c_source_file', doc_source_file,
116
+ '--gst_plugin_libraries_file', doc_plugin_libs_file,
117
+ ,
118
+ input: plugins_cache,
119
+ output: 'hotdoc-configs.json',
120
+)
121
_service:download_url:gst-plugins-ugly-1.24.12.tar.xz/ext/a52dec/meson.build -> _service:download_url:gst-plugins-ugly-1.26.0.tar.xz/ext/a52dec/meson.build
Changed
41
1
2
Pass option -Dgpl=enabled to Meson to allow GPL-licensed plugins to be built.
3
''')
4
5
+a52dec_sources =
6
+ 'gsta52dec.c',
7
+
8
+
9
+a52dec_headers =
10
+ 'gsta52dec.h',
11
+
12
+
13
+doc_sources =
14
+foreach s: a52dec_sources + a52dec_headers
15
+ doc_sources += meson.current_source_dir() / s
16
+endforeach
17
+
18
+plugin_sources += {
19
+ 'a52dec': pathsep.join(doc_sources)
20
+}
21
+
22
a52_dep = cc.find_library('a52', required : get_option('a52dec'))
23
if a52_dep.found()
24
have_a52_h = cc.has_header_symbol('a52dec/a52.h', 'a52_init', prefix : '#include <stdint.h>')
25
26
if have_a52_h
27
a52dec = library('gsta52dec',
28
- 'gsta52dec.c',
29
+ a52dec_sources,
30
c_args : ugly_args,
31
include_directories : configinc,
32
dependencies : gstaudio_dep, orc_dep, a52_dep,
33
34
)
35
plugins += a52dec
36
elif a52dec_opt.enabled()
37
- error('a52dec plugin enabled but a52.h not found')
38
+ error('a52dec plugin enabled but a52.h not found')
39
endif
40
endif
41
_service:download_url:gst-plugins-ugly-1.24.12.tar.xz/ext/cdio/meson.build -> _service:download_url:gst-plugins-ugly-1.26.0.tar.xz/ext/cdio/meson.build
Changed
34
1
2
Pass option -Dgpl=enabled to Meson to allow GPL-licensed plugins to be built.
3
''')
4
5
+cdio_sources =
6
+ 'gstcdio.c',
7
+ 'gstcdiocddasrc.c',
8
+
9
+
10
+cdio_headers =
11
+ 'gstcdiocddasrc.h',
12
+ 'gstcdio.h',
13
+
14
+
15
+doc_sources =
16
+foreach s: cdio_sources + cdio_headers
17
+ doc_sources += meson.current_source_dir() / s
18
+endforeach
19
+
20
+plugin_sources += {
21
+ 'cdio': pathsep.join(doc_sources)
22
+}
23
+
24
cdio_dep = dependency('libcdio', version : '>= 0.76', required : cdio_opt)
25
26
if cdio_dep.found()
27
+
28
cdio = library('gstcdio',
29
- 'gstcdio.c', 'gstcdiocddasrc.c',
30
+ cdio_sources,
31
c_args : ugly_args,
32
include_directories : configinc, libsinc,
33
dependencies : gstaudio_dep, gsttag_dep, cdio_dep,
34
_service:download_url:gst-plugins-ugly-1.24.12.tar.xz/ext/dvdread/meson.build -> _service:download_url:gst-plugins-ugly-1.26.0.tar.xz/ext/dvdread/meson.build
Changed
31
1
2
Pass option -Dgpl=enabled to Meson to allow GPL-licensed plugins to be built.
3
''')
4
5
+dvdread_sources =
6
+ 'dvdreadsrc.c',
7
+
8
+
9
+dvdread_headers =
10
+ 'dvdreadsrc.h',
11
+
12
+
13
+doc_sources =
14
+foreach s: dvdread_sources + dvdread_headers
15
+ doc_sources += meson.current_source_dir() / s
16
+endforeach
17
+
18
+plugin_sources += {
19
+ 'dvdread': pathsep.join(doc_sources)
20
+}
21
+
22
dvdread_dep = dependency('dvdread', version : '>= 0.5.0', required : dvdread_opt)
23
24
if dvdread_dep.found()
25
dvdread = library('gstdvdread',
26
- 'dvdreadsrc.c',
27
+ dvdread_sources,
28
c_args : ugly_args,
29
include_directories : configinc, libsinc,
30
dependencies : gstbase_dep, gmodule_dep, dvdread_dep,
31
_service:download_url:gst-plugins-ugly-1.24.12.tar.xz/ext/mpeg2dec/gstmpeg2dec.c -> _service:download_url:gst-plugins-ugly-1.26.0.tar.xz/ext/mpeg2dec/gstmpeg2dec.c
Changed
12
1
2
break;
3
case STATE_INVALID_END:
4
GST_DEBUG_OBJECT (mpeg2dec, "invalid end");
5
+ /* FALLTHROUGH */
6
case STATE_END:
7
GST_DEBUG_OBJECT (mpeg2dec, "end");
8
+ /* FALLTHROUGH */
9
case STATE_SLICE:
10
GST_DEBUG_OBJECT (mpeg2dec, "display_fbuf:%p, discard_fbuf:%p",
11
info->display_fbuf, info->discard_fbuf);
12
_service:download_url:gst-plugins-ugly-1.24.12.tar.xz/ext/mpeg2dec/meson.build -> _service:download_url:gst-plugins-ugly-1.26.0.tar.xz/ext/mpeg2dec/meson.build
Changed
31
1
2
Pass option -Dgpl=enabled to Meson to allow GPL-licensed plugins to be built.
3
''')
4
5
+mpeg2dec_sources =
6
+ 'gstmpeg2dec.c',
7
+
8
+
9
+mpeg2dec_headers =
10
+ 'gstmpeg2dec.h',
11
+
12
+
13
+doc_sources =
14
+foreach s: mpeg2dec_sources + mpeg2dec_headers
15
+ doc_sources += meson.current_source_dir() / s
16
+endforeach
17
+
18
+plugin_sources += {
19
+ 'mpeg2dec': pathsep.join(doc_sources)
20
+}
21
+
22
mpeg2_dep = dependency('libmpeg2', version : '>= 0.4.0', required : mpeg2dec_opt)
23
24
if mpeg2_dep.found()
25
mpeg2dec = library('gstmpeg2dec',
26
- 'gstmpeg2dec.c',
27
+ mpeg2dec_sources,
28
c_args : ugly_args,
29
include_directories : configinc,
30
dependencies : gstvideo_dep, mpeg2_dep,
31
_service:download_url:gst-plugins-ugly-1.24.12.tar.xz/ext/sidplay/meson.build -> _service:download_url:gst-plugins-ugly-1.26.0.tar.xz/ext/sidplay/meson.build
Changed
35
1
2
Pass option -Dgpl=enabled to Meson to allow GPL-licensed plugins to be built.
3
''')
4
5
+sid_sources =
6
+ 'gstsiddec.cc',
7
+
8
+
9
+sid_headers =
10
+ 'gstsiddec.h',
11
+
12
+
13
+doc_sources =
14
+foreach s: sid_sources + sid_headers
15
+ doc_sources += meson.current_source_dir() / s
16
+endforeach
17
+
18
+plugin_sources += {
19
+ 'sid': pathsep.join(doc_sources)
20
+}
21
+
22
if not add_languages('cpp', native: false, required: sidplay_option)
23
subdir_done()
24
endif
25
26
subdir_done()
27
endif
28
29
-gstsid = library('gstsid', 'gstsiddec.cc',
30
+gstsid = library('gstsid',
31
+ sid_sources,
32
cpp_args : ugly_args,
33
include_directories : configinc,
34
dependencies : gstaudio_dep, sidplay_dep,
35
_service:download_url:gst-plugins-ugly-1.24.12.tar.xz/ext/x264/gstx264enc.c -> _service:download_url:gst-plugins-ugly-1.26.0.tar.xz/ext/x264/gstx264enc.c
Changed
134
1
2
ARG_TUNE,
3
ARG_FRAME_PACKING,
4
ARG_INSERT_VUI,
5
+ ARG_NAL_HRD,
6
};
7
8
#define ARG_THREADS_DEFAULT 0 /* 0 means 'auto' which is 1.5x number of CPU cores */
9
10
#define ARG_TUNE_DEFAULT 0 /* no tuning */
11
#define ARG_FRAME_PACKING_DEFAULT -1 /* automatic (none, or from input caps) */
12
#define ARG_INSERT_VUI_DEFAULT TRUE
13
+#define ARG_NAL_HRD_DEFAULT 0
14
15
enum
16
{
17
18
return pass_type;
19
}
20
21
+#define GST_X264_ENC_NAL_HRD_TYPE (gst_x264_enc_nal_hrd_get_type())
22
+static GType
23
+gst_x264_enc_nal_hrd_get_type (void)
24
+{
25
+ static GType nal_hrd_type = 0;
26
+
27
+ static const GEnumValue nal_hrd_types = {
28
+ {GST_X264_ENC_NAL_HRD_NONE, "None", "none"},
29
+ {GST_X264_ENC_NAL_HRD_VBR, "Variable bitrate", "vbr"},
30
+ {GST_X264_ENC_NAL_HRD_CBR, "Constant bitrate", "cbr"},
31
+ {0, NULL, NULL}
32
+ };
33
+
34
+ if (!nal_hrd_type) {
35
+ nal_hrd_type = g_enum_register_static ("GstX264EncNalHrd", nal_hrd_types);
36
+ }
37
+ return nal_hrd_type;
38
+}
39
+
40
#define GST_X264_ENC_ME_TYPE (gst_x264_enc_me_get_type())
41
static GType
42
gst_x264_enc_me_get_type (void)
43
44
filter_caps = gst_caps_new_empty ();
45
46
for (i = 0; i < gst_caps_get_size (supported_incaps); i++) {
47
- GQuark q_name =
48
- gst_structure_get_name_id (gst_caps_get_structure (supported_incaps,
49
+ const GstIdStr *name =
50
+ gst_structure_get_name_id_str (gst_caps_get_structure (supported_incaps,
51
i));
52
53
for (j = 0; j < gst_caps_get_size (allowed); j++) {
54
55
56
/* FIXME Find a way to reuse gst_video_encoder_proxy_getcaps so that
57
* we do not need to copy that logic */
58
- s = gst_structure_new_id_empty (q_name);
59
+ s = gst_structure_new_id_str_empty (name);
60
if ((val = gst_structure_get_value (allowed_s, "width")))
61
gst_structure_set_value (s, "width", val);
62
if ((val = gst_structure_get_value (allowed_s, "height")))
63
64
g_string_append_printf (x264enc_defaults, ":interlaced=%d",
65
ARG_INTERLACED_DEFAULT);
66
67
+ /**
68
+ * x264enc:nal-hrd:
69
+ *
70
+ * Signal Hypothetical Reference Decoder information.
71
+ *
72
+ * Required for Blu-ray streams, television broadcast and a
73
+ * few other specialist areas.
74
+ *
75
+ * It can be used for instance to force true CBR, and will cause
76
+ * the encoder to output NULL padding packets.
77
+ *
78
+ * Since: 1.26
79
+ */
80
+ g_object_class_install_property (gobject_class, ARG_NAL_HRD,
81
+ g_param_spec_enum ("nal-hrd", "NAL HRD",
82
+ "Signal Hypothetical Reference Decoder information",
83
+ GST_X264_ENC_NAL_HRD_TYPE, ARG_NAL_HRD_DEFAULT,
84
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
85
+
86
/* append deblock parameters */
87
g_string_append_printf (x264enc_defaults, ":deblock=0,0");
88
/* append weighted prediction parameter */
89
90
gst_type_mark_as_plugin_api (GST_X264_ENC_PSY_TUNE_TYPE, 0);
91
gst_type_mark_as_plugin_api (GST_X264_ENC_SPEED_PRESET_TYPE, 0);
92
gst_type_mark_as_plugin_api (GST_X264_ENC_TUNE_TYPE, 0);
93
+ gst_type_mark_as_plugin_api (GST_X264_ENC_NAL_HRD_TYPE, 0);
94
}
95
96
/* *INDENT-OFF* */
97
98
encoder->tune = ARG_TUNE_DEFAULT;
99
encoder->frame_packing = ARG_FRAME_PACKING_DEFAULT;
100
encoder->insert_vui = ARG_INSERT_VUI_DEFAULT;
101
+ encoder->nal_hrd = ARG_NAL_HRD_DEFAULT;
102
103
encoder->bitrate_manager =
104
gst_encoder_bitrate_profile_manager_new (ARG_BITRATE_DEFAULT);
105
106
107
GST_OBJECT_UNLOCK (encoder);
108
109
+ encoder->x264param.i_nal_hrd = encoder->nal_hrd;
110
+
111
encoder->x264enc = encoder->vtable->x264_encoder_open (&encoder->x264param);
112
if (!encoder->x264enc) {
113
GST_ELEMENT_ERROR (encoder, STREAM, ENCODE,
114
115
case ARG_INSERT_VUI:
116
encoder->insert_vui = g_value_get_boolean (value);
117
break;
118
+ case ARG_NAL_HRD:
119
+ encoder->nal_hrd = g_value_get_enum (value);
120
+ break;
121
default:
122
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
123
break;
124
125
case ARG_INSERT_VUI:
126
g_value_set_boolean (value, encoder->insert_vui);
127
break;
128
+ case ARG_NAL_HRD:
129
+ g_value_set_enum (value, encoder->nal_hrd);
130
+ break;
131
default:
132
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
133
break;
134
_service:download_url:gst-plugins-ugly-1.24.12.tar.xz/ext/x264/gstx264enc.h -> _service:download_url:gst-plugins-ugly-1.26.0.tar.xz/ext/x264/gstx264enc.h
Changed
43
1
2
* compiler is unable to correctly do the pointer indirection for us, which
3
* leads to a segfault when you try to dereference any const values provided
4
* by x264.dll. See: https://bugzilla.gnome.org/show_bug.cgi?id=779249 */
5
-#if defined(_WIN32) && !defined(X264_API_IMPORTS)
6
+#if defined(_WIN32) && !defined(X264_API_IMPORTS) && !defined(GST_STATIC_COMPILATION)
7
# define X264_API_IMPORTS
8
#endif
9
#include <x264.h>
10
11
GString *option_string; /* used by set prop */
12
gint frame_packing;
13
gboolean insert_vui;
14
+ gint nal_hrd;
15
16
/* input description */
17
GstVideoCodecState *input_state;
18
19
GstVideoEncoderClass parent_class;
20
};
21
22
+/**
23
+ * GstX264EncNalHrd:
24
+ * @GST_X264_ENC_NAL_HRD_NONE: Specify no HRD information
25
+ * @GST_X264_ENC_NAL_HRD_VBR: Specify HRD information
26
+ * @GST_X264_ENC_NAL_HRD_CBR: Specify HRD information and pack the bitstream
27
+ *
28
+ * Signal HRD information. Required for Blu-ray streams,
29
+ * television broadcast and a few other specialist areas.
30
+ *
31
+ * Since: 1.26
32
+ */
33
+typedef enum
34
+{
35
+ GST_X264_ENC_NAL_HRD_NONE = 0,
36
+ GST_X264_ENC_NAL_HRD_VBR = 1,
37
+ GST_X264_ENC_NAL_HRD_CBR = 2,
38
+} GstX264EncNalHrd;
39
+
40
GType gst_x264_enc_get_type (void);
41
GST_ELEMENT_REGISTER_DECLARE (x264enc);
42
43
_service:download_url:gst-plugins-ugly-1.24.12.tar.xz/ext/x264/meson.build -> _service:download_url:gst-plugins-ugly-1.26.0.tar.xz/ext/x264/meson.build
Changed
22
1
2
'gstencoderbitrateprofilemanager.c',
3
4
5
+x264_headers =
6
+ 'gstx264enc.h',
7
+ 'gstencoderbitrateprofilemanager.h',
8
+
9
+
10
+doc_sources =
11
+foreach s: x264_sources + x264_headers
12
+ doc_sources += meson.current_source_dir() / s
13
+endforeach
14
+
15
+plugin_sources += {
16
+ 'x264': pathsep.join(doc_sources)
17
+}
18
+
19
x264_dep = dependency('x264', version : '>=0.156', required : x264_opt,
20
fallback: 'x264', 'libx264_dep')
21
22
_service:download_url:gst-plugins-ugly-1.24.12.tar.xz/gst-plugins-ugly.doap -> _service:download_url:gst-plugins-ugly-1.26.0.tar.xz/gst-plugins-ugly.doap
Changed
139
1
2
3
<release>
4
<Version>
5
- <revision>1.24.12</revision>
6
- <branch>1.24</branch>
7
- <name></name>
8
- <created>2025-01-29</created>
9
- <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.24.12.tar.xz" />
10
- </Version>
11
- </release>
12
-
13
- <release>
14
- <Version>
15
- <revision>1.24.11</revision>
16
- <branch>1.24</branch>
17
- <name></name>
18
- <created>2025-01-06</created>
19
- <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.24.11.tar.xz" />
20
- </Version>
21
- </release>
22
-
23
- <release>
24
- <Version>
25
- <revision>1.24.10</revision>
26
- <branch>1.24</branch>
27
- <name></name>
28
- <created>2024-12-03</created>
29
- <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.24.10.tar.xz" />
30
- </Version>
31
- </release>
32
-
33
- <release>
34
- <Version>
35
- <revision>1.24.9</revision>
36
- <branch>1.24</branch>
37
- <name></name>
38
- <created>2024-10-30</created>
39
- <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.24.9.tar.xz" />
40
- </Version>
41
- </release>
42
-
43
- <release>
44
- <Version>
45
- <revision>1.24.8</revision>
46
- <branch>1.24</branch>
47
- <name></name>
48
- <created>2024-09-19</created>
49
- <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.24.8.tar.xz" />
50
- </Version>
51
- </release>
52
-
53
- <release>
54
- <Version>
55
- <revision>1.24.7</revision>
56
- <branch>1.24</branch>
57
- <name></name>
58
- <created>2024-08-21</created>
59
- <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.24.7.tar.xz" />
60
- </Version>
61
- </release>
62
-
63
- <release>
64
- <Version>
65
- <revision>1.24.6</revision>
66
- <branch>1.24</branch>
67
- <name></name>
68
- <created>2024-07-29</created>
69
- <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.24.6.tar.xz" />
70
- </Version>
71
- </release>
72
-
73
- <release>
74
- <Version>
75
- <revision>1.24.5</revision>
76
- <branch>1.24</branch>
77
- <name></name>
78
- <created>2024-06-20</created>
79
- <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.24.5.tar.xz" />
80
- </Version>
81
- </release>
82
-
83
- <release>
84
- <Version>
85
- <revision>1.24.4</revision>
86
- <branch>1.24</branch>
87
+ <revision>1.26.0</revision>
88
+ <branch>main</branch>
89
<name></name>
90
- <created>2024-05-29</created>
91
- <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.24.4.tar.xz" />
92
+ <created>2025-03-11</created>
93
+ <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.26.0.tar.xz" />
94
</Version>
95
</release>
96
97
<release>
98
<Version>
99
- <revision>1.24.3</revision>
100
- <branch>1.24</branch>
101
+ <revision>1.25.90</revision>
102
+ <branch>main</branch>
103
<name></name>
104
- <created>2024-04-30</created>
105
- <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.24.3.tar.xz" />
106
+ <created>2025-02-23</created>
107
+ <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.25.90.tar.xz" />
108
</Version>
109
</release>
110
111
<release>
112
<Version>
113
- <revision>1.24.2</revision>
114
- <branch>1.24</branch>
115
+ <revision>1.25.50</revision>
116
+ <branch>main</branch>
117
<name></name>
118
- <created>2024-04-09</created>
119
- <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.24.2.tar.xz" />
120
+ <created>2025-02-09</created>
121
+ <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.25.50.tar.xz" />
122
</Version>
123
</release>
124
125
<release>
126
<Version>
127
- <revision>1.24.1</revision>
128
- <branch>1.24</branch>
129
+ <revision>1.25.1</revision>
130
+ <branch>main</branch>
131
<name></name>
132
- <created>2024-03-21</created>
133
- <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.24.1.tar.xz" />
134
+ <created>2025-01-14</created>
135
+ <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.25.1.tar.xz" />
136
</Version>
137
</release>
138
139
_service:download_url:gst-plugins-ugly-1.24.12.tar.xz/gst/asfdemux/gstasfdemux.c -> _service:download_url:gst-plugins-ugly-1.26.0.tar.xz/gst/asfdemux/gstasfdemux.c
Changed
19
1
2
GST_INFO_OBJECT (demux, "Chained asf starting");
3
/* cleanup and get ready for a chained asf */
4
gst_asf_demux_reset (demux, TRUE);
5
- /* fall through */
6
}
7
}
8
+ /* FALLTHROUGH */
9
case GST_ASF_DEMUX_STATE_HEADER:{
10
ret = gst_asf_demux_chain_headers (demux);
11
if (demux->state != GST_ASF_DEMUX_STATE_DATA)
12
break;
13
- /* otherwise fall through */
14
}
15
+ /* FALLTHROUGH */
16
case GST_ASF_DEMUX_STATE_DATA:
17
{
18
guint64 data_size;
19
_service:download_url:gst-plugins-ugly-1.24.12.tar.xz/gst/asfdemux/meson.build -> _service:download_url:gst-plugins-ugly-1.26.0.tar.xz/gst/asfdemux/meson.build
Changed
30
1
2
'gstrtspwms.c',
3
4
5
+asf_headers =
6
+ 'gstasfelements.h',
7
+ 'gstasfdemux.h',
8
+ 'asfheaders.h',
9
+ 'gstrtpasfdepay.h',
10
+ 'gstrtspwms.h',
11
+ 'asfpacket.h',
12
+
13
+
14
+doc_sources =
15
+foreach s: asf_sources + asf_headers
16
+ doc_sources += meson.current_source_dir() / s
17
+endforeach
18
+
19
+plugin_sources += {
20
+ 'asf': pathsep.join(doc_sources)
21
+}
22
+
23
+if get_option('asfdemux').disabled()
24
+ subdir_done()
25
+endif
26
+
27
gstasf = library('gstasf',
28
asf_sources,
29
c_args : ugly_args,
30
_service:download_url:gst-plugins-ugly-1.24.12.tar.xz/gst/dvdlpcmdec/meson.build -> _service:download_url:gst-plugins-ugly-1.26.0.tar.xz/gst/dvdlpcmdec/meson.build
Changed
25
1
2
'gstdvdlpcmdec.c'
3
4
5
+dvdpl_headers =
6
+ 'gstdvdlpcmdec.h',
7
+
8
+
9
+doc_sources =
10
+foreach s: dvdpl_sources + dvdpl_headers
11
+ doc_sources += meson.current_source_dir() / s
12
+endforeach
13
+
14
+plugin_sources += {
15
+ 'dvdlpcmdec': pathsep.join(doc_sources)
16
+}
17
+
18
+if get_option('dvdlpcmdec').disabled()
19
+ subdir_done()
20
+endif
21
+
22
gstdvdlpcmdec = library('gstdvdlpcmdec',
23
dvdpl_sources,
24
c_args : ugly_args,
25
_service:download_url:gst-plugins-ugly-1.24.12.tar.xz/gst/dvdsub/meson.build -> _service:download_url:gst-plugins-ugly-1.26.0.tar.xz/gst/dvdsub/meson.build
Changed
26
1
2
'gstdvdsubparse.c',
3
4
5
+dvdsub_headers =
6
+ 'gstdvdsubdec.h',
7
+ 'gstdvdsubparse.h',
8
+
9
+
10
+doc_sources =
11
+foreach s: dvdsub_sources + dvdsub_headers
12
+ doc_sources += meson.current_source_dir() / s
13
+endforeach
14
+
15
+plugin_sources += {
16
+ 'dvdsub': pathsep.join(doc_sources)
17
+}
18
+
19
+if get_option('dvdsub').disabled()
20
+ subdir_done()
21
+endif
22
+
23
gstdvdsub = library('gstdvdsub',
24
dvdsub_sources,
25
c_args : ugly_args,
26
_service:download_url:gst-plugins-ugly-1.24.12.tar.xz/gst/meson.build -> _service:download_url:gst-plugins-ugly-1.26.0.tar.xz/gst/meson.build
Changed
8
1
2
foreach plugin : 'asfdemux', 'dvdlpcmdec', 'dvdsub', 'realmedia'
3
- if not get_option(plugin).disabled()
4
- subdir(plugin)
5
- endif
6
+ subdir(plugin)
7
endforeach
8
_service:download_url:gst-plugins-ugly-1.24.12.tar.xz/gst/realmedia/meson.build -> _service:download_url:gst-plugins-ugly-1.26.0.tar.xz/gst/realmedia/meson.build
Changed
28
1
2
'realmedia.c'
3
4
5
+real_headers =
6
+ 'rmdemux.h',
7
+ 'rademux.h',
8
+ 'rmutils.h',
9
+ 'pnmsrc.h',
10
+
11
+
12
+doc_sources =
13
+foreach s: real_sources + real_headers
14
+ doc_sources += meson.current_source_dir() / s
15
+endforeach
16
+
17
+plugin_sources += {
18
+ 'realmedia': pathsep.join(doc_sources)
19
+}
20
+
21
+if get_option('realmedia').disabled()
22
+ subdir_done()
23
+endif
24
+
25
gstrmdemux = library('gstrealmedia',
26
real_sources,
27
c_args : ugly_args,
28
_service:download_url:gst-plugins-ugly-1.24.12.tar.xz/gst/realmedia/rademux.c -> _service:download_url:gst-plugins-ugly-1.26.0.tar.xz/gst/realmedia/rademux.c
Changed
18
1
2
ret = gst_real_audio_demux_parse_marker (demux);
3
if (ret != GST_FLOW_OK || demux->state != REAL_AUDIO_DEMUX_STATE_HEADER)
4
break;
5
- /* otherwise fall through */
6
}
7
+ /* FALLTHROUGH */
8
case REAL_AUDIO_DEMUX_STATE_HEADER:{
9
ret = gst_real_audio_demux_parse_header (demux);
10
if (ret != GST_FLOW_OK || demux->state != REAL_AUDIO_DEMUX_STATE_DATA)
11
break;
12
- /* otherwise fall through */
13
}
14
+ /* FALLTHROUGH */
15
case REAL_AUDIO_DEMUX_STATE_DATA:{
16
ret = gst_real_audio_demux_parse_data (demux);
17
break;
18
_service:download_url:gst-plugins-ugly-1.24.12.tar.xz/meson.build -> _service:download_url:gst-plugins-ugly-1.26.0.tar.xz/meson.build
Changed
111
1
2
project('gst-plugins-ugly', 'c',
3
- version : '1.24.12',
4
- meson_version : '>= 1.1',
5
+ version : '1.26.0',
6
+ meson_version : '>= 1.4',
7
default_options : 'warning_level=1',
8
'buildtype=debugoptimized' )
9
10
11
static_build = get_option('default_library') == 'static'
12
plugins_install_dir = join_paths(get_option('libdir'), 'gstreamer-1.0')
13
plugins =
14
+plugin_sources = {}
15
16
cc = meson.get_compiler('c')
17
if have_cxx
18
19
endif
20
21
cdata = configuration_data()
22
-cdata.set('ENABLE_NLS', 1)
23
24
check_headers =
25
'HAVE_DLFCN_H', 'dlfcn.h',
26
27
endif
28
29
warning_flags =
30
- '-Wmissing-declarations',
31
- '-Wredundant-decls',
32
- '-Wwrite-strings',
33
+ '-Waddress',
34
+ '-Waggregate-return',
35
'-Wformat',
36
'-Wformat-nonliteral',
37
'-Wformat-security',
38
+ '-Wimplicit-fallthrough=3',
39
'-Winit-self',
40
+ '-Wmissing-declarations',
41
'-Wmissing-include-dirs',
42
- '-Waddress',
43
'-Wno-multichar',
44
- '-Wvla',
45
'-Wpointer-arith',
46
- '-Waggregate-return',
47
+ '-Wredundant-decls',
48
+ '-Wshift-negative-value',
49
+ '-Wtype-limits',
50
+ '-Wvla',
51
+ '-Wwrite-strings',
52
'-fno-strict-aliasing',
53
# Symbol visibility
54
'-fvisibility=hidden',
55
56
add_project_arguments('-DG_DISABLE_DEPRECATED', language: 'c')
57
endif
58
59
-cast_checks = get_option('gobject-cast-checks')
60
-if cast_checks.disabled() or (cast_checks.auto() and not gst_version_is_dev)
61
+# Same logic as in GLib.
62
+glib_debug = get_option('glib_debug')
63
+if glib_debug.disabled() or (
64
+ glib_debug.auto() and (not get_option('debug') or get_option('optimization') not in '0', 'g' ))
65
message('Disabling GLib cast checks')
66
add_project_arguments('-DG_DISABLE_CAST_CHECKS', language: 'c')
67
endif
68
69
-glib_asserts = get_option('glib-asserts')
70
-if glib_asserts.disabled() or (glib_asserts.auto() and not gst_version_is_dev)
71
+if not get_option('glib_assert')
72
message('Disabling GLib asserts')
73
add_project_arguments('-DG_DISABLE_ASSERT', language: 'c')
74
endif
75
76
-glib_checks = get_option('glib-checks')
77
-if glib_checks.disabled() or (glib_checks.auto() and not gst_version_is_dev)
78
+if not get_option('glib_checks')
79
message('Disabling GLib checks')
80
add_project_arguments('-DG_DISABLE_CHECKS', language: 'c')
81
endif
82
83
84
python3 = import('python').find_installation()
85
86
+if host_machine.system() == 'windows'
87
+ pathsep = ';'
88
+else
89
+ pathsep = ':'
90
+endif
91
+
92
subdir('gst')
93
subdir('ext')
94
subdir('tests')
95
96
# xgettext is optional (on Windows for instance)
97
if find_program('xgettext', required : get_option('nls')).found()
98
+ cdata.set('ENABLE_NLS', 1)
99
subdir('po')
100
endif
101
subdir('docs')
102
103
104
configure_file(output : 'config.h', configuration : cdata)
105
106
-meson.add_dist_script('scripts/gen-changelog.py', meson.project_name(), '1.22.0', meson.project_version())
107
+meson.add_dist_script('scripts/gen-changelog.py', meson.project_name(), '1.24.0', meson.project_version())
108
109
plugin_names =
110
gst_plugins =
111
_service:download_url:gst-plugins-ugly-1.24.12.tar.xz/meson_options.txt -> _service:download_url:gst-plugins-ugly-1.26.0.tar.xz/meson_options.txt
Changed
36
1
2
description : 'Enable native language support (translations)')
3
option('orc', type : 'feature', value : 'auto', yield : true)
4
option('tests', type : 'feature', value : 'auto', yield : true)
5
-option('gobject-cast-checks', type : 'feature', value : 'auto', yield : true,
6
- description: 'Enable run-time GObject cast checks (auto = enabled for development, disabled for stable releases)')
7
-option('glib-asserts', type : 'feature', value : 'enabled', yield : true,
8
- description: 'Enable GLib assertion (auto = enabled for development, disabled for stable releases)')
9
-option('glib-checks', type : 'feature', value : 'enabled', yield : true,
10
- description: 'Enable GLib checks such as API guards (auto = enabled for development, disabled for stable releases)')
11
12
# Common options
13
option('package-name', type : 'string', yield : true,
14
15
description : 'package origin URL to use in plugins')
16
option('doc', type : 'feature', value : 'auto', yield: true,
17
description: 'Enable documentation.')
18
+option('glib_debug', type : 'feature', value : 'auto', yield : true, description : 'Enable GLib debug infrastructure (see docs/macros.txt)')
19
+option('glib_assert', type : 'boolean', value : true, yield : true, description : 'Enable GLib assertion (see docs/macros.txt)',
20
+ deprecated: {'enabled' : 'true', 'disabled' : 'false', 'auto' : 'false'},
21
+)
22
+option('glib_checks', type : 'boolean', value : true, yield : true, description : 'Enable GLib checks such as API guards (see docs/macros.txt)',
23
+ deprecated: {'enabled' : 'true', 'disabled' : 'false', 'auto' : 'false'},
24
+)
25
+
26
+# Deprecated, kept for backward compat
27
+option('gobject-cast-checks', type : 'feature', value : 'auto', yield : true,
28
+ description: 'Enable run-time GObject cast checks (auto = enabled for development, disabled for stable releases)',
29
+ deprecated: 'glib_debug')
30
+option('glib-asserts', type : 'feature', value : 'enabled', yield : true,
31
+ description: 'Enable GLib assertion (auto = enabled for development, disabled for stable releases)',
32
+ deprecated: 'glib_assert')
33
+option('glib-checks', type : 'feature', value : 'enabled', yield : true,
34
+ description: 'Enable GLib checks such as API guards (auto = enabled for development, disabled for stable releases)',
35
+ deprecated: 'glib_checks')
36
_service:download_url:gst-plugins-ugly-1.24.12.tar.xz/po/gst-plugins-ugly-1.0.pot -> _service:download_url:gst-plugins-ugly-1.26.0.tar.xz/po/gst-plugins-ugly-1.0.pot
Changed
13
1
2
#, fuzzy
3
msgid ""
4
msgstr ""
5
-"Project-Id-Version: gst-plugins-ugly-1.24.12\n"
6
+"Project-Id-Version: gst-plugins-ugly-1.26.0\n"
7
"Report-Msgid-Bugs-To: \n"
8
-"POT-Creation-Date: 2025-01-29 20:13+0000\n"
9
+"POT-Creation-Date: 2025-03-11 20:15+0000\n"
10
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
11
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12
"Language-Team: LANGUAGE <LL@li.org>\n"
13
_service:download_url:gst-plugins-ugly-1.24.12.tar.xz/po/gst-plugins-ugly.pot -> _service:download_url:gst-plugins-ugly-1.26.0.tar.xz/po/gst-plugins-ugly.pot
Changed
13
1
2
#, fuzzy
3
msgid ""
4
msgstr ""
5
-"Project-Id-Version: gst-plugins-ugly-1.24.12\n"
6
+"Project-Id-Version: gst-plugins-ugly-1.26.0\n"
7
"Report-Msgid-Bugs-To: \n"
8
-"POT-Creation-Date: 2025-01-29 20:13+0000\n"
9
+"POT-Creation-Date: 2025-03-11 20:15+0000\n"
10
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
11
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12
"Language-Team: LANGUAGE <LL@li.org>\n"
13
_service:download_url:gst-plugins-ugly-1.24.12.tar.xz/po/hr.po -> _service:download_url:gst-plugins-ugly-1.26.0.tar.xz/po/hr.po
Changed
19
1
2
msgstr ""
3
"Project-Id-Version: gst-plugins-ugly-1.24.0\n"
4
"Report-Msgid-Bugs-To: \n"
5
-"POT-Creation-Date: 2024-11-03 17:37+0000\n"
6
+"POT-Creation-Date: 2025-02-23 16:56+0000\n"
7
"PO-Revision-Date: 2024-03-08 10:46-0800\n"
8
"Last-Translator: Božidar Putanec <bozidarp@yahoo.com>\n"
9
"Language-Team: Croatian <lokalizacija@linux.hr>\n"
10
11
#~ "The requested bitrate %d kbit/s for property '%s' is not allowed. The "
12
#~ "bitrate was changed to %d kbit/s."
13
#~ msgstr ""
14
-#~ "Tražena brzina (bitrate) %d kbit/s za svojstvo „%s“ nije dopuštena. "
15
+#~ "Tražena brzina (bitrate) %d kbit/s za svojstvo „%s” nije dopuštena. "
16
#~ "Brzina (bitrate) je promijenjena u %d kbit/s."
17
18
#~ msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
19
_service:download_url:gst-plugins-ugly-1.24.12.tar.xz/po/pt_BR.po -> _service:download_url:gst-plugins-ugly-1.26.0.tar.xz/po/pt_BR.po
Changed
16
1
2
msgstr ""
3
"Project-Id-Version: gst-plugins-ugly-1.19.2\n"
4
"Report-Msgid-Bugs-To: \n"
5
-"POT-Creation-Date: 2021-10-25 01:02+0100\n"
6
+"POT-Creation-Date: 2025-02-23 16:56+0000\n"
7
"PO-Revision-Date: 2021-09-26 12:38-0300\n"
8
"Last-Translator: Fabrício Godoy <skarllot@gmail.com>\n"
9
-"Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
10
-"net>\n"
11
+"Language-Team: Brazilian Portuguese <ldpbr-"
12
+"translation@lists.sourceforge.net>\n"
13
"Language: pt_BR\n"
14
"MIME-Version: 1.0\n"
15
"Content-Type: text/plain; charset=UTF-8\n"
16