gstreamer/subprojects/gst-plugins-bad/ext/webrtc
Jan Schmidt 0f8fc27892 webrtcbin: Fix renegotiation checks
When checking for renegotiation against a local offer,
reverse the remote direction in the corresponding answer
to fix falsely not triggering on-negotiation needed when
switching (for example) from local sendrecv -> recvonly
against a peer that answered 'recvonly'.

In the other direction, when the local was the answerer,
renegotiation might trigger when it didn't need to -
whenever the local transceiver direction differs from
the intersected direction we chose. Instead what we want
is to check if the intersected direction we would now
choose differs from what was previously chosen.

This makes the behaviour in both cases match the
behaviour described in
https://www.w3.org/TR/webrtc/#dfn-check-if-negotiation-is-needed

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7303>
2024-08-11 21:45:10 +00:00
..
fwd.h
gstwebrtc.c
gstwebrtcbin.c webrtcbin: Fix renegotiation checks 2024-08-11 21:45:10 +00:00
gstwebrtcbin.h
gstwebrtcstats.c
gstwebrtcstats.h
meson.build
transportreceivebin.c
transportreceivebin.h
transportsendbin.c
transportsendbin.h
transportstream.c
transportstream.h
utils.c
utils.h
webrtcdatachannel.c
webrtcdatachannel.h
webrtcsctptransport.c
webrtcsctptransport.h
webrtcsdp.c
webrtcsdp.h
webrtctransceiver.c
webrtctransceiver.h