BMD FourCC sometimes end with space, like 'pal '. Although no
BMDDeckLinkAttributeID currently does, we may pad to be simplier to use,
eg. `-t decklink:q=3cc` instead of `-t decklink:q='3cc '`. Also suppresses
potential compiler complains due to using NULL-terminated function on a
"string" that is not terminated in general.
Decrease log level for implicit options returning E_NOTIMPL to info -
perhaps not important at all (like passthrough on old devices) and we
do not want to decrease user attention to warning.s
Allow passing of arbitrary option to DeckLink configuration, eg.:
uv -t decklink:cptm=pdir
via FourCC option name and value (may be also a flag or an int). The
option is passed directly to BMD API.
+ [disp] the condition `s->profile_req == bmdProfileOneSubDeviceHalfDuplex`
was probably inverted - there should perhaps be unequality, because if
not set otherwise, that option is set for quad-link by default
+ when setting the profile automatically, use detected/actual link
configuration to check quad-link, not use the value set by us (may be
set in BMD settings)
+ sort conf_name_map alphabetically
Created bmd_option type that is basically a variant (tagged union) to
encapsulate possible configuration values and also special values for
default and keep. Having this previously in int is cumbersome because
the special values as were defined (0, -1) collide with the default
semantics of bool.
It actually sets `profile=1dfd`. This is a complement to already
existing `half-duplex` option (that has on the other hand more more
complex semantic - it chooses the profile tailored for the device, since
the right one differs for eg. 8K Pro /4dhd/ and Duo/Quad 2 /2dhd/).
When profiles switching is required, it may be the important part so it
may be useful to print info which profile is active or being activated
even if there is no fail.
BMD Extreme 4K doesn't support profiles so do not warn (only in verbose)
if setting failed, provided that the profile was not selected
explicitly and query was E_NOINTERFACE.
Set 1-subdevice-full-duplex for 3D mode as it seems to be the only
supported (1 device half-duplex would work as well but it doesn't seem
to support 2 streams while full-duplex supports at least 2 streams in
the opposite direction, at least for 8K Pro).