Skip to content

Commit 2710131

Browse files
committed
Bump to GStreamer 1.24.11
And add a new patch scheduled to ship in 1.24.12.
1 parent 11d89fa commit 2710131

12 files changed

+92
-281
lines changed

images/wkdev_sdk/jhbuild/patches/0001-webrtcbin-create-and-associate-transceivers-earlier-.patch

+20-45
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
From 8edcb3957601ba1237d3f60bbfc0f115a614aa75 Mon Sep 17 00:00:00 2001
1+
From e194b6bb173a95dcfb84c328fff426e60e6ab8f9 Mon Sep 17 00:00:00 2001
22
From: Carlos Bentzen <[email protected]>
33
Date: Wed, 10 Jul 2024 10:34:19 +0200
4-
Subject: [PATCH 1/9] webrtcbin: create and associate transceivers earlier in
4+
Subject: [PATCH 1/8] webrtcbin: create and associate transceivers earlier in
55
negotation
66

77
According to https://w3c.github.io/webrtc-pc/#set-the-session-description
@@ -24,14 +24,14 @@ associated after every session description is set.
2424

2525
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7156>
2626
---
27-
.../gst-plugins-bad/ext/webrtc/gstwebrtcbin.c | 495 ++++++++++--------
27+
.../gst-plugins-bad/ext/webrtc/gstwebrtcbin.c | 477 +++++++++++-------
2828
.../gst-plugins-bad/ext/webrtc/webrtcsdp.c | 11 +
2929
.../gst-plugins-bad/ext/webrtc/webrtcsdp.h | 2 +
3030
.../tests/check/elements/webrtcbin.c | 120 ++++-
31-
4 files changed, 388 insertions(+), 240 deletions(-)
31+
4 files changed, 388 insertions(+), 222 deletions(-)
3232

3333
diff --git a/subprojects/gst-plugins-bad/ext/webrtc/gstwebrtcbin.c b/subprojects/gst-plugins-bad/ext/webrtc/gstwebrtcbin.c
34-
index f170f512bf..b4196e3435 100644
34+
index dce4820a6d..225d246576 100644
3535
--- a/subprojects/gst-plugins-bad/ext/webrtc/gstwebrtcbin.c
3636
+++ b/subprojects/gst-plugins-bad/ext/webrtc/gstwebrtcbin.c
3737
@@ -748,6 +748,13 @@ transceiver_match_for_mid (GstWebRTCRTPTransceiver * trans, const gchar * mid)
@@ -169,8 +169,8 @@ index f170f512bf..b4196e3435 100644
169169
- }
170170
- rtp_trans = NULL;
171171
- }
172-
}
173-
172+
- }
173+
-
174174
- if (rtp_trans) {
175175
- answer_dir = rtp_trans->direction;
176176
- g_assert (answer_caps != NULL);
@@ -180,8 +180,8 @@ index f170f512bf..b4196e3435 100644
180180
- answer_dir = GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_RECVONLY;
181181
- GST_WARNING_OBJECT (webrtc, "did not find compatible transceiver for "
182182
- "offer caps %" GST_PTR_FORMAT ", will only receive", offer_caps);
183-
- }
184-
-
183+
}
184+
185185
- if (!rtp_trans) {
186186
- GstCaps *trans_caps;
187187
- GstWebRTCKind kind = GST_WEBRTC_KIND_UNKNOWN;
@@ -253,40 +253,15 @@ index f170f512bf..b4196e3435 100644
253253
}
254254
}
255255

