I am in the process of upgrading an existing application from IPP 7.0 to IPP 8.1. I make use of the routine ippiMorphReconstructDilate in my application. My question is, when I attempt to compile my application, I get a compilation warning that the symbol "ippiMorphReconstructGetBufferSize_" has been deprecated as of IPP 7.1.
ippreconstruct.cpp:37:5: error: ‘IppStatus ippiMorphReconstructGetBufferSize_8u_C1(IppiSize, int*)’ is deprecated (declared at ../../../../../../toolbox/shared/ipp/include/glnxa64/ippcv.h:1545): is deprecated. This function is obsolete and will be removed in one of the future IPP releases. Use the following link for details: http://software.intel.com/en-us/articles/intel-ipp-71-deprecated-features/ [-Werror=deprecated-declarations]
If you look at the IPP 8.1 documentation:
the example for ippiMorphReconstructDilate still makes use of ippiMorphReconstructGetBufferSize to determine the size of the buffer that is still a required input argument of the ippiMorphReconstructDilate interface.
My questions are:
My question(s) are:
1) Why is ippiMorphReconstructGetBufferSize deprecated, and was
MorphReconstructDilate also intended to be put on deprecation?
2) If MorphReconstructDilate is not supposed to be deprecated, how am I supposed to allocate the argument "pBuf", the second to last input argument:
IPPAPI(IppStatus, ippiMorphReconstructDilate_8u_C1IR, (const Ipp8u* pSrc,int srcStep,Ipp8u* pSrcDst, int srcDstStep, IppiSize roiSize, Ipp8u *pBuf,IppiNorm norm))
3) Is there another routine that I'm supposed to use to allocate the buffer required by ippiMorphReconstructDilate? Is there an example where I can see this being done?
please use IPPAPI(IppStatus, ippiMorphReconstructGetBufferSize,(IppiSize roiSize, IppDataType dataType, int numChannels, int *pBufSize))
function that replaces the deprecated ones for different data types.
before these functions removal the example in the manual will be updated accordingly.
Thank you very much for your help. I'm still confused though. When I look at the headers that come with IPP 8.1, the API you are describing does not appear to be defined:
grep ippiMorphReconstructGetBufferSize *.h
ippcv.h:// Name: ippiMorphReconstructGetBufferSize_8u_C1, ippiMorphReconstructGetBufferSize_16u_C1
ippcv.h:// ippiMorphReconstructGetBufferSize_32f_C1, ippiMorphReconstructGetBufferSize_64f_C1
ippcv.h:IPPAPI(IppStatus, ippiMorphReconstructGetBufferSize_8u_C1, (IppiSize roiSize, int *pSize))
ippcv.h:IPPAPI(IppStatus, ippiMorphReconstructGetBufferSize_16u_C1,(IppiSize roiSize, int *pSize))
ippcv.h:IPPAPI(IppStatus, ippiMorphReconstructGetBufferSize_32f_C1,(IppiSize roiSize, int *pSize))
ippcv.h:IPPAPI(IppStatus, ippiMorphReconstructGetBufferSize_64f_C1,(IppiSize roiSize, int *pSize))
Am I missing something, or did Intel deprecate the type specific APIs (e.g. ippiMorphReconstructGetBufferSize_8u_C1) without providing the replacement API IPPAPI(IppStatus, ippiMorphReconstructGetBufferSize,(IppiSize roiSize, IppDataType dataType, int numChannels, int *pBufSize)) that you recommended?
I took a look into headers from trunk - yes, you are right, this function is not available in the public release yet, it will be available in the next major IPP release (guess it will be 8.2 somewhere in the Autumn). So please use deprecated one for a while - the substitution will be available soon.