select the color automatically (lime for +- 2-5%, brown for >5% diff)
This simplifies the code by sharing the logic in common; also exceeding
FPS is now colored (until this just lower than nominal was colored).
If the actual number of decoded samples doesn't match the expected number
(from nominal sampling rate), use colors to catch user attention. This is
similar how it is already done for video capture/display.
In the display generic FPS indicator, use colors (arctic lime/saddle
brown) if the actual FPS is lagging behind the nominal FPS. Similarly
(and copied from) how it is already done for video capture.
The pitch for planar pixel formats is the pitch of the first plane,
most likely =width. This yield wrong data_len for I420 if just multiplied
by the height.
this fixes the change made by 107e3e30 (2024-09-02)
include inttypes.h
SDL_CHECK can now have an optional action (using ellipsis) + handle
return value of SDL_LockTesxture using that (currently fails on Arch
Linux with sdl2-compat 2.30.50-1 and sdl3 3.2.0-1 and YCbCr textures).
v0.26 is slightly more chatty even in GPUJPEG_LL_STATUS mode (new between
INFO and VERBOSE) while the status/verbose mode maps more to debug than
UG verbose so adjust the modes as such.
allows build outside of UG/when config.h not generated
Also helps when building tools/convert even when config.h is generated,
VDPAU enabled but FFmpeg headers in non-standard path (that is obtained
by pkgconf for UG but not for the tool).
No longer enforce v4 socket for dot-decimal IPv4 mcast addresses unless
macOS used with mcast4 addr and interface set.
The default behavior now is to use dual-home v6 socket (with v4-mapped
addresses). macOS treates the v4 mcast addresses transparently as
v6 addresses (using v6 sockopts). But interface specification doesn't
currently seem to work in macOS, neither for native v6 mcast addresses
so enforce v4 sockets here.
- support for v4-mapped IPv6 sockets (handled with v4 sockopts in
Linux+Win and v6 sockopts in macOS)
- for mcast4, except of Windows, the interface must be identified by
local address, not device number
- support also setting the bind address directly for v4
- leave mcast4 group with correct ID (not INADDR_ANY)
The local address interface specification was actually the original one
but was removed by the commit 92e24dd02 (in 2012).
macOS fails on it otherwise (at least 15.0), although it shouldn't
according to man ip6(4) (that is, however, presumably inherited from BSD,
because FreeBSD has the same).
This fixes the commit 43d15680 (2021-03-29) that added this for both
IPv4 and IPv6 but for IPv6 the condition was incorrectly aligned to
setsockopt fail, not ttl==-1.
Dropped IPv4/IPv6 specification - since we may/will use v4-mapped IPv6
sockets, the word "IPv6" might be confusing if use is using IPv4 mcast
addr.
Since the following error, the hard fail is again desirable. It, however
doesn't fail if the driver is usable (not so old, using same ABI).
This reverts commit cac114d6e5.
write the IPv6 link-local address with scope ID
This is achieved by using getnameinfo instead of inet_ntop.
Also rewritten in respect to the above change - simplified, no need to
get the port number separately (getnameinfo does that as well).
get_sockaddr_str is used also for create-port in the "dynamic" conference
mode, so this is perhaps better because the calls are symmetric.
Also it will allow eg. to add scope ID later to both create- and
delete-port in the single call.
get_replica_mod_name() is kept for the old/static use cases when
create-port is called explicitly or from an argument on command-line. Then
the address can be also the hostname (or a IP addresss in non-canonical
form) and it is up to the user to use the same host:addr representation.
The participant sockaddr_storage doesn't need to be stored - actually the
participands are stored inside a map, whose key is the sockaddr_storage.
this modifies the commit 225fbc8ea (2024-11-13, and later fixes)
This is an exception to the normal behavior used by the passive audio
mixer participant, that sends empty packets to request receiving the data.
It doesn't affect the normal UG behavior, because the situation when
nonzero_channels=0 doesn't occur otherwise. Either we receive at least
some packet from a frame and if not, the decoding doesn't take place.
The rationale is to separate the config.h-dependent stuff to a separate
file to eliminate the need to transitively include config.h.
+ fix the files that need config.h directly to include it
The motivation is to allow (although not recommend) running even with
old drivers - it will usually work and just the DeckLink IP features
won't be available (and warnings about that).
+ print it again at the beginning (== print also when :help requested)
+ change the message not_inst-or-outdated jus to outdated because in that
place it is obvious that the drivers are present