Commit Graph

8215 Commits

Author SHA1 Message Date
Martin Pulec
ec09de4e4b tests: link FFmpeg tests only if avail 2023-08-09 16:08:32 +02:00
Martin Pulec
2a67b17cfa configure.ac: fixes
Fixed places wher OBJ/LIBS were written directly, which now causes
problems.

Ole32 is needed for CoInitialize[Ex] (utils/windows.c).
2023-08-09 16:08:31 +02:00
Martin Pulec
064a22793d test/test_aes.c: silence fscanf unused res warns 2023-08-09 16:08:31 +02:00
Martin Pulec
50b7544027 removed autorelease pool - no longer used 2023-08-09 16:08:31 +02:00
Martin Pulec
56803b84a8 reflector: blend fixes 2023-08-09 16:08:31 +02:00
Martin Pulec
1745349b9b Revert "Hd-rum-translator: missing header (MSW)"
This reverts commit 8d4004bfeb.

no longer needed
2023-08-09 16:08:31 +02:00
Martin Pulec
eebe224c10 build: do not link reflector with unneeded deps
Do not link all optional features to the reflector, only video compress
modules are actually requested for it.
2023-08-09 16:08:31 +02:00
Martin Pulec
f8be25b426 configure: removed X_OBJ (no longer used) 2023-08-09 16:08:30 +02:00
Martin Pulec
9ab4edbf56 configure: non-essential objs are not needed for reflector
The non-essential object separated in HEAD^^^ happen not to be needed
for the reflector.
2023-08-09 16:08:30 +02:00
Martin Pulec
90a84dc88b fixed few warnings 2023-08-09 16:08:30 +02:00
Martin Pulec
15d0f4ae55 removed capture_filter none
This capture filter is never initialized now (if none capture filter is
given, empty list of capture filters is used).
2023-08-09 16:08:30 +02:00
Martin Pulec
78b8ea7e7c disable non-essential files with --disable-all
Disable non-essential modules with --disable-all even if doesn't have
external dependencies and thus has been built unconditionally until
now. Individual files can then be re-enabled with --enable-file=src1,src2
option.
2023-08-09 16:08:30 +02:00
Martin Pulec
55aa67a094 configure: rename file option to vidcap-file
file alone is not much specific (also not always known from context if
its meant file vidcap or some file in a generic meaning)
2023-08-09 16:08:30 +02:00
Martin Pulec
c3ba23cf8f moved sdp_send_change_address_message to audio.cpp
In order to audio.cpp not being dependant on SDP.
2023-08-09 16:08:26 +02:00
Martin Piatka
6590598086 lavd: Add vulkan hw accel 2023-08-09 13:28:45 +02:00
Martin Piatka
951b94e0d5 screen_pw: Use MOD_NAME when logging 2023-08-09 13:28:43 +02:00
Martin Pulec
cb8d96d210 configure: option to disable reflector
The option will likely not be used alone but rather implicitly by
--disable-all and it can be used to speed-up the compilation if reflector
is not needed (and maybe also if its compilation is failing).
2023-08-08 16:12:45 +02:00
Martin Pulec
d17c5ea24c removed platform_time.c + references
get_time_in_ns() should be used instead time_since_epoch_in_ms(). Having
both may be misleading and may lead to errors when interchanged.
2023-08-08 15:32:29 +02:00
Martin Pulec
6c431eff87 Makefile: do not link unused files 2023-08-08 14:39:32 +02:00
Martin Pulec
e4f50f5318 fixed Coverity CID 41653{4,5} 2023-08-08 11:35:09 +02:00
Martin Pulec
97de457eaf audio cap.: limit user given values
Limit user-specified sampling rate and channel count to values defined
by pixel format.
2023-08-07 16:38:02 +02:00
Martin Pulec
d19531e2d2 audio testcard: prevent overflow on big numbers
Prevent integer overflow on big (perhaps wrong) values, eg. 2E9 channels:

`uv -s testcard -a ch=2000000000`

+ check memory data allocations with assert where there is no overflow
but out-of-memory (eg. `ch=1024:s=16777216:bps=16` requires 32 GiB RAM)
2023-08-07 16:38:02 +02:00
Martin Pulec
6735bcf6ab main: catch also out_of_range exception
catches eg. the case of int overflow:

`uv -s testcard -a ch=012345678901`
2023-08-07 16:38:00 +02:00
Martin Pulec
be4f6434ec audio capture format: accept shortened options 2023-08-07 14:21:52 +02:00
Martin Pulec
21b86e4223 GitHub CI Linux: enforce pipewire audio
ensure that Pipewire is built (similarly as with other features)
2023-08-07 12:33:15 +02:00
Martin Pulec
bde2735dbb lavc: NVENC: default rc_buf_size_factor = 1.5
Since 2022-06-18 (commit cbc548d3), dynamic rate limiter allows
overshooting one frame by the factor of 50% so we can safely set the
default factor to 1.5 now.

