Commit Graph

10015 Commits

Author SHA1 Message Date
Martin Pulec
bc47cd392c gl: print GL version in help 2025-02-11 12:59:03 +01:00
Martin Pulec
7573bf24b1 video_display FPS indicator color FPS as a warning
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.
2025-02-07 12:16:52 +01:00
Martin Pulec
948d559c41 video_display.c: IWYU 2025-02-07 12:16:42 +01:00
Martin Pulec
b7fddb8725 AppImage Firajail: drop --ipc-namespace
breaks display vulkan_sdl2 with x11 driver (but not wayland!)
2025-02-06 13:57:14 +01:00
Martin Pulec
630797beab sdl2: print texture types in debug 2025-02-03 16:57:11 +01:00
Martin Pulec
1c56e6564e vdisp/sdl2: fixed I420 (IYUV)
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)
2025-02-03 10:52:02 +01:00
Martin Pulec
a15c14f2a4 sdl2: include + SDL_CHECK add action
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).
2025-01-29 15:58:46 +01:00
Martin Pulec
a525f474c1 CI GPUJPEG Win: upstream file name has changed 2025-01-27 10:26:40 +01:00
Martin Pulec
5812cf1608 remove unneeded HAVE_SDL2 macro
include <SDL_header> instead of <SDL2/SDL_heaaer>
2025-01-24 14:37:36 +01:00
Martin Pulec
2e321f6511 AppImage: disable signing again
Validation with:
<https://github.com/AppImageCommunity/AppImageUpdate/releases/download/continuous/validate-x86_64.AppImage>

fails, which eg. prevents the AppImage update. Perhaps problem in
AppImageUpdate upstream (the sign reenablement is quite new - see the
link referenced in 9a6f0796).
2025-01-21 09:36:27 +01:00
Martin Pulec
573fe22665 GPUJPEG: adjust verbosity
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.
2025-01-20 16:25:18 +01:00
Martin Pulec
79f85919f1 CI Linux FFmpeg: libsvtav1 API change patch 2025-01-20 10:42:50 +01:00
Martin Pulec
9a6f07964a AppImage CI: reenable signing
Adapted to the new (proposed) way of signing:
<https://github.com/probonopd/go-appimage/issues/318>. It is possible
that it this is not final implementation in the go-appimage.
2025-01-13 14:28:29 +01:00
Martin Pulec
6ebeec3e28 AppRun: if update is due, touch first
If ULTRAGRID_AUTOUPDATE is set and the update is due, touch the AppImage
first. This is convenient if user wants to skip the update eg. by pressing
Ctrl-C, next run will not enforce the update becauuse the date of the file
is reset. User can run then run the AppImage by issuing the command again
without the update.

+ notice that updating because of ULTRAGRID_AUTOUPDATE is set
+ rename handle_updates to handle_autopudates (the normal update by -u is
not handled by that function at all)
2025-01-09 12:25:27 +01:00
Martin Pulec
2365a00ce9 GH/releases/continuous: add link for alt builds outside GH 2025-01-09 09:54:13 +01:00
Martin Pulec
c55fdd8fad hwaccel_vdpau.h: add config.h include guard
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).
2025-01-08 14:27:06 +01:00
Martin Pulec
8bf32c3883 CID 470571 fix
fixed a Coverity bug
2025-01-07 16:24:16 +01:00
Martin Pulec
40f7bb76c2 CI (all workflows): rename cache check/fetch step
Instead of use "Cache XY" use more techical "Run action/cache for XY"
(similarly as implicit name when "name" key was not used).

Although the action is really actions/cache, the problem with the previous
name is that it actually doesn't cache the named item. It checks, and
if found loads, the item. But even if the item is not found, the action
reports success in GH web UI, which is quite misleading. So using rather
neutral name for the step should slightly decrease the confusion.
2025-01-03 11:23:05 +01:00
Martin Pulec
a4c1268ee0 ARM CI: use GH runner ubuntu-22.04
Use runner ubuntu-22.04 instead of ubuntu-latest. Because ubuntu-latest
has switched to ubuntu-24.04 recently, whiich breaks the build for arm64.

There seem to be an unresolved bug in QEMU >= 8.1
(U24.04 has v8.2.2) when using ARM64 and bullseye:
<https://gitlab.com/qemu-project/qemu/-/issues/2377>.

(ARM64 buster and bookworm, as well as ARMHF, may be fine as indicated
in the bug description.)

This can be reverted later (either when fixed in QEMU or when switched
the chroot to bookworm). But it shouldn't matter much, anyways, since this
is just the "host" environment.

