Commit Graph

9958 Commits

Author SHA1 Message Date
Martin Pulec
e243777d66 vdisp/decklink
fix double copy; also CID 470421

Copied tvice from 3125ea2d (2024-11-18) - actually the original strcpy()
was forgotten (replaced in favor of snprintf_ch).
2024-11-26 08:29:30 +01:00
Martin Pulec
8d91757f7d fix CID 470420 2024-11-26 08:29:30 +01:00
Martin Pulec
a0ef81d76b audio/codec: improved including 2024-11-25 15:09:09 +01:00
Martin Pulec
9cd1af1a03 aplay/alsa: remove 2 messages
- do not inform about new API - it has been there a long time and obviously
the "new" API works fine
- do not warn that cannot get the latency - the procfs file is no longer
available so it is issued all the time. It works with the default value
24 ms just fine.
- regading the above, do not obtain the value at all - since it now works
fine, we do not need to depend on an external value that may potentially
break the stuff (it would be required to re-test if needed)
2024-11-25 15:09:08 +01:00
Martin Pulec
3e8100c7d2 CI macos: pkg-config install fix
THe problem seems to be that there is preinstalled pkg-config@0.29.2 in
CI but the version that is being to be installed is an alias for pkgconf.

The problem seems to be cumbersome, because installing pkgconf fails, pkg-config
as well (tries to install pkgconf 2.3.0; installed version of pkg-config
is pkg-config@0.29.2).

So made just a workaround, that will not be needed after the updated
pkg-config (linked to pkgconf) applies to all macos runners (will be
preinstalled).

The problematic package is pkg-config in current macos-13 runner but
pkg-config@0.29.2 in macos-14 image.
2024-11-25 11:19:45 +01:00
Martin Pulec
1edef2b0c8 .github/scripts/macOS/prepare.sh: suppres brew out
suppress `brew list` output

It is used just to check if a package is installed and the output is
print is output to stdout. To stderr is print that it if the package is
not installed.
2024-11-25 09:06:41 +01:00
Martin Pulec
9cee3b1011 CI mac: disable pkg-config and use pkgconf
pkgconf is more modern version and the CI on macos-14 now fails
because both pkg-config and pkgconf (presumably as a dependency) are to
be installed.

The erroa (the beginning, additional info omittedr):
```
==> Pouring pkgconf--2.3.0_1.arm64_sonoma.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /opt/homebrew
Could not symlink bin/pkg-config
Target /opt/homebrew/bin/pkg-config
is a symlink belonging to pkg-config@0.29.2. You can unlink it:
  brew unlink pkg-config@0.29.2
```

