Commit Graph

9532 Commits

Author SHA1 Message Date
Martin Pulec
b2f89d63fc configure: accept CUDA_PATH
Although CUDA_PATH is advertised by help, it is actually immediately overriden
with the content of CUDA_DIRECTORY env var even if unset/empty.

From now, only override it only when CUDA_DIRECTORY is set and not empty (compat).
2024-07-25 09:35:25 +02:00
Martin Pulec
e40eeee538 Revert "GitHub CI: Win - install whole gcc toolchain"
Seem no longer to be needed, also GCC has been used that time.
The change may very slightly (if noticable) improve CI run time but it
is consstent with instructions in wiki and also more clear.

This reverts commit 8278e15201.
2024-07-25 09:35:25 +02:00
Martin Pulec
3f271bd54d video_rxtx/rtsp: use port=number for RTSP port spec
Prefer `-x rtsp:port=<P>` instead of `port:<P>`. The former one is a bit
inconsistend with other stuff and would also cause problems in future if
more options were added.

Keep the compat for the old syntax.

Fixed the usage, which was not correct anyways (the '=' should have been ':').
2024-07-25 09:35:25 +02:00
Martin Pulec
7640445df0 vcap/rtsp: set width/height props from stream
If SPS/PPS is not passed in RTSP, set from those NAL units in the stream.
This is also the case of RTSP/RTP stream produced by current UltraGrid
RXTX implementation.
2024-07-25 09:35:24 +02:00
Martin Pulec
73749cb66b vcap/rtsp: emit_pps_fps loop fix
If h264_offset_len was 0 (SPS/PPS not in RTSP but eg. in the stream,
as UltraGrid RTSP server currently does), _grab() returned NULL
infinitely.
2024-07-25 09:35:24 +02:00
Martin Pulec
217f00f589 vcap/rtsp: rtpdec_h264: alloc exactly needed buf
Since we are computing needed data first in rtpdec_h264 (with pass==0),
we can allocate exactly needed buffer directly, without relying that
there is enough space.
2024-07-25 09:35:24 +02:00
Martin Pulec
7ede067208 rtpdec_h264 decode_frame_h264: watch overflow 2024-07-25 09:35:24 +02:00
Martin Pulec
56ae4a380d get_nalu_name: added non-IDR NALU 2024-07-25 09:35:23 +02:00
Martin Pulec
2a911c6980 rtpdec process_nal: print also nal type name 2024-07-25 09:35:23 +02:00
Martin Pulec
05f408c0e6 get_nalu_name: report also names for RTP-specific NALU 2024-07-25 09:35:23 +02:00
Martin Pulec
8fa5aa866f rtpdec_h264: do not include config*.h 2024-07-25 09:35:23 +02:00
Martin Pulec
ee55783bf2 vcap/rtsp: perform TEARDOWN only if SETUP
Do not perform TEARDOWN if SETUP was not issued - this is mostly only
required to avoid false-positive error when probably another problem
occured before (otherwise the SETUP would have been called).
2024-07-25 09:35:23 +02:00
Martin Pulec
364fa84687 vcap/rtsp: fixed pointer passing
insteda to rtsp_state::rtsp_error_occurred, the error was printed to
some place of stack (the address of `s` variable on stack plus offset
of that attribute).

