My application has a memory pool, and any buffer used is allocated from this pool. For EVS codec encoding/decoding, I also get buffer from this pool. But there is buffer corrupted after calling encode/decode function.
Due to my memory pool is managed by a library and I do not have its source code. I did a test that there is no buffer corrupted if I do not call encode/decode function. So I suspect that ippsc library maybe corrupt user buffer.
Please help me, and if you have similar issue. Thanks.
Linux x86_64 platform.
IPPSP: ippSP AVX (e9) Sep 2 2016 9.0.2 (r49804).PVSDK 1.2.1
IPPSC: ippSC AVX (e9) Mar 24 2017 9.0.2 (r49804).PVSDK 1.5.0
IPPAPI(UWord16, ippsIntel_EVS_Encoder_Exec, (
IPPAPI(UWord16, ippsIntel_EVS_Decoder_Exec, (
UWord8 *pInput_BitStream, /* pointer to input bit stream */
Word16 *pOutput /* pointer to buffer for output synthesis */
Shaojuan Z. (Intel) wrote:
Do you have issue when calling ippsc library? What version of IPP do you have? IPPSC package had been deprecated since IPP 9.0.
Thanks for your reply.
Yes, I suspect that ippsc EVS encode/decode function will corrupt other buffer. But I do not know what make this corruption.
My IPP core version is 9.0.2. And IPPSC library is released in PVSDK product which supports the EVS codec.
Update my new finding.
1. The memory is not corrupted, but my app crashed on free memory function free_buf(). However this function is not system native free().
2. This issue maybe has relation with compiler option: -O3 and –g. Because I use different compiler option to build the codec file( this file will invoke the ippsc encode/decode function), there is different crash function.
So I have another question: if there are some necessary requirements for static linking ippsc library? Thanks.
To be precise, my stack memory rather than heap memory was corrupted.
Because I enlarged my process stack size, and this crash issue was gone. Actually, my application is based on a private system, and its process stack size is very small (about 40 kbytes).
Maybe IPPSC EVS codec encode/decode implememting consume more stack size.