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.

Understanding Qualiti

Guru 10685 points


I am using Qualiti to verify the "viddec2_copy" example that is provided in the DVSDK for XDAIS.

I have removed the line in the algorithm source code file viddec2_copy.c that is below:

memcpy(outBufs->bufs[0], inBufs->descs[0].buf, numInBytes);

and replaced it with a few lines to fiddle with the video buffer passed in by added an integer to it:

for(i=0; i<numInBytes; i++)
{
    (outBufs->bufs[0])[i] = (inBufs->descs[0].buf)[i] + i;
}

(I know that there might be an overflow but I'm not bothered by this.)

As soon as I make this replacement and recompile the algorithm it then fails the Qualiti test on rule 20: "Performance test failed. Unable to extract the 'worst case stack' information.". I've read the call_graph.htm documentation and run the command separately and still have no idea what is wrong with my small change made to the working algorithm that used to pass the Qualiti rules.

What is really strange is that if I just add back in the call to memcpy and recompile, the built binary then passes the Qualiti rules even though it still includes my added "for" loop!

I'd be really grateful if someone could explain to me what is going on as I've read all the docs and it still isn't obvious what is wrong.

 

Thanks,

Ralph