-
Notifications
You must be signed in to change notification settings - Fork 84
Description
As we have in many Asd-g plugins - for planar formats it have separate plane processing control of typical values
Planes to process.
1: Return garbage.
2: Copy plane.
3: Process plane. Always process planes when the clip is RGB.
Where 1 expected 'do nothing' and fastest mode if user do not care of the output plane conent (simply old RAM content in the allocated memory pages ?).
2 - more slower plane copy
3 - full processing.
I see it is used to make things somehow faster for example in QTGMC+ script by Dogway - https://github.com/Dogway/Avisynth-Scripts/blob/c6a837107afbf2aeffecea182d021862e9c2fc36/MIX%20mods/QTGMC%2B.avsi#L678
So to use new core features of GaussResize to replace this processing and skip using one more external dependency plugin it is better to add same functionality to Resize filters.
May be as bit mask for 'force' parameter ? To make number of parameters for Resize filter smaller.
Currently 'force' parameter uses 2 LSBs -
0, 1, 2, 3
We can assign 3 (4 for formats with 4 planes) groups of next bits (pairs of bits) to encode plane processing mode:
0 - full process plane (default, to keep backward compatibility)
1 - write nothing to output plane
2 - copy plane
So defaults 0,1,2,3 will keep compatibility and for special processing modes user need to add decimal special control values to 'force' param value
Like force=3+(plane 0(Y) = full process, planes 1 and 2 (U and V) = copy)
where
plane 0 control 2 bits (xx<<2)
plane 1 control 2 bits (xx<<4)
plane 2 control 2 bits (xx<<6)
plane 3 control 2 bits (xx<<8)