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.

Poor GStreamer Performance on DM8168

 

We are using the version of GStreamer available here https://gstreamer.ti.com/gf/project/gstreamer_ti/ for the 8168.  Running the following pipeline utilizes 60-80% of the ARM core.  The incoming RTP stream is a 720p MPEG-2 stream at 15 Mbps. 

gst-launch -v udpsrc port=10002 caps="application/x-rtp" ! rtpmp2tdepay ! ffdemux_mpegts name=demux demux.video_00 ! mpegvideoparse ! omx_mpeg2dec ! omx_h264enc bitrate=8000000 ! 'video/x-h264' ! mpegtsmux ! rtpmp2tpay ! udpsink host=192.168.1.155 port=10000

 

The decode and encode operations (omx_***) are performed on the IVA, so why is the CPU utilization so high?  Are there alternative GStreamer plugins with superior performance?

 

  • Steve,

        We are working to get more details on performance. But here is what we figured out till now:

     

    • For the pipeline that you are trying, it seems that udpsrc element itself is consuming as much as 20% ARM CPU. We tried running a pipeline  - gst-launch -v udpsrc port=5004 caps="application/x-rtp" ! fakesink and it shows around 20-25% ARM usage to receive a 16Mbps stream.
    • We benchmarked few other pipelines and derived that each of the OMX component seems to be consuming around 8-10%. This is higher than what we expect and we will be working to improve this number.
    • Though we havn't been able to benchmark the rest of the pipeline properly but based on performance of incremental pipelines it seems that mpegtsmux and rtmp2tpay is also consuming another 20-25% for 8 Mbps stream. 

    One question in your experiment above were you using a 720P30 stream or 720P60 stream?

    Thanks,

    Satish

     

  • Steve -- was your stream 720p30 or 720p60?

    Satish -- do you have any updates in terms of improved OMX performance? 

  • This was a 720p30 stream.