encoder: allow the pcm formatting to be configurable

Only the `channels` and `sampleRate` really.
Signed 32-bit float samples in native endianness are required other than that.