Hi,
Our customer uses two custom boards using AM5728, connected to HDMI input-> Ethernet / Ethernet-> HDMi output, and each uses gstreamer to transmit images. Linux SDK ver4.1.0.6 is used for development.
Normally, image transmission is performed with the following parameters and it is operating normally. ..
[Sender] (/dev/vip is a symbolic link to the VIP device file (/dev/video *))
gst-launch-1.0 rtpbin v4l2src device=/dev/vip io-mode=4 ! tee name=s s. ! queue ! vpe ! videorate ! video/x-raw,format=NV12,width=640,height=400,framerate=4/1 ! ducatijpegenc ! multifilesink max-files=1 location=/tmp/html/data/HDMIinput.jpg sync=false s. ! queue ! vpe ! video/x-raw,format=NV12,width=1440,height=900 ! videorate max-rate=15 drop-only=true ! ducatih264enc intra-interval=60 bitrate=1024 rate-preset=1 ! h264parse ! rtph264pay mtu=600 ssrc=1249992644 ! rtprtxqueue ! rtpbin0.send_rtp_sink_0 rtpbin0.send_rtp_src_0 ! tee name=u u. ! queue ! udpsink host=172.31.11.1 port=31020 udpsrc port=31030 caps=application/x-rtcp ! rtpbin0.recv_rtcp_sink_0 rtpbin0.send_rtcp_src_0 ! udpsink host=172.31.11.1 port=31030 sync=false async=false
【Receiver】
gst-launch-1.0 rtpbin do-retransmission=false udpsrc port=31020 ! application/x-rtp,media=video, clock-rate=90000, encoding-name=H264 ! rtpbin0.recv_rtp_sink_0 rtpbin0. ! rtph264depay ! h264parse ! ducatih264dec ! vpe ! video/x-raw,format=NV12,width=1152,height=720,pixel-aspect-ratio=1/1 ! waylandsink use-drm=true sync=false udpsrc port=31030 ! application/x-rtcp ! rtpbin0.recv_rtcp_sink_0 rtpbin0.send_rtcp_src_0 ! udpsink host=172.31.11.2 port=31030 sync=false async=false
However, when packet loss is intentionally generated on Ethernet ('> tc qdisc add dev eth0 root netem loss 1%'), the image of a few seconds ago is displayed on the output side.
According to their research, the situation is different by changing the intra-interval value of the "sender" gstreamer element.
・ 60: Occurs
・ 66: Occurs
・ 67: Does not occur
・ 120: Does not occur
Also, changing max-rate to 30 and intra-interval to 120 did not cause the phenomenon.
Furthermore, when they added a log like the one attached to gstducatividdec.c on the receiving side and analyzed it, only 3 types of fd were used when the phenomenon occurred, but 9 types of fd were used when it did not occur. I found out that it was broken.
(The attached source is the code in'tisdk / build / arago-tmp-external-linaro-toolchain / work / am57xx_evm-linux-gnueabi / gstreamer1.0-plugins-ducati / git-r2.26 / git / src' Changed)
The symptom seems to be related to the parameters on the sending side, regardless of the nimoca occurring on the receiving side.
In this situation, do you know what caused the video a few seconds ago to be displayed?
Since the cause cannot be predicted, it cannot be determined that the solution is that the phenomenon does not occur with the value of intra-interval.
Best Regards,
Kouji Nishigata