Skip to content

Implement custom 3DLUT support

VLC wants this. The main question is: Which 3DLUT formats do we support? My considerations:

  1. I don't want to do string->float parsing in libplacebo, so that rules out the "plaintext" formats
  2. I would prefer a format that has as much metadata as possible describing the input and output space of the 3DLUT, otherwise the user would have to specify this
  3. Preferably, the API in libplacebo itself should just take a pointer to the LUT + metadata in a struct, but we would provide a utils/ file to parse this information from a file

I've seen some samples of 3DLUT formats but none of them really matched my requirements. In particular, what I ideally want is something where the 3DLUT data itself can just be a raw pointer into the file itself. The closest so far is madVR's 3DLT format, but it has metadata as plaintext/string comments, which goes against my "no float parsing" rule.

We could NIH our own format + provide a dedicated command line tool to convert from format X to ours though (e.g. using setlocale + scanf).

Edited by Niklas Haas