Overview
Submit package home:zait...sentials / gstreamer...d-codecs to package Essentials / gstreamer-plugins-bad-codecs
gstreamer-plugins-bad-codecs.changes
Changed
x
1
2
-------------------------------------------------------------------
3
+Sat Aug 12 09:49:32 UTC 2023 - Bjørn Lie <zaitor@opensuse.org>
4
+
5
+- Update to version 1.22.5
6
+
7
+-------------------------------------------------------------------
8
Sat Jul 1 15:54:57 UTC 2023 - Bjørn Lie <zaitor@opensuse.org>
9
10
- Update to version 1.22.4
11
gstreamer-plugins-bad-codecs.spec
Changed
10
1
2
%define _version 1.22.0
3
4
Name: gstreamer-plugins-bad-codecs
5
-Version: 1.22.4
6
+Version: 1.22.5
7
Release: 0
8
Summary: Codecs/plugins for gstreamer-plugins-bad
9
License: LGPL-2.1-or-later
10
gst-plugins-bad-1.22.4.tar.xz/ChangeLog -> gst-plugins-bad-1.22.5.tar.xz/ChangeLog
Changed
105
1
2
+=== release 1.22.5 ===
3
+
4
+2023-07-20 15:22:48 +0100 Tim-Philipp Müller <tim@centricular.com>
5
+
6
+ * NEWS:
7
+ * RELEASE:
8
+ * gst-plugins-bad.doap:
9
+ * meson.build:
10
+ Release 1.22.5
11
+
12
+2023-02-19 10:41:51 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
13
+
14
+ * gst/jpegformat/gstjpegparse.c:
15
+ jpegparse: Warn only malformed data in APP data.
16
+ It's only malformed data in APP when its length is less than 6 chars,
17
+ because it should have at least an id string. Otherwise, if the id string
18
+ is not handled, no warning is raised, only a debug message noticing it.
19
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5053>
20
+
21
+2023-02-15 19:02:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
22
+
23
+ * gst/jpegformat/gstjpegparse.c:
24
+ jpegparse: Parse AVI1 tag in app0.
25
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5053>
26
+
27
+2023-02-12 16:11:34 +0800 He Junyan <junyan.he@intel.com>
28
+
29
+ * sys/va/gstjpegdecoder.c:
30
+ va: jpegdecoder: Do not check SOS state when parsing DRI marker.
31
+ According to spec, the JPEG_MARKER_DRI(Restart interval definition)
32
+ marker can come before the SOS marker. So we should not check the SOS
33
+ state when parsing the DRI marker.
34
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5053>
35
+
36
+2023-07-11 21:41:46 +0200 Carlos Rafael Giani <crg7475@mailbox.org>
37
+
38
+ * meson.build:
39
+ gl: Take into account viv-fb vs. viv_fb naming in meson scripts
40
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4959>
41
+
42
+2023-05-16 21:24:44 +1000 Matthew Waters <matthew@centricular.com>
43
+
44
+ * meson.build:
45
+ gl: provide a pkg-config/gir file for the viv-fb backend
46
+ Required to be able to generate coherent bindings for window system
47
+ specific APIs due to limitations in gobject-introspection.
48
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4959>
49
+
50
+2023-03-26 16:40:28 +0100 Tim-Philipp Müller <tim@centricular.com>
51
+
52
+ * ext/teletextdec/gstteletextdec.c:
53
+ * sys/winks/gstksvideodevice.c:
54
+ * sys/winks/kshelpers.c:
55
+ * tools/gst-app-maker:
56
+ taglist, plugins: fix compiler warnings with GLib >= 2.76
57
+ Fix compiler warnings about not using the return value when
58
+ freeing the GString segment with g_string_free(.., FALSE):
59
+ ignoring return value of ‘g_string_free_and_steal’ declared with attribute ‘warn_unused_result’
60
+ which we get with newer GLib versions. These were all harmless.
61
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5015>
62
+
63
+2023-06-27 05:09:49 +0900 Seungha Yang <seungha@centricular.com>
64
+
65
+ * gst-libs/gst/d3d11/gstd3d11bufferpool.cpp:
66
+ * tests/check/libs/d3d11memory.c:
67
+ * tests/check/meson.build:
68
+ d3d11bufferpool: Fix heavy CPU usage in case of fixed-size pool
69
+ There's no reason to release GstMemory manually at all.
70
+ If we do release GstMemory, corresponding GstBuffer will be
71
+ discarded by GstBufferPool baseclass because the size is changed
72
+ to zero.
73
+ Actual cause of heavy CPU usage in case of fixed-size pool
74
+ (i.e., decoder output buffer pool) and if we remove GstMemory from
75
+ GstBuffer is that GstBufferPool baseclass is doing busy wait in acquire_buffer()
76
+ for some reason. That needs to be investigated though, discarding
77
+ and re-alloc every GstBuffer is not ideal already.
78
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4943>
79
+
80
+2023-07-10 12:03:25 +0100 Philippe Normand <philn@igalia.com>
81
+
82
+ * ext/webrtc/gstwebrtcbin.c:
83
+ * tests/check/elements/webrtcbin.c:
84
+ webrtcbin: Prevent critical warning when creating an additional data channel
85
+ The max_channels value wasn't clamped to 65534 in all situations.
86
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5012>
87
+
88
+2023-06-30 18:30:46 +0100 Philippe Normand <philn@igalia.com>
89
+
90
+ * ext/webrtc/gstwebrtcstats.c:
91
+ webrtcstats: Properly report IceCandidate type
92
+ strcmp returns a positive value if s1 is greater than s2, while we actually
93
+ needed to check equality here.
94
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4957>
95
+
96
+2023-06-20 19:10:38 +0100 Tim-Philipp Müller <tim@centricular.com>
97
+
98
+ * meson.build:
99
+ Back to development
100
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4907>
101
+
102
=== release 1.22.4 ===
103
104
2023-06-20 17:42:25 +0100 Tim-Philipp Müller <tim@centricular.com>
105
gst-plugins-bad-1.22.4.tar.xz/NEWS -> gst-plugins-bad-1.22.5.tar.xz/NEWS
Changed
206
1
2
3
GStreamer 1.22.0 was originally released on 23 January 2023.
4
5
-The latest bug-fix release in the stable 1.22 series is 1.22.4 and was
6
-released on 20 June 2023.
7
+The latest bug-fix release in the stable 1.22 series is 1.22.5 and was
8
+released on 20 July 2023.
9
10
See https://gstreamer.freedesktop.org/releases/1.22/ for the latest
11
version of this document.
12
13
-Last updated: Tuesday 20 June 2023, 16:30 UTC (log)
14
+Last updated: Thursday 20 July 2023, 12:00 UTC (log)
15
16
Introduction
17
18
19
- List of Merge Requests applied in 1.22.4
20
- List of Issues fixed in 1.22.4
21
22
+1.22.5
23
+
24
+The fifth 1.22 bug-fix release (1.22.5) was released on 20 July 2023.
25
+
26
+This release only contains bugfixes and security fixes and it should be
27
+safe to update from 1.22.x.
28
+
29
+Highlighted bugfixes in 1.22.5
30
+
31
+- Security fixes for the RealMedia demuxer
32
+- vaapi decoders, postproc: Disable DMAbuf from caps negotiation to
33
+ fix garbled video in some cases
34
+- decodebin3, playbin3, parsebin fixes, especially for stream
35
+ reconfiguration
36
+- hlsdemux2: fix early seeking; don’t pass referer when updating
37
+ playlists; webvtt fixes
38
+- gtk: Fix critical caused by pointer movement when stream is getting
39
+ ready
40
+- qt6: Set sampler filtering method, fixes bad quality with qml6glsink
41
+ and gstqt6d3d11
42
+- v4l2src: handle resolution change when buffers are copied
43
+- videoflip: update orientation tag in auto mode
44
+- video timecode: Add support for framerates lower than 1fps and
45
+ accept 119.88 (120/1.001) fps
46
+- webrtcsink: fixes for x264enc and NVIDIA encoders
47
+- cerbero: Pull ninja from system if possible, avoid spurious
48
+ bootstrap of cmake
49
+- packages: Recipe updates for ffmpeg, libsoup, orc
50
+- various bug fixes, memory leak fixes, and other stability and
51
+ reliability improvements
52
+
53
+gstreamer
54
+
55
+- taglist, plugins: fix compiler warnings with GLib >= 2.76
56
+- tracerutils: allow casting parameter types
57
+- inputselector: fix playing variable is never set
58
+
59
+gst-plugins-base
60
+
61
+- appsink: add missing make_writable call
62
+- audioaggregator: Do not post message before being constructed
63
+- decodebin3: Prevent a critical warning when reassigning output slots
64
+- decodebin3: Fix slot input linking when the associated stream has
65
+ changed
66
+- decodebin3: Remove spurious input locking during parsebin
67
+ reconfiguration
68
+- urisourcebin: Set source element to READY before querying it
69
+- gl/viv-fb: meson build updates
70
+- plugins: fix compiler warnings with GLib >= 2.76
71
+- subtitleoverlay: fix mutex error if sink caps is not video
72
+- video: timecode: Add support for framerates lower than 1fps
73
+- video: accept timecode of 119.88 (120/1.001) FPS
74
+- video: cannot attach time code meta when frame rate is 119.88
75
+ (120000/1001)
76
+- videodecoder: fix copying buffer metas
77
+
78
+gst-plugins-good
79
+
80
+- adaptivedemux2: Fix early seeking
81
+- hlsdemux2: Ensure processed webvtt ends with empty new line
82
+- hlsdemux2: Don’t set a referer when updating playlists
83
+- matroska: demux: Strip signal byte when encrypted
84
+- rtspsrc: Fix crash when is-live=false
85
+- gtk: Fix critical caused by pointer movement when stream is getting
86
+ ready
87
+- qt6: Set sampler filtering method, fixes bad quality with qml6glsink
88
+ and gstqt6d3d11
89
+- qtdemux: opus: set entry as sampled
90
+- v4l2src: handle resolution change when buffers are copied
91
+- v4l2videodec: Fix handling of initial gaps
92
+- v4l2videodec: correctly register v4l2mpeg2dec
93
+- v4l2videoenc: replace custom QUERY_CAPS handling with getcaps
94
+ callback
95
+- videoflip: update orientation tag in auto mode
96
+- videoflip: fix critical when tag list is not writable
97
+
98
+gst-plugins-bad
99
+
100
+- d3d11bufferpool: Fix heavy CPU usage in case of fixed-size pool
101
+- jpegparser: jpegdecoder: Don’t pollute bus and comply with spec
102
+- plugins: fix compiler warnings with GLib >= 2.76
103
+- webrtcbin: Prevent critical warning when creating an additional data
104
+ channel
105
+- webrtcstats: Properly report IceCandidate type
106
+
107
+gst-plugins-ugly
108
+
109
+- rmdemux: add some integer overflow checks
110
+
111
+gst-plugins-rs
112
+
113
+- fallbackswitch: Change the threshold for trailing buffers
114
+- fallbackswitch: Fix pad health calculation and notifies
115
+- fmp4mux: Fix draining in chunk mode if keyframes are too late
116
+- livesync: Wait for the end timestamp of the previous buffer before
117
+ looking at queue
118
+- livesync: Improve EOS handling
119
+- togglerecord: Clip segment before calculating timestamp/duration
120
+- togglerecord: Error out if main stream buffer has no valid running
121
+ time
122
+- webrtcsink: fix pipeline when input caps contain max-framerate
123
+- webrtcsink: Configure only 4 threads for x264enc
124
+- webrtcsink: Translate force-keyunit events to force-IDR action
125
+ signal for NVIDIA encoders
126
+- webrtcsink: Set config-interval=-1 and aggregate-mode=zero-latency
127
+ on rtph264pay and rtph265pay
128
+- webrtcsink: Set VP8/VP9 payloader based on payloader element factory
129
+ name
130
+- webrtcink: Use correct property types for nvvideoconvert
131
+- webrtc/signalling: fix race condition in message ordering
132
+- videofx: Minimize dependencies of the image crate
133
+
134
+gst-libav
135
+
136
+- No changes
137
+
138
+gst-rtsp-server
139
+
140
+- No changes
141
+
142
+gstreamer-vaapi
143
+
144
+- vaapidecode,vaapipostproc: Disable DMAbuf from caps negotiation.
145
+
146
+gstreamer-sharp
147
+
148
+- No changes
149
+
150
+gst-omx
151
+
152
+- No changes
153
+
154
+gst-python
155
+
156
+- No changes
157
+
158
+gst-editing-services
159
+
160
+- ges: some fixes for 32-bit systems
161
+- ges, nle: Avoid setting state or sending query when constructing
162
+ objects
163
+
164
+gst-validate + gst-integration-testsuites
165
+
166
+- No changes
167
+
168
+gst-examples
169
+
170
+- No changes
171
+
172
+Development build environment
173
+
174
+- No changes
175
+
176
+Cerbero build tool and packaging changes in 1.22.5
177
+
178
+- Pull ninja from system if possible, avoid spurious bootstrap of
179
+ cmake
180
+- ffmpeg: update to 5.0.3
181
+- libsoup: update to 2.74.3
182
+- orc: update to 0.4.34
183
+
184
+Contributors to 1.22.5
185
+
186
+Andoni Morales Alastruey, Bastien Nocera, Carlos Rafael Giani, David
187
+Craven, Doug Nazar, Edward Hervey, François Laignel, Guillaume
188
+Desmottes, He Junyan, Hou Qi, Jan Alexander Steffens (heftig), Jan
189
+Schmidt, Maksym Khomenko, Mathieu Duponchelle, Matthew Waters, Michael
190
+Olbrich, Michael Tretter, Nicolas Dufresne, Nirbheek Chauhan, Philippe
191
+Normand, Ruslan Khamidullin, Sebastian Dröge, Seungha Yang, Théo
192
+Maillart, Thibault Saunier, Tim-Philipp Müller, Víctor Manuel Jáquez
193
+Leal, Vivia Nikolaidou, Yatin Maan,
194
+
195
+… and many others who have contributed bug reports, translations, sent
196
+suggestions or helped testing. Thank you all!
197
+
198
+List of merge requests and issues fixed in 1.22.5
199
+
200
+- List of Merge Requests applied in 1.22.5
201
+- List of Issues fixed in 1.22.5
202
+
203
Schedule for 1.24
204
205
Our next major feature release will be 1.24, and 1.23 will be the
206
gst-plugins-bad-1.22.4.tar.xz/RELEASE -> gst-plugins-bad-1.22.5.tar.xz/RELEASE
Changed
7
1
2
-This is GStreamer gst-plugins-bad 1.22.4.
3
+This is GStreamer gst-plugins-bad 1.22.5.
4
5
The GStreamer team is thrilled to announce a new major feature release
6
of your favourite cross-platform multimedia framework!
7
gst-plugins-bad-1.22.4.tar.xz/ext/teletextdec/gstteletextdec.c -> gst-plugins-bad-1.22.5.tar.xz/ext/teletextdec/gstteletextdec.c
Changed
34
1
2
if (!g_strcmp0 (subs->str, ""))
3
g_string_append (subs, "\n");
4
5
- text = subs->str;
6
size = subs->len + 1;
7
- g_string_free (subs, FALSE);
8
+ text = g_string_free (subs, FALSE);
9
g_strfreev (lines);
10
} else {
11
size = page->columns * page->rows;
12
13
gchar **lines;
14
GString *subs;
15
guint start, stop, k;
16
+ gsize len;
17
gint i, j;
18
19
colors = (gchar **) g_malloc (sizeof (gchar *) * (rows + 1));
20
21
}
22
23
/* Allocate new buffer */
24
- *buf = gst_buffer_new_wrapped (subs->str, subs->len + 1);
25
+ len = subs->len + 1;
26
+ *buf = gst_buffer_new_wrapped (g_string_free (subs, FALSE), len);
27
28
g_strfreev (lines);
29
g_strfreev (colors);
30
- g_string_free (subs, FALSE);
31
return GST_FLOW_OK;
32
}
33
34
gst-plugins-bad-1.22.4.tar.xz/ext/webrtc/gstwebrtcbin.c -> gst-plugins-bad-1.22.5.tar.xz/ext/webrtc/gstwebrtcbin.c
Changed
12
1
2
g_object_get (webrtc->priv->sctp_transport, "max-channels", &max_channels,
3
NULL);
4
5
+ if (max_channels <= 0) {
6
+ max_channels = 65534;
7
+ }
8
+
9
g_return_val_if_fail (id <= max_channels, NULL);
10
}
11
12
gst-plugins-bad-1.22.4.tar.xz/ext/webrtc/gstwebrtcstats.c -> gst-plugins-bad-1.22.5.tar.xz/ext/webrtc/gstwebrtcstats.c
Changed
13
1
2
can->stream_id, can->ipaddr, can->port);
3
stats = gst_structure_new_empty (id);
4
5
- if (strcmp (candidate_tag, "local")) {
6
+ if (g_str_equal (candidate_tag, "local")) {
7
type = GST_WEBRTC_STATS_LOCAL_CANDIDATE;
8
- } else if (strcmp (candidate_tag, "remote")) {
9
+ } else if (g_str_equal (candidate_tag, "remote")) {
10
type = GST_WEBRTC_STATS_REMOTE_CANDIDATE;
11
} else {
12
GST_WARNING_OBJECT (webrtc, "Invalid ice candidate tag: %s", candidate_tag);
13
gst-plugins-bad-1.22.4.tar.xz/gst-libs/gst/d3d11/gstd3d11bufferpool.cpp -> gst-plugins-bad-1.22.5.tar.xz/gst-libs/gst/d3d11/gstd3d11bufferpool.cpp
Changed
111
1
2
GstD3D11Allocator *allocGST_VIDEO_MAX_PLANES;
3
4
GstD3D11AllocationParams *d3d11_params;
5
- gboolean texture_array_pool;
6
7
gint strideGST_VIDEO_MAX_PLANES;
8
gsize offsetGST_VIDEO_MAX_PLANES;
9
10
GstStructure * config);
11
static GstFlowReturn gst_d3d11_buffer_pool_alloc_buffer (GstBufferPool * pool,
12
GstBuffer ** buffer, GstBufferPoolAcquireParams * params);
13
-static GstFlowReturn gst_d3d11_buffer_pool_acquire_buffer (GstBufferPool * pool,
14
- GstBuffer ** buffer, GstBufferPoolAcquireParams * params);
15
-static void gst_d3d11_buffer_pool_reset_buffer (GstBufferPool * pool,
16
- GstBuffer * buffer);
17
static gboolean gst_d3d11_buffer_pool_start (GstBufferPool * pool);
18
static gboolean gst_d3d11_buffer_pool_stop (GstBufferPool * pool);
19
20
21
bufferpool_class->get_options = gst_d3d11_buffer_pool_get_options;
22
bufferpool_class->set_config = gst_d3d11_buffer_pool_set_config;
23
bufferpool_class->alloc_buffer = gst_d3d11_buffer_pool_alloc_buffer;
24
- bufferpool_class->acquire_buffer = gst_d3d11_buffer_pool_acquire_buffer;
25
- bufferpool_class->reset_buffer = gst_d3d11_buffer_pool_reset_buffer;
26
bufferpool_class->start = gst_d3d11_buffer_pool_start;
27
bufferpool_class->stop = gst_d3d11_buffer_pool_stop;
28
29
30
max_buffers, max_array_size);
31
max_buffers = max_array_size;
32
}
33
-
34
- priv->texture_array_pool = TRUE;
35
- } else {
36
- priv->texture_array_pool = FALSE;
37
}
38
39
offset = 0;
40
41
GstFlowReturn ret = GST_FLOW_OK;
42
43
buf = gst_buffer_new ();
44
- /* In case of texture-array, we are releasing memory objects in
45
- * the GstBufferPool::reset_buffer() so that GstD3D11Memory objects can be
46
- * returned to the GstD3D11PoolAllocator. So, underlying GstD3D11Memory
47
- * will be filled in the later GstBufferPool::acquire_buffer() call.
48
- * Don't fill memory here for non-texture-array therefore */
49
- if (!priv->texture_array_pool) {
50
- ret = gst_d3d11_buffer_pool_fill_buffer (self, buf);
51
- if (ret != GST_FLOW_OK) {
52
- gst_buffer_unref (buf);
53
- return ret;
54
- }
55
+ ret = gst_d3d11_buffer_pool_fill_buffer (self, buf);
56
+ if (ret != GST_FLOW_OK) {
57
+ gst_buffer_unref (buf);
58
+ return ret;
59
}
60
61
gst_buffer_add_video_meta_full (buf, GST_VIDEO_FRAME_FLAG_NONE,
62
63
return GST_FLOW_OK;
64
}
65
66
-static GstFlowReturn
67
-gst_d3d11_buffer_pool_acquire_buffer (GstBufferPool * pool,
68
- GstBuffer ** buffer, GstBufferPoolAcquireParams * params)
69
-{
70
- GstD3D11BufferPool *self = GST_D3D11_BUFFER_POOL (pool);
71
- GstD3D11BufferPoolPrivate *priv = self->priv;
72
- GstFlowReturn ret;
73
-
74
- ret = GST_BUFFER_POOL_CLASS (parent_class)->acquire_buffer (pool,
75
- buffer, params);
76
-
77
- if (ret != GST_FLOW_OK)
78
- return ret;
79
-
80
- /* Don't need special handling for non-texture-array case */
81
- if (!priv->texture_array_pool)
82
- return ret;
83
-
84
- /* Baseclass will hold empty buffer in this case, fill GstMemory */
85
- g_assert (gst_buffer_n_memory (*buffer) == 0);
86
-
87
- return gst_d3d11_buffer_pool_fill_buffer (self, *buffer);
88
-}
89
-
90
-static void
91
-gst_d3d11_buffer_pool_reset_buffer (GstBufferPool * pool, GstBuffer * buffer)
92
-{
93
- GstD3D11BufferPool *self = GST_D3D11_BUFFER_POOL (pool);
94
- GstD3D11BufferPoolPrivate *priv = self->priv;
95
-
96
- /* If we are using texture array, we should return GstD3D11Memory to
97
- * to the GstD3D11PoolAllocator, so that the allocator can wake up
98
- * if it's waiting for available memory object */
99
- if (priv->texture_array_pool) {
100
- GST_LOG_OBJECT (self, "Returning memory to allocator");
101
- gst_buffer_remove_all_memory (buffer);
102
- }
103
-
104
- GST_BUFFER_POOL_CLASS (parent_class)->reset_buffer (pool, buffer);
105
- GST_BUFFER_FLAGS (buffer) = 0;
106
-}
107
-
108
static gboolean
109
gst_d3d11_buffer_pool_start (GstBufferPool * pool)
110
{
111
gst-plugins-bad-1.22.4.tar.xz/gst-plugins-bad.doap -> gst-plugins-bad-1.22.5.tar.xz/gst-plugins-bad.doap
Changed
18
1
2
3
<release>
4
<Version>
5
+ <revision>1.22.5</revision>
6
+ <branch>1.22</branch>
7
+ <name></name>
8
+ <created>2023-07-20</created>
9
+ <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.22.5.tar.xz" />
10
+ </Version>
11
+ </release>
12
+
13
+ <release>
14
+ <Version>
15
<revision>1.22.4</revision>
16
<branch>1.22</branch>
17
<name></name>
18
gst-plugins-bad-1.22.4.tar.xz/gst/jpegformat/gstjpegparse.c -> gst-plugins-bad-1.22.5.tar.xz/gst/jpegformat/gstjpegparse.c
Changed
139
1
2
* + APP3 -- meta (same as exif)
3
* + APP12 -- Photoshop Save for Web: Ducky / Picture info
4
* + APP13 -- Adobe IRB
5
+ * + check for interlaced mjpeg
6
*/
7
8
#ifdef HAVE_CONFIG_H
9
10
guint16 xd, yd;
11
guint8 unit, xt, yt;
12
13
- if (seg->size < 14) /* length of interesting data in APP0 */
14
+ if (seg->size < 6) /* less than 6 means no id string */
15
return FALSE;
16
17
gst_byte_reader_init (&reader, seg->data + seg->offset, seg->size);
18
19
return TRUE;
20
}
21
22
- return FALSE;
23
+ /* https://exiftool.org/TagNames/JPEG.html#AVI1 */
24
+ if (g_strcmp0 (id_str, "AVI1") == 0) {
25
+ /* polarity */
26
+ if (!gst_byte_reader_get_uint8 (&reader, &unit))
27
+ return FALSE;
28
+
29
+ /* TODO: update caps for interlaced MJPEG */
30
+ GST_DEBUG_OBJECT (parse, "MJPEG interleaved field: %d", unit);
31
+
32
+ return TRUE;
33
+ }
34
+
35
+ GST_DEBUG_OBJECT (parse, "Unhandled app0: %s", id_str);
36
+
37
+ return TRUE;
38
}
39
40
/* *INDENT-OFF* */
41
42
const guint8 *data;
43
gint i;
44
45
+ if (seg->size < 6) /* less than 6 means no id string */
46
+ return FALSE;
47
+
48
gst_byte_reader_init (&reader, seg->data + seg->offset, seg->size);
49
gst_byte_reader_skip_unchecked (&reader, 2);
50
51
52
gst_tag_list_unref (tags);
53
} else {
54
GST_INFO_OBJECT (parse, "failed to parse %s: %s", id_str, data);
55
+ return FALSE;
56
}
57
}
58
59
return TRUE;
60
}
61
62
+ GST_DEBUG_OBJECT (parse, "Unhandled app1: %s", id_str);
63
+
64
return TRUE;
65
}
66
67
68
const gchar *id_str;
69
guint8 transform;
70
71
- if (seg->size < 12) /* length of interesting data in APP14 */
72
+ if (seg->size < 6) /* less than 6 means no id string */
73
return FALSE;
74
75
gst_byte_reader_init (&reader, seg->data + seg->offset, seg->size);
76
77
if (!gst_byte_reader_get_string_utf8 (&reader, &id_str))
78
return FALSE;
79
80
- if (!g_str_has_prefix (id_str, "Adobe"))
81
- return FALSE;
82
+ if (!g_str_has_prefix (id_str, "Adobe")) {
83
+ GST_DEBUG_OBJECT (parse, "Unhandled app14: %s", id_str);
84
+ return TRUE;
85
+ }
86
87
/* skip version and flags */
88
if (!gst_byte_reader_skip (&reader, 6))
89
90
return FALSE;
91
92
comment = get_utf8_from_data (data, size);
93
+ if (!comment)
94
+ return FALSE;
95
96
- if (comment) {
97
- GST_INFO_OBJECT (parse, "comment found: %s", comment);
98
- gst_tag_list_add (get_tag_list (parse), GST_TAG_MERGE_REPLACE,
99
- GST_TAG_COMMENT, comment, NULL);
100
- g_free (comment);
101
- }
102
+ GST_INFO_OBJECT (parse, "comment found: %s", comment);
103
+ gst_tag_list_add (get_tag_list (parse), GST_TAG_MERGE_REPLACE,
104
+ GST_TAG_COMMENT, comment, NULL);
105
+ g_free (comment);
106
107
return TRUE;
108
}
109
110
case GST_JPEG_MARKER_COM:
111
if (!gst_jpeg_parse_com (parse, &seg)) {
112
GST_ELEMENT_WARNING (parse, STREAM, FORMAT,
113
- ("Failed to parse com segment"), (NULL));
114
+ ("Failed to parse com segment"), ("Invalid data"));
115
}
116
break;
117
case GST_JPEG_MARKER_APP0:
118
if (!gst_jpeg_parse_app0 (parse, &seg)) {
119
GST_ELEMENT_WARNING (parse, STREAM, FORMAT,
120
- ("Failed to parse app0 segment"), (NULL));
121
+ ("Failed to parse app0 segment"), ("Invalid data"));
122
}
123
break;
124
case GST_JPEG_MARKER_APP1:
125
if (!gst_jpeg_parse_app1 (parse, &seg)) {
126
GST_ELEMENT_WARNING (parse, STREAM, FORMAT,
127
- ("Failed to parse app1 segment"), (NULL));
128
+ ("Failed to parse app1 segment"), ("Invalid data"));
129
}
130
break;
131
case GST_JPEG_MARKER_APP14:
132
if (!gst_jpeg_parse_app14 (parse, &seg)) {
133
GST_ELEMENT_WARNING (parse, STREAM, FORMAT,
134
- ("Failed to parse app14 segment"), (NULL));
135
+ ("Failed to parse app14 segment"), ("Invalid data"));
136
}
137
break;
138
case GST_JPEG_MARKER_DHT:
139
gst-plugins-bad-1.22.4.tar.xz/meson.build -> gst-plugins-bad-1.22.5.tar.xz/meson.build
Changed
33
1
2
project('gst-plugins-bad', 'c', 'cpp',
3
- version : '1.22.4',
4
+ version : '1.22.5',
5
meson_version : '>= 0.62',
6
default_options : 'warning_level=1',
7
'buildtype=debugoptimized' )
8
9
message('GStreamer OpenGL platforms: @0@'.format(' '.join(gst_gl_platforms)))
10
message('GStreamer OpenGL apis: @0@'.format(' '.join(gst_gl_apis)))
11
12
- foreach ws : 'x11', 'wayland', 'android', 'cocoa', 'eagl', 'win32', 'dispmanx', 'viv_fb'
13
+ foreach ws : 'x11', 'wayland', 'android', 'cocoa', 'eagl', 'win32', 'dispmanx'
14
set_variable('gst_gl_have_window_@0@'.format(ws), gst_gl_winsys.contains(ws))
15
endforeach
16
+ # Handling viv-fb separately, because the winsys is called "viv-fb", but the
17
+ # variable suffix must be "viv_fb" (dashes are not allowed in variable names).
18
+ set_variable('gst_gl_have_window_viv_fb', gst_gl_winsys.contains('viv-fb'))
19
20
foreach p : 'glx', 'egl', 'cgl', 'eagl', 'wgl'
21
set_variable('gst_gl_have_platform_@0@'.format(p), gst_gl_platforms.contains(p))
22
23
gstglegl_dep = dependency('gstreamer-gl-egl-1.0', version : gst_req,
24
fallback : 'gst-plugins-base', 'gstglegl_dep', required: true)
25
endif
26
+ if gst_gl_have_window_viv_fb
27
+ gstglviv_fb_dep = dependency('gstreamer-gl-viv-fb-1.0', version : gst_req,
28
+ fallback : 'gst-plugins-base', 'gstglviv_fb_dep', required: true)
29
+ endif
30
endif
31
32
libm = cc.find_library('m', required : false)
33
gst-plugins-bad-1.22.4.tar.xz/po/gst-plugins-bad-1.0.pot -> gst-plugins-bad-1.22.5.tar.xz/po/gst-plugins-bad-1.0.pot
Changed
13
1
2
#, fuzzy
3
msgid ""
4
msgstr ""
5
-"Project-Id-Version: gst-plugins-bad-1.22.4\n"
6
+"Project-Id-Version: gst-plugins-bad-1.22.5\n"
7
"Report-Msgid-Bugs-To: \n"
8
-"POT-Creation-Date: 2023-06-20 17:48+0100\n"
9
+"POT-Creation-Date: 2023-07-20 15:26+0100\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
gst-plugins-bad-1.22.4.tar.xz/po/gst-plugins-bad.pot -> gst-plugins-bad-1.22.5.tar.xz/po/gst-plugins-bad.pot
Changed
13
1
2
#, fuzzy
3
msgid ""
4
msgstr ""
5
-"Project-Id-Version: gst-plugins-bad-1.22.4\n"
6
+"Project-Id-Version: gst-plugins-bad-1.22.5\n"
7
"Report-Msgid-Bugs-To: \n"
8
-"POT-Creation-Date: 2023-06-20 17:48+0100\n"
9
+"POT-Creation-Date: 2023-07-20 15:26+0100\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
gst-plugins-bad-1.22.4.tar.xz/sys/va/gstjpegdecoder.c -> gst-plugins-bad-1.22.5.tar.xz/sys/va/gstjpegdecoder.c
Changed
14
1
2
break;
3
4
case GST_JPEG_MARKER_DRI:
5
- if (!(valid_state (priv->state, GST_JPEG_DECODER_STATE_GOT_SOS)
6
- && decode_restart_interval (self, &seg)))
7
+ if (!decode_restart_interval (self, &seg)) {
8
+ GST_WARNING_OBJECT (self, "Fail to decode restart interval");
9
goto unmap_and_error;
10
+ }
11
break;
12
case GST_JPEG_MARKER_DNL:
13
break;
14
gst-plugins-bad-1.22.4.tar.xz/sys/winks/gstksvideodevice.c -> gst-plugins-bad-1.22.5.tar.xz/sys/winks/gstksvideodevice.c
Changed
11
1
2
: "failed to retrieve system error message");
3
}
4
5
- *ret_error_str = message->str;
6
- g_string_free (message, FALSE);
7
+ *ret_error_str = g_string_free (message, FALSE);
8
}
9
}
10
11
gst-plugins-bad-1.22.4.tar.xz/sys/winks/kshelpers.c -> gst-plugins-bad-1.22.5.tar.xz/sys/winks/kshelpers.c
Changed
21
1
2
gchar *
3
ks_options_flags_to_string (gulong flags)
4
{
5
- gchar *ret;
6
GString *str;
7
8
str = g_string_sized_new (128);
9
10
if (flags != 0)
11
g_string_append_printf (str, "|0x%08x", (guint) flags);
12
13
- ret = str->str;
14
- g_string_free (str, FALSE);
15
-
16
- return ret;
17
+ return g_string_free (str, FALSE);
18
}
19
20
typedef struct
21
gst-plugins-bad-1.22.4.tar.xz/tests/check/elements/webrtcbin.c -> gst-plugins-bad-1.22.5.tar.xz/tests/check/elements/webrtcbin.c
Changed
79
1
2
GST_END_TEST;
3
4
static void
5
+signal_data_channel (struct test_webrtc *t,
6
+ GstElement * element, GObject * our, gpointer user_data)
7
+{
8
+ test_webrtc_signal_state_unlocked (t, STATE_CUSTOM);
9
+}
10
+
11
+GST_START_TEST (test_data_channel_create_two_channels)
12
+{
13
+ struct test_webrtc *t = test_webrtc_new ();
14
+ GObject *channel = NULL;
15
+ GObject *channel2 = NULL;
16
+ VAL_SDP_INIT (media_count, _count_num_sdp_media, GUINT_TO_POINTER (1), NULL);
17
+ VAL_SDP_INIT (offer, on_sdp_has_datachannel, NULL, &media_count);
18
+ gchar *label;
19
+ GstStructure *options = NULL;
20
+
21
+ t->on_negotiation_needed = NULL;
22
+ t->on_ice_candidate = NULL;
23
+ t->on_prepare_data_channel = have_prepare_data_channel;
24
+ t->on_data_channel = signal_data_channel;
25
+
26
+ fail_if (gst_element_set_state (t->webrtc1, GST_STATE_READY) ==
27
+ GST_STATE_CHANGE_FAILURE);
28
+ fail_if (gst_element_set_state (t->webrtc2, GST_STATE_READY) ==
29
+ GST_STATE_CHANGE_FAILURE);
30
+
31
+ g_signal_emit_by_name (t->webrtc1, "create-data-channel", "label", NULL,
32
+ &channel);
33
+ g_assert_nonnull (channel);
34
+ g_object_get (channel, "label", &label, NULL);
35
+ g_assert_cmpstr (label, ==, "label");
36
+ g_free (label);
37
+ g_object_unref (channel);
38
+
39
+ fail_if (gst_element_set_state (t->webrtc1, GST_STATE_PLAYING) ==
40
+ GST_STATE_CHANGE_FAILURE);
41
+ fail_if (gst_element_set_state (t->webrtc2, GST_STATE_PLAYING) ==
42
+ GST_STATE_CHANGE_FAILURE);
43
+
44
+ /* Wait SCTP transport creation */
45
+ test_validate_sdp_full (t, &offer, &offer, 1 << STATE_CUSTOM, FALSE);
46
+
47
+ /* Create another channel on an existing SCTP transport, forcing an ID that
48
+ should comply with the max-channels requiremennt, this should not raise a
49
+ critical warning, the id is beneath the required limits. */
50
+ options =
51
+ gst_structure_new ("options", "id", G_TYPE_INT, 2, "negotiated",
52
+ G_TYPE_BOOLEAN, TRUE, NULL);
53
+ g_signal_emit_by_name (t->webrtc1, "create-data-channel", "label2", options,
54
+ &channel2);
55
+ gst_structure_free (options);
56
+ g_assert_nonnull (channel2);
57
+ g_object_get (channel2, "label", &label, NULL);
58
+ g_assert_cmpstr (label, ==, "label2");
59
+ g_free (label);
60
+ g_object_unref (channel2);
61
+
62
+ test_webrtc_free (t);
63
+}
64
+
65
+GST_END_TEST;
66
+
67
+static void
68
have_data_channel (struct test_webrtc *t, GstElement * element,
69
GObject * our, gpointer user_data)
70
{
71
72
tcase_add_test (tc, test_msid);
73
if (sctpenc && sctpdec) {
74
tcase_add_test (tc, test_data_channel_create);
75
+ tcase_add_test (tc, test_data_channel_create_two_channels);
76
tcase_add_test (tc, test_data_channel_remote_notify);
77
tcase_add_test (tc, test_data_channel_transfer_string);
78
tcase_add_test (tc, test_data_channel_transfer_data);
79
gst-plugins-bad-1.22.5.tar.xz/tests/check/libs/d3d11memory.c
Added
235
1
2
+/*
3
+ * GStreamer
4
+ * Copyright (C) 2023 Seungha Yang <seungha@centricular.com>
5
+ *
6
+ * This library is free software; you can redistribute it and/or
7
+ * modify it under the terms of the GNU Library General Public
8
+ * License as published by the Free Software Foundation; either
9
+ * version 2 of the License, or (at your option) any later version.
10
+ *
11
+ * This library is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
+ * Library General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Library General Public
17
+ * License along with this library; if not, write to the
18
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
19
+ * Boston, MA 02110-1301, USA.
20
+ */
21
+
22
+#ifdef HAVE_CONFIG_H
23
+#include "config.h"
24
+#endif
25
+
26
+#include <gst/gst.h>
27
+#include <gst/check/gstcheck.h>
28
+#include <gst/d3d11/gstd3d11.h>
29
+#include <gst/video/video.h>
30
+#include <string.h>
31
+
32
+static GstD3D11Device *device = NULL;
33
+static GQuark memory_tester_quark;
34
+
35
+static void
36
+setup_func (void)
37
+{
38
+ device = gst_d3d11_device_new (0, D3D11_CREATE_DEVICE_BGRA_SUPPORT);
39
+ fail_unless (GST_IS_D3D11_DEVICE (device));
40
+
41
+ memory_tester_quark = g_quark_from_static_string ("gst-d3d11-memory-tester");
42
+}
43
+
44
+static void
45
+teardown_func (void)
46
+{
47
+ gst_object_unref (device);
48
+}
49
+
50
+static void
51
+allocator_finalize_cb (gboolean * alloc_finalized)
52
+{
53
+ *alloc_finalized = TRUE;
54
+}
55
+
56
+GST_START_TEST (test_free_active_allocator)
57
+{
58
+ GstD3D11PoolAllocator *alloc;
59
+ GstMemory *mem = NULL;
60
+ gboolean ret;
61
+ GstFlowReturn flow_ret;
62
+ gboolean alloc_finalized = FALSE;
63
+ D3D11_TEXTURE2D_DESC desc;
64
+
65
+ memset (&desc, 0, sizeof (desc));
66
+
67
+ desc.Width = 16;
68
+ desc.Height = 16;
69
+ desc.MipLevels = 1;
70
+ desc.ArraySize = 1;
71
+ desc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
72
+ desc.SampleDesc.Count = 1;
73
+ desc.SampleDesc.Quality = 0;
74
+ desc.Usage = D3D11_USAGE_DEFAULT;
75
+
76
+ alloc = gst_d3d11_pool_allocator_new (device, &desc);
77
+ fail_unless (alloc);
78
+
79
+ g_object_set_qdata_full (G_OBJECT (alloc), memory_tester_quark,
80
+ &alloc_finalized, (GDestroyNotify) allocator_finalize_cb);
81
+
82
+ /* inactive pool should return flusing */
83
+ flow_ret = gst_d3d11_pool_allocator_acquire_memory (alloc, &mem);
84
+ fail_unless (flow_ret == GST_FLOW_FLUSHING);
85
+ fail_if (mem);
86
+
87
+ ret = gst_d3d11_allocator_set_active (GST_D3D11_ALLOCATOR (alloc), TRUE);
88
+ fail_unless (ret);
89
+
90
+ flow_ret = gst_d3d11_pool_allocator_acquire_memory (alloc, &mem);
91
+ fail_unless (flow_ret == GST_FLOW_OK);
92
+ fail_unless (mem);
93
+
94
+ gst_object_unref (alloc);
95
+ /* Only memory should hold refcount at this moment */
96
+ fail_unless (G_OBJECT (alloc)->ref_count == 1);
97
+ fail_if (alloc_finalized);
98
+
99
+ /* allocator should be finalized as well */
100
+ gst_memory_unref (mem);
101
+ fail_unless (alloc_finalized);
102
+}
103
+
104
+GST_END_TEST;
105
+
106
+typedef struct
107
+{
108
+ GMutex lock;
109
+ GCond cond;
110
+ gboolean blocked;
111
+ GstBufferPool *pool;
112
+} UnblockTestData;
113
+
114
+static gpointer
115
+alloc_thread (UnblockTestData * data)
116
+{
117
+ GstBuffer *buffers2;
118
+ GstBuffer *flush_buf = NULL;
119
+ GstFlowReturn ret;
120
+
121
+ g_mutex_lock (&data->lock);
122
+ ret = gst_buffer_pool_acquire_buffer (data->pool, &buffers0, NULL);
123
+ fail_unless (ret == GST_FLOW_OK);
124
+
125
+ ret = gst_buffer_pool_acquire_buffer (data->pool, &buffers1, NULL);
126
+ fail_unless (ret == GST_FLOW_OK);
127
+
128
+ /* below call will be blocked by buffer pool */
129
+ data->blocked = TRUE;
130
+ g_cond_signal (&data->cond);
131
+ g_mutex_unlock (&data->lock);
132
+
133
+ ret = gst_buffer_pool_acquire_buffer (data->pool, &flush_buf, NULL);
134
+ fail_unless (ret == GST_FLOW_FLUSHING);
135
+
136
+ gst_buffer_unref (buffers0);
137
+ gst_buffer_unref (buffers1);
138
+
139
+ return NULL;
140
+}
141
+
142
+GST_START_TEST (test_unblock_on_stop)
143
+{
144
+ GstStructure *config;
145
+ GstVideoInfo info;
146
+ GstCaps *caps;
147
+ GstD3D11AllocationParams *params;
148
+ UnblockTestData data;
149
+ GThread *thread;
150
+
151
+ data.blocked = FALSE;
152
+ g_mutex_init (&data.lock);
153
+ g_cond_init (&data.cond);
154
+
155
+ gst_video_info_set_format (&info, GST_VIDEO_FORMAT_NV12, 16, 16);
156
+ caps = gst_video_info_to_caps (&info);
157
+ fail_unless (caps);
158
+
159
+ data.pool = gst_d3d11_buffer_pool_new (device);
160
+ fail_unless (data.pool);
161
+
162
+ config = gst_buffer_pool_get_config (data.pool);
163
+ fail_unless (config);
164
+
165
+ params = gst_d3d11_allocation_params_new (device,
166
+ &info, GST_D3D11_ALLOCATION_FLAG_TEXTURE_ARRAY, 0, 0);
167
+ fail_unless (params);
168
+
169
+ params->desc0.ArraySize = 2;
170
+
171
+ gst_buffer_pool_config_set_d3d11_allocation_params (config, params);
172
+ gst_d3d11_allocation_params_free (params);
173
+ gst_buffer_pool_config_set_params (config, caps, info.size, 0, 2);
174
+ gst_caps_unref (caps);
175
+
176
+ fail_unless (gst_buffer_pool_set_config (data.pool, config));
177
+ fail_unless (gst_buffer_pool_set_active (data.pool, TRUE));
178
+
179
+ thread = g_thread_new (NULL, (GThreadFunc) alloc_thread, &data);
180
+
181
+ g_mutex_lock (&data.lock);
182
+ while (!data.blocked)
183
+ g_cond_wait (&data.cond, &data.lock);
184
+ g_mutex_unlock (&data.lock);
185
+
186
+ /* Wait 1 second for the alloc thread to be actually blocked */
187
+ Sleep (1000);
188
+
189
+ fail_unless (gst_buffer_pool_set_active (data.pool, FALSE));
190
+ g_thread_join (thread);
191
+
192
+ gst_object_unref (data.pool);
193
+ g_mutex_clear (&data.lock);
194
+ g_cond_clear (&data.cond);
195
+}
196
+
197
+GST_END_TEST;
198
+
199
+static gboolean
200
+check_d3d11_device (void)
201
+{
202
+ GstD3D11Device *device;
203
+
204
+ device = gst_d3d11_device_new (0, D3D11_CREATE_DEVICE_BGRA_SUPPORT);
205
+ if (device) {
206
+ gst_object_unref (device);
207
+ return TRUE;
208
+ }
209
+
210
+ return FALSE;
211
+}
212
+
213
+static Suite *
214
+d3d11memory_suite (void)
215
+{
216
+ Suite *s;
217
+ TCase *tc_chain;
218
+
219
+ s = suite_create ("d3d11memory");
220
+ tc_chain = tcase_create ("general");
221
+
222
+ suite_add_tcase (s, tc_chain);
223
+ tcase_add_checked_fixture (tc_chain, setup_func, teardown_func);
224
+
225
+ if (!check_d3d11_device ())
226
+ return s;
227
+
228
+ tcase_add_test (tc_chain, test_free_active_allocator);
229
+ tcase_add_test (tc_chain, test_unblock_on_stop);
230
+
231
+ return s;
232
+}
233
+
234
+GST_CHECK_MAIN (d3d11memory);
235
gst-plugins-bad-1.22.4.tar.xz/tests/check/meson.build -> gst-plugins-bad-1.22.5.tar.xz/tests/check/meson.build
Changed
9
1
2
'libs/vkimage.c', not gstvulkan_dep.found(), gstvulkan_dep,
3
'libs/vkinstance.c', not gstvulkan_dep.found(), gstvulkan_dep,
4
'libs/d3d11device.cpp', not gstd3d11_dep.found(), gstd3d11_dep,
5
+ 'libs/d3d11memory.c', not gstd3d11_dep.found(), gstd3d11_dep,
6
7
8
# FIXME: unistd dependency, unstable or not tested yet on windows
9
gst-plugins-bad-1.22.4.tar.xz/tools/gst-app-maker -> gst-plugins-bad-1.22.5.tar.xz/tools/gst-app-maker
Changed
10
1
2
if (verbose) g_print ("pipeline: %s\n", pipe_desc->str);
3
4
pipeline = (GstElement *) gst_parse_launch (pipe_desc->str, &error);
5
- g_string_free (pipe_desc, FALSE);
6
+ g_string_free (pipe_desc, TRUE);
7
8
if (error) {
9
g_print("pipeline parsing error: %s\n", error->message);
10
Refresh
No build results available
Refresh
No rpmlint results available
Login required, please
login
or
signup
in order to comment