MLP decoder: decodes 24-bit MLP files into 16-bit MLP wav

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

MLP decoder: decodes 24-bit MLP files into 16-bit MLP wav

fabrice nicol
The MLP decoder does not seem to work for 24-bit MLP. It converts such
files into 16-bit WAV, whatever the sample rate.

Example from a (non-encrypted) commercial disc: check the telling chunk:

"  Stream #0:0[0xa1]: Audio: mlp, 96000 Hz, 5.1, s32 (24 bit)
Stream mapping:
   Stream #0:0 -> #0:0 (mlp (native) -> pcm_s16le (native))"

Complete output:

   `ffmpeg -i /mnt/cdrom/AUDIO_TS/ATS_01_3.AOB ~/a.wav`

ffmpeg version 4.1.3 Copyright (c) 2000-2019 the FFmpeg developers
   built with gcc 9.1.0 (Gentoo 9.1.0 p1.0)
   configuration: --prefix=/usr --libdir=/usr/lib64
--shlibdir=/usr/lib64 --docdir=/usr/share/doc/ffmpeg-4.1.3/html
--mandir=/usr/share/man --enable-shared --cc=x86_64-pc-linux-gnu-gcc
--cxx=x86_64-pc-linux-gnu-g++ --ar=x86_64-pc-linux-gnu-ar
--optflags='-O2 -pipe -march=core-avx2' --enable-static
--enable-avfilter --enable-avresample --disable-stripping
--disable-optimizations --disable-libcelt --disable-indev=v4l2
--disable-outdev=v4l2 --disable-indev=oss --disable-indev=jack
--disable-outdev=oss --enable-bzlib --disable-runtime-cpudetect
--disable-debug --disable-gcrypt --disable-gnutls --disable-gmp
--enable-gpl --enable-hardcoded-tables --enable-iconv --disable-libtls
--disable-libxml2 --disable-lzma --enable-network --disable-opencl
--disable-openssl --enable-postproc --disable-libsmbclient
--enable-ffplay --enable-sdl2 --disable-vaapi --enable-vdpau
--enable-xlib --enable-libxcb --enable-libxcb-shm --enable-libxcb-xfixes
--enable-zlib --disable-libcdio --disable-libiec61883
--disable-libdc1394 --disable-libcaca --disable-openal --enable-opengl
--disable-libv4l2 --enable-libpulse --disable-libdrm --disable-libjack
--disable-libopencore-amrwb --disable-libopencore-amrnb
--disable-libcodec2 --disable-libfdk-aac --disable-libopenjpeg
--disable-libbluray --disable-libgme --disable-libgsm --disable-mmal
--disable-libmodplug --disable-libopus --disable-libilbc
--disable-librtmp --disable-libssh --disable-libspeex --disable-libsrt
--enable-librsvg --disable-ffnvcodec --enable-libvorbis --disable-libvpx
--disable-libzvbi --disable-appkit --disable-libbs2b
--disable-chromaprint --disable-libflite --disable-frei0r
--disable-libfribidi --disable-fontconfig --disable-ladspa
--disable-libass --disable-lv2 --enable-libfreetype
--disable-librubberband --disable-libzmq --disable-libzimg
--disable-libsoxr --enable-pthreads --disable-libvo-amrwbenc
--enable-libmp3lame --disable-libkvazaar --disable-libaom
--disable-libopenh264 --disable-libsnappy --disable-libtheora
--disable-libtwolame --disable-libwavpack --disable-libwebp
--enable-libx264 --disable-libx265 --enable-libxvid --disable-armv5te
--disable-armv6 --disable-armv6t2 --disable-neon --disable-vfp
--disable-vfpv3 --disable-armv8 --disable-mipsdsp --disable-mipsdspr2
--disable-mipsfpu --disable-altivec --disable-amd3dnow
--disable-amd3dnowext --disable-aesni --disable-avx --disable-avx2
--disable-fma3 --disable-fma4 --disable-sse3 --disable-ssse3
--disable-sse4 --disable-sse42 --disable-xop --cpu=core-avx2
--disable-doc --disable-htmlpages --enable-manpages
   libavutil      56. 22.100 / 56. 22.100
   libavcodec     58. 35.100 / 58. 35.100
   libavformat    58. 20.100 / 58. 20.100
   libavdevice    58.  5.100 / 58.  5.100
   libavfilter     7. 40.101 /  7. 40.101
   libavresample   4.  0.  0 /  4.  0.  0
   libswscale      5.  3.100 /  5.  3.100
   libswresample   3.  3.100 /  3.  3.100
   libpostproc    55.  3.100 / 55.  3.100
Input #0, mpeg, from '/mnt/cdrom/AUDIO_TS/ATS_01_3.AOB':
   Duration: 26:29:22.18, start: 143.151067, bitrate: 47 kb/s
     Stream #0:0[0xa1]: Audio: mlp, 96000 Hz, 5.1, s32 (24 bit)
Stream mapping:
   Stream #0:0 -> #0:0 (mlp (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, wav, to '/home/fab2/a.wav':
   Metadata:
     ISFT            : Lavf58.20.100
     Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 96000 Hz,
5.1, s16, 9216 kb/s
     Metadata:
       encoder         : Lavc58.35.100 pcm_s16le
(...)

The output is 16-bit depth as indicated in the console messages. Using
SoX to corroborate:

sox --i  a.wav

Input File     : 'a.wav'
Channels       : 6
Sample Rate    : 96000
Precision      : 16-bit
Duration       : 00:14:14.05 = 81988800 samples ~ 64053.8 CDDA sectors
File Size      : 984M
Bit Rate       : 9.22M
Sample Encoding: 16-bit Signed Integer PCM

My platform is Gentoo Linux amd64.

Is this an undocumented limitation of the MLP decoder or is there
something I did wrong?





_______________________________________________
ffmpeg-user mailing list
[hidden email]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".
Reply | Threaded
Open this post in threaded view
|

Re: MLP decoder: decodes 24-bit MLP files into 16-bit MLP wav

Moritz Barsnick
On Wed, Jul 03, 2019 at 10:17:57 +0200, fabrice nicol wrote:
> The MLP decoder does not seem to work for 24-bit MLP. It converts such
> files into 16-bit WAV, whatever the sample rate.

Actually, you could think so. But the decoder is fine. On the other
hand, the wav output format defaults to 16 bits.

>    `ffmpeg -i /mnt/cdrom/AUDIO_TS/ATS_01_3.AOB ~/a.wav`
[...]
> Stream mapping:
>    Stream #0:0 -> #0:0 (mlp (native) -> pcm_s16le (native))
[...]
>      Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 96000 Hz, 5.1, s16, 9216 kb/s

Just add "-c:a pcm_s24le" as an output option. Then you get the full
sample depth.

> sox --i  a.wav

Tested and confirmed with sox here as well. ;-)

Hope this helps,
Moritz
_______________________________________________
ffmpeg-user mailing list
[hidden email]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".