how webrtcbin support qos methods just like pli and fir and nack

how webrtcbin support qos methods just like pli and fir and nack ,pakcet losts causes badly performance.

webrtcbin supports pli and nack in the same way that a rtpbin pipeline would.

For PLI’s they are transformed to/from GstForceKeyUnit events. This can then be acted on by e.g. an encoder or some other method to produce a encoded sync point.

For NACK, if you have RTX enabled, then webrtcbin will construct the pipeline so that rtx elements are used to handle (or produce) the NACK events.

i had fored the rtx in the code gstwebrtcbin.c in function {static WebRTCTransceiver *
_create_webrtc_transceiver (GstWebRTCBin * webrtc,
GstWebRTCRTPTransceiverDirection direction, guint mline, GstWebRTCKind kind,
GstCaps * codec_preferences)} add line (trans->do_nack = TRUE;)

it does enable nack,but when the lose rate up to move than %10(%11…),it works not stable,nack does work at the begining,but after some lost packets,it crashes,nack seems no more taking effect.any idea?

You should set the do-nack property on each webrtcbin transceiver to TRUE rather than modifying the source to enable NACK.

If you can get a crash with an unmodified source (but setting the transceiver property do-nack=TRUE) using a recent version of GStreamer (>= 1.22.x), then please provide a reproducible test case in a gitlab issue.

10% packet loss is rather large though and other mitigation methods may need to be performed in that scenario.