[FFmpeg-devel] MLP decoder problems

Olev hannula
Thu Nov 8 09:45:14 CET 2007


I tried ffmpeg build ffmpeg_eac3_mlp_rev10905 from
http://kurtnoise.free.fr/index.php?dir=misc/ and tried to decode the
infamous bootleg DVD-A release of Pink Floyd's - Dark Side of the
Moon. I used DVDAExplorer_a7 to get MLP files from the .AOB container
(non encrypted, this DVD-A has no content protection). When decoding
the .mlp files I get strange errors:
[mlp @ 0092B3E0]More matrices specified than channels
Error while decoding stream #0.0
[mlp @ 0092B3E0]Lossless check failed - expected 15, calculated 0
[mlp @ 0092B3E0]More matrices specified than channels
Error while decoding stream #0.0
[mlp @ 0092B3E0]Lossless check failed - expected 98, calculated 0
Error while decoding stream #0.0
...

Next I joined all the MLP files to get a general view of things, seems
to work, can anyone comment if MLP is not join files safe? I hear no
clicks or pops or silence between the track after just joining them.
Ffmpeg decoded the one large MLP file without no new errors, only the
Lossless check failed that it shows on single files too. I used
-acodec pcm_s24le since the MLP is 4.1 (left, right, lfe, surround
left, surround right) channel 24bit 96kHz. I decoded the same large
.MLP file with Surcode MLP (v1.0.29) "replace file before verify"
method. What suprises me is that a lossless codec is decoded
differently, heres an avisynth SoundOut() analysis of the two
decoders:
FFmpeg:
[Ch 0] Maximum:-0.57dB. Average:-22.41dB. RMS:-18.91dB.
[Ch 1] Maximum:-0.28dB. Average:-22.35dB. RMS:-18.82dB.
[Ch 2] Maximum:-11.44dB. Average:-35.10dB. RMS:-30.92dB.
[Ch 3] Maximum:-0.86dB. Average:-25.83dB. RMS:-22.10dB.
[Ch 4] Maximum:-2.10dB. Average:-25.58dB. RMS:-21.78dB.
[All channels] Maximum:-0.28dB. Average:-25.24dB. RMS:-21.01dB

Surcode MLP:
[Ch 0] Maximum:-0.57dB. Average:-22.36dB. RMS:-18.86dB.
[Ch 1] Maximum:-0.28dB. Average:-22.29dB. RMS:-18.76dB.
[Ch 2] Maximum:-1.#JdB. Average:-1.#JdB. RMS:-100.00dB.
[Ch 3] Maximum:-11.44dB. Average:-35.04dB. RMS:-30.86dB.
[Ch 4] Maximum:-0.86dB. Average:-25.75dB. RMS:-22.00dB.
[Ch 5] Maximum:-1.64dB. Average:-25.48dB. RMS:-21.67dB.
[All channels] Maximum:-0.28dB. Average:-26.76dB. RMS:-21.73dB

Surcode MLP has one extra channel because it was easier to join the 3
files it produces and it produces a channel of silence so that all
it's extracted files are stereo. And the result is different length
too, FFmpeg is 42:55, Surcode MLP is 43:10.

Who does not conform to standards, extracting from a lossless source
should be bit identical. I tried to extract MLP directly from the
non-encrypted .AOB files but that failed - but this is a different
issue, MLP support without reading it out of AOB is only half the
things needed to decode DVD-A, FFmpeg reads something out of .AOB but
it does not see it as being MLP and produces noise filled waveform.

But I sure think this is the best support for MLP it has ever had, GREAT WORK!

Regards,
Olev




More information about the ffmpeg-devel mailing list