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