rtpav1pay allowed payload type range is too restrictive
rtpav1pay
restricts the payload type to the range [96, 127] (source code). However, RFC3551 says:
This profile reserves payload type numbers in the range 96-127 exclusively for dynamic assignment. Applications SHOULD first use values in this range for dynamic payload types. Those applications which need to define more than 32 dynamic payload types MAY bind codes below 96, in which case it is RECOMMENDED that unassigned payload type numbers be used first. However, the statically assigned payload types are default bindings and MAY be dynamically bound to new encodings if needed. Redefining payload types below 96 may cause incorrect operation if an attempt is made to join a session without obtaining session description information that defines the dynamic payload types.
Which leaves the door wide open for lower PTs to be used for any codec including AV1, and WebRTC by default allocates lower PTs for "newer codecs" including AV1 (see https://webrtc.googlesource.com/src/+/main/pc/g3doc/rtp.md). Jitsi signals PT 41 for AV1 by default, but an attempt to set up a GStreamer pipeline to payload AV1 using this PT fails with:
WARN rtpbasepayload gstrtpbasepayload.c:1186:gst_rtp_base_payload_negotiate:<rtpav1pay0> Can't use selected pt 41