gstreamer/subprojects/gst-plugins-bad/ext/webrtc
Carlos Bentzen 77faf0a163 webrtcbin: fix regression with missing RTP header extensions in Answer SDP
webrtcsrc first creates recvonly transceivers with codec-preferences
and expects that after applying a remote description, the
previously created transceivers are used rather than having new
transceivers created.

When pairing webrtcsink + webrtcsrc, the offer sdp from webrtcsink has a media
section with sendonly direction. In !7156, which was implemented following
RFC9429 Section 5.10, we only reuse a unassociated transceiver when applying a
remote description if the media is sendrecv or recvonly, and that caused creation
of new transceivers when applying a remote offer in webrtcsrc, thus losing
information from codec preferences like the RTP extension headers in the
previously created transceivers.

Since the change in !7156 broke existing code from webrtcsrc, relax the condition
for reusing unassociated transceivers and add a test to document this behavior which
wasn't covered by any tests before.

Fixes #3753.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7417>
2024-08-27 23:56:00 +00:00
..
fwd.h webrtc: Split WebRTCICE into base classes and implementation. 2022-07-26 13:51:11 +00:00
gstwebrtc.c Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstwebrtcbin.c webrtcbin: fix regression with missing RTP header extensions in Answer SDP 2024-08-27 23:56:00 +00:00
gstwebrtcbin.h webrtc: Add reuse-source-pads property 2024-08-05 13:15:39 +00:00
gstwebrtcstats.c webrtcbin: Always populate rtp-inbound stats fields 2024-08-20 12:07:02 +00:00
gstwebrtcstats.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
meson.build meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
transportreceivebin.c Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
transportreceivebin.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
transportsendbin.c Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
transportsendbin.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
transportstream.c webrtc: add all SSRC attributes getting CAPS for a PT 2024-03-08 10:28:15 +00:00
transportstream.h webrtc: implement initial simulcast fec/rtx usage 2022-03-29 23:55:41 +00:00
utils.c webrtcbin: Improve SDP intersection for Opus 2024-01-25 13:37:21 +00:00
utils.h webrtcbin: Improve SDP intersection for Opus 2024-01-25 13:37:21 +00:00
webrtcdatachannel.c webrtcdatachannel: Bind to parent webrtcbin using a weak reference 2023-05-08 19:20:22 +00:00
webrtcdatachannel.h webrtcdatachannel: Bind to parent webrtcbin using a weak reference 2023-05-08 19:20:22 +00:00
webrtcsctptransport.c Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
webrtcsctptransport.h webrtc: Split WebRTCICE into base classes and implementation. 2022-07-26 13:51:11 +00:00
webrtcsdp.c webrtcbin: create and associate transceivers earlier in negotation 2024-08-01 07:38:46 +00:00
webrtcsdp.h webrtcbin: create and associate transceivers earlier in negotation 2024-08-01 07:38:46 +00:00
webrtctransceiver.c webrtcbin: Store pending mid to make create-offer idempotent 2022-09-02 11:52:58 +02:00
webrtctransceiver.h webrtcbin: Store pending mid to make create-offer idempotent 2022-09-02 11:52:58 +02:00