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.

Linux/DRA746: Slow performance observed while opening application in carplay home screen for iphone 7 with waylandsink

Part Number: DRA746

Tool/software: Linux

Hello Team, 

We are using custom h/w and software based on DRA746 and SDK 3.03.

For CarPlay (H.264 Video streaming) we are using below gstreamer pipeline, the issue what we seeing sometimes the frames are buffered in the pipeline and not getting rendered on the display (For reference see attached IMG_0002.7z carplay_screenCapture.png). This is mostly evident when the source (CarPlay ) doesn't send frames when there is no change in the video frames.

appsrc -> h264parse -> ducatih264dec -> vpe -> waylandsink


From our debugging we can see that around 15 frames are buffer either it in ducati decoder or waylandsink

We are sharing the video pipeline and the properties set to the individual elements in the file VideoGST.C. Is there any settings which we could do to reduce the latency ?

Apple expects the latency to be ~100 msec with the pipeline.

We tried with 480p and 720p resoultion and we see the same behaviour for both cases.

Will share the video and .VideoGST.C file  separately. 

Thanks & Regards,

Ikshwaku

  • Hi Ikshwaku,
    I could understand the problem with the video you shared. Can you point me the duration in the video where you are seeing the issue?

    Ramprasad
  • Hi Ramprasad,

    At duration 00:25 sec the issue is visible clearly. In the video attached, the difference in the video when compared to the phone is seen when ever we are transiting to a new screen on the phone. 

    SriDevika 

  • Hello Ram,

    In the video issue is there at
    1. 00.01 where on phone we have three playback icons, but on target middle icon is not proper
    2. 00.03 content on phone and target is different.
    3. 00.05 we have pressed the contact button on the phone but on the target screen is not updated but it is updated to call screen when we have pressed home button on the phone. and it updated the home screen properly when we switched to media play back
  • Hello Ram,

    Any update for this issue?

    Thanks,
    Ikshwaku
  • Hi Ikshwaku,

    Thanks for sharing the sample application to reproduce the issue. I will try to reproduce the issue and update you

    Ram

  • Hi Ikshwaku,
    I could compile your test application and able to reproduce the issue. video is seen on display after decoding 18th frame.
    In ducatih264decoder plugin, display-delay is set to IVIDDEC3_DISPLAY_DELAY_AUTO which means decoder will decide when to output a display frame. Decoder decides this based on the properties of stream.

    Set the displayDelay to IVIDDEC3_DECODE_ORDER in gstducatih264dec.c and rebuild the ducati plugin. This should resolve the problem.
    I have tested this and video on is seen after decoding 1st frame itself.

    But please note that, setting displayDelay to IVIDDEC3_DECODE_ORDER is applicable only to Carplay use case, this is assuming that Apple device sends encoded frames in IPPP sequence only.

    Same settings of displayDelay can not be used for other video playback, frames will go out of order.
    So it is recommended to make displayDelay a property for ducatih264dec.

    Please try this option once and check if the issue is resolved.

    It looks like there is one more patch required on waylandsink to post the event when there is no buffer updates are happening. I will let you on this .

    Ram
  • Hello Ram,

    Thanks for you prompt reply .
    By setting displayDelay to IVIDDEC3_DECODE_ORDER performance is improved significantly. Now out of 60 frames 58 frames are displayed.

    Please provide the patch for making displayDelay a property for ducatih264dec.

    Thanks & Regards,
    Ikshwaku
  • Hi Ikshwaku,

    I have created the patch for setting the display-delay of ducatih264dec , and tested your application. Please find the patch.

    In your application set display-delay to 0 for DECODE_ORDER, it should resolve the issue.

    TI will add this patches to ducati repository after a review.

    0001-h264dec-Add-a-property-to-set-display-delay.zip

    Thanks

    Ram