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

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to