ippsc library encode/decode function make my app buffer corrupted

ippsc library encode/decode function make my app buffer corrupted

Hi, all,

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, (
    void *pCntxt,
    Word16 *data,
    Word16 n_samples,
    Indice_fx *ind_list
    ))

IPPAPI(UWord16, ippsIntel_EVS_Decoder_Exec, (
    void *pCntxt,
    UWord8  *pInput_BitStream,              /* pointer to input bit stream */
    Word16  *pOutput                        /* pointer to buffer for output synthesis */
    ))

Regards, Chason

 

Zone: 

Thread Topic: 

Help Me
5 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Hi Chason, 

Do you have issue when calling ippsc library? What version of IPP do you have? IPPSC package had been deprecated since IPP 9.0.

Quote:

Shaojuan Z. (Intel) wrote:

Hi Chason, 

Do you have issue when calling ippsc library? What version of IPP do you have? IPPSC package had been deprecated since IPP 9.0.

Hello, Shaojuan,

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.

Thanks, Chason

 

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.

Regards. Chason

Update again.

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.

Thanks, Chason

Leave a Comment

Please sign in to add a comment. Not a member? Join today