[FFmpeg-devel] [PATCH 0/5] DTS Express (LBR) decoder

foo86 foobaz86 at gmail.com
Wed Apr 27 19:19:28 CEST 2016


This moves several DCA tables around in preparation and adds decoder for DTS
Express (LBR) format that is typically used for secondary audio tracks on BDs.

Current implementation supports decoding mono, stereo and 5.1 tracks at maximum
sampling rate of 48 kHz. LFE decoding is only supported for 48 kHz tracks. 5.1
tracks with embedded stereo downmix only decode the downmix because embedded
channel set (ECS) processing is not supported (too annoying to implement for
such obscure feature).

Decoder works reasonably well for various samples I've tested and is already
quite fast: mono LBR track decodes around 1.8k times faster that realtime here.

foo86 (5):
  avcodec/dcaenc: reuse shared quant levels table
  avcodec/dcaenc: move channel reordering tables to dcaenc.h
  avcodec/dca: move huffman data into separate object file
  avcodec/dca: move channel counter utility into dca.h
  avcodec/dca: add DTS Express (LBR) decoder

 Changelog             |    1 +
 libavcodec/Makefile   |    4 +-
 libavcodec/dca.h      |   28 +
 libavcodec/dca_core.c |   70 +-
 libavcodec/dca_core.h |    2 +-
 libavcodec/dca_exss.c |    9 +-
 libavcodec/dca_lbr.c  | 1858 +++++++++++++++++++++++++++++++++++++++++++++++++
 libavcodec/dca_lbr.h  |  130 ++++
 libavcodec/dcadata.c  |  495 +++++++++++--
 libavcodec/dcadata.h  |   47 +-
 libavcodec/dcadec.c   |   26 +-
 libavcodec/dcadec.h   |    5 +-
 libavcodec/dcadsp.c   |   27 +
 libavcodec/dcadsp.h   |    4 +
 libavcodec/dcaenc.c   |   14 +-
 libavcodec/dcaenc.h   |   45 +-
 libavcodec/dcahuff.c  | 1337 +++++++++++++++++++++++++++++++++++
 libavcodec/dcahuff.h  | 1046 +---------------------------
 18 files changed, 3998 insertions(+), 1150 deletions(-)
 create mode 100644 libavcodec/dca_lbr.c
 create mode 100644 libavcodec/dca_lbr.h
 create mode 100644 libavcodec/dcahuff.c

-- 
2.8.0.rc3



More information about the ffmpeg-devel mailing list