[3.0] video_output: close the display module after the filters
Some filters rely on the decoder and vout pool to get access to the
hardware acceleration layer. For example the D3D11 filters use
D3D11_FilterHoldInstance()
to keep the D3D11 objects alive as long
as they need it.
However on exit the display module may release the objects it's using, including the DLL it used to create these objects. That leaves no chance to the filters that were using objects from the same DLL to do anything on them anymore on exit (like releasing them).
We can close the video filters before the display module. At this point they are not supposed to interact with each other. But due to how hardware resources are shared through the pool on 3.0, it's better if the display pool (and the display module) are closed last.
Fixes #29069
Incidentally, that could make D3D11_FilterHoldInstance()
useless.