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.

DM8148 50% ARM load with 1080p50fps H264 video playback

Friends,

with EZSDK 5.04.00.11 I am able to play 1080p50fps video using gstreamer. Here are the video file details.

test@hostpc:~/ti/videos$ ffprobe 00139.MTS
FFprobe version SVN-r20090707, Copyright (c) 2007-2009 Stefano Sabatini
  libavutil     49.15. 0 / 49.15. 0
  libavcodec    52.20. 0 / 52.20. 1
  libavformat   52.31. 0 / 52.31. 0
  built on Jan 19 2010 21:59:04, gcc: 4.4.3 20100116 (prerelease)
Input #0, mpegts, from '00139.MTS':
  Duration: 00:00:32.15, start: 1.938944, bitrate: 24961 kb/s
  Program 1
    Stream #0.0[0x1011]: Video: h264, yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 50 tbr, 90k tbn, 100 tbc
    Stream #0.1[0x1100]: Audio: ac3, 48000 Hz, stereo, s16, 256 kb/s

when I play this file, using gstreamer, the video looks good on my HDMI display but the statics printed by gstreamer pipeline says average load on ARM is around 50%.

here is the print from my gstreamer pipeline,

root@dm814x-evm:/usr/share/ti/data/videos# gst-launch-0.10 filesrc location=0013
9.MTS ! mpegtsdemux ! h264parse !  omx_h264dec ! omx_scaler ! 'video/x-raw-yuv,w
idth=1920,height=1080' ! omx_ctrl display-mode=OMX_DC_MODE_1080P_60  ! gstperf !
 omx_videosink sync=true
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...

