I don’t think I am making any assertions about Plex failing to decode DTS-HD MA properly and only grabbing the core audio. Observing Plex Transcoder.exe with -v debug will only ever show it seeing 6 channels from 7.1 (8 channel) DTS XLL when the same exact set of commands with an untouched, vanilla build of ffmpeg, even the same exact ~2018 build of ffmpeg that Plex forked, will produce 8 channel output.
Stream mapping:
Stream #0:1 (dca) -> aresample
aresample -> Stream #0:0 (pcm_s24le)
Press [q] to stop, [?] for help
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
Last message repeated 1 times
detected 24 logical cores
[Parsed_aresample_0 @ 026f9900] Setting 'async' to value '1'
[Parsed_aresample_0 @ 026f9900] Setting 'icl' to value '7.1'
[Parsed_aresample_0 @ 026f9900] Setting 'rematrix_maxval' to value '60.000000dB'
[Parsed_aresample_0 @ 026f9900] Setting 'osr' to value '48000'
[graph_0_in_0_1 @ 026fa240] Setting 'time_base' to value '1/48000'
[graph_0_in_0_1 @ 026fa240] Setting 'sample_rate' to value '48000'
[graph_0_in_0_1 @ 026fa240] Setting 'sample_fmt' to value 'fltp'
[graph_0_in_0_1 @ 026fa240] Setting 'channel_layout' to value '0x60f'
[graph_0_in_0_1 @ 026fa240] tb:1/48000 samplefmt:fltp samplerate:48000 chlayout:0x60f
[format_out_0_0 @ 026fa100] Setting 'sample_fmts' to value 's32'
[AVFilterGraph @ 03950b40] query_formats: 4 queried, 9 merged, 0 already done, 0 delayed
[Parsed_aresample_0 @ 026f9900] [SWR @ 02d4a300] Using fltp internally between filters
[Parsed_aresample_0 @ 026f9900] ch:6 chl:5.1(side) fmt:fltp r:48000Hz -> ch:6 chl:5.1(side) fmt:s32 r:48000Hz
[graph_0_in_0_1 @ 026fa240] Setting ‘channel_layout’ to value '0x60f
[Parsed_aresample_0 @ 026f9900] ch:6 chl:5.1(side) fmt:fltp r:48000Hz → ch:6 chl:5.1(side) fmt:s32 r:48000Hz
I never explicitly mentioned EAE… and Dolby =! DTS!!!
This also has little to nothing to do with EAE, you can clearly see that Plex is invoking aac_mf = Microsoft Media Foundation AAC encoder, which only has 6 channel support, since I guess that was the “right” encoder in this context.
Even though invoking EAE via -c:a eac3_eae is potentially a scenario where this issue might manifest, as it does support 7.1 output, that isn’t my primary concern here. Even if I manually force Plex Transcoder.exe to output uncompressed PCM from that DTS-HD MA 7.1 track, without ever invoking EAE or even setting the correct environment variables for EAE it only ever sees the 5.1 channel, 1509 kbps, DCA “core” and nothing more.
I could just as easily confirm this with an “ultrasound” 5.1 DTS-HD MA test file DTS 96/24 with audio data >24 kHz that will be entirely absent from the DTS core audio or even just “normal” 96 or 192 kHZ DTS-HD MA (I have at least two discs handy that fit the bill, John Lennon’s Imagine BDA and Yes’s Fragile BDA) but that’s largely unnecessary when you read through the debug output. I did test it with 96/24 DTS-HD MA below, Plex generates 48 kHz PCM output
Thank you 
With all due respect, are you sure?
dcadec is was licensed under LGPL v2.1 and was “free” - no asterisks, exactly the same license as ffmpeg itself.
So it’s covered under the ffmpeg license Plex already includes in the LICENSE file
Plex Media Scanner and Plex Media Server contain code from ffmpeg: https://downloads.plex.tv/ffmpeg-source/plex-media-server-ffmpeg-gpl-367b3d4c85.tar.gz
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Checking dca_xll.h in the plex-media-server-ffmpeg source code doesn’t show any different license there either:
/*
* Copyright (C) 2016 foo86
*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef AVCODEC_DCA_XLL_H
#define AVCODEC_DCA_XLL_H
Full DTS decoding is included with FFmpeg even when it only includes LGPL libraries, i.e. without --enable-gpl and without --enable-nonfree. A completely “free” build of FFmpeg still handles all DTS extensions: supported extensions: XCh, XXCH, X96, XBR, XLL, LBR (partially) with the exception of DTS Express which has the “partially” at the end.
FFmpeg Debug Output
C:\Program Files (x86)\Plex\Plex Media Server>"Q:\ffmpeg-master-latest-win64-lgpl\ffmpeg-master-latest-win64-lgpl.exe" -c:a dca -c:v h264 -i "P:\John Lennon - Imagine (1971) [2018 BDMV]\John Lennon - Imagine Disc 1 - Menu BGM_t04.mkv" -vn -map 0:a -c:a pcm_s24le -v debug G:\Immagine.mkv
ffmpeg version N-107787-gc469c3c3b1-20220815 Copyright (c) 2000-2022 the FFmpeg developers
built with gcc 12.1.0 (crosstool-NG 1.25.0.55_3defb7b)
configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-version3 --disable-debug --disable-w32threads --enable-pthreads --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-libvorbis --enable-opencl --disable-libpulse --enable-libvmaf --disable-libxcb --disable-xlib --enable-amf --enable-libaom --enable-libaribb24 --disable-avisynth --enable-libdav1d --disable-libdavs2 --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --disable-frei0r --enable-libgme --enable-libass --enable-libbluray --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librist --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --enable-libmfx --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e --disable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --disable-libdrm --disable-vaapi --disable-libvidstab --enable-vulkan --enable-libshaderc --enable-libplacebo --disable-libx264 --disable-libx265 --disable-libxavs2 --disable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread --extra-ldexeflags= --extra-libs=-lgomp --extra-version=20220815
libavutil 57. 33.101 / 57. 33.101
libavcodec 59. 42.101 / 59. 42.101
libavformat 59. 30.100 / 59. 30.100
libavdevice 59. 8.101 / 59. 8.101
libavfilter 8. 46.103 / 8. 46.103
libswscale 6. 8.102 / 6. 8.102
libswresample 4. 8.100 / 4. 8.100
Splitting the commandline.
Reading option '-c:a' ... matched as option 'c' (codec name) with argument 'dca'.
Reading option '-c:v' ... matched as option 'c' (codec name) with argument 'h264'.
Reading option '-i' ... matched as input url with argument 'P:\John Lennon - Imagine (1971) [2018 BDMV]\John Lennon - Imagine Disc 1 - Menu BGM_t04.mkv'.
Reading option '-vn' ... matched as option 'vn' (disable video) with argument '1'.
Reading option '-map' ... matched as option 'map' (set input stream mapping) with argument '0:a'.
Reading option '-c:a' ... matched as option 'c' (codec name) with argument 'pcm_s24le'.
Reading option '-v' ... matched as option 'v' (set logging level) with argument 'debug'.
Reading option 'G:\Immagine.mkv' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument debug.
Successfully parsed a group of options.
Parsing a group of options: input url P:\John Lennon - Imagine (1971) [2018 BDMV]\John Lennon - Imagine Disc 1 - Menu BGM_t04.mkv.
Applying option c:a (codec name) with argument dca.
Applying option c:v (codec name) with argument h264.
Successfully parsed a group of options.
Opening an input file: P:\John Lennon - Imagine (1971) [2018 BDMV]\John Lennon - Imagine Disc 1 - Menu BGM_t04.mkv.
[NULL @ 0000027befc82bc0] Opening 'P:\John Lennon - Imagine (1971) [2018 BDMV]\John Lennon - Imagine Disc 1 - Menu BGM_t04.mkv' for reading
[file @ 0000027befc834c0] Setting default whitelist 'file,crypto,data'
[matroska,webm @ 0000027befc82bc0] Format matroska,webm probed with size=2048 and score=100
st:0 removing common factor 1000000 from timebase
st:1 removing common factor 1000000 from timebase
[matroska,webm @ 0000027befc82bc0] Before avformat_find_stream_info() pos: 13717 bytes read:33591 seeks:2 nb_streams:3
[h264 @ 0000027befc95bc0] nal_unit_type: 7(SPS), nal_ref_idc: 3
snip, h264 garbage
[matroska,webm @ 0000027befc82bc0] After avformat_find_stream_info() pos: 5038929 bytes read:5058803 seeks:2 frames:315
Input #0, matroska,webm, from 'P:\John Lennon - Imagine (1971) [2018 BDMV]\John Lennon - Imagine Disc 1 - Menu BGM_t04.mkv':
Metadata:
title : John Lennon - Imagine Disc 1 - Menu BGM
creation_time : 2021-10-28T23:01:15.000000Z
Duration: 00:06:12.46, start: 0.000000, bitrate: 31442 kb/s
Stream #0:0(eng), 64, 1/1000: Video: h264 (High), 1 reference frame, yuv420p(tv, bt709, progressive, left), 1920x1080 (1920x1088) [SAR 1:1 DAR 16:9], 0/1, 23.98 fps, 23.98 tbr, 1k tbn
Metadata:
BPS-eng : 24085862
DURATION-eng : 00:06:12.455416666
NUMBER_OF_FRAMES-eng: 8930
NUMBER_OF_BYTES-eng: 1121362478
SOURCE_ID-eng : 001011
_STATISTICS_WRITING_DATE_UTC-eng: 2021-10-28 23:01:15
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES SOURCE_ID
Stream #0:1(eng), 250, 1/1000: Audio: dts (DTS-HD MA), 96000 Hz, 5.1(side), s32p (24 bit) (default)
Metadata:
title : Surround 5.1
BPS-eng : 7353264
DURATION-eng : 00:06:12.458666666
NUMBER_OF_FRAMES-eng: 34918
NUMBER_OF_BYTES-eng: 342347772
SOURCE_ID-eng : 001100
_STATISTICS_WRITING_DATE_UTC-eng: 2021-10-28 23:01:15
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES SOURCE_ID
Stream #0:2, 1, 1/90000: Video: h264, 1 reference frame, none, 90k tbr, 90k tbn (attached pic)
Metadata:
filename : cover.jpg
mimetype : image/jpeg
Successfully opened the file.
Parsing a group of options: output url G:\Immagine.mkv.
Applying option vn (disable video) with argument 1.
Applying option map (set input stream mapping) with argument 0:a.
Applying option c:a (codec name) with argument pcm_s24le.
Successfully parsed a group of options.
Opening an output file: G:\Immagine.mkv.
File 'G:\Immagine.mkv' already exists. Overwrite? [y/N] y
[file @ 0000027bf0cd9280] Setting default whitelist 'file,crypto,data'
Successfully opened the file.
Stream mapping:
Stream #0:1 -> #0:0 (dts (dca) -> pcm_s24le (native))
Press [q] to stop, [?] for help
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
Last message repeated 2 times
detected 24 logical cores
[graph_0_in_0_1 @ 0000027bee3f6f00] Setting 'time_base' to value '1/96000'
[graph_0_in_0_1 @ 0000027bee3f6f00] Setting 'sample_rate' to value '96000'
[graph_0_in_0_1 @ 0000027bee3f6f00] Setting 'sample_fmt' to value 's32p'
[graph_0_in_0_1 @ 0000027bee3f6f00] Setting 'channel_layout' to value '5.1(side)'
[graph_0_in_0_1 @ 0000027bee3f6f00] tb:1/96000 samplefmt:s32p samplerate:96000 chlayout:5.1(side)
[format_out_0_0 @ 0000027bf02bee00] Setting 'sample_fmts' to value 's32'
[auto_aresample_0 @ 0000027bf06b9880] Setting 'output_sample_bits' to value '24'
[format_out_0_0 @ 0000027bf02bee00] auto-inserting filter 'auto_aresample_0' between the filter 'Parsed_anull_0' and the filter 'format_out_0_0'
[AVFilterGraph @ 0000027befd68d40] query_formats: 4 queried, 6 merged, 3 already done, 0 delayed
[auto_aresample_0 @ 0000027bf06b9880] [SWR @ 0000027bf0cf0480] Using s32p internally between filters
[auto_aresample_0 @ 0000027bf06b9880] ch:6 chl:5.1(side) fmt:s32p r:96000Hz -> ch:6 chl:5.1(side) fmt:s32 r:96000Hz
[matroska @ 0000027bf00fd400] get_metadata_duration returned: 0
Output #0, matroska, to 'G:\Immagine.mkv':
Metadata:
title : John Lennon - Imagine Disc 1 - Menu BGM
encoder : Lavf59.30.100
Stream #0:0(eng), 0, 1/1000: Audio: pcm_s24le ([1][0][0][0] / 0x0001), 96000 Hz, 5.1(side), s32, 13824 kb/s (default)
Metadata:
title : Surround 5.1
BPS-eng : 7353264
DURATION-eng : 00:06:12.458666666
NUMBER_OF_FRAMES-eng: 34918
NUMBER_OF_BYTES-eng: 342347772
SOURCE_ID-eng : 001100
_STATISTICS_WRITING_DATE_UTC-eng: 2021-10-28 23:01:15
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES SOURCE_ID
encoder : Lavc59.42.101 pcm_s24le
Plex Media Transcoder Debug Output
C:\Program Files (x86)\Plex\Plex Media Server>"Plex Transcoder.exe" -c:a dca -c:v h264 -i "P:\John Lennon - Imagine (1971) [2018 BDMV]\John Lennon - Imagine Disc 1 - Menu BGM_t04.mkv" -vn -map 0:a -c:a pcm_s24le -v debug G:\Immagine.mkv
ffmpeg version 1.6-367b3d4c85-1 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 6.3.0 (crosstool-NG crosstool-ng-1.23.0 - plex)
configuration: --disable-static --enable-shared --disable-libx264 --disable-hwaccels --disable-protocol=concat --external-decoder=h264 --enable-debug --enable-muxers --enable-mf --fatal-warnings --disable-gmp --disable-avdevice --disable-bzlib --disable-sdl2 --disable-decoders --disable-devices --disable-encoders --disable-ffprobe --disable-ffplay --disable-doc --disable-iconv --disable-lzma --disable-schannel --disable-linux-perf --disable-mediacodec --enable-eae --disable-protocol='udp,udplite' --enable-libxml2 --arch=x86 --target-os=mingw32 --strip=i686-w64-mingw32-strip --cc=i686-w64-mingw32-gcc --pkg-config=/data/jenkins/conan_build/3957593730/conan/.conan/data/plexconantool/5-95/plex/stable/package/99cb7beab0cdb1bc79a044e3bd42148f6f45fb31/plex-pkg-config --pkg-config-flags=--static --enable-cuda-llvm --enable-opencl --cross-prefix=i686-w64-mingw32- --enable-cross-compile --enable-w32threads --enable-libmfx --extra-ldflags=' -static-libgcc -m32 -L/data/jenkins/conan_build/3957593730/conan/.conan/data/opus/1.2.1-20/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/libvorbis/1.3.5-24/plex/stable/package/2166d45ecddb61e335ad561fb414e82e39c5682a/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/libxml2/2.9.8-25/plex/stable/package/769993474883250d4662c0a6918181f8b464fe2e/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/ffnvcodec/9.0.18.2-9fdaf11-1/plex/stable/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/libmfx/1.16-7adf2e4-19/plex/stable/package/0e54a29d61ff4d190451c64910b72339877160bf/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/x264/157-d4099dd-8/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/zvbi/0.2.35-32/plex/stable/package/dedf2d5c54057c5913662b3e55cf60d38d636aa1/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/rtmpdump/2.4-61/plex/stable/package/ab2912fa47cea84460f5a6eb8a3412c14e0f378a/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/libass/0.14.0-45/plex/stable/package/067cc29e6f48c3757568a24a4285bd2700f84ec1/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/mp3lame/3.98.4-20/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/opencl-runtime-loader/0.0.1-739ae8d-1/plex/stable/package/bd4b167120889561d0538bece267a99876f1da35/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/libogg/1.3.2-21/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/gnutls/3.6.14-3/plex/stable/package/e798e6d4bf54d46e20f000070cda036290ca16d4/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/fribidi/0.19.7-23/plex/stable/package/0e54a29d61ff4d190451c64910b72339877160bf/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/harfbuzz/2.6.4-10/plex/stable/package/afe1abbb067bbe163063b6bf73e3aa1e3f15c52c/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/nettle/3.6-3/plex/stable/package/28cc3d755fab43dbde1896d5d1dc0e80caaaa481/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/libidn/2.0.5-33/plex/stable/package/dedf2d5c54057c5913662b3e55cf60d38d636aa1/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/freetype2/2.10.4-1/plex/stable/package/9eaafe17a87a601720a197ca45a56f8dbfa00318/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/gmp/6.2.0-2/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/iconv/1.16-9/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/bzip2/1.0.6-24/plex/stable/package/2283f74fdaf3301b1ced61ed9151a8568790382b/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/libpng/1.6.37-10/plex/stable/package/769993474883250d4662c0a6918181f8b464fe2e/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/zlib/1.2.11-7/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/lib' --extra-libs='-lwinmm -lwsock32 -lcrypt32' --extra-cflags='-m32 -O3 -s -DWINVER=0x0601 -D_WIN32_WINNT=0x0601 -Os -I/data/jenkins/conan_build/3957593730/conan/.conan/data/opus/1.2.1-20/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/libvorbis/1.3.5-24/plex/stable/package/2166d45ecddb61e335ad561fb414e82e39c5682a/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/libxml2/2.9.8-25/plex/stable/package/769993474883250d4662c0a6918181f8b464fe2e/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/libxml2/2.9.8-25/plex/stable/package/769993474883250d4662c0a6918181f8b464fe2e/include/libxml2 -I/data/jenkins/conan_build/3957593730/conan/.conan/data/ffnvcodec/9.0.18.2-9fdaf11-1/plex/stable/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/libmfx/1.16-7adf2e4-19/plex/stable/package/0e54a29d61ff4d190451c64910b72339877160bf/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/x264/157-d4099dd-8/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/zvbi/0.2.35-32/plex/stable/package/dedf2d5c54057c5913662b3e55cf60d38d636aa1/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/rtmpdump/2.4-61/plex/stable/package/ab2912fa47cea84460f5a6eb8a3412c14e0f378a/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/libass/0.14.0-45/plex/stable/package/067cc29e6f48c3757568a24a4285bd2700f84ec1/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/mp3lame/3.98.4-20/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/libogg/1.3.2-21/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/gnutls/3.6.14-3/plex/stable/package/e798e6d4bf54d46e20f000070cda036290ca16d4/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/fribidi/0.19.7-23/plex/stable/package/0e54a29d61ff4d190451c64910b72339877160bf/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/harfbuzz/2.6.4-10/plex/stable/package/afe1abbb067bbe163063b6bf73e3aa1e3f15c52c/include/harfbuzz -I/data/jenkins/conan_build/3957593730/conan/.conan/data/opencl-headers/2020.03.13-9824efd-5/plex/stable/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/nettle/3.6-3/plex/stable/package/28cc3d755fab43dbde1896d5d1dc0e80caaaa481/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/libidn/2.0.5-33/plex/stable/package/dedf2d5c54057c5913662b3e55cf60d38d636aa1/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/freetype2/2.10.4-1/plex/stable/package/9eaafe17a87a601720a197ca45a56f8dbfa00318/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/gmp/6.2.0-2/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/iconv/1.16-9/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/bzip2/1.0.6-24/plex/stable/package/2283f74fdaf3301b1ced61ed9151a8568790382b/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/libpng/1.6.37-10/plex/stable/package/769993474883250d4662c0a6918181f8b464fe2e/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/zlib/1.2.11-7/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/include -DUSING_STATIC_LIBICONV -DLIBXML_STATIC -DNDEBUG' --enable-decoder=png --enable-decoder=apng --enable-decoder=bmp --enable-decoder=mjpeg --enable-decoder=thp --enable-decoder=gif --enable-decoder=dirac --enable-decoder=ffv1 --enable-decoder=ffvhuff --enable-decoder=huffyuv --enable-decoder=rawvideo --enable-decoder=zero12v --enable-decoder=ayuv --enable-decoder=r210 --enable-decoder=v210 --enable-decoder=v210x --enable-decoder=v308 --enable-decoder=v408 --enable-decoder=v410 --enable-decoder=y41p --enable-decoder=yuv4 --enable-decoder=ansi --enable-decoder=alac --enable-decoder=flac --enable-decoder=vorbis --enable-decoder=opus --enable-decoder=pcm_f32be --enable-decoder=pcm_f32le --enable-decoder=pcm_f64be --enable-decoder=pcm_f64le --enable-decoder=pcm_lxf --enable-decoder=pcm_s16be --enable-decoder=pcm_s16be_planar --enable-decoder=pcm_s16le --enable-decoder=pcm_s16le_planar --enable-decoder=pcm_s24be --enable-decoder=pcm_s24le --enable-decoder=pcm_s24le_planar --enable-decoder=pcm_s32be --enable-decoder=pcm_s32le --enable-decoder=pcm_s32le_planar --enable-decoder=pcm_s8 --enable-decoder=pcm_s8_planar --enable-decoder=pcm_u16be --enable-decoder=pcm_u16le --enable-decoder=pcm_u24be --enable-decoder=pcm_u24le --enable-decoder=pcm_u32be --enable-decoder=pcm_u32le --enable-decoder=pcm_u8 --enable-decoder=pcm_alaw --enable-decoder=pcm_mulaw --enable-decoder=ass --enable-decoder=dvbsub --enable-decoder=dvdsub --enable-decoder=ccaption --enable-decoder=pgssub --enable-decoder=jacosub --enable-decoder=microdvd --enable-decoder=movtext --enable-decoder=mpl2 --enable-decoder=pjs --enable-decoder=realtext --enable-decoder=sami --enable-decoder=ssa --enable-decoder=stl --enable-decoder=subrip --enable-decoder=subviewer --enable-decoder=text --enable-decoder=vplayer --enable-decoder=webvtt --enable-decoder=xsub --enable-decoder=eac3_mf --enable-decoder=wmalossless_mf --enable-decoder=wmapro_mf --enable-decoder=wmav1_mf --enable-decoder=wmav2_mf --enable-decoder=wmavoice_mf --enable-decoder=eac3_eae --enable-decoder=truehd_eae --enable-decoder=mlp_eae --enable-encoder=flac --enable-encoder=alac --enable-encoder=libvorbis --enable-encoder=libopus --enable-encoder=mjpeg --enable-encoder=wrapped_avframe --enable-encoder=ass --enable-encoder=dvbsub --enable-encoder=dvdsub --enable-encoder=movtext --enable-encoder=ssa --enable-encoder=subrip --enable-encoder=text --enable-encoder=webvtt --enable-encoder=xsub --enable-encoder=pcm_f32be --enable-encoder=pcm_f32le --enable-encoder=pcm_f64be --enable-encoder=pcm_f64le --enable-encoder=pcm_s8 --enable-encoder=pcm_s8_planar --enable-encoder=pcm_s16be --enable-encoder=pcm_s16be_planar --enable-encoder=pcm_s16le --enable-encoder=pcm_s16le_planar --enable-encoder=pcm_s24be --enable-encoder=pcm_s24le --enable-encoder=pcm_s24le_planar --enable-encoder=pcm_s32be --enable-encoder=pcm_s32le --enable-encoder=pcm_s32le_planar --enable-encoder=pcm_u8 --enable-encoder=pcm_u16be --enable-encoder=pcm_u16le --enable-encoder=pcm_u24be --enable-encoder=pcm_u24le --enable-encoder=pcm_u32be --enable-encoder=pcm_u32le --enable-encoder=aac_mf --enable-encoder=h264_qsv --enable-encoder=h264_nvenc --enable-encoder=h264_mf --enable-encoder=hevc_mf --enable-encoder=eac3_eae --prefix=/data/jenkins/conan_build/3957593730/conan/.conan/data/ffmpeg/1.6-367b3d4c85-1/plex/stable/build/59c36b4ab222b24988462cdb742c6e91892a2a68/transcoder-install --enable-libzvbi --enable-gnutls --enable-libass --enable-librtmp --enable-libopus --enable-libvorbis
libavutil 56. 26.100 / 56. 26.100
libavcodec 58. 52.100 / 58. 52.100
libavformat 58. 27.104 / 58. 27.104
libavfilter 7. 49.100 / 7. 49.100
libswscale 5. 4.100 / 5. 4.100
libswresample 3. 4.100 / 3. 4.100
Splitting the commandline.
Reading option '-c:a' ... matched as option 'c' (codec name) with argument 'dca'.
Reading option '-c:v' ... matched as option 'c' (codec name) with argument 'h264'.
Reading option '-i' ... matched as input url with argument 'P:\John Lennon - Imagine (1971) [2018 BDMV]\John Lennon - Imagine Disc 1 - Menu BGM_t04.mkv'.
Reading option '-vn' ... matched as option 'vn' (disable video) with argument '1'.
Reading option '-map' ... matched as option 'map' (set input stream mapping) with argument '0:a'.
Reading option '-c:a' ... matched as option 'c' (codec name) with argument 'pcm_s24le'.
Reading option '-v' ... matched as option 'v' (set logging level) with argument 'debug'.
Reading option 'G:\Immagine.mkv' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument debug.
Successfully parsed a group of options.
Parsing a group of options: input url P:\John Lennon - Imagine (1971) [2018 BDMV]\John Lennon - Imagine Disc 1 - Menu BGM_t04.mkv.
Applying option c:a (codec name) with argument dca.
Applying option c:v (codec name) with argument h264.
Successfully parsed a group of options.
Opening an input file: P:\John Lennon - Imagine (1971) [2018 BDMV]\John Lennon - Imagine Disc 1 - Menu BGM_t04.mkv.
Rescanning for external libs: './367b3d4-3654-windows-x86/'
Loading external lib ./367b3d4-3654-windows-x86/aac_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/aac_encoder.dll
Loading external lib ./367b3d4-3654-windows-x86/ac3_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/ac3_encoder.dll
Loading external lib ./367b3d4-3654-windows-x86/dca_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/flv_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/h264_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/hevc_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/libmp3lame_encoder.dll
Loading external lib ./367b3d4-3654-windows-x86/libx264_encoder.dll
Loading external lib ./367b3d4-3654-windows-x86/mp2_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/mp3_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/mpeg1video_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/mpeg2video_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/mpeg4_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/msmpeg4v2_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/msmpeg4v3_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/rv40_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/vc1_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/vp6f_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/vp8_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/vp9_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/wmapro_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/wmav2_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/wmv1_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/wmv2_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/wmv3_decoder.dll
[NULL @ 0268da80] Opening 'P:\John Lennon - Imagine (1971) [2018 BDMV]\John Lennon - Imagine Disc 1 - Menu BGM_t04.mkv' for reading
[file @ 0268e840] Setting default whitelist 'file,crypto'
[matroska,webm @ 0268da80] Format matroska,webm probed with size=2048 and score=100
st:0 removing common factor 1000000 from timebase
st:1 removing common factor 1000000 from timebase
[matroska,webm @ 0268da80] Before avformat_find_stream_info() pos: 13717 bytes read:33591 seeks:2 nb_streams:3
[h264 @ 02692900] nal_unit_type: 7(SPS), nal_ref_idc: 3
snip h264 garbage
Last message repeated 53 times
[matroska,webm @ 0268da80] Probe buffer size limit of 5000000 bytes reached
[matroska,webm @ 0268da80] Stream #2: not enough frames to estimate rate; consider increasing probesize
[matroska,webm @ 0268da80] decoding for stream 2 failed
[matroska,webm @ 0268da80] Could not find codec parameters for stream 2 (Video: h264, 1 reference frame, none(left)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0268da80] After avformat_find_stream_info() pos: 5038929 bytes read:5058803 seeks:2 frames:315
Input #0, matroska,webm, from 'P:\John Lennon - Imagine (1971) [2018 BDMV]\John Lennon - Imagine Disc 1 - Menu BGM_t04.mkv':
Metadata:
title : John Lennon - Imagine Disc 1 - Menu BGM
creation_time : 2021-10-28T23:01:15.000000Z
Duration: 00:06:12.46, start: 0.000000, bitrate: 31442 kb/s
Stream #0:0(eng), 64, 1/1000: Video: h264 (High), 1 reference frame, yuv420p(tv, bt709, progressive, left), 1920x1080 (1920x1088) [SAR 1:1 DAR 16:9], 0/1, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc
Metadata:
BPS-eng : 24085862
DURATION-eng : 00:06:12.455416666
NUMBER_OF_FRAMES-eng: 8930
NUMBER_OF_BYTES-eng: 1121362478
SOURCE_ID-eng : 001011
_STATISTICS_WRITING_DATE_UTC-eng: 2021-10-28 23:01:15
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES SOURCE_ID
Stream #0:1(eng), 250, 1/1000: Audio: dts (DTS-HD MA), 96000 Hz, 5.1(side), s32p (24 bit), 1536 kb/s (default)
Metadata:
title : Surround 5.1
BPS-eng : 7353264
DURATION-eng : 00:06:12.458666666
NUMBER_OF_FRAMES-eng: 34918
NUMBER_OF_BYTES-eng: 342347772
SOURCE_ID-eng : 001100
_STATISTICS_WRITING_DATE_UTC-eng: 2021-10-28 23:01:15
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES SOURCE_ID
Stream #0:2, 1, 1/90000: Video: h264, 1 reference frame, none(left), 90k tbr, 90k tbn, 180k tbc
Metadata:
filename : cover.jpg
mimetype : image/jpeg
Successfully opened the file.
Parsing a group of options: output url G:\Immagine.mkv.
Applying option vn (disable video) with argument 1.
Applying option map (set input stream mapping) with argument 0:a.
Applying option c:a (codec name) with argument pcm_s24le.
Successfully parsed a group of options.
Opening an output file: G:\Immagine.mkv.
File 'G:\Immagine.mkv' already exists. Overwrite ? [y/N] y
[file @ 03de5d00] Setting default whitelist 'file,crypto'
Successfully opened the file.
Stream mapping:
Stream #0:1 -> #0:0 (dts (dca) -> pcm_s24le (native))
Press [q] to stop, [?] for help
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
Last message repeated 2 times
detected 24 logical cores
[graph_0_in_0_1 @ 03e4ee40] Setting 'time_base' to value '1/48000'
[graph_0_in_0_1 @ 03e4ee40] Setting 'sample_rate' to value '48000'
[graph_0_in_0_1 @ 03e4ee40] Setting 'sample_fmt' to value 'fltp'
[graph_0_in_0_1 @ 03e4ee40] Setting 'channel_layout' to value '0x60f'
[graph_0_in_0_1 @ 03e4ee40] tb:1/48000 samplefmt:fltp samplerate:48000 chlayout:0x60f
[format_out_0_0 @ 0276e700] Setting 'sample_fmts' to value 's32'
[auto_resampler_0 @ 04928200] Setting 'output_sample_bits' to value '24'
[format_out_0_0 @ 0276e700] auto-inserting filter 'auto_resampler_0' between the filter 'Parsed_anull_0' and the filter 'format_out_0_0'
[AVFilterGraph @ 026a8d00] query_formats: 4 queried, 6 merged, 3 already done, 0 delayed
[auto_resampler_0 @ 04928200] [SWR @ 04929300] Using fltp internally between filters
[auto_resampler_0 @ 04928200] ch:6 chl:5.1(side) fmt:fltp r:48000Hz -> ch:6 chl:5.1(side) fmt:s32 r:48000Hz
Output #0, matroska, to 'G:\Immagine.mkv':
Metadata:
title : John Lennon - Imagine Disc 1 - Menu BGM
duration : 372.455
encoder : Lavf58.27.104
Stream #0:0(eng), 0, 1/1000: Audio: pcm_s24le ([1][0][0][0] / 0x0001), 48000 Hz, 5.1(side), s32, 6912 kb/s (default)
Metadata:
title : Surround 5.1
BPS-eng : 7353264
DURATION-eng : 00:06:12.458666666
NUMBER_OF_FRAMES-eng: 34918
NUMBER_OF_BYTES-eng: 342347772
SOURCE_ID-eng : 001100
_STATISTICS_WRITING_DATE_UTC-eng: 2021-10-28 23:01:15
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES SOURCE_ID
encoder : Lavc58.52.100 pcm_s24le
[auto_aresample_0 @ 0000027bf06b9880] ch:6 chl:5.1(side) fmt:s32p r:96000Hz -> ch:6 chl:5.1(side) fmt:s32 r:96000Hz vs [auto_resampler_0 @ 04928200] ch:6 chl:5.1(side) fmt:fltp r:48000Hz -> ch:6 chl:5.1(side) fmt:s32 r:48000Hz
EDIT: Additionally, nothing about DTS changing FFmpeg’s license is mentioned in the LICENSE file included with the plex FFmpeg source. Only the usual GPL culprits like x264/x265, entirely non-free stuff like fdk-aac, etc.
LICENSE
# License
Most files in FFmpeg are under the GNU Lesser General Public License version 2.1
or later (LGPL v2.1+). Read the file `COPYING.LGPLv2.1` for details. Some other
files have MIT/X11/BSD-style licenses. In combination the LGPL v2.1+ applies to
FFmpeg.
Some optional parts of FFmpeg are licensed under the GNU General Public License
version 2 or later (GPL v2+). See the file `COPYING.GPLv2` for details. None of
these parts are used by default, you have to explicitly pass `--enable-gpl` to
configure to activate them. In this case, FFmpeg's license changes to GPL v2+.
Specifically, the GPL parts of FFmpeg are:
- libpostproc
- optional x86 optimization in the files
- `libavcodec/x86/flac_dsp_gpl.asm`
- `libavcodec/x86/idct_mmx.c`
- `libavfilter/x86/vf_removegrain.asm`
- the following building and testing tools
- `compat/solaris/make_sunver.pl`
- `doc/t2h.pm`
- `doc/texi2pod.pl`
- `libswresample/swresample-test.c`
- `tests/checkasm/*`
- `tests/tiny_ssim.c`
- the following filters in libavfilter:
- `vf_blackframe.c`
- `vf_boxblur.c`
- `vf_colormatrix.c`
- `vf_cover_rect.c`
- `vf_cropdetect.c`
- `vf_delogo.c`
- `vf_eq.c`
- `vf_find_rect.c`
- `vf_fspp.c`
- `vf_geq.c`
- `vf_histeq.c`
- `vf_hqdn3d.c`
- `vf_interlace.c`
- `vf_kerndeint.c`
- `vf_mcdeint.c`
- `vf_mpdecimate.c`
- `vf_owdenoise.c`
- `vf_perspective.c`
- `vf_phase.c`
- `vf_pp.c`
- `vf_pp7.c`
- `vf_pullup.c`
- `vf_repeatfields.c`
- `vf_sab.c`
- `vf_smartblur.c`
- `vf_spp.c`
- `vf_stereo3d.c`
- `vf_super2xsai.c`
- `vf_tinterlace.c`
- `vf_uspp.c`
- `vsrc_mptestsrc.c`
Should you, for whatever reason, prefer to use version 3 of the (L)GPL, then
the configure parameter `--enable-version3` will activate this licensing option
for you. Read the file `COPYING.LGPLv3` or, if you have enabled GPL parts,
`COPYING.GPLv3` to learn the exact legal terms that apply in this case.
There are a handful of files under other licensing terms, namely:
* The files `libavcodec/jfdctfst.c`, `libavcodec/jfdctint_template.c` and
`libavcodec/jrevdct.c` are taken from libjpeg, see the top of the files for
licensing details. Specifically note that you must credit the IJG in the
documentation accompanying your program if you only distribute executables.
You must also indicate any changes including additions and deletions to
those three files in the documentation.
* `tests/reference.pnm` is under the expat license.
## External libraries
FFmpeg can be combined with a number of external libraries, which sometimes
affect the licensing of binaries resulting from the combination.
### Compatible libraries
The following libraries are under GPL:
- frei0r
- libcdio
- librubberband
- libvidstab
- libx264
- libx265
- libxavs
- libxvid
When combining them with FFmpeg, FFmpeg needs to be licensed as GPL as well by
passing `--enable-gpl` to configure.
The OpenCORE and VisualOn libraries are under the Apache License 2.0. That
license is incompatible with the LGPL v2.1 and the GPL v2, but not with
version 3 of those licenses. So to combine these libraries with FFmpeg, the
license version needs to be upgraded by passing `--enable-version3` to configure.
### Incompatible libraries
There are certain libraries you can combine with FFmpeg whose licenses are not
compatible with the GPL and/or the LGPL. If you wish to enable these
libraries, even in circumstances that their license may be incompatible, pass
`--enable-nonfree` to configure. But note that if you enable any of these
libraries the resulting binary will be under a complex license mix that is
more restrictive than the LGPL and that may result in additional obligations.
It is possible that these restrictions cause the resulting binary to be
unredistributable.
The Fraunhofer FDK AAC and OpenSSL libraries are under licenses which are
incompatible with the GPLv2 and v3. To the best of our knowledge, they are
compatible with the LGPL.
The NVENC library, while its header file is licensed under the compatible MIT
license, requires a proprietary binary blob at run time, and is deemed to be
incompatible with the GPL. We are not certain if it is compatible with the
LGPL, but we require `--enable-nonfree` even with LGPL configurations in case
it is not.