Hi Matt,
2013/10/1 Matt Camp <matt@noise.net.nz>
>
> So I've just reinstalled liquidsoap on my raspberry pi using the official armhf image, which is based on debian wheezy.
>
> I used the liquidsoap v1.0.1 package supplied by debian, manually recompiled and installed libaacplus, and then manually recompiled ocaml-aacplus-0.2.1 (grabbed from src-package from debian-multimedia).
>
> As far as I can tell, everything is installed fine... however Liquidsoap keeps telling me "No encoder found for that format".
>
> I can't seem to get any additional info at all using -v or --debug... how can I tell why liquidsoap isn't picking up the dynamic library?
>
> ---------
>
> pi@raspberrypi ~ $ liquidsoap --debug -v ./test.liq
> Invalid value at line 6, char 3-52: No encoder found for that format.
>
> pi@raspberrypi ~ $ cat test.liq
> #!/usr/bin/liquidsoap
> radio = sine()
> output.icecast(
>   %aacplus(channels=2, samplerate=44100, bitrate=64),
>   host = "xxx.xxx", port = 8000,
>   password = "xxx", mount = "xxx", name="Test", description = "demo stream",
>   url = "http://www.outcastdigital.com",
>   radio)
>
>
> pi@raspberrypi ~ $ liquidsoap --version
> Liquidsoap 1.0.1
> Copyright (c) 2003-2012 Savonet team
> Liquidsoap is open-source software, released under GNU General Public License.
> See <http://savonet.sf.net> for more information.
>
> pi@raspberrypi ~ $ ocamlfind list
> aacplus             (version: 0.2.1)
> bigarray            (version: [distributed with Ocaml])
> biniou              (version: 1.0.0)
> camlp4              (version: [distributed with Ocaml])
> camlp4.exceptiontracer (version: [distributed with Ocaml])
> camlp4.extend       (version: [distributed with Ocaml])
> camlp4.foldgenerator (version: [distributed with Ocaml])
> camlp4.gramlib      (version: [distributed with Ocaml])
> camlp4.lib          (version: [distributed with Ocaml])
> camlp4.listcomprehension (version: [distributed with Ocaml])
> camlp4.locationstripper (version: [distributed with Ocaml])
> camlp4.macro        (version: [distributed with Ocaml])
> camlp4.mapgenerator (version: [distributed with Ocaml])
> camlp4.metagenerator (version: [distributed with Ocaml])
> camlp4.profiler     (version: [distributed with Ocaml])
> camlp4.quotations   (version: [distributed with Ocaml])
> camlp4.quotations.o (version: [distributed with Ocaml])
> camlp4.quotations.r (version: [distributed with Ocaml])
> camlp4.tracer       (version: [distributed with Ocaml])
> dbm                 (version: [distributed with Ocaml])
> dynlink             (version: [distributed with Ocaml])
> easy-format         (version: 1.0.0)
> findlib             (version: 1.3.1)
> num                 (version: [distributed with Ocaml])
> num-top             (version: 1.3.1)
> num.core            (version: [internal])
> ocamlbuild          (version: [distributed with Ocaml])
> stdlib              (version: [distributed with Ocaml])
> str                 (version: [distributed with Ocaml])
> threads             (version: [distributed with Ocaml])
> threads.posix       (version: [internal])
> threads.vm          (version: [internal])
> unix                (version: [distributed with Ocaml])
> yojson              (version: 1.0.3)
>
> pi@raspberrypi ~ $ ocamlfind query aacplus
> /usr/local/lib/ocaml/3.12.1/aacplus
>
> pi@raspberrypi ~ $ aacplusenc
>
> Usage:   aacplusenc <wav_file> <bitstream_file> <bitrate> <(m)ono/(s)tereo>
>
> Example: aacplusenc input.wav out.aac 24000 s
>
> pi@raspberrypi ~ $ ldconfig -v | grep aac
> libvo-aacenc.so.0 -> libvo-aacenc.so.0.0.3
> libaacplus.so.2 -> libaacplus.so.2.0.2
>
> pi@raspberrypi ~ $ ls -la /usr/local/lib/ocaml/3.12.1/aacplus/
> total 48
> drwxr-sr-x 2 root staff  4096 Oct  1 17:51 .
> drwxrwsr-x 4 root staff  4096 Oct  1 17:51 ..
> -rw-r--r-- 1 root staff   886 Oct  1 17:16 aacplus.cma
> -rw-r--r-- 1 root staff   568 Oct  1 17:16 aacplus.cmi
> -rw-r--r-- 1 root staff   345 Oct  1 17:16 aacplus_dynlink.mli
> -rw-r--r-- 1 root staff   287 Oct  1 17:16 aacplus_loader.cma
> -rw-r--r-- 1 root staff   217 Oct  1 17:16 aacplus_loader.cmi
> -rw-r--r-- 1 root staff  2548 Feb 17  2013 aacplus.mli
> -rw-r--r-- 1 root staff 10506 Oct  1 17:16 libaacplus_stubs.a
> -rw-r--r-- 1 root staff   143 Oct  1 17:41 META

The dynamic aacplus module is searched, by default, using ocamlfind's search path that you can see by doing:
  ocamlfind printconf

If that path does not contain you module's directory, then you can set the AACPLUS_DYN_PATH env variable. By default, it will search in $path and $path/aacplus, whatever $path is set to.

For instance:
  AACPLUS_DYN_PATH=/usr/local/lib/ocaml/3.12.1 liquidsoap ....

Should most likely work.

Romain