Implement custom 3DLUT support
VLC wants this. The main question is: Which 3DLUT formats do we support? My considerations:
- I don't want to do string->float parsing in libplacebo, so that rules out the "plaintext" formats
- 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
- 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
).