Changes of Revision 31
gstreamer-plugins-bad-codecs.changes
Changed
x
1
2
-------------------------------------------------------------------
3
+Mon Feb 3 09:28:58 UTC 2025 - Bjørn Lie <zaitor@opensuse.org>
4
+
5
+- Update to version 1.24.12
6
+
7
+-------------------------------------------------------------------
8
Sat Jan 11 13:37:26 UTC 2025 - Bjørn Lie <zaitor@opensuse.org>
9
10
- Update to version 1.24.11
11
gstreamer-plugins-bad-codecs.spec
Changed
10
1
2
%define _version 1.24.0
3
4
Name: gstreamer-plugins-bad-codecs
5
-Version: 1.24.11
6
+Version: 1.24.12
7
Release: 0
8
Summary: Codecs/plugins for gstreamer-plugins-bad
9
License: LGPL-2.1-or-later
10
_service
Changed
10
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-bad/gst-plugins-bad-1.24.11.tar.xz</param>
6
+ <param name="path">/src/gst-plugins-bad/gst-plugins-bad-1.24.12.tar.xz</param>
7
</service>
8
<service name="set_version" mode="buildtime"/>
9
</services>
10
_service:download_url:gst-plugins-bad-1.24.11.tar.xz/ChangeLog -> _service:download_url:gst-plugins-bad-1.24.12.tar.xz/ChangeLog
Changed
190
1
2
+=== release 1.24.12 ===
3
+
4
+2025-01-29 20:12:29 +0000 Tim-Philipp Müller <tim@centricular.com>
5
+
6
+ * NEWS:
7
+ * RELEASE:
8
+ * gst-plugins-bad.doap:
9
+ * meson.build:
10
+ Release 1.24.12
11
+
12
+2024-12-30 21:59:03 +0100 Samuel Thibault <samuel.thibault@ens-lyon.org>
13
+
14
+ * ext/gtk/meson.build:
15
+ * tests/examples/gtk/meson.build:
16
+ * tests/examples/waylandsink/meson.build:
17
+ meson: Fix build with gtk3 but not wayland
18
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8260>
19
+
20
+2025-01-20 18:19:18 +0100 Andoni Morales Alastruey <ylatuya@gmail.com>
21
+
22
+ * sys/applemedia/vtdec.c:
23
+ vtdec: fix seeks hangs due to a race condition draining
24
+ If the drain function of the decoder triggered by FLUSH_START
25
+ is run while the output loop is running, once the output loop
26
+ finished vtdec->downstream_ret will be GST_FLOW_FLUSHING instead
27
+ of GST_FLOW_OK, which must not be treated as an error since
28
+ the queue is cleaned correctly as well.
29
+ Fix #4179
30
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8361>
31
+
32
+2025-01-23 13:20:50 +0100 Guillaume Desmottes <guillaume.desmottes@onestream.live>
33
+
34
+ * ext/wpe/gstwpevideosrc.cpp:
35
+ wpe: remove glFlush() when filling buffer
36
+ According to https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4162#note_2739338
37
+ it was introduced as workaround for tearing issues.
38
+ I do not experience any tearing without flushing on both nvidia and AMD
39
+ GPU, so I suppose it's no longer needed.
40
+ Slightly improve CPU usage according to my tests.
41
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8355>
42
+
43
+2025-01-20 18:37:23 +0200 Sebastian Dröge <sebastian@centricular.com>
44
+
45
+ * gst/mpegtsdemux/mpegtspacketizer.c:
46
+ tsdemux: Fix backwards PTS wraparound detection with ignore-pcr=true
47
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8332>
48
+
49
+2025-01-10 14:15:21 +0200 Sebastian Dröge <sebastian@centricular.com>
50
+
51
+ * sys/decklink/gstdecklinkvideosink.cpp:
52
+ decklinkvideosink: Fix handling of caps framerate in auto mode
53
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8306>
54
+
55
+2025-01-09 00:42:48 +0100 Carlos Bentzen <cadubentzen@igalia.com>
56
+
57
+ * ext/webrtc/gstwebrtcbin.c:
58
+ * tests/check/elements/webrtcbin.c:
59
+ webrtc: fix duplicate payload types with RTX and multiple video codecs
60
+ Before this patch, there could be duplicate payload types in offers that
61
+ have, within a media section, multiple codecs and RTX enabled:
62
+ ```
63
+ m=video 9 UDP/TLS/RTP/SAVPF 96 97 97 <-- HAS DUPLICATES
64
+ a=sendrecv
65
+ a=rtpmap:96 VP8/90000
66
+ a=rtcp-fb:96 nack
67
+ a=rtcp-fb:96 nack pli
68
+ a=rtcp-fb:96 ccm fir
69
+ a=rtcp-fb:96 transport-cc
70
+ a=rtpmap:97 H264/90000
71
+ a=rtcp-fb:97 nack
72
+ a=rtcp-fb:97 nack pli
73
+ a=rtcp-fb:97 ccm fir
74
+ a=rtcp-fb:97 transport-cc
75
+ a=rtpmap:97 rtx/90000 <--------- PT IS DUPLICATE
76
+ a=fmtp:97 apt=96
77
+ ```
78
+ Fix this by populating the media_mapping array with all media formats
79
+ rather than only the first one. The added test case reproduces the issue,
80
+ which fails without this patch.
81
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8294>
82
+
83
+2025-01-09 11:39:11 +0100 Edward Hervey <edward@centricular.com>
84
+
85
+ * sys/wasapi/gstwasapisink.c:
86
+ wasapi: Use signed value for can_frames
87
+ The can retrieval function can return negative values (which will be properly handled)
88
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8293>
89
+
90
+2025-01-09 10:08:23 +0100 Edward Hervey <edward@centricular.com>
91
+
92
+ * sys/amfcodec/gstamfav1enc.cpp:
93
+ * sys/amfcodec/gstamfh264enc.cpp:
94
+ * sys/amfcodec/gstamfh265enc.cpp:
95
+ amfcodec: Add missing break statement
96
+ Setting frame-sad would also set ltr
97
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8293>
98
+
99
+2025-01-06 09:57:33 +0100 Edward Hervey <edward@centricular.com>
100
+
101
+ * gst-libs/gst/codecparsers/gsth265bitwriter.c:
102
+ h265bitwriter: Don't use type too small
103
+ The computed `coef_val` could exceed the maximum range of a gint8. Use a bigger
104
+ one, the checks after will ensure it's properly cropped/padded
105
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8293>
106
+
107
+2025-01-05 12:08:24 +0100 Edward Hervey <edward@centricular.com>
108
+
109
+ * gst-libs/gst/mpegts/gstmpegtssection.c:
110
+ mpegts: Add missing break
111
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8293>
112
+
113
+2025-01-05 11:46:21 +0100 Edward Hervey <edward@centricular.com>
114
+
115
+ * gst-libs/gst/mse/gstmsemediatype.c:
116
+ msemediabuffer: Fix ASCII character detection
117
+ Use glib function. The previous check was checking whether a signed int was
118
+ lower than its limit (which ... is always TRUE).
119
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8293>
120
+
121
+2025-01-05 11:43:49 +0100 Edward Hervey <edward@centricular.com>
122
+
123
+ * gst-libs/gst/mse/gstsourcebuffer.c:
124
+ msesourcebuffer: Fix unsigned value handling
125
+ Use the explicit valid clocktime handler instead
126
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8293>
127
+
128
+2025-01-05 11:41:44 +0100 Edward Hervey <edward@centricular.com>
129
+
130
+ * gst/rist/gstristsink.c:
131
+ ristsink: Add missing break
132
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8293>
133
+
134
+2025-01-07 12:56:13 +0200 Sebastian Dröge <sebastian@centricular.com>
135
+
136
+ * sys/decklink/gstdecklinkaudiosink.cpp:
137
+ decklinkaudiosink: Don't crash if started without corresponding video sink
138
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8291>
139
+
140
+2025-01-09 16:13:44 -0500 Monty C <montyc1999@gmail.com>
141
+
142
+ * sys/d3d12/hlsl/VSMain_color.hlsl:
143
+ * sys/d3d12/hlsl/VSMain_coord.hlsl:
144
+ * sys/d3d12/hlsl/VSMain_pos.hlsl:
145
+ d3d12: Fix shaders failing to compile with newer dxc versions
146
+ Newer dxc versions enable HLSL 2021 by default, which disallows implicit casting of structs.
147
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8274>
148
+
149
+2025-01-09 17:23:41 +0000 Colin Kinloch <colin.kinloch@collabora.com>
150
+
151
+ * gst-libs/gst/wayland/gstwldisplay.c:
152
+ wayland: Print table split when DMABuf format changes
153
+ The `zwp_linux_dmabuf_v1` doesn't specify an order for modifier events
154
+ to be sent.
155
+ In my case the linear format was sent last resulting in the first item
156
+ in each row being the previous format.
157
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8277>
158
+
159
+2024-12-25 15:04:03 +0100 Philippe Normand <philn@igalia.com>
160
+
161
+ * ext/wpe/gstwpethreadedview.cpp:
162
+ * ext/wpe/gstwpethreadedview.h:
163
+ * ext/wpe/gstwpevideosrc.cpp:
164
+ wpevideosrc: Clear cached SHM buffers after caps re-negotiation
165
+ Otherwise buffers not corresponding to the negotiated caps might be pushed
166
+ downstream.
167
+ Fixes #4094
168
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8266>
169
+
170
+2024-12-27 13:28:18 +0100 Philippe Normand <philn@igalia.com>
171
+
172
+ * ext/wpe/gstwpevideosrc.cpp:
173
+ wpevideosrc: Post progress messages on the bus
174
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8265>
175
+
176
+2024-12-25 14:42:16 +0100 Philippe Normand <philn@igalia.com>
177
+
178
+ * ext/wpe/gstwpevideosrc.cpp:
179
+ wpevideosrc: Handle latency queries
180
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8265>
181
+
182
+2025-01-06 20:11:58 +0000 Tim-Philipp Müller <tim@centricular.com>
183
+
184
+ * meson.build:
185
+ Back to development after 1.24.11
186
+
187
=== release 1.24.11 ===
188
189
2025-01-06 19:48:08 +0000 Tim-Philipp Müller <tim@centricular.com>
190
_service:download_url:gst-plugins-bad-1.24.11.tar.xz/NEWS -> _service:download_url:gst-plugins-bad-1.24.12.tar.xz/NEWS
Changed
158
1
2
- There are known issues with FFmpeg version 6.0.0 due to opaque passing being broken in that version. This affects at least
3
avdec_h264, but may affect other decoders as well. Versions before 6.0.0, and 6.0.1 or higher are not affected.
4
5
-- gst-libav currently doesn’t build against the latest FFmpeg 7.0 release. This is being worked on and tracked in this “libav:
6
+- 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:
7
Fix compatibility with ffmpeg 7” Merge Request.
8
9
## Statistics
10
11
- List of Merge Requests applied in 1.24.11
12
- List of Issues fixed in 1.24.11
13
14
+1.24.12
15
+
16
+The twelfth 1.24 bug-fix release (1.24.12) was released on 29 January 2025.
17
+
18
+This release only contains bugfixes and it should be safe to update from 1.24.x.
19
+
20
+Highlighted bugfixes in 1.24.12
21
+
22
+- d3d12: Fix shaders failing to compile with newer dxc versions
23
+- decklinkvideosink: Fix handling of caps framerate in auto mode; also a decklinkaudiosink fix
24
+- devicemonitor: Fix potential crash macOS when a device is unplugged
25
+- gst-libav: Fix crash in audio encoders like avenc_ac3 if input data has insufficient alignment
26
+- gst-libav: Fix build against FFmpeg 4.2 as in Ubuntu 20.04
27
+- gst-editing-services: Fix Python library name fetching on Windows
28
+- netclientclock: Don’t store failed internal clocks in the cache, so applications can re-try later
29
+- oggdemux: Seeking and duration handling fixes
30
+- osxaudiosrc: Fixes for failing init/no output on recent iOS versions
31
+- qtdemux: Use mvhd transform matrix and support for flipping
32
+- rtpvp9pay: Fix profile parsing
33
+- splitmuxsrc: Fix use with decodebin3 which would occasionally fail with an assertion when seeking
34
+- tsdemux: Fix backwards PTS wraparound detection with ignore-pcr=true
35
+- video-overlay-composition: Declare the video/size/orientation tags for the meta and implement scale transformations
36
+- vtdec: Fix seeks occasionally hanging on macOS due to a race condition when draining
37
+- webrtc: Fix duplicate payload types with RTX and multiple video codecs
38
+- win32-pluginloader: Make sure not to create any windows when inspecting plugins
39
+- wpe: Various fixes for re-negotiation, latency reporting, progress messages on startup
40
+- x264enc: Add missing data to AvcDecoderConfigurationRecord in codec_data for high profile variants
41
+- cerbero: Support using ccache with cmake if enabled
42
+- Various bug fixes, build fixes, memory leak fixes, and other stability and reliability improvements
43
+
44
+gstreamer
45
+
46
+- device: Fix racy nullptr deref on macOS when a device is unplugged
47
+- iterator: Added error handling to filtered iterators
48
+- netclientclock: Don’t ever store failed internal clocks in the cache
49
+- netclock-replay: use gst_c_args when building, fixing build failure on Solaris
50
+- pluginloader-win32: create no window
51
+- pluginloader-win32: fix use after free in find_helper_bin_location
52
+- sparsefile: ensure error is set when read_buffer() returns 0
53
+- basetransform: fix incorrect logging inside gst_base_transform_query_caps
54
+
55
+gst-plugins-base
56
+
57
+- oggdemux: fixes seeking in some cases by not overwriting a valid duration with CLOCK_TIME_NONE
58
+- video-overlay-composition: Declare the video/size/orientation tags for the meta & implement scale transformation
59
+- Various fixes found from adding extra warning flags
60
+
61
+gst-plugins-good
62
+
63
+- osxaudiosrc: Fixes for failing init/no output on recent iOS versions
64
+- qtdemux: Use mvhd transform matrix and support for flipping
65
+- qtmux: fix critical warnings on negotiation error
66
+- rtpvp9pay: fix profile parsing
67
+- splitmuxsrc: Ensure only a single stream-start event is pushed
68
+- splitmuxsrc: decodebin3 Fails with assertion in mq_slot_handle_stream_start when seeking
69
+- Various fixes found from adding extra warning flags
70
+
71
+gst-plugins-bad
72
+
73
+- decklinkvideosink: Fix handling of caps framerate in auto mode
74
+- decklinkaudiosink: Don’t crash if started without corresponding video sink
75
+- d3d12: Fix shaders failing to compile with newer dxc versions
76
+- tsdemux: Fix backwards PTS wraparound detection with ignore-pcr=true
77
+- vtdec: fix seeks hangs due to a race condition draining
78
+- vtdec: seeks freeze the pipeline
79
+- wayland: Print table split when DMABuf format changes
80
+- webrtc: fix duplicate payload types with RTX and multiple video codecs
81
+- wpevideosrc: Clear cached SHM buffers after caps re-negotiation
82
+- wpe: Report latency and start-up progress messages
83
+- wpe: remove glFlush() when filling buffer
84
+- Fix build with gtk3 but not wayland
85
+- Various fixes found from adding extra warning flags
86
+
87
+gst-plugins-ugly
88
+
89
+- x264enc: add missing data to AvcDecoderConfigurationRecord, and switch to GstByteWriter
90
+
91
+GStreamer Rust plugins
92
+
93
+- No changes
94
+
95
+gst-libav
96
+
97
+- avaudenc: fix crash in avenc_ac3 if input buffers are insufficiently aligned
98
+- avcodecmap: Only use new channel positions when compiling against new enough ffmpeg
99
+- gst-libav: 1.24.11: Fails to build with minimum supported ffmpeg version
100
+
101
+gst-rtsp-server
102
+
103
+- No changes
104
+
105
+gstreamer-vaapi
106
+
107
+- No changes
108
+
109
+gstreamer-sharp
110
+
111
+- No changes
112
+
113
+gst-omx
114
+
115
+- No changes
116
+
117
+gst-python
118
+
119
+- No changes
120
+
121
+gst-editing-services
122
+
123
+- ges: Fix Python library name fetching on Windows
124
+
125
+gst-devtools, gst-validate + gst-integration-testsuites
126
+
127
+- No changes
128
+
129
+gst-examples
130
+
131
+- No changes
132
+
133
+Development build environment
134
+
135
+- No changes
136
+
137
+Cerbero build tool and packaging changes in 1.24.12
138
+
139
+- cmake: Support using ccache if enabled
140
+
141
+Contributors to 1.24.12
142
+
143
+Adrian Perez de Castro, Alan Coopersmith, Alexander Slobodeniuk, Andoni Morales Alastruey, Andrew Yooeun Chun, Brad Hards,
144
+Carlos Bentzen, Colin Kinloch, Edward Hervey, François Laignel, Guillaume Desmottes, Jochen Henneberg, Jordan Yelloz, L. E.
145
+Segovia, Monty C, Nirbheek Chauhan, Philippe Normand, Piotr Brzeziński, Rares Branici, Samuel Thibault, Sebastian Dröge, Silvio
146
+Lazzeretti, Tim-Philipp Müller, Tomas Granath, Will Miller,
147
+
148
+… and many others who have contributed bug reports, translations, sent suggestions or helped testing. Thank you all!
149
+
150
+List of merge requests and issues fixed in 1.24.12
151
+
152
+- List of Merge Requests applied in 1.24.12
153
+- List of Issues fixed in 1.24.12
154
+
155
Schedule for 1.26
156
157
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
158
_service:download_url:gst-plugins-bad-1.24.11.tar.xz/RELEASE -> _service:download_url:gst-plugins-bad-1.24.12.tar.xz/RELEASE
Changed
7
1
2
-This is GStreamer gst-plugins-bad 1.24.11.
3
+This is GStreamer gst-plugins-bad 1.24.12.
4
5
The GStreamer team is thrilled to announce a new major feature release
6
of your favourite cross-platform multimedia framework!
7
_service:download_url:gst-plugins-bad-1.24.11.tar.xz/ext/gtk/meson.build -> _service:download_url:gst-plugins-bad-1.24.12.tar.xz/ext/gtk/meson.build
Changed
18
1
2
+if not use_wayland
3
+ subdir_done()
4
+endif
5
+
6
gtkwayland_sources =
7
'gstplugin.c',
8
'gstgtkutils.c',
9
10
gtk_dep = dependency('gtk+-3.0', required : get_option('gtk3'))
11
gtk_wayland_dep = dependency('gtk+-wayland-3.0', required : get_option('gtk3'))
12
13
-if gtk_dep.found() and gtk_wayland_dep.found() and use_wayland
14
+if gtk_dep.found() and gtk_wayland_dep.found()
15
gstgtkwayland = library('gstgtkwayland',
16
gtkwayland_sources,
17
c_args : gst_plugins_bad_args + '-DGST_USE_UNSTABLE_API',
18
_service:download_url:gst-plugins-bad-1.24.11.tar.xz/ext/webrtc/gstwebrtcbin.c -> _service:download_url:gst-plugins-bad-1.24.12.tar.xz/ext/webrtc/gstwebrtcbin.c
Changed
31
1
2
for (i = 0; i < gst_caps_get_size (caps); i++) {
3
GstCaps *format = gst_caps_new_empty ();
4
GstStructure *s = gst_structure_copy (gst_caps_get_structure (caps, i));
5
+ gint media_pt;
6
7
if (i == 0) {
8
gst_structure_foreach (extmap, (GstStructureForeachFunc) _copy_field, s);
9
10
return FALSE;
11
}
12
13
+ if (gst_structure_get_int (s, "payload", &media_pt))
14
+ find_or_create_payload_map_for_media_pt (media_mapping, media_pt);
15
+
16
gst_caps_unref (format);
17
}
18
19
20
guint rtx_target_ssrc = -1;
21
gint media_pt;
22
23
- if (gst_structure_get_int (s, "payload", &media_pt) &&
24
- webrtc->bundle_policy == GST_WEBRTC_BUNDLE_POLICY_NONE)
25
- find_or_create_payload_map_for_media_pt (media_mapping, media_pt);
26
-
27
+ gst_structure_get_int (s, "payload", &media_pt);
28
rtx_target_pt = media_pt;
29
30
if (!gst_structure_get_int (s, "clock-rate", &clockrate))
31
_service:download_url:gst-plugins-bad-1.24.11.tar.xz/ext/wpe/gstwpethreadedview.cpp -> _service:download_url:gst-plugins-bad-1.24.12.tar.xz/ext/wpe/gstwpethreadedview.cpp
Changed
39
1
2
});
3
}
4
5
+void GstWPEThreadedView::clearBuffers()
6
+{
7
+ bool dispatchFrameComplete = false;
8
+ {
9
+ GMutexHolder lock(images_mutex);
10
+
11
+ if (shm.pending) {
12
+ auto meta = gst_buffer_get_video_meta(shm.pending);
13
+ if (static_cast<int>(meta->width) != wpe.width || static_cast<int>(meta->height) != wpe.height) {
14
+ gst_clear_buffer(&shm.pending);
15
+ dispatchFrameComplete = true;
16
+ }
17
+ }
18
+
19
+ if (shm.committed) {
20
+ auto meta = gst_buffer_get_video_meta(shm.committed);
21
+ if (static_cast<int>(meta->width) != wpe.width || static_cast<int>(meta->height) != wpe.height) {
22
+ gst_clear_buffer(&shm.committed);
23
+ dispatchFrameComplete = true;
24
+ }
25
+ }
26
+ }
27
+
28
+ if (dispatchFrameComplete) {
29
+ frameComplete();
30
+ // Wait until the next SHM buffer has been received.
31
+ threading.ready = false;
32
+ waitLoadCompletion();
33
+ }
34
+}
35
+
36
void GstWPEThreadedView::frameComplete()
37
{
38
GST_TRACE("frame complete");
39
_service:download_url:gst-plugins-bad-1.24.11.tar.xz/ext/wpe/gstwpethreadedview.h -> _service:download_url:gst-plugins-bad-1.24.12.tar.xz/ext/wpe/gstwpethreadedview.h
Changed
9
1
2
void loadData(GBytes*);
3
void runJavascript(const gchar*);
4
void setDrawBackground(gboolean);
5
+ void clearBuffers();
6
7
GstEGLImage* image();
8
GstBuffer* buffer();
9
_service:download_url:gst-plugins-bad-1.24.11.tar.xz/ext/wpe/gstwpevideosrc.cpp -> _service:download_url:gst-plugins-bad-1.24.12.tar.xz/ext/wpe/gstwpevideosrc.cpp
Changed
133
1
2
GST_PAD_ALWAYS,
3
GST_STATIC_CAPS (WPE_VIDEO_SRC_CAPS));
4
5
+#define GST_ELEMENT_PROGRESS(el, type, code, text) \
6
+ G_STMT_START { \
7
+ gchar *__txt = _gst_element_error_printf text; \
8
+ gst_element_post_message ( \
9
+ GST_ELEMENT_CAST (el), \
10
+ gst_message_new_progress (GST_OBJECT_CAST (el), \
11
+ GST_PROGRESS_TYPE_##type, code, __txt)); \
12
+ g_free (__txt); \
13
+ } \
14
+ G_STMT_END
15
+
16
static GstFlowReturn
17
gst_wpe_video_src_create (GstBaseSrc * bsrc, guint64 offset, guint length,
18
GstBuffer ** buf)
19
20
gl->BindTexture (GL_TEXTURE_2D, tex_id);
21
gl->EGLImageTargetTexture2D (GL_TEXTURE_2D,
22
gst_egl_image_get_image (locked_image));
23
- gl->Flush ();
24
WPE_UNLOCK (src);
25
return TRUE;
26
}
27
28
gboolean created_view = FALSE;
29
GBytes *bytes;
30
31
+ GST_ELEMENT_PROGRESS (src, START, "open", ("Starting up"));
32
GST_INFO_OBJECT (src, "Starting up");
33
WPE_LOCK (src);
34
35
36
auto & thread = GstWPEContextThread::singleton ();
37
38
if (!src->view) {
39
- src->view = thread.createWPEView (src, context, display,
40
+ GST_ELEMENT_PROGRESS (src, CONTINUE, "open", ("Creating WPE WebView"));
41
+ src->view =
42
+ thread.createWPEView (src, context, display,
43
GST_VIDEO_INFO_WIDTH (&base_src->out_info),
44
GST_VIDEO_INFO_HEIGHT (&base_src->out_info));
45
created_view = TRUE;
46
GST_DEBUG_OBJECT (src, "created view %p", src->view);
47
+ GST_ELEMENT_PROGRESS (src, CONTINUE, "open", ("WPE WebView is ready"));
48
}
49
50
if (!src->view) {
51
WPE_UNLOCK (src);
52
+ GST_ELEMENT_PROGRESS (src, ERROR, "open",
53
+ ("WPEBackend-FDO EGL display initialisation failed"));
54
GST_ELEMENT_ERROR (src, RESOURCE, FAILED,
55
("WPEBackend-FDO EGL display initialisation failed"), (NULL));
56
return FALSE;
57
}
58
59
+ if (!created_view) {
60
+ GST_INFO_OBJECT (src, "Re-starting after re-negotiation, clearing cached SHM buffers");
61
+ src->view->clearBuffers ();
62
+ }
63
+
64
GST_OBJECT_LOCK (src);
65
bytes = src->bytes;
66
src->bytes = NULL;
67
GST_OBJECT_UNLOCK (src);
68
69
if (bytes != NULL) {
70
+ GST_ELEMENT_PROGRESS (src, CONTINUE, "open", ("Loading HTML data"));
71
src->view->loadData (bytes);
72
g_bytes_unref (bytes);
73
}
74
75
src->n_frames = 0;
76
}
77
WPE_UNLOCK (src);
78
+ GST_ELEMENT_PROGRESS (src, COMPLETE, "open", ("Ready to produce buffers"));
79
return TRUE;
80
}
81
82
83
return ret;
84
}
85
86
+static gboolean
87
+gst_wpe_video_src_query (GstBaseSrc * base_src, GstQuery * query)
88
+{
89
+ GstWpeVideoSrc *src = GST_WPE_VIDEO_SRC (base_src);
90
+ GstGLBaseSrc *gl_src = GST_GL_BASE_SRC (base_src);
91
+ gboolean ret = FALSE;
92
+
93
+ switch (GST_QUERY_TYPE (query)) {
94
+ case GST_QUERY_LATENCY:{
95
+ GST_OBJECT_LOCK (src);
96
+ if (gl_src->out_info.fps_n > 0) {
97
+ GstClockTime latency;
98
+
99
+ latency = gst_util_uint64_scale (GST_SECOND, gl_src->out_info.fps_d,
100
+ gl_src->out_info.fps_n);
101
+ GST_OBJECT_UNLOCK (src);
102
+ gst_query_set_latency (query,
103
+ gst_base_src_is_live (GST_BASE_SRC_CAST (src)), latency,
104
+ GST_CLOCK_TIME_NONE);
105
+ GST_DEBUG_OBJECT (src, "Reporting latency of %" GST_TIME_FORMAT,
106
+ GST_TIME_ARGS (latency));
107
+ ret = TRUE;
108
+ } else {
109
+ GST_OBJECT_UNLOCK (src);
110
+ }
111
+
112
+ break;
113
+ }
114
+ default:
115
+ ret = GST_CALL_PARENT_WITH_DEFAULT (GST_BASE_SRC_CLASS, query,
116
+ (base_src, query), FALSE);
117
+ break;
118
+ }
119
+ return ret;
120
+}
121
+
122
static void
123
gst_wpe_video_src_init (GstWpeVideoSrc * src)
124
{
125
126
GST_DEBUG_FUNCPTR (gst_wpe_video_src_decide_allocation);
127
base_src_class->stop = GST_DEBUG_FUNCPTR (gst_wpe_video_src_stop);
128
base_src_class->event = GST_DEBUG_FUNCPTR (gst_wpe_video_src_event);
129
+ base_src_class->query = GST_DEBUG_FUNCPTR (gst_wpe_video_src_query);
130
131
gl_base_src_class->supported_gl_api =
132
static_cast < GstGLAPI >
133
_service:download_url:gst-plugins-bad-1.24.11.tar.xz/gst-libs/gst/codecparsers/gsth265bitwriter.c -> _service:download_url:gst-plugins-bad-1.24.12.tar.xz/gst-libs/gst/codecparsers/gsth265bitwriter.c
Changed
18
1
2
const guint8 *sl;
3
const guint8 *default_sl;
4
guint8 nextCoef;
5
- gint8 coef_val;
6
guint8 scaling_list_pred_matrix_id_delta;
7
8
if (!_get_scaling_list_params (src_scaling_list, sizeId, matrixId,
9
10
}
11
12
for (i = 0; i < size; i++) {
13
- coef_val = sli - nextCoef;
14
+ gint coef_val = sli - nextCoef;
15
nextCoef = sli;
16
17
if (coef_val > 127) {
18
_service:download_url:gst-plugins-bad-1.24.11.tar.xz/gst-libs/gst/mpegts/gstmpegtssection.c -> _service:download_url:gst-plugins-bad-1.24.12.tar.xz/gst-libs/gst/mpegts/gstmpegtssection.c
Changed
9
1
2
case GST_MTS_TABLE_ID_SELECTION_INFORMATION:
3
if (pid == 0x001f)
4
return GST_MPEGTS_SECTION_SIT;
5
+ break;
6
default:
7
/* Handle ranges */
8
if (table_id >= GST_MTS_TABLE_ID_EVENT_INFORMATION_ACTUAL_TS_PRESENT &&
9
_service:download_url:gst-plugins-bad-1.24.11.tar.xz/gst-libs/gst/mse/gstmsemediatype.c -> _service:download_url:gst-plugins-bad-1.24.12.tar.xz/gst-libs/gst/mse/gstmsemediatype.c
Changed
34
1
2
}
3
4
static gboolean
5
-is_ascii (const gchar c)
6
-{
7
- return c > 0 && c <= G_MAXINT8;
8
-}
9
-
10
-static gboolean
11
is_eos (const gchar c)
12
{
13
return c == '\0';
14
15
g_return_val_if_fail (value != NULL, FALSE);
16
17
const gchar *unparsed = *input;
18
- char c = unparsed0;
19
- if (!is_ascii (c)) {
20
+ gchar c = unparsed0;
21
+ if (!g_ascii_isprint (c)) {
22
return FALSE;
23
}
24
25
26
}
27
28
gchar c = (*input)0;
29
- if (!is_ascii (c)) {
30
+ if (!g_ascii_isprint (c)) {
31
return FALSE;
32
}
33
34
_service:download_url:gst-plugins-bad-1.24.11.tar.xz/gst-libs/gst/mse/gstsourcebuffer.c -> _service:download_url:gst-plugins-bad-1.24.12.tar.xz/gst-libs/gst/mse/gstsourcebuffer.c
Changed
19
1
2
/**
3
* gst_source_buffer_set_append_window_start:
4
* @self: #GstSourceBuffer instance
5
- * @start: the append window end
6
+ * @start: the append window start
7
* @error: (out) (optional) (nullable) (transfer full): the resulting error or `NULL`
8
*
9
* Modifies the current append window start of @self. If successful, samples
10
11
return FALSE;
12
}
13
14
- if (start < 0 || start <= self->append_window_end) {
15
+ if (!GST_CLOCK_TIME_IS_VALID (start) || start <= self->append_window_end) {
16
g_set_error (error,
17
GST_MEDIA_SOURCE_ERROR, GST_MEDIA_SOURCE_ERROR_TYPE,
18
"append window start must be between zero and append window end");
19
_service:download_url:gst-plugins-bad-1.24.11.tar.xz/gst-libs/gst/wayland/gstwldisplay.c -> _service:download_url:gst-plugins-bad-1.24.12.tar.xz/gst-libs/gst/wayland/gstwldisplay.c
Changed
29
1
2
{
3
GstWlDisplay *self = data;
4
guint64 modifier = (guint64) modifier_hi << 32 | modifier_lo;
5
- static gboolean table_header = TRUE;
6
+ static uint32_t last_format = 0;
7
8
GstWlDisplayPrivate *priv = gst_wl_display_get_instance_private (self);
9
10
11
if (fourcc == DRM_FORMAT_INVALID || modifier == DRM_FORMAT_MOD_INVALID)
12
return;
13
14
- if (table_header == TRUE) {
15
+ if (last_format == 0) {
16
GST_INFO ("===== All DMA Formats With Modifiers =====");
17
GST_INFO ("| Gst Format | DRM Format |");
18
- table_header = FALSE;
19
}
20
21
- if (modifier == 0)
22
+ if (last_format != format) {
23
GST_INFO ("|-----------------------------------------");
24
+ last_format = format;
25
+ }
26
27
GST_INFO ("| %-12s | %-23s |",
28
(modifier == 0) ? gst_video_format_to_string (gst_format) : "",
29
_service:download_url:gst-plugins-bad-1.24.11.tar.xz/gst-plugins-bad.doap -> _service:download_url:gst-plugins-bad-1.24.12.tar.xz/gst-plugins-bad.doap
Changed
18
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-bad/gst-plugins-bad-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
_service:download_url:gst-plugins-bad-1.24.11.tar.xz/gst/mpegtsdemux/mpegtspacketizer.c -> _service:download_url:gst-plugins-bad-1.24.12.tar.xz/gst/mpegtsdemux/mpegtspacketizer.c
Changed
10
1
2
pcrtable->base_time += diff;
3
pcrtable->base_pcrtime += diff;
4
} else if (pcrtable->base_pcrtime > tmp_pts
5
- && pcrtable->base_pcrtime > PCR_GST_MAX_VALUE / 2) {
6
+ && pcrtable->base_pcrtime - tmp_pts > PCR_GST_MAX_VALUE / 2) {
7
pcrtable->pcroffset += PCR_GST_MAX_VALUE;
8
}
9
}
10
_service:download_url:gst-plugins-bad-1.24.11.tar.xz/gst/rist/gstristsink.c -> _service:download_url:gst-plugins-bad-1.24.12.tar.xz/gst/rist/gstristsink.c
Changed
9
1
2
* a NULL interface on a network without a default gateway */
3
if (gst_rist_sink_start (sink) == GST_STATE_CHANGE_FAILURE)
4
return GST_STATE_CHANGE_FAILURE;
5
+ break;
6
case GST_STATE_CHANGE_PAUSED_TO_READY:
7
gst_rist_sink_disable_stats_interval (sink);
8
break;
9
_service:download_url:gst-plugins-bad-1.24.11.tar.xz/meson.build -> _service:download_url:gst-plugins-bad-1.24.12.tar.xz/meson.build
Changed
8
1
2
project('gst-plugins-bad', 'c', 'cpp',
3
- version : '1.24.11',
4
+ version : '1.24.12',
5
meson_version : '>= 1.1',
6
default_options : 'warning_level=1',
7
'buildtype=debugoptimized' )
8
_service:download_url:gst-plugins-bad-1.24.11.tar.xz/po/gst-plugins-bad-1.0.pot -> _service:download_url:gst-plugins-bad-1.24.12.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.24.11\n"
6
+"Project-Id-Version: gst-plugins-bad-1.24.12\n"
7
"Report-Msgid-Bugs-To: \n"
8
-"POT-Creation-Date: 2025-01-06 19:52+0000\n"
9
+"POT-Creation-Date: 2025-01-29 20:14+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-bad-1.24.11.tar.xz/po/gst-plugins-bad.pot -> _service:download_url:gst-plugins-bad-1.24.12.tar.xz/po/gst-plugins-bad.pot
Changed
13
1
2
#, fuzzy
3
msgid ""
4
msgstr ""
5
-"Project-Id-Version: gst-plugins-bad-1.24.11\n"
6
+"Project-Id-Version: gst-plugins-bad-1.24.12\n"
7
"Report-Msgid-Bugs-To: \n"
8
-"POT-Creation-Date: 2025-01-06 19:52+0000\n"
9
+"POT-Creation-Date: 2025-01-29 20:14+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-bad-1.24.11.tar.xz/sys/amfcodec/gstamfav1enc.cpp -> _service:download_url:gst-plugins-bad-1.24.12.tar.xz/sys/amfcodec/gstamfav1enc.cpp
Changed
9
1
2
break;
3
case PROP_PA_FRAME_SAD:
4
update_bool (self, &self->pa.frame_sad, value);
5
+ break;
6
case PROP_PA_LTR:
7
update_bool (self, &self->pa.ltr, value);
8
break;
9
_service:download_url:gst-plugins-bad-1.24.11.tar.xz/sys/amfcodec/gstamfh264enc.cpp -> _service:download_url:gst-plugins-bad-1.24.12.tar.xz/sys/amfcodec/gstamfh264enc.cpp
Changed
9
1
2
break;
3
case PROP_PA_FRAME_SAD:
4
update_bool (self, &self->pa.frame_sad, value);
5
+ break;
6
case PROP_PA_LTR:
7
update_bool (self, &self->pa.ltr, value);
8
break;
9
_service:download_url:gst-plugins-bad-1.24.11.tar.xz/sys/amfcodec/gstamfh265enc.cpp -> _service:download_url:gst-plugins-bad-1.24.12.tar.xz/sys/amfcodec/gstamfh265enc.cpp
Changed
9
1
2
break;
3
case PROP_PA_FRAME_SAD:
4
update_bool (self, &self->pa.frame_sad, value);
5
+ break;
6
case PROP_PA_LTR:
7
update_bool (self, &self->pa.ltr, value);
8
break;
9
_service:download_url:gst-plugins-bad-1.24.11.tar.xz/sys/applemedia/vtdec.c -> _service:download_url:gst-plugins-bad-1.24.12.tar.xz/sys/applemedia/vtdec.c
Changed
41
1
2
GstVideoCodecFrame *frame;
3
GstFlowReturn ret = GST_FLOW_OK;
4
GstVideoDecoder *decoder = GST_VIDEO_DECODER (vtdec);
5
- gboolean is_flushing;
6
7
g_mutex_lock (&vtdec->queue_mutex);
8
while (gst_queue_array_is_empty (vtdec->reorder_queue)
9
10
* that we push in PTS order, or if we're draining/flushing */
11
while ((gst_queue_array_get_length (vtdec->reorder_queue) >=
12
vtdec->dbp_size) || vtdec->is_flushing || vtdec->is_draining) {
13
+ gboolean is_flushing;
14
+
15
frame = gst_queue_array_pop_head (vtdec->reorder_queue);
16
is_flushing = vtdec->is_flushing;
17
g_cond_signal (&vtdec->queue_cond);
18
19
20
g_mutex_unlock (&vtdec->queue_mutex);
21
GST_VIDEO_DECODER_STREAM_LOCK (vtdec);
22
- vtdec->downstream_ret = ret;
23
24
/* We need to empty the queue immediately so that session_output_callback()
25
* can push out the current buffer, otherwise it can deadlock */
26
27
gst_video_decoder_release_frame (decoder, frame);
28
}
29
30
+ if (vtdec->is_flushing && ret == GST_FLOW_FLUSHING) {
31
+ ret = GST_FLOW_OK;
32
+ }
33
g_cond_signal (&vtdec->queue_cond);
34
g_mutex_unlock (&vtdec->queue_mutex);
35
}
36
37
+ vtdec->downstream_ret = ret;
38
GST_VIDEO_DECODER_STREAM_UNLOCK (vtdec);
39
40
if (ret != GST_FLOW_OK) {
41
_service:download_url:gst-plugins-bad-1.24.11.tar.xz/sys/d3d12/hlsl/VSMain_color.hlsl -> _service:download_url:gst-plugins-bad-1.24.12.tar.xz/sys/d3d12/hlsl/VSMain_color.hlsl
Changed
8
1
2
3
VS_OUTPUT VSMain_color (VS_INPUT input)
4
{
5
- return input;
6
+ return VS_OUTPUT(input);
7
}
8
_service:download_url:gst-plugins-bad-1.24.11.tar.xz/sys/d3d12/hlsl/VSMain_coord.hlsl -> _service:download_url:gst-plugins-bad-1.24.12.tar.xz/sys/d3d12/hlsl/VSMain_coord.hlsl
Changed
8
1
2
3
VS_OUTPUT VSMain_coord (VS_INPUT input)
4
{
5
- return input;
6
+ return VS_OUTPUT(input);
7
}
8
_service:download_url:gst-plugins-bad-1.24.11.tar.xz/sys/d3d12/hlsl/VSMain_pos.hlsl -> _service:download_url:gst-plugins-bad-1.24.12.tar.xz/sys/d3d12/hlsl/VSMain_pos.hlsl
Changed
8
1
2
3
VS_OUTPUT VSMain_pos (VS_INPUT input)
4
{
5
- return input;
6
+ return VS_OUTPUT(input);
7
}
8
_service:download_url:gst-plugins-bad-1.24.11.tar.xz/sys/decklink/gstdecklinkaudiosink.cpp -> _service:download_url:gst-plugins-bad-1.24.12.tar.xz/sys/decklink/gstdecklinkaudiosink.cpp
Changed
23
1
2
self->output->output->BeginAudioPreroll ();
3
}
4
5
+ if (!self->output->videosink) {
6
+ GST_ERROR_OBJECT (self,
7
+ "Can't output audio without video sink on the same device");
8
+ return GST_FLOW_ERROR;
9
+ }
10
+
11
video_sink =
12
GST_DECKLINK_VIDEO_SINK (gst_object_ref (self->output->videosink));
13
14
15
GST_OBJECT_UNLOCK (self);
16
17
g_mutex_lock (&self->output->lock);
18
- if (self->output->start_scheduled_playback)
19
+ if (self->output->start_scheduled_playback && self->output->videosink)
20
self->output->start_scheduled_playback (self->output->videosink);
21
g_mutex_unlock (&self->output->lock);
22
break;
23
_service:download_url:gst-plugins-bad-1.24.11.tar.xz/sys/decklink/gstdecklinkvideosink.cpp -> _service:download_url:gst-plugins-bad-1.24.12.tar.xz/sys/decklink/gstdecklinkvideosink.cpp
Changed
56
1
2
3
if (self->mode == GST_DECKLINK_MODE_AUTO) {
4
BMDPixelFormat f;
5
- mode = gst_decklink_find_mode_and_format_for_caps (caps, &f);
6
+ GstCaps *tmp = gst_caps_copy (caps);
7
+ guint i, n = gst_caps_get_size (tmp);
8
+
9
+ for (i = 0; i < n; i++) {
10
+ GstStructure *s = gst_caps_get_structure (tmp, 0);
11
+ gst_structure_remove_field (s, "framerate");
12
+ }
13
+
14
+ mode = gst_decklink_find_mode_and_format_for_caps (tmp, &f);
15
+ gst_caps_unref (tmp);
16
+
17
if (mode == NULL) {
18
GST_WARNING_OBJECT (self,
19
"Failed to find compatible mode for caps %" GST_PTR_FORMAT, caps);
20
21
/* For output we support any framerate and only really care about timestamps */
22
gst_caps_map_in_place (mode_caps, reset_framerate, NULL);
23
24
+ GST_DEBUG_OBJECT (self, "Mode caps %" GST_PTR_FORMAT, mode_caps);
25
+
26
if (filter) {
27
+ GST_DEBUG_OBJECT (self, "Filter caps %" GST_PTR_FORMAT, filter);
28
caps =
29
gst_caps_intersect_full (filter, mode_caps, GST_CAPS_INTERSECT_FIRST);
30
gst_caps_unref (mode_caps);
31
32
caps = mode_caps;
33
}
34
35
+ GST_DEBUG_OBJECT (self, "Returning caps %" GST_PTR_FORMAT, caps);
36
+
37
return caps;
38
}
39
40
41
timestamp = GST_BUFFER_TIMESTAMP (buffer);
42
duration = GST_BUFFER_DURATION (buffer);
43
if (duration == GST_CLOCK_TIME_NONE) {
44
- duration =
45
- gst_util_uint64_scale_int (GST_SECOND, self->info.fps_d,
46
- self->info.fps_n);
47
+ if (self->info.fps_n == 0)
48
+ duration = 0;
49
+ else
50
+ duration =
51
+ gst_util_uint64_scale_int (GST_SECOND, self->info.fps_d,
52
+ self->info.fps_n);
53
}
54
running_time =
55
gst_segment_to_running_time (&GST_BASE_SINK_CAST (self)->segment,
56
_service:download_url:gst-plugins-bad-1.24.11.tar.xz/sys/wasapi/gstwasapisink.c -> _service:download_url:gst-plugins-bad-1.24.12.tar.xz/sys/wasapi/gstwasapisink.c
Changed
11
1
2
HRESULT hr;
3
gint16 *dst = NULL;
4
DWORD dwWaitResult;
5
- guint can_frames, have_frames, n_frames, write_len, written_len = 0;
6
+ gint can_frames;
7
+ guint have_frames, n_frames, write_len, written_len = 0;
8
HANDLE event_handle2;
9
10
event_handle0 = self->event_handle;
11
_service:download_url:gst-plugins-bad-1.24.11.tar.xz/tests/check/elements/webrtcbin.c -> _service:download_url:gst-plugins-bad-1.24.12.tar.xz/tests/check/elements/webrtcbin.c
Changed
59
1
2
3
GST_END_TEST;
4
5
+GST_START_TEST (test_video_rtx_no_duplicate_payloads)
6
+{
7
+ struct test_webrtc *t = test_webrtc_new ();
8
+ GstWebRTCRTPTransceiverDirection direction;
9
+ GstWebRTCRTPTransceiver *trans;
10
+ GstCaps *caps;
11
+
12
+ VAL_SDP_INIT (no_duplicate_payloads, on_sdp_media_no_duplicate_payloads,
13
+ NULL, NULL);
14
+ guint media_format_count = { 3 };
15
+ VAL_SDP_INIT (media_formats, on_sdp_media_count_formats,
16
+ media_format_count, &no_duplicate_payloads);
17
+ VAL_SDP_INIT (count, _count_num_sdp_media, GUINT_TO_POINTER (1),
18
+ &media_formats);
19
+ const gchar *expected_offer_setup = { "actpass", };
20
+ VAL_SDP_INIT (offer_setup, on_sdp_media_setup, expected_offer_setup, &count);
21
+ const gchar *expected_offer_direction = { "sendrecv", };
22
+ VAL_SDP_INIT (offer, on_sdp_media_direction, expected_offer_direction,
23
+ &offer_setup);
24
+
25
+ t->on_negotiation_needed = NULL;
26
+ t->on_ice_candidate = NULL;
27
+ t->on_pad_added = _pad_added_fakesink;
28
+
29
+ /* Setup sendrecv transceiver with VP8 and H264.
30
+ * The RTX's payload type shouldn't be 96 or 97 since those are already taken. */
31
+ caps = gst_caps_from_string (VP8_RTP_CAPS (96) ";" H264_RTP_CAPS (97));
32
+ direction = GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_SENDRECV;
33
+ g_signal_emit_by_name (t->webrtc1, "add-transceiver", direction, caps,
34
+ &trans);
35
+ gst_caps_unref (caps);
36
+ fail_unless (trans != NULL);
37
+ g_object_set (trans, "do-nack", TRUE, NULL);
38
+ gst_object_unref (trans);
39
+
40
+ /* We don't really care about the answer in this test */
41
+ test_validate_sdp (t, &offer, NULL);
42
+
43
+ test_webrtc_free (t);
44
+}
45
+
46
+GST_END_TEST;
47
+
48
static Suite *
49
webrtcbin_suite (void)
50
{
51
52
"All datachannel tests are disabled. sctpenc %p, sctpdec %p", sctpenc,
53
sctpdec);
54
}
55
+ tcase_add_test (tc, test_video_rtx_no_duplicate_payloads);
56
} else {
57
GST_WARNING ("Some required elements were not found. "
58
"All media tests are disabled. nicesrc %p, nicesink %p, "
59
_service:download_url:gst-plugins-bad-1.24.11.tar.xz/tests/examples/gtk/meson.build -> _service:download_url:gst-plugins-bad-1.24.12.tar.xz/tests/examples/gtk/meson.build
Changed
11
1
2
-if gtk_dep.found() and gtk_wayland_dep.found() and use_wayland
3
+if not use_wayland
4
+ subdir_done()
5
+endif
6
+
7
+if gtk_dep.found() and gtk_wayland_dep.found()
8
executable('gtkwaylandsink',
9
'gtkwaylandsink.c',
10
extra_files: 'window.ui',
11
_service:download_url:gst-plugins-bad-1.24.11.tar.xz/tests/examples/waylandsink/meson.build -> _service:download_url:gst-plugins-bad-1.24.12.tar.xz/tests/examples/waylandsink/meson.build
Changed
40
1
2
+if not use_wayland
3
+ subdir_done()
4
+endif
5
+
6
gtk_dep = dependency('gtk+-3.0', required : get_option('examples'))
7
gtk_wayland_dep = dependency('gtk+-wayland-3.0', required : get_option('examples'))
8
9
-if use_wayland
10
- if gtk_dep.found() and gtk_wayland_dep.found()
11
- executable('waylandsink',
12
- 'main.c',
13
- extra_files: 'window.ui',
14
- install: false,
15
- include_directories : configinc,
16
- dependencies : gtk_dep, gtk_wayland_dep, gst_dep, gstwayland_dep,
17
- c_args : gst_plugins_bad_args + '-DGST_USE_UNSTABLE_API',
18
- )
19
- endif
20
- executable('wayland_threads',
21
- 'wayland-threads.c',
22
+if gtk_dep.found() and gtk_wayland_dep.found()
23
+ executable('waylandsink',
24
+ 'main.c',
25
+ extra_files: 'window.ui',
26
install: false,
27
include_directories : configinc,
28
- dependencies : gst_dep, gstwayland_dep, wl_client_dep,
29
+ dependencies : gtk_dep, gtk_wayland_dep, gst_dep, gstwayland_dep,
30
c_args : gst_plugins_bad_args + '-DGST_USE_UNSTABLE_API',
31
)
32
endif
33
+executable('wayland_threads',
34
+ 'wayland-threads.c',
35
+ install: false,
36
+ include_directories : configinc,
37
+ dependencies : gst_dep, gstwayland_dep, wl_client_dep,
38
+ c_args : gst_plugins_bad_args + '-DGST_USE_UNSTABLE_API',
39
+)
40