gstreamer/subprojects/gst-plugins-bad/ext/webrtc
Carlos Bentzen b83b73841d webrtc: fix duplicate payload types with RTX and multiple video codecs
Before this patch, there could be duplicate payload types in offers that
have, within a media section, multiple codecs and RTX enabled:

```
m=video 9 UDP/TLS/RTP/SAVPF 96 97 97 <-- HAS DUPLICATES
a=sendrecv
a=rtpmap:96 VP8/90000
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 transport-cc
a=rtpmap:97 H264/90000
a=rtcp-fb:97 nack
a=rtcp-fb:97 nack pli
a=rtcp-fb:97 ccm fir
a=rtcp-fb:97 transport-cc
a=rtpmap:97 rtx/90000  <--------- PT IS DUPLICATE
a=fmtp:97 apt=96
```

Fix this by populating the media_mapping array with all media formats
rather than only the first one. The added test case reproduces the issue,
which fails without this patch.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8259>
2025-01-13 10:11:59 +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 webrtc: fix duplicate payload types with RTX and multiple video codecs 2025-01-13 10:11:59 +00:00
gstwebrtcbin.h webrtc: Add reuse-source-pads property 2024-08-05 13:15:39 +00:00
gstwebrtcstats.c webrtc: Simplify fmtp handling in codec stats 2024-12-11 09:23:41 +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