Also include runner ver in chroot key because it seem to make a difference
from the above..
2025-01-03 10:38:17 +01:00
Martin Pulec
22c800d7e7 CI ARM: fix qemu not being present in U24.04
the package `qemu` is no longer present in U24.04, which is now
ubuntu-latest default Ubuntu version as a GH runner. But we don't need
it, we use just the static version (qemu-user-static).
2025-01-02 15:13:02 +01:00
Martin Pulec
16d41e8a5d aplay/mixer: restricting senders - check err
also workarounds for CIDs 47049{6,7}
2024-12-04 16:17:03 +01:00
Martin Pulec
e62773d71d get_iface_local_addr4: handle err from get_ifindex
- return on wrong iface spec (similarly as IPv6 does)
- return on "help"
2024-12-04 16:05:49 +01:00
Martin Pulec
e88ad545bc net_udp: enforce v4 sock only for mac+mcast+iface
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.
2024-12-04 15:21:00 +01:00
Martin Pulec
d1023bdccb net_udp: multicast: multiple improvements
- 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).
2024-12-04 15:20:56 +01:00
Martin Pulec
65e8bf318f net_udp: set IPV6_MULTICAST_IF only of not default
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).
2024-12-04 14:07:20 +01:00
Martin Pulec
b99c8c1300 utils/net: suppress alignment warning 2024-12-04 14:06:52 +01:00
Martin Pulec
4462a15fca net_udp: fix mcast TTL not set also for IPv6
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.
2024-12-04 14:06:48 +01:00
Martin Pulec
49a16a90a4 CI Linux: add-apt-repostitory retries
Fetching GPG keys sometimes fails on timeout so prevent it by adding
retries with exponentially increasing intervals taken from:
<https://github.com/canonical/server-test-scripts/pull/18>
(just removed bashisms)
2024-11-29 12:36:28 +01:00
Martin Pulec
3e04432ef5 bmd_commmon small improvement
if property query fails, print its name (not only numeric ID)
2024-11-29 12:36:28 +01:00
Martin Pulec
a41b2c5a51 Revert "vdisp,vcap/decklink: do not fail if insuff drv ver"
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.
2024-11-29 12:36:27 +01:00
Martin Pulec
9a0594dd4b blackmagic_api_version_check more inteligent
return false only if using the incompatible ABI

in other cases just issue a warning
2024-11-29 12:36:27 +01:00
Martin Pulec
ff2c259264 bmd_common: add all configuration items
the values will be shown in the FourCC opt listing (`help=FourCC`)

+ print value type with `help=FourCC`
2024-11-29 12:35:38 +01:00
Martin Pulec
54efe84fea deck/help=FourCC: make fourcc sample val 4-char long 2024-11-29 09:42:06 +01:00
Martin Pulec
0ac8c32716 aplay/mixer: allow selection of single participant
Allow selection of a single participant to be sent back with a control
socket (docuented in wiki).
2024-11-28 12:05:12 +01:00
Martin Pulec
d90d2836ec sockaddr_compare: handle v4-mapped sockaddr_in6
Current implementation of resolve_addrinfo defaults to v4-mapped ipv6
addresses even for dotted decimal.
2024-11-28 12:05:11 +01:00
Martin Pulec
9fd68d6447 aplay/mixer: factor out sockaddr_compare 2024-11-28 12:05:11 +01:00
Martin Pulec
273f6d3c1d add get_sockaddr + tests
to convert textual representation of host:port to sockaddr

having this new function, we can also test get_sockaddr_str
2024-11-28 12:05:11 +01:00
Martin Pulec
82aed4b4ac aplay/mixer: sockadr cmp: check also IPv6 scope ID 2024-11-28 12:05:11 +01:00
Martin Pulec
950f3dc6a4 get_sockaddr_str: obtain IPv6 scope ID
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).
2024-11-28 12:05:10 +01:00
Martin Pulec
16e647c65a hd-rum-translator: use get_sockaddr_str()
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.
2024-11-28 12:05:10 +01:00
Martin Pulec
0b27ea6e18 aplay/mixer: do not store particp sockaddr_storage
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)
2024-11-28 12:05:10 +01:00
Martin Pulec
23197c9e78 aplay/mixer: pass audio_playback_opts to ctor
+ moved opt parsing to a separate function
2024-11-28 12:05:10 +01:00
Martin Pulec
9ff045c00b aplay API: paas init parameters in a structure
+ add also parent module pointer
2024-11-28 12:05:10 +01:00
Martin Pulec
d9eaca6cac acap/aplay headers: add missing include guard 2024-11-28 12:05:09 +01:00
Martin Pulec
1b61386af6 audio decoder: support zero-len data
to be used by passive acap and the audio mixer for passive audio
participants
2024-11-28 12:05:09 +01:00
Martin Pulec
88e511f898 audio codec: if received no data, pass it further
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.
2024-11-28 12:05:06 +01:00
Martin Pulec
abd758241a debug: move some stuff to utils/debug
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
2024-11-28 11:46:09 +01:00
Martin Pulec
cac114d6e5 vdisp,vcap/decklink: do not fail if insuff drv ver
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
2024-11-28 10:34:08 +01:00
Martin Pulec
9e736df38e timespec_get: compat
handle it explicitly for macos < 10.15

it eliminates the need to include config.h from tv.h and also the
autoconf test
2024-11-28 10:30:11 +01:00
Martin Pulec
699c04841f added passve audio vidcap 2024-11-28 08:29:28 +01:00