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

Compiling aac_dec for IPP 5.1.1 on linux

ft1
Beginner
914 Views
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

0 Kudos
14 Replies
Vladimir_Dudnik
Employee
914 Views

Hello,

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

Vladimir

0 Kudos
ft1
Beginner
914 Views
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

0 Kudos
ft1
Beginner
914 Views
Ok, I changed the order of my include files and it solved the problem.

Thanks, Kim

0 Kudos
ft1
Beginner
914 Views
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


0 Kudos
Vladimir_Dudnik
Employee
914 Views

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

0 Kudos
ft1
Beginner
914 Views
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

0 Kudos
Vladimir_Dudnik
Employee
914 Views

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

0 Kudos
ft1
Beginner
914 Views
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

0 Kudos
Vladimir_Dudnik
Employee
914 Views

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

0 Kudos
ft1
Beginner
914 Views
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


0 Kudos
Vladimir_Dudnik
Employee
914 Views

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

0 Kudos
ft1
Beginner
914 Views
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


0 Kudos
ft1
Beginner
914 Views
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?

0 Kudos
Vladimir_Dudnik
Employee
914 Views

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

0 Kudos
Reply