Nvv4l2h264enc NACK / PLI / FIR event handling

Hello

We noticed that the orin hardware encoder does not react when Chrome sends NACK via webrtc to force sending back key unit events. When digging further we discussed with gstreamer maintainers and they told us that:

GStreamer’s RTP stack (rtpsession/rtpbin) will handle PLI (Picture Loss Indication) and FIR (Full Intra Refresh) requests from the receiver (Chrome browser) and convert them into GstForceKeyUnit events (Forcing keyframes). It is these force key unit events that an encoder is expected to handle. However, the nvv4l2*enc family of elements have never supported this interface and instead have a dedicated action signal ‘force-IDR’ for this purpose. webrtcsink (and many applications) contain a workaround for this: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/blob/main/net/webrtc/src/webrtcsink/imp.rs?ref_type=heads#L694.

Can you please implement also handling this event name in the encoders closed source so we can only send those key frames only when needed (on lost packets)?

Thank you in advance!
R

Hi,
We will check this but it may take some time. Since gst-v4l2 is public, would be great if you can check the source code and try to implement it. The source code is in

Jetson Linux | NVIDIA Developer
Driver Package (BSP) Sources