Is your feature request related to a problem? Please describe.
I have a large number of sources and filters designed for my old retro consoles.
Due to the way I capture them to preserve sharp pixels, I need to apply a very specific aspect ratio correction in OBS. This is a mathematical function that varies from console to console. For example, the SNES requires (H * (8/7)), and the GameCube requires (H * (10/11)).
The issue arises when starting to account for overscan.
For the GameCube, some games are 660x480, some 640x480, some 660x448, and some 640x448. In addition, some games have a 16:9 option.
This means that I need 8 different filters - One for each aspect ratio of each resolution. In addition, this means that should I need to use a different crop for whatever reason, I have to make yet another scaling filter.
Describe the solution you'd like
Ideally, I'd like a mathematic scaling filter with separate boxes for Horizontal scaling and Vertical scaling.
This means instead of having 8 filters, 4 for 4:3 and 4 for 16:6, I can make two filters that are something like this;
1.5x Scaling 4:3
H = (H*(10/11))*1.5
V = V*1.5
1.5x Scaling 16:9
H = ((H*(10/11))*1.5)*(4/3)
V = V*1.5
This would mean that no matter what resolution the input is cropped to, it will scale to the correct size for the respective input. It would save me having to use a ton of filters for each different crop, and everything would guarantee being scaled correctly.
If it's not too complicated, being able to use separate scaling filters for Horizontal and Vertical would also be extremely useful.
In the case of the SNES for example, I want to scale vertically 3x using Point scaling to preserve hard edges, but Horizontally (H*(8/7))*3 using bilinear scaling to blend cleanly. This is fairly easy to do using two separate filters, one for horizontal and one for vertical, but it's not super ideal.
Describe alternatives you've considered
The default scaling filters do not allow for dynamic scaling, aside from their very limited in scope aspect ratio settings. At present, you can only set specific resolutions to scale to, and if the input changes size then it doesn't compensate.
As mentioned above, the only solution at present is to have a huge number of filters for each different resolution and aspect.