Help - Search - Members - Calendar
Full Version: Enhanced AAC plus free source code
Hydrogenaudio Forums > Lossy Audio Compression > AAC > AAC - Tech
shreya_pathak
Hi All,
I want to know where I can get the publicly available free source code of Enhanced AAC plus. Also I want to know where can I get the standard for Enhanced AAC plus or some documents related to Enhanced AAC plus.
Thanks and Regards
Shreya
dev0
http://www.audiocoding.com/ is the home of FAAD2, a free (GPLed) AAC decoder with HE-AAC support.
shreya_pathak
QUOTE(dev0 @ Jan 31 2005, 12:32 PM)
http://www.audiocoding.com/ is the home of FAAD2, a free (GPLed) AAC decoder with HE-AAC support.
*



I wanted the source code of Enhanced HE-AAC and not HE-AAC.
Can I get it from here. Has it been supported in FAAD2.
Thanks and Regards
Shreya
Gabriel
An encoder can be downloaded from 3gpp.
Garf
QUOTE(shreya_pathak @ Jan 31 2005, 10:20 AM)
QUOTE(dev0 @ Jan 31 2005, 12:32 PM)
http://www.audiocoding.com/ is the home of FAAD2, a free (GPLed) AAC decoder with HE-AAC support.
*



I wanted the source code of Enhanced HE-AAC and not HE-AAC.
Can I get it from here. Has it been supported in FAAD2.
Thanks and Regards
Shreya
*



FAAD2 has supported "Enhanced HE-AAC" (HE-AAC v2), or in other words, parametric stereo, for quite a while.
shreya_pathak
QUOTE(Latexxx @ Jan 31 2005, 05:15 PM)


Hi,
Thanks for your response.
I have downloaded the code from 3gpp but i am not able to debug the code. Have you come accross such error.
Waiting for ur reply
Thanks and Regards
Shreya
Wolverine5
QUOTE(Garf @ Jan 31 2005, 03:11 PM)
QUOTE(shreya_pathak @ Jan 31 2005, 10:20 AM)
QUOTE(dev0 @ Jan 31 2005, 12:32 PM)
http://www.audiocoding.com/ is the home of FAAD2, a free (GPLed) AAC decoder with HE-AAC support.
*



I wanted the source code of Enhanced HE-AAC and not HE-AAC.
Can I get it from here. Has it been supported in FAAD2.
Thanks and Regards
Shreya
*



FAAD2 has supported "Enhanced HE-AAC" (HE-AAC v2), or in other words, parametric stereo, for quite a while.
*


FAAD is decompresor, but how to make Enhanced HE-AAC files?
3gpp.org gives only sources:|
Latexxx
QUOTE(shreya_pathak @ Feb 1 2005, 07:06 AM)
Hi,
  Thanks for your response.
          I have downloaded the code from 3gpp but i am not able to debug the code. Have you come accross such error.
Waiting for ur reply
Thanks and Regards
Shreya
*


I haven't tried to debug. I've only compiled using ICL. My binaries can be found at http://kotisivu.mtv3.fi/ware.purkki/ .
Robredo
The 3G code works perfectly, including debug, when compiled in VC++. Linux I haven't tried.
Dan Nelson
The problem is the "source" distribution actually includes two binary libraries: libaudio.a, and libisomediafile.a. Not much source in there..

To build libisomediafile, you need to download http://www.iso.ch/iso/en/ittf/PubliclyAvai...nce/systems.zip and build the systems/mp4_file_format/ directory. I haven't found where the source to libaudio.a is yet (NAS probides a libaudio library, but it's not the same).
shreya_pathak
QUOTE(Dan Nelson @ Feb 22 2005, 09:14 AM)
The problem is the "source" distribution actually includes two binary libraries: libaudio.a, and libisomediafile.a.  Not much source in there..

To build libisomediafile, you need to download http://www.iso.ch/iso/en/ittf/PubliclyAvai...nce/systems.zip and build the systems/mp4_file_format/ directory.  I haven't found where the source to libaudio.a is yet (NAS probides a libaudio library, but it's not the same).
*



I want to what does these libraries consist of ?
Thanks and Regards
Shreya
Dan Nelson
QUOTE(shreya_pathak @ Feb 21 2005, 10:40 PM)
I want to what does these libraries consist of ?
Thanks and Regards
Shreya
*



I assume libisomediafile is responsible for creating the mp4 container, and libaudio is for reading the input file, since without either library, I get link errors like:

./src/main.o(.text+0x273): In function `main':
: undefined reference to `AuChannelOpen'
: undefined reference to `AuChannelClose'
: undefined reference to `AuChannelReadShort'
./src/mp4file.o(.text+0x21d): In function `MP4FileAddFrame':
: undefined reference to `MP4GetHandleSize'
./src/mp4file.o(.text+0x3a5): In function `WriteMP4File':
: undefined reference to `MP4WriteMovieToFile'
./src/mp4file.o(.text+0x491): In function `CloseMP4File':
: undefined reference to `MP4DisposeHandle'


, and if I build libisomediafile and link with that, the MP4* functions link okay, and the only errors that are left are the AuChannel* functions.
shreya_pathak
QUOTE(Dan Nelson @ Feb 22 2005, 10:25 AM)
QUOTE(shreya_pathak @ Feb 21 2005, 10:40 PM)
I want to what does these libraries consist of ?
Thanks and Regards
Shreya
*



I assume libisomediafile is responsible for creating the mp4 container, and libaudio is for reading the input file, since without either library, I get link errors like:

./src/main.o(.text+0x273): In function `main':
: undefined reference to `AuChannelOpen'
: undefined reference to `AuChannelClose'
: undefined reference to `AuChannelReadShort'
./src/mp4file.o(.text+0x21d): In function `MP4FileAddFrame':
: undefined reference to `MP4GetHandleSize'
./src/mp4file.o(.text+0x3a5): In function `WriteMP4File':
: undefined reference to `MP4WriteMovieToFile'
./src/mp4file.o(.text+0x491): In function `CloseMP4File':
: undefined reference to `MP4DisposeHandle'


, and if I build libisomediafile and link with that, the MP4* functions link okay, and the only errors that are left are the AuChannel* functions.
*



These libraries are precompiled. If I want to port this code on say Arm processor, then I need the source code of these libraries so as to compile it for Arm.Can I get this source code or these libraries can itself be used for porting on Arm ?

Dan Nelson
QUOTE(shreya_pathak @ Feb 21 2005, 11:00 PM)
These libraries are precompiled. If I want to port this code on say Arm processor, then I need the source code of these libraries so as to compile it for Arm.  Can I get this source code or these libraries can itself be used for porting on Arm ?
*
As I said in a previous post:
QUOTE(Dan Nelson @ Feb 22 2005, 09:14 AM)
To build libisomediafile, you need to download http://www.iso.ch/iso/en/ittf/PubliclyAvai...nce/systems.zip and build the systems/mp4_file_format/ directory. I haven't found where the source to libaudio.a is yet (NAS probides a libaudio library, but it's not the same).
*
I would guess that the source to libaudio is available somwhere at either http://www.3gpp.org/ftp/Specs/html-info/26-series.htm or http://www.iso.ch/iso/en/ittf/PubliclyAvailableStandards , but I wouldn't know where to start looking. Maybe someone should email the 3gpp people and ask them...
matthieu.laurent@purplelabs.com
Has someone found the source code of libaudia.a?
If yes, could he/she tell me where to find it?

Thanks

Matthieu
matthieu.laurent@purplelabs.com
loophole
I hope somebody works out what's going on here...I'd love a native OS X HE-AACv2 encoder - having to use Virtual PC is downright painful.
kurtnoise
QUOTE(matthieu.laurent@purplelabs.com @ Mar 17 2006, 11:56 AM)
Has someone found the source code of libaudia.a?
If yes, could he/she tell me where to find it?

With the last 3gp sources, these libs are in lib/linux folder. This encoder works fine with my Linux distro. smile.gif



@loophole :: compilation under MacOS should work with gcc...
Gabriel
Unfortunately those libs are not provided for OSX/PPC.

A very nice thing would be to replace those binaries libs by some source code.
Dan Nelson
QUOTE(Gabriel @ Mar 17 2006, 10:00 AM)
Unfortunately those libs are not provided for OSX/PPC.

A very nice thing would be to replace those binaries libs by some source code.
*


The encoder's requirements as far as processing the input file are pretty light; the only functions it needs are AuChannelOpen, AuChannelClose, and AuReadShort. It should be easy to write wrappers for those that call your favorite soundfile-reading library.
rootkit
I've edited a bit the source code and i've written missing Au* functions.
I had to keep in mind endianness to make the encoder works on powerpc and other big endian machines.
You can get it here: http://teknoraver.campuslife.it/software/mp4tools/

Cheers
loophole
OMG - you rule!! checking it out now.
CODE

cc -O3 -I/Users/hexley/Downloads/aacplusenc-0.2/libaacenc -I/Users/hexley/Downloads/aacplusenc-0.2/libbitbuf -I/Users/hexley/Downloads/aacplusenc-0.2/libfr -I/Users/hexley/Downloads/aacplusenc-0.2/libresamp -I/Users/hexley/Downloads/aacplusenc-0.2/libsbrenc -I/Users/hexley/Downloads/aacplusenc-0.2/libisomediafile -I/Users/hexley/Downloads/aacplusenc-0.2/libaudio   -c -o src/main.o src/main.c
In file included from /Users/hexley/Downloads/aacplusenc-0.2/libisomediafile/MP4Movies.h:29,
                 from /Users/hexley/Downloads/aacplusenc-0.2/libisomediafile/ISOMovies.h:9,
                 from src/main.c:13:
/Users/hexley/Downloads/aacplusenc-0.2/libisomediafile/MP4OSMacros.h:33:20: error: malloc.h: No such file or directory
src/main.c: In function 'main':
src/main.c:237: warning: pointer targets in passing argument 4 of 'IsSbrSettingAvail' differ in signedness
make: *** [src/main.o] Error 1


Get this trying to compile on OS X, do i need to manually tell make the target platform or anything, as there's on configure script or anything. Sorry I'm pretty new to this smile.gif
rootkit
QUOTE(loophole @ Jun 5 2006, 13:12) *

OMG - you rule!! checking it out now.
CODE

cc -O3 -I/Users/hexley/Downloads/aacplusenc-0.2/libaacenc -I/Users/hexley/Downloads/aacplusenc-0.2/libbitbuf -I/Users/hexley/Downloads/aacplusenc-0.2/libfr -I/Users/hexley/Downloads/aacplusenc-0.2/libresamp -I/Users/hexley/Downloads/aacplusenc-0.2/libsbrenc -I/Users/hexley/Downloads/aacplusenc-0.2/libisomediafile -I/Users/hexley/Downloads/aacplusenc-0.2/libaudio   -c -o src/main.o src/main.c
In file included from /Users/hexley/Downloads/aacplusenc-0.2/libisomediafile/MP4Movies.h:29,
                 from /Users/hexley/Downloads/aacplusenc-0.2/libisomediafile/ISOMovies.h:9,
                 from src/main.c:13:
/Users/hexley/Downloads/aacplusenc-0.2/libisomediafile/MP4OSMacros.h:33:20: error: malloc.h: No such file or directory
src/main.c: In function 'main':
src/main.c:237: warning: pointer targets in passing argument 4 of 'IsSbrSettingAvail' differ in signedness
make: *** [src/main.o] Error 1


Get this trying to compile on OS X, do i need to manually tell make the target platform or anything, as there's on configure script or anything. Sorry I'm pretty new to this smile.gif


I have compiled it on Linux PPC, not MacOSX PPC.
You culd try this CFLAGS: -I.. -I../../src -Wall -W -ansi -pedantic -Wno-long-long
The error was in libisomediafile, that had two subdirs, win32 and linux, so i've stripped the win32 out.
Dunno about OS X, never had it, but i suggest you to use the latest gcc compiler, since i'm using gcc 4.1.0 under linux.
What gcc -v says about his version?
krmathis
QUOTE(rootkit @ Jun 5 2006, 13:01) *
I've edited a bit the source code and i've written missing Au* functions.
I had to keep in mind endianness to make the encoder works on powerpc and other big endian machines.
You can get it here: http://blueangel.us/aacplusenc/

Compiled and running on Mac OS 10.4.6 (PowerPC). But testing remains...
Thanks! smile.gif
rootkit
QUOTE(krmathis @ Jun 5 2006, 13:38) *

QUOTE(rootkit @ Jun 5 2006, 13:01) *
I've edited a bit the source code and i've written missing Au* functions.
I had to keep in mind endianness to make the encoder works on powerpc and other big endian machines.
You can get it here: http://teknoraver.campuslife.it/software/mp4tools/

Compiled and running on Mac OS 10.4.6 (PowerPC). But testing remains...
Thanks! smile.gif


Isn't Mac OS 10.4.6 64-bit?
I have an issue with AMD64 that i haven't under i386, can you reproduce it?
issue samples are there: http://blueangel.us/mp4tools/ct-he-aac/
It seems a CT bug.

Cheers
krmathis
QUOTE(rootkit @ Jun 5 2006, 13:42) *
Isn't Mac OS 10.4.6 64-bit?

Parts of it might be dual architecture, since the G5 processor is 64-bit. But the G4 processor in my PowerBook is 32-bit. Perhaps you can tell me how to possible reproduce this, so I can give it a try?

@loophole. It complains about the missing malloc.h file. I just copied the malloc.h file from the 10.4u SDK into the libisomediafile folder and it compiled successfully
loophole
http://purrrr.net/tmp/aacplusenc.zip

Nevermind worked it out smile.gif

PPC OS X binary there.
rootkit
QUOTE(krmathis @ Jun 5 2006, 13:47) *

@loophole. It complains about the missing malloc.h file. I just copied the malloc.h file from the 10.4u SDK into the libisomediafile folder and it compiled successfully