(gst-launch-0.10:1650): GStreamer-CRITICAL **: _gst_util_uint64_scale_int: assertion `denom > 0' failed
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
perf0: frames: 28     current: 27.64     average: 27.64    arm-load: 3
perf0: frames: 78     current: 49.90     average: 38.71    arm-load: 49
perf0: frames: 129     current: 50.10     average: 42.53    arm-load: 54
perf0: frames: 180     current: 50.01     average: 44.42    arm-load: 50
perf0: frames: 230     current: 49.99     average: 45.52    arm-load: 52
perf0: frames: 281     current: 50.00     average: 46.27    arm-load: 53
perf0: frames: 331     current: 49.98     average: 46.80    arm-load: 50
perf0: frames: 382     current: 50.02     average: 47.20    arm-load: 50
perf0: frames: 432     current: 49.99     average: 47.51    arm-load: 51
perf0: frames: 482     current: 50.00     average: 47.76    arm-load: 54
perf0: frames: 532     current: 49.83     average: 47.94    arm-load: 53
perf0: frames: 583     current: 50.00     average: 48.12    arm-load: 50
perf0: frames: 634     current: 49.96     average: 48.26    arm-load: 50
perf0: frames: 685     current: 50.21     average: 48.40    arm-load: 53
perf0: frames: 735     current: 49.98     average: 48.50    arm-load: 49
perf0: frames: 785     current: 49.99     average: 48.60    arm-load: 54
perf0: frames: 836     current: 50.04     average: 48.68    arm-load: 46
perf0: frames: 886     current: 49.96     average: 48.75    arm-load: 50
perf0: frames: 937     current: 50.04     average: 48.82    arm-load: 48
perf0: frames: 988     current: 49.78     average: 48.87    arm-load: 53
perf0: frames: 1039     current: 50.23     average: 48.93    arm-load: 54
perf0: frames: 1089     current: 49.97     average: 48.98    arm-load: 53
perf0: frames: 1140     current: 50.02     average: 49.03    arm-load: 61
perf0: frames: 1191     current: 50.00     average: 49.07    arm-load: 50
perf0: frames: 1241     current: 49.97     average: 49.10    arm-load: 52
perf0: frames: 1291     current: 49.90     average: 49.13    arm-load: 48
perf0: frames: 1342     current: 50.12     average: 49.17    arm-load: 52
perf0: frames: 1392     current: 49.85     average: 49.19    arm-load: 53
perf0: frames: 1443     current: 50.06     average: 49.23    arm-load: 44
perf0: frames: 1493     current: 49.73     average: 49.24    arm-load: 56
perf0: frames: 1544     current: 50.20     average: 49.27    arm-load: 53
Recieved EOS event, press <CTRL+C> to terminate pipeline.
Recieved EOS event, press <CTRL+C> to terminate pipeline.
perf0: frames: 1595     current: 50.18     average: 49.30    arm-load: 53
Got EOS from element "pipeline0".
Execution ended after 32452758050 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
root@dm814x-evm:/usr/share/ti/data/videos#

I am not sure why ARM is being loaded 50% when we do h/w accelerated decoding(HDVICP)

Note: video I am playing is generated by my Panasonic HDC-V700 and the bitrate is around 25Mbps.

Is there anyone facing ARM loading problem with gstreamer?

thanks and best wishes,

Albert.



  • Hello,

    Albert David said:
    EZSDK 5.04.00.11 I am able to play 1080p50fps video using gstreamer.

    Could you try with the latest EZSDK 5.05.02?

    Pipelines:

    gst-launch -v filesrc location=00_1080p_50fps.MTS typefind=true ! mpegtsdemux  !  h264parse  queue !  omx_h264dec ! omx_scaler !  omx_ctrl display-mode=OMX_DC_MODE_1080P_60  ! gstperf ! omx_videosink 

    New clock: GstSystemClock
    perf0: frames: 2     current: 1.82     average: 1.82    arm-load: 13
    perf0: frames: 56     current: 53.47     average: 26.54    arm-load: 30
    perf0: frames: 106     current: 49.99     average: 34.08    arm-load: 33
    perf0: frames: 156     current: 49.99     average: 37.95    arm-load: 28
    perf0: frames: 206     current: 49.93     average: 40.30    arm-load: 31
    perf0: frames: 257     current: 50.07     average: 41.92    arm-load: 29

    gst-launch -v filesrc location=00_1080p_50fps.MTS typefind=true ! mpegtsdemux ! queue  !  h264parse  !  omx_h264dec ! omx_scaler !  omx_ctrl display- mode=OMX_DC_MODE_1080P_60  ! gstperf ! omx_videosink


    perf0: frames: 2     current: 1.81     average: 1.81    arm-load: 7
    perf0: frames: 56     current: 53.66     average: 26.51    arm-load: 33
    perf0: frames: 107     current: 50.01     average: 34.16    arm-load: 34
    perf0: frames: 158     current: 50.02     average: 38.05    arm-load: 32
    perf0: frames: 209     current: 49.93     average: 40.40    arm-load: 21
    perf0: frames: 260     current: 50.00     average: 41.98    arm-load: 32
    perf0: frames: 311     current: 50.07     average: 43.12    arm-load: 33
    perf0: frames: 361     current: 49.97     average: 43.96    arm-load: 32
    perf0: frames: 411     current: 50.00     average: 44.61    arm-load: 33
    perf0: frames: 461     current: 49.99     average: 45.14    arm-load: 32
    perf0: frames: 511     current: 49.99     average: 45.57    arm-load: 31
    perf0: frames: 562     current: 50.02     average: 45.94    arm-load: 31
    perf0: frames: 612     current: 49.98     average: 46.25    arm-load: 29
    perf0: frames: 663     current: 50.03     average: 46.52    arm-load: 36
    perf0: frames: 713     current: 49.98     average: 46.75    arm-load: 28


    You also could try  to address the issue by enlarging the buffers. You have to enlarge the queues as well as the buffers of your sources, e.g. ...! queue max-size-buffers=0 max-size-time=0 max-size-bytes=0 ! ... Even if not necessary increasing the buffer-sizes does not do any harm. Big buffers will only increase the pipeline's latency.

    gst-launch -v filesrc location=00_1080p_50fps.MTS typefind=true ! mpegtsdemux !  queue  !  h264parse ! queue max-size-buffers=0 max-size-time=0 max-size-bytes=0 !  omx_h264dec ! omx_scaler !  omx_ctrl display-mode=OMX_DC_MODE_1080P_60  ! gstperf ! omx_videosink

    New clock: GstSystemClock
    perf0: frames: 2     current: 1.83     average: 1.83    arm-load: 12
    perf0: frames: 55     current: 52.90     average: 26.28    arm-load: 100
    perf0: frames: 106     current: 49.94     average: 34.04    arm-load: 100
    perf0: frames: 157     current: 50.08     average: 37.99    arm-load: 100
    perf0: frames: 207     current: 49.94     average: 40.32    arm-load: 100
    perf0: frames: 258     current: 50.02     average: 41.93    arm-load: 100
    perf0: frames: 309     current: 50.01     average: 43.08    arm-load: 100
    perf0: frames: 359     current: 49.94     average: 43.92    arm-load: 100
    perf0: frames: 410     current: 50.05     average: 44.60    arm-load: 100
    perf0: frames: 460     current: 49.99     average: 45.13    arm-load: 100
    perf0: frames: 511     current: 50.03     average: 45.57    arm-load: 100
    perf0: frames: 663     current: 49.98     average: 46.52    arm-load: 29
    perf0: frames: 714     current: 50.04     average: 46.75    arm-load: 16
    perf0: frames: 765     current: 49.97     average: 46.95    arm-load: 7
    perf0: frames: 816     current: 50.03     average: 47.13    arm-load: 3
    perf0: frames: 867     current: 49.97     average: 47.29    arm-load: 7
    perf0: frames: 918     current: 50.04     average: 47.44    arm-load: 11
    perf0: frames: 968     current: 49.98     average: 47.56    arm-load: 10
    perf0: frames: 1019     current: 50.01     average: 47.68    arm-load: 6
    perf0: frames: 1069     current: 49.97     average: 47.78    arm-load: 3
    perf0: frames: 1120     current: 50.05     average: 47.88    arm-load: 7
    perf0: frames: 1170     current: 49.97     average: 47.96    arm-load: 5
    perf0: frames: 1221     current: 50.00     average: 48.05    arm-load: 8
    perf0: frames: 1272     current: 50.03     average: 48.12    arm-load: 6
    perf0: frames: 1322     current: 49.97     average: 48.19    arm-load: 6
    perf0: frames: 1373     current: 50.03     average: 48.26    arm-load: 9
    perf0: frames: 1423     current: 50.00     average: 48.32    arm-load: 4
    perf0: frames: 1473     current: 50.00     average: 48.37    arm-load: 13
    perf0: frames: 1523     current: 49.98     average: 48.42    arm-load: 3
    perf0: frames: 1574     current: 49.99     average: 48.47    arm-load: 2

    Let me know the results.

    Best Regards,

    Margarita