rtpav1depay: Failed to handle RTP packet: Error
Describe your issue
We're using pion to trasmit AV1 payloads encoded with the following pipeline:
ximagesrc name=videosrc display-name=":0.0" remote=1 blocksize=16384 use-damage=0 show-pointer=true ! video/x-raw,name=videocaps ! queue leaky=downstream flush-on-eos=true max-size-time=40000000 max-size-buffers=0 max-size-bytes=0 ! videoconvert ! video/x-raw,format=I420 ! av1enc name=vcodec cpu-used=10 end-usage=cbr keyframe-max-dist=2147483647 lag-in-frames=0 overshoot-pct=10 row-mt=True usage-profile=realtime tile-columns=2 tile-rows=2 threads=8 target-bitrate=20000 ! video/x-av1,parsed=True,stream-format=obu-stream ! appsink name=appsink
The following pipeline is used to decode it:
appsrc format=time is-live=true do-timestamp=true name=src ! application/x-rtp,encoding-name=AV1,payload=96 ! queue ! rtpav1depay ! queue ! decodebin ! glimagesink name=glsink
Expected Behavior
It should not print any errors and show the picture on the screen
Observed Behavior
Black screen and spamming
0:00:05.680624059 5869 0x7b702c000e30 WARN rtpav1depay net/rtp/src/av1/depay/imp.rs:184:<gstrsrtp::av1::depay::imp::RTPAv1Depay as gstreamer_rtp::subclass::rtp_base_depayload::RTPBaseDepayloadImpl>::process_rtp_packet:<rtpav1depay0> Failed to handle RTP packet: Error
96
0:00:05.718753607 5869 0x34980af0 INFO GST_PARENTAGE gstbin.c:4395:gst_bin_get_by_name: [pipeline0]: looking up child element src
0:00:05.719088031 5869 0x7b702c000e30 INFO GST_ERROR_SYSTEM gstelement.c:2281:gst_element_message_full_with_details:<rtpav1depay0> posting message: Could not read from resource.
0:00:05.719116874 5869 0x7b702c000e30 INFO GST_ERROR_SYSTEM gstelement.c:2308:gst_element_message_full_with_details:<rtpav1depay0> posted warning message: Could not read from resource.
in the console (GST_DEBUG=4
)
Setup
- Operating System: Linux
- gst-plugins-rs Version: 1.24.3
- GStreamer Version: 1.24.3
- Command line: N/A
Steps to reproduce the bug
- Run server on the first machine
- Try to run the server on the second machine
- Stare at the black screen
How reproducible is the bug?
Always
Solutions you have tried
Setting payload type to 45 (as it actually sent by pion) didn't allow to even create the pipeline (as expected). No payload type patching leads to the same error, so may be payload type is set in a different place, here's the code used:
if codecName == "av1" && buf[1] & 0x7F == 45 {
buf[1] &= 0x80
buf[1] |= 96
fmt.Printf("%d\n", buf[1] & 0x7F)
}
Additional Information
Code is based on this pion example.
Edited by anonymix007