\+ added magic value to ensure
2024-07-25 09:35:22 +02:00
Martin Pulec
67aacec480 vcap/rtsp: return bool instead of int from fns
Mainly for readibility - return bool on error from various functions.
It seems like initially the return value of 0 meant failure (not success,
which is a bit misleading (I personally perhaps used -1 to signalize error,
which would supposedly be considered as a success).
2024-07-25 09:35:22 +02:00
Martin Pulec
5f892f462b vcap/rtsp: print explicitlly error if no stream
Print the error explicitly if no (usable) stream was found.

\+ fixed inverted condition (in commit from 2024-07-19, not a big deal)
2024-07-25 09:35:11 +02:00
Martin Pulec
9b4c7a6d39 vcap/rtsp: correctly set user/pass
The parsing was quite bogus, especially if there was no user:pass but
a port specification in URI (with ':').

The stuff doesn't seem to be essential, anyways, since userinfo is also
passed to the server as part of the URI.
2024-07-19 12:20:31 +02:00
Martin Pulec
8941494bc5 vcap/rtsp: clang-tidy complain fix 2024-07-19 12:03:49 +02:00
Martin Pulec
3ae80a0ad2 vcap/rtsp: be less chatty in VERBOSE
- keepalive messages only in debug
- print the received RTSP headers also only in debug mode
2024-07-19 12:03:49 +02:00
Martin Pulec
09ca90f6cd vcap/rtsp: print performed action in verbose 2024-07-19 12:03:49 +02:00
Martin Pulec
9ab54fde00 debug_dump: overflow fix
The printout includes pointer, which was at the time of writting supposed
to be 32, in which case the line length was:

2 /* 0x */ + 8 /* ptr */ + 1 /* : */ + 3 * 16 /* " XX" */ + 16 /* char repr */ + 5 /* additiona separators */ + 1 /* NL */ = 81

(separators - 2 betweeh group of hexa and char repre, 3 between hexa and char represenatation)

With 64 bit pinters, it can be at most 89 bytes. To keep the old length,
removed one space between every pair of hexadecimal byte representation -
it is still good legible, compatibile with xxd, still keeping the 80
long line..
2024-07-19 12:03:49 +02:00
Martin Pulec
60a42afaa2 vcap/rtsp: print also (char *) opt in verbose
Print options with (char *) arguments in verbose mode + use long_to_str()
also for int (int_to_str() redundant).
2024-07-19 12:03:49 +02:00
Martin Pulec
19a7cd7f4b rxtx/rtsp: announce IPv6 + fix it in SDP 2024-07-19 12:03:29 +02:00
Martin Pulec
5c48277b10 BasicRTSPOnlySubsession: basic support for IPv6
\+ do not force IPv4 for RTSP
2024-07-19 12:03:27 +02:00
Martin Pulec
76e1e6cdcc BasicRTSPOnlySubsession: fixed leaked memory 2024-07-19 12:03:27 +02:00
Martin Pulec
dd69d4fd83 rxtx/rtsp: print SDP lines in verbose 2024-07-19 12:03:13 +02:00
Martin Pulec
8adb8f2c50 current live555 compat 2024-07-19 12:01:52 +02:00
Martin Pulec
f7dd228b0f vcap/rtsp: log just setting opts
refers to GH-400
2024-07-18 16:56:08 +02:00
Martin Pulec
4bf28085bf vcap/rtsp: set cURL verbose according to log_level
The value is just a boolean for cURL (0/1), so use VERBOSE=1 for
>LOG_LEVEL_DEBUG (it is quite chatty so use DEBUG rather than
LOG_LEVEL_VERBOSE).
2024-07-18 16:32:34 +02:00
Martin Pulec
f3d67249b7 AppImage custom excludelist x86: removed gnutls
Doesn't seem to be required and nwo (since the new PPA use) causes following error:
```
ultragrid_vidcap_rtsp.so: /lib/x86_64-linux-gnu/libgnutls.so.30: undefined symbol: nettle_siv_gcm_aes256_decrypt_message, version NETTLE_8
``
(obviously) when libgnutls30 is not installed, eg. in Ubuntu 24.04.
2024-07-18 10:49:28 +02:00
Martin Pulec
09e140c2cc CI Linux FFmpeg: removed unused dep exclude
- libsdl2-dev is now normally used (previously used own build)
- libzmq3-dev perhaps also no longer needed to exclude
2024-07-18 09:15:19 +02:00
Martin Pulec
4229e9e381 CI Linux: hold libva2
refers to the revert - ensure that libva **won't** be installed from the PPA
2024-07-18 09:07:55 +02:00
Martin Pulec
10f1fffd51 CI Linux: install libvulkan-dev from PPA 2024-07-18 09:07:25 +02:00
Martin Pulec
433a54caf9 Revert "CI Linux FFmpeg: add the savoury1 PPA early"
The libva in the savoury1 is very new (2.22), which is even newer than
in U24.04. This would prevent LD_PRELOAD of libva from the system.

This reverts commit 234821d31c.
2024-07-18 08:43:48 +02:00
Martin Pulec
417497b406 AppRun: check system libva
Check if bundled libavcodec has all dependencies satisfied from system
libva, if not do not use the system ones.

Fixes the error message:
```
undefined symbol: vaMapBuffer2  (./squashfs-root/usr/lib/libavutil.so.59)
```

on (some) current Ubuntu 22.04 with current continuous AI.
2024-07-17 16:07:12 +02:00
Martin Pulec
0b4f1e4b7b fec mult: handle invalid vals reasonably
do not assert on invalid value but rather print an error
2024-07-16 16:20:40 +02:00
Martin Pulec
7d199f6ff0 tx set_fec: added nodup option
added option `nodup` to disable 1st pkt duplication (previous commit)
2024-07-16 16:20:40 +02:00
Martin Pulec
9fb3240457 tx set_fec: fec_cfg always not-NULL 2024-07-16 16:20:39 +02:00
Martin Pulec
f96fb9777d Increase FEC resilliancy with low traffic
Duplicate first packet to increase resilliancy in cases when the traffic
is low, usually a single packet of some inter-frame compression like
H.264/HEVC. But it will similarly do the job when more packets per frame
are used.

First packet is duplicated instead of the last one because the last packet
can have less symbols than the first if there is more than 1
packet, eg. `DDDD|DF` (D - primary data; F - FEC, | - packet bounadry).

refers to GH-361
2024-07-16 16:20:39 +02:00
Martin Pulec
a2871664cc Revert "UG build fix: expired homepage SSL certificate"
appstreamcli v1.0.3 validation falls with url-homepage-missing

This reverts commit b1a46b6389.
2024-07-16 16:20:39 +02:00
Martin Pulec
91b56cddab Reapply "CI Linux: use Vulkan directy from repo"
with the ppa:savoury1/ffmpeg4 (previous commit) no longer needed

This reverts commit 8922476204.
2024-07-16 16:20:39 +02:00
Martin Pulec
234821d31c CI Linux FFmpeg: add the savoury1 PPA early
needed for updated libvulkan-dev
2024-07-16 16:20:39 +02:00
Martin Pulec
4c07ff5c35 CI Linux FFmpeg: add OpenH264
U20.04 doesn't have libopenh264 yet, so use it from the
ppa:savoury1/ffmpeg4, which replaces ppa:savoury1/vlc3 - it contains
the same x265 version (3.6).

The new repo ppa:savoury1/ffmpeg4 contains more (updated) packages
than /vlc3, which can be actually the advantage (eg. no need to build
own Vulkan loader/headers).
2024-07-16 16:20:38 +02:00
Martin Pulec
6199a4125c vcap/rtsp: updated test tool link
Seems like the project has been moved to the new location - GitHub
redirects automatically but not Docker Hub.
2024-07-16 16:20:35 +02:00
Martin Piatka
ef8c7d4993 main: Allow multiple --audio-filter arguments 2024-07-16 12:44:39 +02:00
Martin Piatka
1260f9727f audio/utils: Fix leak
Coverity CID 466491
2024-07-16 12:26:05 +02:00
Martin Piatka
97c51cd415 configure.ac: Add audio remap filter 2024-07-15 16:13:25 +02:00
Martin Piatka
5133afc749 audio/filter: Add channel remap filter 2024-07-15 16:13:25 +02:00
Martin Piatka
8d7f878fba audio: Move channel_map struct to utils 2024-07-15 16:13:25 +02:00
Martin Piatka
bcba7c0056 audio/utils: Add remux_and_mix_channel() 2024-07-15 16:13:25 +02:00
Martin Piatka
7f25bb6036 audio/filter_chain: Remove initial ':' from cfg 2024-07-15 16:13:25 +02:00