Changes of Revision 18

gstreamer-plugins-bad-codecs.changes Changed
x
 
1
@@ -1,4 +1,9 @@
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
@@ -7,7 +7,7 @@
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
@@ -1,3 +1,103 @@
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
201
 
1
@@ -2,13 +2,13 @@
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
@@ -2008,6 +2008,187 @@
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
gst-plugins-bad-1.22.4.tar.xz/RELEASE -> gst-plugins-bad-1.22.5.tar.xz/RELEASE Changed
7
 
1
@@ -1,4 +1,4 @@
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
@@ -874,9 +874,8 @@
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
@@ -935,6 +934,7 @@
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
@@ -965,11 +965,11 @@
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
@@ -7110,6 +7110,10 @@
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
@@ -581,9 +581,9 @@
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
@@ -50,7 +50,6 @@
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
@@ -66,10 +65,6 @@
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
@@ -84,8 +79,6 @@
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
@@ -244,10 +237,6 @@
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
@@ -370,17 +359,10 @@
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
@@ -393,48 +375,6 @@
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
@@ -35,6 +35,16 @@
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
@@ -50,6 +50,7 @@
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
@@ -367,7 +368,7 @@
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
@@ -436,7 +437,21 @@
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
@@ -460,6 +475,9 @@
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
@@ -497,12 +515,15 @@
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
@@ -513,7 +534,7 @@
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
@@ -522,8 +543,10 @@
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
@@ -568,13 +591,13 @@
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
@@ -773,25 +796,25 @@
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
@@ -1,5 +1,5 @@
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
@@ -352,9 +352,12 @@
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
@@ -380,6 +383,10 @@
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
@@ -6,9 +6,9 @@
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
@@ -6,9 +6,9 @@
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
@@ -481,9 +481,10 @@
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
@@ -237,8 +237,7 @@
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
@@ -383,7 +383,6 @@
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
@@ -404,10 +403,7 @@
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
@@ -2049,6 +2049,69 @@
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
@@ -5775,6 +5838,7 @@
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
201
 
1
@@ -0,0 +1,233 @@
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
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
@@ -101,6 +101,7 @@
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
@@ -261,7 +261,7 @@
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