Opened 7 years ago

Last modified 4 years ago

#6568 open enhancement

Add support for DTS matrixed channel decoding

Reported by: macdavis Owned by:
Priority: wish Component: avcodec
Version: git-master Keywords: dca
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug:
The attachments are 2 "6.1 Matrix DTS-HD High Resolution Audio" files. One is "ES Phase Shift" enabled, which requires a discrete Center Surround channel during encoding. The other is "ES Pre-Mixed" enabled, which doesn't require a discrete Center Surround channel during encoding. FFmpeg is not able to decode those samples to 6.1 channel.

How to reproduce:
HR_6.1_MATRIX_ES_PHASE_SHIFT_3840.dtshd

ffmpeg -i /Volumes/BOOTCAMP/Users/Davis/Downloads/DTS\ CHECK/HR_6.1_MATRIX_ES_PHASE_SHIFT_3840.dtshd -f null -
ffmpeg version 3.3.git Copyright (c) 2000-2017 the FFmpeg developers
  built with Apple LLVM version 8.1.0 (clang-802.0.42)
  configuration: --optflags=-Ofast --prefix=/usr/local --extra-cflags='-march=haswell -mtune=intel -m64 -minline-all-stringops -fomit-frame-pointer -fforce-addr -finline-functions -funit-at-a-time -funroll-loops -ffunction-sections -fdata-sections -Ofast -pipe -fomit-frame-pointer -ftree-vectorize' --target-os=darwin --arch=x86_64 --cpu=haswell --disable-runtime-cpudetect --disable-debug --disable-opencl --disable-avdevice --disable-ffplay --disable-ffprobe --disable-postproc --disable-ffserver --disable-devices --disable-avresample --disable-indev=qtkit --disable-doc --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-gpl --enable-nonfree --enable-libopenh264 --enable-shared
  libavutil      55. 69.100 / 55. 69.100
  libavcodec     57.102.100 / 57.102.100
  libavformat    57. 76.100 / 57. 76.100
  libavfilter     6. 96.100 /  6. 96.100
  libswscale      4.  7.101 /  4.  7.101
  libswresample   2.  8.100 /  2.  8.100
Input #0, dtshd, from '/Volumes/BOOTCAMP/Users/Davis/Downloads/DTS CHECK/HR_6.1_MATRIX_ES_PHASE_SHIFT_3840.dtshd':
  Metadata:
    fileinfo        : 	
                    : 
  Duration: 00:00:04.03, bitrate: 3850 kb/s
    Stream #0:0: Audio: dts (DTS-HD HRA), 48000 Hz, 5.1(side), fltp
Stream mapping:
  Stream #0:0 -> #0:0 (dts (dca) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, null, to 'pipe:':
  Metadata:
    fileinfo        : 	
                    : 
    encoder         : Lavf57.76.100
    Stream #0:0: Audio: pcm_s16le, 48000 Hz, 5.1(side), s16, 4608 kb/s
    Metadata:
      encoder         : Lavc57.102.100 pcm_s16le
size=N/A time=00:00:04.03 bitrate=N/A speed= 117x    
video:0kB audio:2268kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown


HR_6.1_MATRIX_ES_PRE-MIXED_3840.dtshd

ffmpeg -i /Volumes/BOOTCAMP/Users/Davis/Downloads/DTS\ CHECK/HR_6.1_MATRIX_ES_PRE-MIXED_3840.dtshd -f null -
ffmpeg version 3.3.git Copyright (c) 2000-2017 the FFmpeg developers
  built with Apple LLVM version 8.1.0 (clang-802.0.42)
  configuration: --optflags=-Ofast --prefix=/usr/local --extra-cflags='-march=haswell -mtune=intel -m64 -minline-all-stringops -fomit-frame-pointer -fforce-addr -finline-functions -funit-at-a-time -funroll-loops -ffunction-sections -fdata-sections -Ofast -pipe -fomit-frame-pointer -ftree-vectorize' --target-os=darwin --arch=x86_64 --cpu=haswell --disable-runtime-cpudetect --disable-debug --disable-opencl --disable-avdevice --disable-ffplay --disable-ffprobe --disable-postproc --disable-ffserver --disable-devices --disable-avresample --disable-indev=qtkit --disable-doc --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-gpl --enable-nonfree --enable-libopenh264 --enable-shared
  libavutil      55. 69.100 / 55. 69.100
  libavcodec     57.102.100 / 57.102.100
  libavformat    57. 76.100 / 57. 76.100
  libavfilter     6. 96.100 /  6. 96.100
  libswscale      4.  7.101 /  4.  7.101
  libswresample   2.  8.100 /  2.  8.100
Input #0, dtshd, from '/Volumes/BOOTCAMP/Users/Davis/Downloads/DTS CHECK/HR_6.1_MATRIX_ES_PRE-MIXED_3840.dtshd':
  Metadata:
    fileinfo        : 	
                    : 
  Duration: 00:00:04.03, bitrate: 3850 kb/s
    Stream #0:0: Audio: dts (DTS-HD HRA), 48000 Hz, 5.1(side), fltp
Stream mapping:
  Stream #0:0 -> #0:0 (dts (dca) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, null, to 'pipe:':
  Metadata:
    fileinfo        : 	
                    : 
    encoder         : Lavf57.76.100
    Stream #0:0: Audio: pcm_s16le, 48000 Hz, 5.1(side), s16, 4608 kb/s
    Metadata:
      encoder         : Lavc57.102.100 pcm_s16le
size=N/A time=00:00:04.03 bitrate=N/A speed=35.9x    
video:0kB audio:2268kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown}}}

Change History (25)

by macdavis, 7 years ago

comment:1 by James, 7 years ago

Component: undeterminedavcodec
Priority: normalwish
Status: newopen

comment:3 by Carl Eugen Hoyos, 4 years ago

My DTS-HD capable receiver detects both files as 5.1.

in reply to:  3 ; comment:4 by macdavis, 4 years ago

The file is fine. It is encoded via DTS-HD Master Audio Suite. Mediainfo shows both files as 7 channels.

Replying to cehoyos:

My DTS-HD capable receiver detects both files as 5.1.

in reply to:  4 ; comment:6 by Carl Eugen Hoyos, 4 years ago

Replying to macdavis:

The file is fine. It is encoded via DTS-HD Master Audio Suite.

Does the software also allow decoding so we would know the expected output?

in reply to:  6 comment:7 by macdavis, 4 years ago

Yes. DTS-HD StreamPlayer can decode the rear center channel.

Replying to cehoyos:

Replying to macdavis:

The file is fine. It is encoded via DTS-HD Master Audio Suite.

Does the software also allow decoding so we would know the expected output?

comment:8 by Carl Eugen Hoyos, 4 years ago

Please provide the expected output.

by macdavis, 4 years ago

by macdavis, 4 years ago

by macdavis, 4 years ago

by macdavis, 4 years ago

in reply to:  8 comment:9 by macdavis, 4 years ago

I uploaded some new samples together with their expected outputs. I think this might be a better illustration as all channels make sounds. Note during DTS encoding, Rear Surround Left channel originally from a 7.1 test is chosen for the source of Center Surround channel. So it is expected to hear man's voice "Rear Surround Left" coming from Center Surround channel.

Replying to cehoyos:

Please provide the expected output.

Note: See TracTickets for help on using tickets.