that's why there's a plugin system for Gem.
however, it seems you have created a fork of Gem, rather than just
create a new filmMPV external.
afaik film* plugin return a pix object while the power of mpv resides in writing directly to texture (and the use of GPU texture decoding)
that's why film* plugin doesn't seem to be a good way to me, but I might be wrong

and no, I didn't create a whole fork of Gem, I only modified the gemframebuffer object from which mpv derives
and I didn't remember why I needed to modify it.
mpv builds with a quite recent Gem version (my docker image uses the master branch of https://github.com/umlaeute/Gem.git but I didn't rebuild the image on each run).

At some point, I thought about creating a new kind of plugin that writes to texture (and also another kind to read from)
but to be honest, Gem's plugin system always appeared quite obscure to me.

+