With the removal of XVideo, there is not a single video output supporting
any format in the YUY2 family of Packed 4:2:2 YUV.
Note that we still need conversion *from* YUY2 for some capture devices
(mostly for capture at resolution small enough to go over USB 2).
Remove the not up to date pi_allowed_chromas. Use directly the
vlc_chroma_probe.h API to get the list of chroma fallbacks.
Remove recursivity handling:
Before, the chain module could load an other chain module for
conversions requiring an extra step (OPAQUE -> I420 -> RV24 for
example).
Now that the conversion list is acquired from start, we can add each
converter filters in an iterative loop.
The Direct3D9 code is enabled for non-UWP targets and all Windows targets
have this DLL (since Vista).
If for some reason the DLL is not there, the plugin won't be loaded
and it will rightfully be skipped.
Direct3DCreate9Ex() is available since Vista [^1]:
> Direct3DCreate9Ex is supported only in Windows Vista, Windows Server 2008, and Windows 7. Earlier versions of the D3D9.dll library do not include Direct3D9Ex and Direct3DCreate9Ex.
We fallback to Direct3DCreate9() just in case it fails for maximum compatibility.
[^1]: https://learn.microsoft.com/en-us/windows/win32/api/d3d9/nf-d3d9-direct3dcreate9ex#remarks
This declares the modules unconditionnally to be able to use them in
the module_depends: key for tests, so as to disable the tests when the
matching module is disabled automatically and ensure the tests is built
and run after the module has been built.
It appears that OLE 1.0 is not utilized, so it should
be beneficial to set this flag.
From "Initializing the COM Library":
> ... it is a good idea to set the COINIT_DISABLE_OLE1DDE
> flag in the dwCoInit parameter. Setting this flag avoids
> some overhead associated with Object Linking and Embedding
> (OLE) 1.0, an obsolete technology.
Now that frameworks are probed into the frameworks dictionary, use them
everywhere a framework was set as dependency. See previous commit for
rationale.
The function has two different behaviour depending on whether it copies
to an YUVA target or an RGB-like one. Splitting the simpler YUVA case
with early return allows to simplify the second case.