see also GH-114
2023-08-07 11:47:32 +02:00
Martin Pulec
f590145ed3 ug_srand->ug_rand_init (improved seeding)
On POSIX systems, add also clock() to the seed + use as a source also
/dev/random if available.
2023-08-07 11:42:50 +02:00
Martin Pulec
a097fe7b09 DeckLink disp.: rename max_channels->max_aud_chans 2023-08-07 08:31:09 +02:00
Martin Pulec
aeb1be31a1 bmd_option: decrease log lvl on E_NOTIMPL
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
2023-08-02 15:41:09 +02:00
Martin Pulec
1c82ab9c63 DeckLink disp.: set actual output ch. count
Adjust desc with device actual reported maximal channel count, not
hard-coded maximum.
2023-08-02 15:26:28 +02:00
Martin Pulec
b007d29550 DeckLink cap.: allow 32/64 channs unconditionally
It doesn't seem to be restricted by API version, eg. on an Intensity Pro,
16 works for both SDK 11.6 and 12 (second advertises 32/64 channels in
SDK doc, first not), although it has only 2 channels (attrs mach/aach/iach).
32 channels is refused by both SDK versions, so doesn't necessarily need
to be related to version.

Since this setting is on the sender, we do not need  to check the validity
since if invalid, it would fail later, anyways.
2023-08-02 15:24:00 +02:00
Martin Pulec
2c21e4da6f DeckLink disp.: require deckLinkAttributes
ensure that the attributes are always present

+ print error if unable to query
2023-08-02 15:24:00 +02:00
Martin Pulec
fdd0d547af DeckLink (cap): simple interface for attr query
added `query=` parameter that prints device attribute (Flag or Int)
2023-08-02 15:23:56 +02:00
Martin Pulec
93aeb59d9f fixed tests (rand48 compat removed in Win) 2023-08-02 11:21:10 +02:00
Martin Pulec
3639d00dbf replaced not thread-safe *rand48 functions
Use rand_s() in Windows and random() in POSIX systems.
2023-08-02 10:07:19 +02:00
Martin Pulec
f82091842b keyboard control: print elapsed time in info
+ use the thread-safe time-related functions variants
2023-08-01 16:19:46 +02:00
Martin Piatka
e1358cd7c5 configure.ac: Fix pipewire libs 2023-08-01 14:45:28 +02:00
Martin Piatka
ff67439899 configure.ac: Allow older pipewire for audio 2023-08-01 13:45:01 +02:00
Martin Piatka
0d12a49531 aplay/pipewire: Old pw compat 2023-08-01 13:45:01 +02:00
Martin Piatka
682368113e acap/pipewire: Old pw compat 2023-08-01 13:45:01 +02:00
Martin Piatka
2d5967bc0b audio/pipewire_common: NODE_RATE compat for old PW 2023-08-01 13:45:00 +02:00
Martin Pulec
371e99de02 packet counter: modernize 2023-08-01 12:01:09 +02:00
Martin Pulec
f106180bbf packet counter: remoed unneeded packet store
Not needed to store separately "current" buffer packets since it is
already stored in cumulative, it is just needed to store the current
buffer number.
2023-08-01 12:01:09 +02:00
Martin Pulec
2e03e67ba3 packet counter: removed unused function
+ optimized includes + using
2023-08-01 12:01:09 +02:00
Martin Pulec
7f810b8ddd lavd audio: use packet API
use packet API for OPUS
2023-08-01 12:01:09 +02:00
Martin Pulec
29421cd1fe audio decompress: pass packet list (iterator) 2023-08-01 12:01:09 +02:00
Martin Pulec
8da83d3e92 audio TX: use the packet API
It needs to be enabled explicitly, anyways - at least Opus won't work
with former UG versions. For 40 ms frame, it produces 2 packets. When
merged into one packet, the decoder is unable to decompress.
2023-08-01 12:01:05 +02:00
Martin Pulec
bf35242e78 audio transmit: new sending API
Added API allowing sending multiple compressed packets (eg. by Opus)
with the same timestamp.
2023-08-01 10:26:15 +02:00
Martin Pulec
a81b19d231 format_audio_header: do not use audio_frame2
rewrite for further changes
2023-08-01 10:26:15 +02:00
Martin Pulec
6c07a3e43f audio_tx_send: send indiviual channel with a func
Send channels sequentially with a new function to simplify the code.

Also removed the the cumbersome multiplier packet interleaving - not
sure if it worked as expected (having sliding n-packet interleave window
for n-multiplied stream).

Now we simply send all packets of the frame as without multiplication
and then repeated with M-bit set to the latest packet. It is much easier
and it is  supposed to work approximately the same or even better.
2023-08-01 10:26:15 +02:00