This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM5728: The image of a few seconds ago is displayed

Part Number: AM5728


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

  • Hi,

    Would like to check with respect to codec. Can you please share the below details?

    1. Codecs used and its version (Can be found in the release notes)
    2. All the static and dynamic parameters.
  • Hi, Kumear

    First of all, I'm sorry for being late.
    Also, when I was asked, I don't understand gstreamer, so I'm worried that I might be hearing something strange.

    1. I think you are using h.264, is that the encoded version? I don't know what release notes to look at.
    2. I intended to describe the parameters for gstreamer transmission / reception, but what are the missing items?

    Best Regards,

    Kouji Nishigata

  • Hi,

    1. The encoder version is present in the release notes. It should be present in the video codec directory, where the encoder library is present. There is a docs folder in parallel to it. Search for H264_Encoder_HDVICP2_ReleaseNotes.pdf

    2. User will be setting the configurable parameters to encoder. There are static and dynamic parameters, I was asking the same. Example: IH264ENC_DynamicParams and IH264ENC_Params. You can find these in codec interface file ih264enc.h