Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

valgrind error in MPEG4 encoder

dierssen
Beginner
256 Views

Hi!

I am building a live transcoder using Intel IPP. It works pretty well, but when I run it with valgrind, I get some errorsand they all seem to relate to one particular subject. In summary the error report contains:

Conditional jump or move depends on uninitialised value(s) at w7_ippiQuantIntra_MPEG4_16s_C1I

Conditional jump or move depends on uninitialised value(s)at ippVideoEncoderMPEG4::TransMacroBlockIntra_MPEG4(unsigned char*, unsigned char*, unsigned char*, short*, int*, int, int, int, int*)by ippVideoEncoderMPEG4::EncodeIVOP() (ippvideoencodermpeg4_vop.cpp)

As far as I can see it, valgrind signals that coeffMB is unitialized, but using a memset on it does not remove the error. Removing the __ALIGN part of__ALIGN16(Ipp16s, coeffMB, 64*6); in EncodeIVOP() also does not change anything.

It seems that ippiDCT8x8Fwd_8u16s_C1R or ippiQuantIntra_MPEG4_16s_C1I in TransMacroBlockIntra_MPEG4 do something with coeffMB (such that valgrind thinks the data is unitialized again) but since the IPP libraries are not built with debugging symbols and I do not have the source of IPP, I cannotlook into this code.

It could be the case that valgrind (latestrelease 3.2.0)cannot handle this code, but when somebody knows more about this, please let me know.

Greetings Werner.

I do not get any memory leak errors, so that is ok :D.

0 Kudos
2 Replies
Vladimir_Dudnik
Employee
256 Views

Hello, thank you for your report. It seems that valgrind just do not handle all the things correctly. Did you try to check the code with some other tools?

Regards,
Vladimir

0 Kudos
dierssen
Beginner
256 Views

Well, probably you are right. The error does not give me any problems, but I just wanted to check if there were more people with the same valgrind error :).

0 Kudos
Reply