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

ippsc library encode/decode function make my app buffer corrupted

Chason_D_
Beginner
1,456 Views

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

 

0 Kudos
7 Replies
Shaojuan_Z_Intel
Employee
1,456 Views

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.

0 Kudos
Chason_D_
Beginner
1,456 Views

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

 

0 Kudos
Chason_D_
Beginner
1,456 Views

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

0 Kudos
Chason_D_
Beginner
1,456 Views

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

0 Kudos
Warner__Mark
Beginner
1,456 Views

Try the latest PVSDK 1.9.0

I believe it is fixed

0 Kudos
Warner__Mark
Beginner
1,459 Views

A stack of 40k is probably too small.  It's more like 90k.

0 Kudos
Reply