256-
@@ -6079,24 +6006,6 @@ _update_data_channel_from_sdp_media (GstWebRTCBin * webrtc,
257-
transport_receive_bin_set_receive_state (receive, RECEIVE_STATE_PASS);
258-
}
259-
260-
-static gboolean
261-
-_find_compatible_unassociated_transceiver (GstWebRTCRTPTransceiver * p1,
262-
- gconstpointer data)
263-
-{
264-
- GstWebRTCKind kind = GPOINTER_TO_INT (data);
265-
-
266-
- if (p1->mid)
267-
- return FALSE;
268-
- if (p1->mline != -1)
269-
- return FALSE;
270-
- if (p1->stopped)
271-
- return FALSE;
272-
- if (p1->kind != GST_WEBRTC_KIND_UNKNOWN && p1->kind != kind)
273-
- return FALSE;
274-
-
275-
- return TRUE;
276-
-}
277-
-
278-
static void
279-
_connect_rtpfunnel (GstWebRTCBin * webrtc, guint session_id)
280-
{
281-
@@ -6179,7 +6088,6 @@ _update_transceivers_from_sdp (GstWebRTCBin * webrtc, SDPSource source,
256+
@@ -6185,7 +6112,6 @@ _update_transceivers_from_sdp (GstWebRTCBin * webrtc, SDPSource source,
282257
for (i = 0; i < gst_sdp_message_medias_len (sdp->sdp); i++) {
283258
const GstSDPMedia *media = gst_sdp_message_get_media (sdp->sdp, i);
284259
TransportStream *stream;
285260
- GstWebRTCRTPTransceiver *trans;
286261
guint transport_idx;
287262

288263
/* skip rejected media */
289-
@@ -6191,8 +6099,6 @@ _update_transceivers_from_sdp (GstWebRTCBin * webrtc, SDPSource source,
264+
@@ -6197,8 +6123,6 @@ _update_transceivers_from_sdp (GstWebRTCBin * webrtc, SDPSource source,
290265
else
291266
transport_idx = i;
292267

@@ -295,7 +270,7 @@ index f170f512bf..b4196e3435 100644
295270
stream = _get_or_create_transport_stream (webrtc, transport_idx,
296271
_message_media_is_datachannel (sdp->sdp, transport_idx));
297272
if (!bundled) {
298-
@@ -6203,60 +6109,28 @@ _update_transceivers_from_sdp (GstWebRTCBin * webrtc, SDPSource source,
273+
@@ -6209,60 +6133,28 @@ _update_transceivers_from_sdp (GstWebRTCBin * webrtc, SDPSource source,
299274
ensure_rtx_hdr_ext (stream);
300275
}
301276

@@ -310,10 +285,7 @@ index f170f512bf..b4196e3435 100644
310285
- if (g_strcmp0 (gst_sdp_media_get_media (media), "audio") == 0 ||
311286
- g_strcmp0 (gst_sdp_media_get_media (media), "video") == 0) {
312287
- GstWebRTCKind kind = GST_WEBRTC_KIND_UNKNOWN;
313-
+ if (g_strcmp0 (gst_sdp_media_get_media (media), "audio") == 0 ||
314-
+ g_strcmp0 (gst_sdp_media_get_media (media), "video") == 0) {
315-
+ GstWebRTCRTPTransceiver *trans;
316-
288+
-
317289
- /* No existing transceiver, find an unused one */
318290
- if (!trans) {
319291
- if (g_strcmp0 (gst_sdp_media_get_media (media), "audio") == 0)
@@ -343,7 +315,10 @@ index f170f512bf..b4196e3435 100644
343315
- gst_webrtc_bin_signals[ON_NEW_TRANSCEIVER_SIGNAL], 0, trans);
344316
- PC_LOCK (webrtc);
345317
- }
346-
-
318+
+ if (g_strcmp0 (gst_sdp_media_get_media (media), "audio") == 0 ||
319+
+ g_strcmp0 (gst_sdp_media_get_media (media), "video") == 0) {
320+
+ GstWebRTCRTPTransceiver *trans;
321+
347322
- _update_transceiver_from_sdp_media (webrtc, sdp->sdp, i, stream,
348323
- trans, bundled, bundle_idx, error);
349324
- if (error && *error)
@@ -376,7 +351,7 @@ index f170f512bf..b4196e3435 100644
376351
}
377352
}
378353

379-
@@ -6406,6 +6280,210 @@ get_last_generated_description (GstWebRTCBin * webrtc, SDPSource source,
354+
@@ -6412,6 +6304,210 @@ get_last_generated_description (GstWebRTCBin * webrtc, SDPSource source,
380355
return NULL;
381356
}
382357

@@ -587,7 +562,7 @@ index f170f512bf..b4196e3435 100644
587562

588563
/* http://w3c.github.io/webrtc-pc/#set-description */
589564
static GstStructure *
590-
@@ -6568,21 +6646,8 @@ _set_description_task (GstWebRTCBin * webrtc, struct set_description *sd)
565+
@@ -6574,21 +6670,8 @@ _set_description_task (GstWebRTCBin * webrtc, struct set_description *sd)
591566
}
592567
}
593568

@@ -611,7 +586,7 @@ index f170f512bf..b4196e3435 100644
611586

612587
if (webrtc->signaling_state != new_signaling_state) {
613588
webrtc->signaling_state = new_signaling_state;
614-
@@ -6642,6 +6707,12 @@ _set_description_task (GstWebRTCBin * webrtc, struct set_description *sd)
589+
@@ -6648,6 +6731,12 @@ _set_description_task (GstWebRTCBin * webrtc, struct set_description *sd)
615590
continue;
616591
}
617592

images/wkdev_sdk/jhbuild/patches/0002-webrtcbin-reverse-direction-from-remote-media.patch

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
From 8615a8ac712bc173c0c3585392683053b7b8ee94 Mon Sep 17 00:00:00 2001
1+
From 2e69c18ecb12a66ce92f7e3c591343916856c1b1 Mon Sep 17 00:00:00 2001
22
From: Carlos Bentzen <[email protected]>
33
Date: Fri, 2 Aug 2024 11:19:56 +0200
4-
Subject: [PATCH 2/9] webrtcbin: reverse direction from remote media
4+
Subject: [PATCH 2/8] webrtcbin: reverse direction from remote media
55

66
This had been overlooked from the spec. We need to reverse
77
the remote media direction when setting the transceiver direction.
@@ -12,10 +12,10 @@ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/72
1212
1 file changed, 26 insertions(+), 3 deletions(-)
1313

1414
diff --git a/subprojects/gst-plugins-bad/ext/webrtc/gstwebrtcbin.c b/subprojects/gst-plugins-bad/ext/webrtc/gstwebrtcbin.c
15-
index b4196e3435..5ad6550d88 100644
15+
index 225d246576..bc5ebb1909 100644
1616
--- a/subprojects/gst-plugins-bad/ext/webrtc/gstwebrtcbin.c
1717
+++ b/subprojects/gst-plugins-bad/ext/webrtc/gstwebrtcbin.c
18-
@@ -6280,6 +6280,22 @@ get_last_generated_description (GstWebRTCBin * webrtc, SDPSource source,
18+
@@ -6304,6 +6304,22 @@ get_last_generated_description (GstWebRTCBin * webrtc, SDPSource source,
1919
return NULL;
2020
}
2121

@@ -38,7 +38,7 @@ index b4196e3435..5ad6550d88 100644
3838
/* https://w3c.github.io/webrtc-pc/#set-description (steps in 4.6.10.) */
3939
static gboolean
4040
_create_and_associate_transceivers_from_sdp (GstWebRTCBin * webrtc,
41-
@@ -6328,12 +6344,14 @@ _create_and_associate_transceivers_from_sdp (GstWebRTCBin * webrtc,
41+
@@ -6352,12 +6368,14 @@ _create_and_associate_transceivers_from_sdp (GstWebRTCBin * webrtc,
4242
const gchar *mid;
4343
guint transport_idx;
4444
TransportStream *stream;
@@ -53,7 +53,7 @@ index b4196e3435..5ad6550d88 100644
5353

5454
/* XXX: not strictly required but a lot of functionality requires a mid */
5555
if (!mid) {
56-
@@ -6390,8 +6408,6 @@ _create_and_associate_transceivers_from_sdp (GstWebRTCBin * webrtc,
56+
@@ -6414,8 +6432,6 @@ _create_and_associate_transceivers_from_sdp (GstWebRTCBin * webrtc,
5757
* that were added to the PeerConnection by addTrack and are not associated with any "m=" section
5858
* and are not stopped, find the first (according to the canonical order described in Section 5.2.1)
5959
* such RtpTransceiver. */
@@ -62,7 +62,7 @@ index b4196e3435..5ad6550d88 100644
6262
if (direction == GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_SENDRECV
6363
|| direction == GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_RECVONLY) {
6464
int j;
65-
@@ -6464,11 +6480,18 @@ _create_and_associate_transceivers_from_sdp (GstWebRTCBin * webrtc,
65+
@@ -6488,11 +6504,18 @@ _create_and_associate_transceivers_from_sdp (GstWebRTCBin * webrtc,
6666
trans->mid = g_strdup (mid);
6767
g_object_notify (G_OBJECT (trans), "mid");
6868

images/wkdev_sdk/jhbuild/patches/0003-webrtcbin-connect-output-stream-on-recv-transceivers.patch

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
From cd27befcb7a75a1cca00027a195c1f40aa8f0c26 Mon Sep 17 00:00:00 2001
1+
From 5bd0033bc9683610a74f668e67672fc524628fb2 Mon Sep 17 00:00:00 2001
22
From: Carlos Bentzen <[email protected]>
33
Date: Fri, 2 Aug 2024 11:21:13 +0200
4-
Subject: [PATCH 3/9] webrtcbin: connect output stream on recv transceivers
4+
Subject: [PATCH 3/8] webrtcbin: connect output stream on recv transceivers
55

66
With MR 7156, transceivers and transports are created earlier,
77
but for sendrecv media we could get `not-linked` errors due to
@@ -19,10 +19,10 @@ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/72
1919
2 files changed, 68 insertions(+)
2020

2121
diff --git a/subprojects/gst-plugins-bad/ext/webrtc/gstwebrtcbin.c b/subprojects/gst-plugins-bad/ext/webrtc/gstwebrtcbin.c
22-
index 5ad6550d88..ec8fc47490 100644
22+
index bc5ebb1909..02652c0362 100644
2323
--- a/subprojects/gst-plugins-bad/ext/webrtc/gstwebrtcbin.c
2424
+++ b/subprojects/gst-plugins-bad/ext/webrtc/gstwebrtcbin.c
25-
@@ -6500,6 +6500,12 @@ _create_and_associate_transceivers_from_sdp (GstWebRTCBin * webrtc,
25+
@@ -6524,6 +6524,12 @@ _create_and_associate_transceivers_from_sdp (GstWebRTCBin * webrtc,
2626
webrtc_transceiver_set_transport (wtrans, stream);
2727
}
2828
}

images/wkdev_sdk/jhbuild/patches/0004-pad-Never-push-sticky-events-in-response-to-a-FLUSH_.patch

-81
This file was deleted.

images/wkdev_sdk/jhbuild/patches/0004-webrtc-Fixes-for-matching-pads-to-unassociated-trans.patch

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
From aaf06f221975d4ef771e81438da7179b4b3bdd00 Mon Sep 17 00:00:00 2001
1+
From 11d381a3d77848e62189df20ba4e7fe8c9dadd45 Mon Sep 17 00:00:00 2001
22
From: Jan Schmidt <[email protected]>
33
Date: Wed, 24 Jul 2024 20:59:51 +1000
4-
Subject: [PATCH 4/9] webrtc: Fixes for matching pads to unassociated
4+
Subject: [PATCH 4/8] webrtc: Fixes for matching pads to unassociated
55
transceivers
66

77
Fix an inverted condition when checking if sink pad caps match
@@ -17,10 +17,10 @@ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/72
1717
1 file changed, 3 insertions(+), 3 deletions(-)
1818

1919
diff --git a/subprojects/gst-plugins-bad/ext/webrtc/gstwebrtcbin.c b/subprojects/gst-plugins-bad/ext/webrtc/gstwebrtcbin.c
20-
index ec8fc47490..6a9484a2bc 100644
20+
index 02652c0362..6fa560b554 100644
2121
--- a/subprojects/gst-plugins-bad/ext/webrtc/gstwebrtcbin.c
2222
+++ b/subprojects/gst-plugins-bad/ext/webrtc/gstwebrtcbin.c
23-
@@ -8355,9 +8355,9 @@ gst_webrtc_bin_request_new_pad (GstElement * element, GstPadTemplate * templ,
23+
@@ -8379,9 +8379,9 @@ gst_webrtc_bin_request_new_pad (GstElement * element, GstPadTemplate * templ,
2424
GstWebRTCBinPad *pad2;
2525
gboolean has_matching_caps;
2626

@@ -32,7 +32,7 @@ index ec8fc47490..6a9484a2bc 100644
3232
continue;
3333

3434
/* Ignore stopped transmitters */
35-
@@ -8379,7 +8379,7 @@ gst_webrtc_bin_request_new_pad (GstElement * element, GstPadTemplate * templ,
35+
@@ -8403,7 +8403,7 @@ gst_webrtc_bin_request_new_pad (GstElement * element, GstPadTemplate * templ,
3636

3737
GST_OBJECT_LOCK (tmptrans);
3838
has_matching_caps = (caps && tmptrans->codec_preferences &&

images/wkdev_sdk/jhbuild/patches/0005-webrtcbin-Fix-renegotiation-checks.patch

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
From 22e49d68ab4095379df2f0e3fa09ee61f3fb5624 Mon Sep 17 00:00:00 2001
1+
From 8be67d014ff50275ad0dd0a70f81bb93b24033c6 Mon Sep 17 00:00:00 2001
22
From: Jan Schmidt <[email protected]>
33
Date: Thu, 1 Aug 2024 13:42:52 +1000
4-
Subject: [PATCH 5/9] webrtcbin: Fix renegotiation checks
4+
Subject: [PATCH 5/8] webrtcbin: Fix renegotiation checks
55

66
When checking for renegotiation against a local offer,
77
reverse the remote direction in the corresponding answer
@@ -27,7 +27,7 @@ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/73
2727
2 files changed, 151 insertions(+), 32 deletions(-)
2828

2929
diff --git a/subprojects/gst-plugins-bad/ext/webrtc/gstwebrtcbin.c b/subprojects/gst-plugins-bad/ext/webrtc/gstwebrtcbin.c
30-
index 6a9484a2bc..d8cf348f99 100644
30+
index 6fa560b554..6fb42da6f4 100644
3131
--- a/subprojects/gst-plugins-bad/ext/webrtc/gstwebrtcbin.c
3232
+++ b/subprojects/gst-plugins-bad/ext/webrtc/gstwebrtcbin.c
3333
@@ -1772,6 +1772,22 @@ done:
@@ -109,7 +109,7 @@ index 6a9484a2bc..d8cf348f99 100644
109109
gst_webrtc_rtp_transceiver_direction_to_string (remote_dir));
110110
return TRUE;
111111
}
112-
@@ -6280,22 +6302,6 @@ get_last_generated_description (GstWebRTCBin * webrtc, SDPSource source,
112+
@@ -6304,22 +6326,6 @@ get_last_generated_description (GstWebRTCBin * webrtc, SDPSource source,
113113
return NULL;
114114
}
115115

images/wkdev_sdk/jhbuild/patches/0006-webrtc-add-all-SSRC-attributes-getting-CAPS-for-a-PT.patch

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
From e2db93c386bb133ca7e4d3641007771de573695b Mon Sep 17 00:00:00 2001
1+
From 41fa9831893c9ee434840b4d1bf1150ab124f762 Mon Sep 17 00:00:00 2001
22
From: =?UTF-8?q?Fran=C3=A7ois=20Laignel?= <[email protected]>
33
Date: Thu, 7 Mar 2024 17:36:33 +0100
4-
Subject: [PATCH 6/9] webrtc: add all SSRC attributes getting CAPS for a PT
4+
Subject: [PATCH 6/8] webrtc: add all SSRC attributes getting CAPS for a PT
55

66
The transport stream only returned the CAPS for the first matching PT entry
77
from the `ptmap`. Other SSRC with the same PT where not included. For a stream
@@ -24,7 +24,7 @@ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/61
2424
3 files changed, 57 insertions(+), 6 deletions(-)
2525

2626
diff --git a/subprojects/gst-plugins-bad/ext/webrtc/gstwebrtcbin.c b/subprojects/gst-plugins-bad/ext/webrtc/gstwebrtcbin.c
27-
index d8cf348f99..2b920313d6 100644
27+
index 6fb42da6f4..8ac9850a62 100644
2828
--- a/subprojects/gst-plugins-bad/ext/webrtc/gstwebrtcbin.c
2929
+++ b/subprojects/gst-plugins-bad/ext/webrtc/gstwebrtcbin.c
3030
@@ -5080,6 +5080,8 @@ _set_internal_rtpbin_element_props_from_stream (GstWebRTCBin * webrtc,
@@ -36,7 +36,7 @@ index d8cf348f99..2b920313d6 100644
3636
}
3737

3838
GST_DEBUG_OBJECT (stream, "setting payload map on %" GST_PTR_FORMAT " : %"
39-
@@ -7562,8 +7564,7 @@ on_rtpbin_request_pt_map (GstElement * rtpbin, guint session_id, guint pt,
39+
@@ -7586,8 +7588,7 @@ on_rtpbin_request_pt_map (GstElement * rtpbin, guint session_id, guint pt,
4040
if (!stream)
4141
goto unknown_session;
4242

0 commit comments

Comments
 (0)