Compiling aac_dec for IPP 5.1.1 on linux

Compiling aac_dec for IPP 5.1.1 on linux

Hi,

I have a problem compiling aac_dec, every other codec compiles except this one. Here is the error:

In file included from include/aac_dec_own_fp.h:22,

from include/aac_dec_decoding_fp.h:17,
from src/aac_dec_api_fp.c:40:
include/sbrdec_api_fp.h:29: error: parse error before "IppsFilterSpec_SBR_R_32f"
include/sbrdec_api_fp.h:29: warning: no semicolon at end of struct or union
include/sbrdec_api_fp.h:30: warning: type defaults to `int' in declaration of `pAnalysisFilterSpec_HQmode'

It seems that I cannot find the definition of
IppsFilterSpec_SBR_R_32f anywhere and that is causing the
problem. Where is this defined, am I missing any files?

br, Kim Fredenberg

15 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.
vladimir-dudnik (Intel)'s picture

Hello,

do you mean you can't build IPP media sample with build script which is part of this sample?

Vladimir

Yes, I can compile every other decoder and encoder with the build scripts but aac_dec fails.

I guess it is because it cannot find the definition of IppsFilterSpec_SBR_R_32f.

Kim

Ok, I changed the order of my include files and it solved the problem.

Thanks, Kim

Hi again,

I was accidentaly compilin a3c_dec, so the problem persists. I still
cannot compile acc_dec which is required by the simple_player example
code.

Kim

vladimir-dudnik (Intel)'s picture

Great, but it is still not clear for me, do we an issue with IPP media sample? Or it was your own project built on base of UMC classes? I recommend you before making your own project just build media sample as it is to see that everything is compiled and work in default configuration.

Regards,
Vladimir

Yes, I am trying to compile the sample code. I am trying to compile the
simple_player from the l_ipp-sample-media_p_5.1.007.tgz package. And
first I compile all UMC components which all compiles nicely except
aac_dec.

I am using the gcc-3.4.3-glibc-2.3.3 crosscompiler which has worked perfectly berfore.

I used grep (on both UMC and IPP) to try to find any definition of
IppsFilterSpec_SBR_R_32f but I cannot find it except in the
ipp_sample/media/codec/aac_dec/include/sbrdec_api_fp.h where it is not
defined but used.

br, Kim

vladimir-dudnik (Intel)'s picture

What do you mean under cross compiler?Is your target IXP42x processor based system? If so you need to run buildwmmxt_le.sh or buildxscale_be.sh (depending on little-endian or big-endian target OS) script from media sample root folder.

Vladimir

Yes, I don't have the xscale_be compiler (can I get it from somewhere?) so I compile with a
crosscompiler built with crosstool. I think it is working ok since I
can compile every other codec in umc except aac_dec.

./build32.sh
******* video_renders PASSED
*******
umc_io
PASSED
******* media_buffers PASSED
******* audio_renders PASSED
*******
vm_plus
PASSED
*******
vm
PASSED
*******
usc
PASSED
*******
umc
PASSED
******* umc_pipeline PASSED
******* speech_codec PASSED
******* mpeg4_spl PASSED
******* mpeg4_enc PASSED
******* mpeg4_dec PASSED
******* mpeg2_spl PASSED
******* mpeg2_enc PASSED
******* mpeg2_dec PASSED
******* mp3_enc_int PASSED
*******
mp3_enc
PASSED
******* mp3_dec_int PASSED
*******
mp3_dec
PASSED
*******
jpeg
PASSED
******* h264_enc PASSED
******* h264_dec PASSED
******* h263_enc PASSED
******* h263_dec PASSED
******* h261_
enc PASSED
******* h261_dec PASSED
*******
dv_dec
PASSED
*******
common
PASSED
******* color_space_converter PASSED
*******
avi_spl
PASSED
*******
ac3_dec
PASSED
******* aac_enc_int PASSED
*******
aac_enc
PASSED
******* aac_dec_int PASSED
*******
aac_dec
FAILED
******* object_factory PASSED
******* audio_codecs FAILED
******* umc_video_enc_con FAILED
******* simple_player FAILED
******* audio_codec_con_so FAILED

audio_codecs and the applications fail because of linking problem but
this is not my problem now. If I can get aac_dec to compile then I can
manually do the simple_player.

Kim

vladimir-dudnik (Intel)'s picture

Please, refer to sample's readme file, you can't use build32.sh as it intended for IA32 architecture (names of libraries are different and set of UMC component is different). Moreover, we do support only Montavista compiler for IPP for IXP and did not test on gcc compiler.

Vladimir

Ok,

Well I did some modifying of the build32.sh script to suite my needs. I
successfully built an application I made with the gcc and 5.0 I will
play around with that a bit. If it fails I will look into the
Montavista and see if it would be wise to aquire a license for that, it
is commercial isn't it?

Kim

vladimir-dudnik (Intel)'s picture

Yes, Montavista compiler is commercial. We will be glad if IPP will work with gcc compiler, so please give us know about your results.

Basically, IPP for IXP is a bit different from IPP for IA in set of functions. Many IPP functions which work with Ipp32f and Ipp64f data types were excluded becuase there is no FPU on Xscale. But, we do provide fixed-point implementation of MP3 and AAC decoders, so you need to turn off float-point implementation and turn on fixed-point. Please see media_samplecoreumcincludeumc_defs.h file for the details. It would be better to take build scripts dedicated for Xscale platform and modify them instead of build32.sh which is for IA32

Vladimir

Ah yes but of course, that is why I cannot find
IppsFilterSpec_SBR_R_32f. I will try to modify the xscale build scripts
and see if I am lucky with that one.

Thanks, Kim

Ok,

Compiling the UMC classes worked fine with the crosscompiler when using
modifying the buildxscale scripts so that instead of compiling aac_dec
it compiled aac_dec_int. I had some touble compiling the applications
due to linking problems but I really don't need this since I now am
able to link to my own application. It would be nice however to make
two shared libraries like libipp.so and libumc.so, now there only seems
to be static ipp libraries?

vladimir-dudnik (Intel)'s picture

That's correct, currently we build UMC only as a static libraries. You can submit your feature request to Intel Premier Support, so we will revise that for the next version.

Regards,
Vladimir

Login to leave a comment.