It seems to me that a lot of bindings contained in MediaBindingBean which are derived from the file characteristics, are subject to the specific MediaInfo version and updates.
My proposal would then be to remove all "derived" file information bindings from there, such as vf, vc, hd, ..., while keeping high-level bindings such as video, audio and such. The removed bindings would be externalised in groovy snippets.
The way I imagine this working is a groovy snippet bundle similar to the scripts bundle (https://github.com/filebot/scripts/) which could then be updated independently from FileBot, and containing something like: hdr.groovy, hd.groovy, audio.groovy, etc.
The hdr.groovy would run when the {hdr} binding is used, and should always (based on cache) containing the most up-to-date version of the snippet.
It may also be structured in such a way that stuff like af and ac can be calculated for each audio stream.
e.g.
Code: Select all
audio.collect { au ->
allOf
{ af(au) }
{ ac(au) }
.join(" ")
}.join(" ")