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

Memory error in IPP 8.0

Harry
Beginner
614 Views

Hi,

I'm working with l_ipp-samples_p_8.0.0.005, umc_video_dec_con, Linux OS. I decode my sample H.264 file: umc_video_dec_con -i test.264 -o dest_dec.yuv When I run it with Intel Inspector XE 2013 Update 9 (build 328075), I have 2 errors:

Uninitialized partial memory access umc_h264_dec_ippwrap.cpp:25; umc_h264_task_supplier.cpp:899 umc_video_dec_con

Uninitialized partial memory access umc_h264_dec_ippwrap.cpp:65; umc_h264_task_supplier.cpp:899 umc_video_dec_con

The source code is 

 

18	    IppStatus FilterDeblockingLuma_HorEdge(const IppiFilterDeblock_8u * pDeblockInfo)
19	    {
20	        return ippiFilterDeblockingLuma_HorEdge_H264_8u_C1IR(pDeblockInfo->pSrcDstPlane,
21	                                                             pDeblockInfo->srcDstStep,
22	                                                             pDeblockInfo->pAlpha,
23	                                                             pDeblockInfo->pBeta,
24	                                                             pDeblockInfo->pThresholds,
25	                                                             pDeblockInfo->pBs);
26	    }

and

58	    IppStatus FilterDeblockingChroma_VerEdge(const IppiFilterDeblock_8u * pDeblockInfo)
59	    {
60	        return ippiFilterDeblockingChroma_VerEdge_H264_8u_C1IR(pDeblockInfo->pSrcDstPlane,
61	                                                             pDeblockInfo->srcDstStep,
62	                                                             pDeblockInfo->pAlpha,
63	                                                             pDeblockInfo->pBeta,
64	                                                             pDeblockInfo->pThresholds,
65	                                                             pDeblockInfo->pBs);
66	    }

I tried to fixed this issue but it is not so clear of how to do it. Could you please help me, how to fix this problem?

0 Kudos
4 Replies
Sergey_K_Intel
Employee
614 Views

Hi,

Is it read access or write? At the end of frame buffer the function can read, say, 8 bytes of input data for better performance, modiy first couple of bytes and write them back. Formally, we read uniitinialized data, but actually we don't use them. The Inspector tool generates the error messages in these cases, though it is ok.

Regards,
Sergey

0 Kudos
Harry
Beginner
614 Views

Hi Sergey,

I think that it is read memory access (since we read data from file and then decode it).

It is good that all is ok :)

Thanks.

0 Kudos
Harry
Beginner
614 Views

Hi,

Today I tested mpeg2 video decoder and there is another read memory error:

# umc_video_dec_con -i test.m2v -o dest_dec.yuv

Invalid memory access umc_media_data.cpp:44; umc_mpeg2_dec_pic.cpp:121 umc_video_dec_con

Read umc_mpeg2_dec_pic.cpp:121 DecodeHeader umc_video_dec_con  86
     119              bit_rate_extension = (code >> 1) & 0xfff;                           >umc_video_dec_con!DecodeHeader - umc_mpeg2_dec_pic.cpp:121
     120                                                                                   umc_video_dec_con!DecodeSequenceHeader - umc_mpeg2_dec_pic.cpp:411
    >121              GET_BITS(video->bs, 16, code)                                        umc_video_dec_con!Init - umc_mpeg2_dec.cpp:481
     122              sequenceHeader.frame_rate_extension_d           = code & 31;         umc_video_dec_con!Init - umc_mpeg2_dec.cpp:1192
     123              sequenceHeader.frame_rate_extension_n           = (code >> 5) & 3;   umc_video_dec_con!InitVideoDecoder - main.cpp:400

Allocation site umc_media_data.cpp:44 Alloc umc_video_dec_con  86
     42       if(iLength)                                      >umc_video_dec_con!Alloc - umc_media_data.cpp:44
     43       {                                                 umc_video_dec_con!GetFrame - umc_frame_constructor.cpp:1350
    >44           m_pBufferPointer = (Ipp8u*)malloc(iLength);   umc_video_dec_con!PreUnLockInputBuffer - umc_frame_constructor.cpp:1051
     45           if(!m_pBufferPointer)                         umc_video_dec_con!UnLockInputBuffer - umc_frame_constructor.cpp:1012
     46               return UMC_ERR_ALLOC;                     umc_video_dec_con!CheckNextDataForward - umc_demuxer.cpp:548

Is it a real error or it is the same situation as previous?

 

 

 

0 Kudos
Sergey_K_Intel
Employee
614 Views

Yes, I see the same Inspector messages. I cannot explain this. GET_BITS is a set of macros with the result, which is not so obvious for Inspector to interpret. In debugger there is no problem. All required 16 bits of input stream are always in place (in buffer).

Nevertheless, UMC passed the required conformance tests with the test vectors equal to those of Media SDK. So, I see no big problem in this Inspector warnings.

Regards,
Sergey

0 Kudos
Reply