HE-AAC+ Codec as Shared Library

This is a home page or he-aac+ v2 library, based on the reference implementation. I created it to prevent ugly embedding of the same code to many Open Source projects and to maintain patches and fixes for it.

3GPP released reference implementations 3GPP High Efficiency Advanced Audio Codec (HE-AAC) Codec (3GPP TS 26.410 V 8.0.0).

Reference implementations are available as a source code, but the code uses #define to choose code options. There is a common practice to compile reusable code as a shared library. Packages released here make required changes and provide AAC+ libraries as a shareable code.

Please note, that this wrapper does not fix all bugs of original code (but some of them - fixed). I will accept patches for them, if 3GPP will not release fixed implementation. This library implements encoder only, if you need decoder, use lib faad2 or android's PacketVideo implementation.

News

NEWS 2011-09-05:

  • Added GStreamer's gst-aacplus plugin source code to examples.

NEWS 2010-11-10:

  • Added AOT_SBR as extra object type to codec config (now ffplay works fine).
  • Updated ffmpeg patch for using libaacplus2 as aac+ encoder.

NEWS 2010-11-04:

  • Fixed aac config creation.
  • Add floating point samples as supported input format.
  • Decreased export symbols.

NEWS 2010-10-12:

  • New API, incompatible with older library version (but simpler).
  • Removed static data, now supported multiple instances in one application.

NEWS 2010-10-04:


Download

libaacplus-1.1.0.tar.gz (old api, that not supports multi-bitrate encoding)

libaacplus-2.0.2.tar.gz (new api, simplified to be like faac)

 

all files (mirror)

simple example (for old api)

For new api code usage, open frontend/main.c file as reference.

ffmpeg-patch (more info) latest ffmpeg git tree already patched

If you need plug-in for GStreamer, you may use gst-aacplus. More info you can find at README of this archive.

It is possible to distribute these packages in three source forms:

  1. As a wrapper-only source (as you can download here or rebuild by make extradist).
  2. As a full source code including 3GPP code (as you can build by make dist) (this has a legal problems, see below).
  3. As a wrapper-only source accompanied by the original zip file (this may have a legal problems, too).

Important legal notice

Before you decide to distribute AAC+ packages, you should read following notes!

These tarballs don't provide any 3GPP source code. It is downloaded from 3GPP during compilation. To use package compiled by this code, you may need a license from 3GPP.

AAC+ codecs incorporate several patents, held by Philips, Dolby, Ericsson and Nokia. Companies holding patents for HE AAC v1 (SBR) have formed a patent pool under Via Licensing to provide a single point of license for product makers. Patents owned by Dolby and Philips covering the Parametric Stereo used in HE AAC v2 (SBR+PS) are not included in the Via Licensing pool and are licensed separately by Dolby. Depending on law in your country, manufacturers and developers may need to get a license. Because it is a shared library, you may need special contract for each one application, which links against this library, directly or indirectly.

Please also note, that downloaded .doc file has a very restrictive license: No part may be reproduced except as authorized by written permission. The copyright and the foregoing restriction extend to reproduction in all media.

Further reading before getting a license

  1. On 3GPP policy on licensing and 3G Patent Platform: 3GPP Frequently Asked Questions / Legal Issues
  2. On intellectual property in ETSI standards: IPR in ETSI Deliverables
  3. On 3GPP legal issues: 3GPP Legal Issues
  4. On Dolby licensing (for SBR+PS): Licensing
  5. On VIA licensing (for SBR only): Licensing

Short summary:

  1. Depending on law in your country, you may need a license for distribution, any use, commercial use or even development.
  2. You don't have permission to distribute the source code and attached .doc file.