[FFmpeg-devel] [PATCH v2 0/8] aacdec: add a native xHE-AAC decoder

Lynne dev at lynne.ee
Sun May 19 19:54:36 EEST 2024


This patch adds support for the frequency domain part of the
xHE-AAC standard (ISO/IEC 23003-3).
The speech synthesis support is to be implemented with a later
patch. LPD is left as a stub with most bitstream parsing complete.

The DRC support is left up for discussion. The DRC system is
pretty much exactly ReplayGain2's system, so we may want to
expose it and be left for users to implement.
Validation does depend on DRC, however, so if we did it externally,
we'd still need a filter.

Changes from V1:
 - Preroll implemented
 - Complex stereo implemented
 - More robustness and bitstream validation
 - Surround/multichannel support
 - Desync fixes

Lynne (8):
  aacdec: move from scalefactor ranged arrays to flat arrays
  aacdec: expose channel layout related functions
  aacdec: expose decode_tns
  aacdec_dsp: implement 768-point transform and windowing
  aactab: add deemphasis tables for USAC
  aactab: add tables for the new USAC arithmetic coder
  aactab: add new scalefactor offset tables for 96/768pt windows
  aacdec: add a decoder for AAC USAC (xHE-AAC)

 libavcodec/aac/Makefile              |    3 +-
 libavcodec/aac/aacdec.c              |  371 +++---
 libavcodec/aac/aacdec.h              |  219 +++-
 libavcodec/aac/aacdec_ac.c           |  208 ++++
 libavcodec/aac/aacdec_ac.h           |   54 +
 libavcodec/aac/aacdec_dsp_template.c |  162 ++-
 libavcodec/aac/aacdec_fixed.c        |    2 +
 libavcodec/aac/aacdec_float.c        |    4 +
 libavcodec/aac/aacdec_latm.h         |   14 +-
 libavcodec/aac/aacdec_lpd.c          |  198 ++++
 libavcodec/aac/aacdec_lpd.h          |   33 +
 libavcodec/aac/aacdec_usac.c         | 1587 ++++++++++++++++++++++++++
 libavcodec/aac/aacdec_usac.h         |   39 +
 libavcodec/aactab.c                  |  560 +++++++++
 libavcodec/aactab.h                  |   22 +
 libavcodec/sinewin_fixed_tablegen.c  |    2 +
 libavcodec/sinewin_fixed_tablegen.h  |    4 +
 17 files changed, 3247 insertions(+), 235 deletions(-)
 create mode 100644 libavcodec/aac/aacdec_ac.c
 create mode 100644 libavcodec/aac/aacdec_ac.h
 create mode 100644 libavcodec/aac/aacdec_lpd.c
 create mode 100644 libavcodec/aac/aacdec_lpd.h
 create mode 100644 libavcodec/aac/aacdec_usac.c
 create mode 100644 libavcodec/aac/aacdec_usac.h

-- 
2.43.0.381.gb435a96ce8


More information about the ffmpeg-devel mailing list