Nope, on BSD malloc.h is replaced by stdlib.h IIRC
krmathis
QUOTE(rootkit @ Jun 5 2006, 14:00) *
Nope, on BSD malloc.h is replaced by stdlib.h IIRC
Well, I had the same compile error as 'loophole' the first time. But after copying the malloc.h file it compiled successfully. rolleyes.gif

Edit: I have compressed a couple of tracks to 32 and 48kbps. The sound quality is really impressive for the bitrate.
rootkit, the problem sample sound fine to me. So I guess it don affect Mac OS X on 32-bit either...
loophole
I just changed #include <malloc.h> to #include <malloc/malloc.h> in MP4OSMacros.h
rootkit
i've edited the program to save raw AAC streams with ADTS header instead of mp4 files.
stay tuned wink.gif
rootkit
Here it is: http://teknoraver.net/software/mp4tools/

It doesn't works under AMD64, but still should under powerpc.
Feedback is welcome!
danchr
QUOTE(loophole @ Jun 5 2006, 15:02) *

I just changed #include <malloc.h> to #include <malloc/malloc.h> in MP4OSMacros.h

The Right Thing™ to do is to include "stdlib.h". According to the C89 standard, this is where malloc() must be. It's safe to assume that any system and compiler you'll ever come across implements C89. Using "malloc.h" is an unportable Linux-ism.

Another good porability reference is The Single UNIX Specification. When in doubt, assume what it says, and consider anything else odd. (By this definition, yes, Windows is very odd indeed.)
chandra
Hi all,

I see a libisomedia.lib in the decoder module. I extracted the files from system.zip from www.publiclyavailablestandards.com. My problem is how can i port this on ARM processor. i see that it is being compiled for intel platform. for win32 platform there is a file named w32filemappingobject.c , what should be the corresponding file for ARM core. I am using RVDS and win32 can not be used. Some one who knows the solution give me a mail at sateeshchandra@gmail.com.



Thank you,

Sateesh









QUOTE(shreya_pathak @ Feb 21 2005, 23:00) *

QUOTE(Dan Nelson @ Feb 22 2005, 10:25 AM)
QUOTE(shreya_pathak @ Feb 21 2005, 10:40 PM)
I want to what does these libraries consist of ?
Thanks and Regards
Shreya
*



I assume libisomediafile is responsible for creating the mp4 container, and libaudio is for reading the input file, since without either library, I get link errors like:

./src/main.o(.text+0x273): In function `main':
: undefined reference to `AuChannelOpen'
: undefined reference to `AuChannelClose'
: undefined reference to `AuChannelReadShort'
./src/mp4file.o(.text+0x21d): In function `MP4FileAddFrame':
: undefined reference to `MP4GetHandleSize'
./src/mp4file.o(.text+0x3a5): In function `WriteMP4File':
: undefined reference to `MP4WriteMovieToFile'
./src/mp4file.o(.text+0x491): In function `CloseMP4File':
: undefined reference to `MP4DisposeHandle'


, and if I build libisomediafile and link with that, the MP4* functions link okay, and the only errors that are left are the AuChannel* functions.
*



These libraries are precompiled. If I want to port this code on say Arm processor, then I need the source code of these libraries so as to compile it for Arm.Can I get this source code or these libraries can itself be used for porting on Arm ?

rootkit
site moved to: http://teknoraver.net/software/mp4tools/
gettingair
QUOTE(loophole @ Jun 5 2006, 04:48) *

http://purrrr.net/tmp/aacplusenc.zip

Nevermind worked it out smile.gif

PPC OS X binary there.

Hello loophole, Any way to get the files? That site is down...
hyeewang
Hello! I downloaded the aacplus source code from 3gpp & test it. Float code is fine. But the fixed code (after 26411-630.zip) is terrible. Bad nosie spring with normal audio signal all along. Noise--hundreds of horses are running. Surprised , the fixed code before 630 is fine. Also , I found the problem happen in encoder code ,not decoder code. Maybe Coding technology release it before testing. ? The difference between 26411-630 & 26411-620? Anyone is kind to tell it?
LaserSokrates
QUOTE(hyeewang @ Aug 9 2007, 05:44) *

...the fixed code (after 26411-630.zip) is terrible. Bad nosie spring with normal audio signal all along. Noise--hundreds of horses are running. Surprised , the fixed code before 630 is fine. Also , I found the problem happen in encoder code ,not decoder code. Maybe Coding technology release it before testing. ? The difference between 26411-630 & 26411-620? Anyone is kind to tell it?

IIRC it's the same with MP3 encoders. Shine, also fixed point, produces files with a bad quality too.
rootkit
CT fixed the AMD64 bugs, new url is: http://teknoraver.campuslife.it/software/mp4tools/

Cheers
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.