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