Both pkgconf and pkg-config can be installed automatically as a dependency
of some other packages so ensure a defined state (both installed,
pkg-config disabled).
2024-11-22 10:41:13 +01:00
Martin Pulec
73718becae aplay/jack: avoid using alloca/strdup
+ small related improvements
2024-11-22 10:15:54 +01:00
Martin Pulec
0e5af30355 configure.ac: accept also CUDAFLAGS
CUDA_FLAGS were used to get the flags passed to nvcc. But cmake uses
CUDAFLAGS and it is perhaps more convenient (similar to CFLAGS, CXXFLAGS)
so accept both.
2024-11-22 10:07:58 +01:00
Martin Pulec
20a3ed68ca BMDNotificationCallback: watch overheating
soft warning >= 77 °C, hard over 82
2024-11-20 11:39:54 +01:00
Martin Pulec
9ab3738fbb Linux net buf increase hint sysct.conf path change
Changed the path to from /etc/sysctl.conf to
/etc/sysctl.d/60-ultragrid.conf. It seems like systemd 256 no longer
applies /etc/sysctl.conf directly but only the sysctl.d/*conf.

Keeping the changes separate is nicer, anyways. It should work for
non-systemd systems as well, checked Alpine and Void (runit).
2024-11-20 10:52:54 +01:00
Martin Pulec
32322f2393 bmd status: print temperature in verbose
since the temperature changes quite often, rate limit it to one minute
2024-11-20 10:07:59 +01:00
Martin Pulec
9adf205d31 bmd_status: use module prefix
to be able to identify capture vs playback

This may or may not be important - if cap/disp is on single device,
the status is global so it doesn't matter there. But those can be 2
separate DeckLinks and then there will be hard to differntiate.

Also, both devices will get the same notifications so this makes at least
clear that the duplicate has some reason. (Maybe it will be useful to
figure out how to print just once?)

Note that BMD_CHECK still uses the blackmagic_common.cpp MOD_NMAE
("[DeckLink] ").
2024-11-19 16:54:12 +01:00
Martin Pulec
5f67a064b0 bmd_status: print some generally useful info
- refactorized
- added API check (hint to re-check changes)
- implement ST_BIT_FIELD (for busy status)
2024-11-19 16:54:11 +01:00
Martin Pulec
1bfae7bf66 bmd_common fourcc cmdline example improved
For the dst IP address-specifying opt, include also the port number.

The port number should have escaped colon, so that add it to the example.
2024-11-19 16:54:11 +01:00
Martin Pulec
2d71744c2c bmd_status improvements
- use BMD_CHECK to check HRESULT
- check Unsubscribe ret val
- if deckLink->QueryInterface(IID_IDeckLinkNotification, ..) fails,
release deckLinkStatus
- doxygen updates
2024-11-19 16:54:11 +01:00
Martin Pulec
d500197b63 bmd: keep notification interface in BMDNotificationCallback
I am not entierly sure if releasing IDeckLinkNotification in register
fuction actually doesn't cleanup the state. It seems it does not  but
just to be sure.
2024-11-19 16:54:11 +01:00
Martin Pulec
7395ad79cc decklink: use bmd notification API
The changes, eg. IP address do not take place immediately so it is
importatnt to print the changed value for the user to be sure that the
values is changed (the original is printed first by the bmd_print_status).
2024-11-19 16:54:11 +01:00
Martin Pulec
cdb90d8422 bmd_status: print the status for all devices
do not diffeentiate between IP and non-IP devices
2024-11-19 16:54:10 +01:00
Martin Pulec
d1c4888eca bmd_status: be more generic 2024-11-19 16:54:10 +01:00
Martin Pulec
54360d1590 bmd_common: non-Linux compat fixes
- the prop type must be BMDDeckLinkStatusID (Windows)
- `string_val = ""` also do not work if BMD_STR is different than in
Linux -> simplify (use the common code)
2024-11-19 16:54:10 +01:00
Martin Pulec
d71c28eef0 vcap,disp/decklink: allow \: in fourcc opts
this now allows specifying the IP address including port:

    uv -d 'decklink:d=DeckLink IP/SDI HD (1):noav=239.255.194.25\:16666'
2024-11-19 16:54:10 +01:00
Martin Pulec
b9ca43e295 bmd: print Ethernet status (for IP devices) 2024-11-19 16:54:10 +01:00
Martin Pulec
bbaefd6ff6 ext-deps/DeckLink: bump to v12.8
This version contains some useful stuff to be used with DeckLink IP
devices like bmdDeckLinkStatusEthernetLinkMbps.
2024-11-19 16:54:05 +01:00
Martin Pulec
1baedda2bc bmd: added Ethernet related types 2024-11-19 16:54:05 +01:00
Martin Pulec
8ab25ad234 bmd_option::parse: accept 0x prefix for number
When evaluating if a string is the number, expect that it may start with
0x prefix (for hexa values).
2024-11-19 16:54:04 +01:00
Martin Pulec
01cb8613e3 bmd_opt_help: print known options+examples 2024-11-19 16:54:04 +01:00
Martin Pulec
83847d58be blackmagic_common: fourcc->name mapping
- moved out of fcc_to_string to be used otherwhere
- split options and values (for futher use)
- converted from unordered_map to plain C-array (unordered map may throw
on file scope which cannot be catched)
2024-11-19 16:54:04 +01:00
Martin Pulec
3125ea2d04 vdisp/decklink: avoid using of alloca 2024-11-19 16:54:04 +01:00
Martin Pulec
bebc2c203b bmd: add FourCC option help 2024-11-19 16:54:04 +01:00
Martin Pulec
a1b669106c BMD: updated SDK to 12.6
first to support DeckLink IP

In this import, do not import the older API versions (Linux, Mac) -
it is not needed since we do not use them.
2024-11-18 09:32:32 +01:00
Martin Pulec
754947a059 vdisp/file: avoid deprecated AVCodec::sample_fmts
see the also the commit 8b94de58 (2024-11-12)
2024-11-14 11:54:19 +01:00
Martin Pulec
164084facd configure.ac: do not add -I$srcdir
added by 81e6766594 (2012) but should not be needed anymore
2024-11-14 11:54:19 +01:00
Martin Pulec
2bb1ad97ac vcap/preview vdisp/unix_sock: use path rel to src/
see the previous commit
2024-11-14 11:54:19 +01:00
Martin Pulec
541ad58eb6 ldgm: fixed including
- use the path relative to src/ (-I. will be removed)
- remove mkdir compat from config_win32.h (is now in compat/misc.h)
2024-11-14 11:54:18 +01:00
Martin Pulec
ef9035b7d0 cuda_dxt: ditto 2024-11-14 11:50:46 +01:00
Martin Pulec
8652394f7c RTDXT: fixed including
use the path relative to src/ (-I. will be removed)
2024-11-14 11:50:43 +01:00
Martin Pulec
2ccf666c16 audio_decoders: drop src/ from include
the include path convention for quoted inclues in UG is relative to src/,
alternative can be to current path but not to the src root
2024-11-14 10:35:32 +01:00
Martin Pulec
d4e216e21c aplay/mixer: participant add/rm print fixes
- do not print it in constructor/dtor - the participant may be moved
- copy the stored address in copy constructor
- use get_sockaddr_str + change its prototype - do not use thread_local
vars but user provided buffer
- also take (const sockaddr *) in the get_sockaddr_str and
get_sockaddr_addr_* functions (participants iterated by const iterator
returning const participant reference)
2024-11-13 17:00:10 +01:00
Martin Pulec
a68f76ca9c aplay/mixer fix
fixed HEAD^^
2024-11-13 16:20:39 +01:00
Martin Pulec
a9b988f9d8 lavc_common: fixed compat
+ fixed unused parm warn with old FFmpeg
2024-11-13 14:58:45 +01:00
Martin Pulec
225fbc8ea1 aplay/mixer: print participant add/rm 2024-11-13 14:52:28 +01:00
Martin Pulec
110e656b46 aplay/mixer: fixed including 2024-11-13 14:46:59 +01:00
Martin Pulec
13fee82660 lavc_common: insufficient include guard
fixed include guard (commit 8b94de582 from yesterday)
2024-11-13 14:40:41 +01:00
Martin Pulec
352eab7e76 tv.h: added more unit-convert macros 2024-11-13 14:08:33 +01:00
Martin Pulec
f39e24e232 acodec/lavc: fixed including 2024-11-13 14:08:32 +01:00
Martin Pulec
2c070b9777 Vulkan >=301 compat 2024-11-12 16:39:42 +01:00
Martin Pulec
eeeeae57e3 CI FFmpeg SVT-VP9 patch
SVT-HEVC and SVT-VP9 patches now interfere (neighbor of SVT-VP9 is not
libspeex but libsvthevc now).
2024-11-12 15:49:49 +01:00
Martin Pulec
8b94de582c lavc: replace deprecated items
Some AVCodec properties like pix_fmts or sample_fmts are marked as
deprecated and should be replaced by avcodec_get_supported_config()
in current FFmpeg.

Created compat functions to get rid of deprecate warnings running with
both old and new FFmpeg.
2024-11-12 14:59:19 +01:00
Martin Pulec
875c585dc3 vcap/rtsp: unlink the (fallback) file 2024-10-31 16:05:43 +01:00