Non deterministic CPU load for decoding on ARM

Peter Maersk-Moller pmaersk at gmail.com
Fri Aug 8 02:33:20 PDT 2014


Forgot to mention, the GStreamer version is 1.5.0 Git Master.

P


On Fri, Aug 8, 2014 at 11:32 AM, Peter Maersk-Moller <pmaersk at gmail.com>
wrote:

> Hi.
>
> I'm running a test on Odoird-U2 ARM processor with 4 cores.
> See http://hardkernel.com/main/products/prdt_info.php?g_code=G135341370451
>
> The test is decoding a well know video clip with the Big Bunny in
> 1280x720 at 25fps
> big_buck_bunny_720p_H264_AAC_25fps_3400K.MP4
>
> The machine is not running anything else CPU or disk intensive.
>
> Approximately 2/3 or 3 out of 4 times, the CPU load for reading and
> decoding the clip will be in the range of 42-48% seen with top and 'ps
> aux'. However 1/3 or 1/4 of the times, I see only a CPU load in the range
> of 22-25%.
>
> This behaviour also happens, if I run 2 or more identical processes. The
> processes are started with a few seconds in between. When I run more
> processes, chances that more than one process has a CPU load of 22-25% is
> lower - normal probability distribution - but sometimes it happens. I can't
> figure out why I sometimes see a lower load. Can any suggest why?
>
> The pipeline script is shown below and the pipeline is here:
>
> gst-launch-1.0 filesrc location=$file ! qtdemux ! h264parse ! queue !
> avdec_h264 ! queue ! fakesink sync=true
>
> If the filesrc was reading slower for some reason, this could be the
> explanation for a lower CPU load, but I don't think so because I see almost
> identical behaviour when running from 1 to 6 pipelines. More than 6-7
> pipelines I max out the CPU usage and you can't really tell what is
> contributed by what any more.
>
> Here is the script:
>
> #!/bin/sh
>
> if [ $# -ne 1 ] ; then
>   echo "Error. Usage : $0 <number of processes>"
>   exit
> fi
> no=$1
>
>
> decode_file()
> {
>   file=$1
>   gst-launch-1.0         \
>         filesrc location=$file !\
>         qtdemux         !\
>         h264parse       !\
>         queue           !\
>         avdec_h264      !\
>         queue           !\
>         fakesink sync=true
> }
>
> waitlist=''
> i=$no
> while [ $i -gt 0 ] ; do
>   decode_file big_buck_bunny_720p_H264_AAC_25fps_3400K.MP4 &
>   waitlist="$waitlist $!"
>   i=`expr $i - 1`
>   sleep 4
> done
>
> for wno in $waitlist ; do
>   echo Waiting $wno
>   wait $wno
> done
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20140808/2cdf3c6c/attachment.html>


More information about the gstreamer-devel mailing list