View Full Version : MLP encoder
jruggle
17th July 2008, 00:32
I just wanted to announce the first commit of the work-in-progress MLP encoder for FFmpeg SoC. It doesn't compress much, but seems to generate compatible bitstreams. Right now I think it can only output to .mlp files.
You can browse it at:
http://svn.mplayerhq.hu/soc/mlp/
or checkout:
svn co svn://svn.mplayerhq.hu/soc/mlp
Just apply the libavcodec_mlpenc.diff to an updated FFmpeg SVN tree (currently r14260) and copy mlpenc.c to the libavcodec directory.
Much thanks to Ramiro Polla for the great work so far!
qyot27
10th April 2009, 17:33
I'm having some trouble compiling ffmpeg with the MLP encoder support (downloaded from the SOC SVN above+the daily snapshot of ffmpeg). I didn't use patch to apply it, I simply opened libavcodec_mlpenc.diff and the relevant files in gedit and modified it that way, as trying to use patch before threw me errors.
This is the error output:
gcc -DHAVE_AV_CONFIG_H -I. -I"/media/disk/ffmpeg-export-2009-04-10" -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -std=c99 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fomit-frame-pointer -march=pentium2 -g -Wdeclaration-after-statement -Wall -Wno-switch -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wcast-qual -Wwrite-strings -Wtype-limits -Wundef -O3 -fno-math-errno -fno-signed-zeros -c -o libavcodec/mlpenc.o libavcodec/mlpenc.c
libavcodec/mlpenc.c: In function ‘copy_filter_params’:
libavcodec/mlpenc.c:312: error: ‘FilterParams’ has no member named ‘coeff_shift’
libavcodec/mlpenc.c:312: error: ‘FilterParams’ has no member named ‘coeff_shift’
libavcodec/mlpenc.c:313: error: ‘FilterParams’ has no member named ‘coeff_bits’
libavcodec/mlpenc.c:313: error: ‘FilterParams’ has no member named ‘coeff_bits’
libavcodec/mlpenc.c: In function ‘mlp_encode_init’:
libavcodec/mlpenc.c:568: warning: implicit declaration of function ‘ff_mlp_init_crc2D’
libavcodec/mlpenc.c: In function ‘bitcount_filter_params’:
libavcodec/mlpenc.c:651: error: ‘FilterParams’ has no member named ‘coeff_bits’
libavcodec/mlpenc.c: In function ‘write_filter_params’:
libavcodec/mlpenc.c:879: error: ‘FilterParams’ has no member named ‘coeff_bits’
libavcodec/mlpenc.c:880: error: ‘FilterParams’ has no member named ‘coeff_shift’
libavcodec/mlpenc.c:883: error: ‘FilterParams’ has no member named ‘coeff_bits’
libavcodec/mlpenc.c:883: error: ‘FilterParams’ has no member named ‘coeff_shift’
libavcodec/mlpenc.c: In function ‘code_filter_coeffs’:
libavcodec/mlpenc.c:1362: error: ‘FilterParams’ has no member named ‘coeff_bits’
libavcodec/mlpenc.c:1363: error: ‘FilterParams’ has no member named ‘coeff_shift’
libavcodec/mlpenc.c: In function ‘set_filter_params’:
libavcodec/mlpenc.c:1396: error: too many arguments to function ‘ff_lpc_calc_coefs’
make: *** [libavcodec/mlpenc.o] Error 1
qyot27@ubuntu-desktop:/media/disk/ffmpeg-export-2009-04-10$
My ./configure line (that exact error above happened even when using just --enable-encoder=mlp, I just did all that to cut down on how long it takes to compile, as I'm only interested in the ALAC and MLP encoders right now - I figured I'd better list it anyway, just in case):
./configure --disable-encoders --disable-muxers --disable-parsers --disable-decoders --disable-demuxers --disable-filters --disable-devices --disable-protocols --disable-indevs --disable-outdevs --enable-encoder=alac --enable-encoder=mlp --cpu=pentium2 --enable-memalign-hack
I'm using GCC 4.3.2.
I was just interested in fiddling around with it. There doesn't happen to be any working builds available for download, right? It doesn't matter if they're for Linux or Windows.
madshi
10th April 2009, 18:02
Thanks Ramiro! :) (and Justin, too, of course)
Kurtnoise
20th April 2009, 08:41
I'm having some trouble compiling ffmpeg with the MLP encoder support (downloaded from the SOC SVN above+the daily snapshot of ffmpeg).
you should retry...there was an update from today.
No problem here to compile a such build...
jruggle
20th April 2009, 21:02
I'm having some trouble compiling ffmpeg with the MLP encoder support (downloaded from the SOC SVN above+the daily snapshot of ffmpeg). I didn't use patch to apply it, I simply opened libavcodec_mlpenc.diff and the relevant files in gedit and modified it that way, as trying to use patch before threw me errors.
The soc tree is not meant to work with every daily snapshot. Ramiro did recently update it to current svn, but in general it should only be built with the FFmpeg revision specified in the patch. Hopefully I can convince my GSoC student this year to use a git branch instead of svn to avoid the files+patches+script craziness, but I'm giving them the choice.
jruggle
20th April 2009, 21:12
./configure --disable-encoders --disable-muxers --disable-parsers --disable-decoders --disable-demuxers --disable-filters --disable-devices --disable-protocols --disable-indevs --disable-outdevs --enable-encoder=alac --enable-encoder=mlp --cpu=pentium2 --enable-memalign-hack
Building like that will give you a pretty much useless ffmpeg commandline program. For basic support for ALAC and MLP encoders, you need to enable at least the wav demuxer, pcm_s16le decoder, mlp encoder, alac encoder, raw mlp muxer, and mp4 muxer.
rica
20th April 2009, 21:55
Link is broken on the first post.
jruggle
23rd April 2009, 19:07
Link is broken on the first post.
Yes, the FFmpeg and MPlayer SVN web interface has been taken down temporarily due to security issues. The code can still be checked out using an SVN client though.
guada2
4th May 2009, 21:31
Hello,
What are the limits of encoding .Mlp Linux?
- Channel Assignment
- Sampling rate;
- Bit Depth;
- DownMix Scaling;
Thanks.
goodwill221
13th May 2009, 06:00
ReBit is an exclusive feature only found in SurCode's MLP encoder, enables users, in extreme cases, to avoid the necessity of re–mastering their material in order to successfully pass it through the MLP encoding process.
vBulletin® v3.8.4, Copyright ©2000-2009, Jelsoft Enterprises Ltd.