<div dir="ltr"><div><div><div><div><div><div><div><div>Hi.<br><br></div>I'm running a test on Odoird-U2 ARM processor with 4 cores.<br></div>See <a href="http://hardkernel.com/main/products/prdt_info.php?g_code=G135341370451">http://hardkernel.com/main/products/prdt_info.php?g_code=G135341370451</a><br>
<br></div>The test is decoding a well know video clip with the Big Bunny in 1280x720@25fps<br>big_buck_bunny_720p_H264_AAC_25fps_3400K.MP4<br><br></div>The machine is not running anything else CPU or disk intensive.<br><br>
</div>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%.<br>
<br></div>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?<br>
<br></div><div>The pipeline script is shown below and the pipeline is here:<br><br>gst-launch-1.0 filesrc location=$file ! qtdemux ! h264parse ! queue ! avdec_h264 ! queue ! fakesink sync=true<br></div><div><br></div>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.<br>
<br></div>Here is the script:<br><br>#!/bin/sh<br><br>if [ $# -ne 1 ] ; then<br> echo "Error. Usage : $0 <number of processes>"<br> exit<br>fi<br>no=$1<br><br><br>decode_file()<br>{<br> file=$1<br> gst-launch-1.0 \<br>
filesrc location=$file !\<br> qtdemux !\<br> h264parse !\<br> queue !\<br> avdec_h264 !\<br> queue !\<br> fakesink sync=true<br>}<br>
<br>waitlist=''<br>i=$no<br>while [ $i -gt 0 ] ; do<br> decode_file big_buck_bunny_720p_H264_AAC_25fps_3400K.MP4 &<br> waitlist="$waitlist $!"<br> i=`expr $i - 1`<br> sleep 4<br>done<br><br>for wno in $waitlist ; do<br>
echo Waiting $wno<br> wait $wno<br>done<br><br><div><div><br><br></div></div></div>