Commit Graph

9496 Commits

Author SHA1 Message Date
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
Martin Pulec
2c6fe44145 vcap/rtsp: add examples 2024-07-15 15:11:47 +02:00
Martin Pulec
fff53aeea2 vcap/rtsp: clear cURL only if init 2024-07-15 15:11:47 +02:00
Martin Pulec
278d3f553a vcap/rtsp: check if port is numberic
Also warn if the colon is in the path (it may be either correct or
incorrectly typed option).
2024-07-15 15:11:47 +02:00
Martin Pulec
f4ee36cd23 vcap/rtsp: small fixes
- includes
- do not use TRUE/FALSE
- make decode_frame_by_pt static
2024-07-15 15:11:47 +02:00
Martin Pulec
209c6fdb2b vcap/rtsp: support userinfo with password in URI
The colon before password was incorrectly assumed to be a port number.
2024-07-15 15:11:47 +02:00
Martin Pulec
3cebc5059c vcap/rtsp: use port 554 by default
If no port is included in the URI, use 554 (default RTSP).

refer to GH-400
2024-07-15 15:11:46 +02:00
Martin Pulec
1420c6e530 vcomp/rtsp: hide rtp_rx_port
show only in fullhelp

\+ added the fullhelp option
\+ pretty-print the output (use colors)

refers to GH-400
2024-07-15 15:11:46 +02:00
Martin Pulec
d687f8e0e7 vcap/rtsp: do not advertise size= opt
The opt is actually not used - the given size is always overwritten by
the value from NAL.
2024-07-15 15:11:46 +02:00
Martin Pulec
a57e7442f4 Revert "fixed CID 424197" + fix correctly
Fix the commit ab794ce70 (2023-11-23) that fixed (incorrectly) the
CID 424197.

If  should_exit was set before waiting in pthread_cond_timedwait, the
infinite loop is never left. Moreover, it seems that the loop was left
only on should_exit timeout, not when notified by condition variable.

This is mostly to make Coverity happy - the spurious wakeup here does
not matter in any way. So reverting the original "fix" would be enough.
2024-07-15 15:11:43 +02:00
Martin Piatka
6ed4404417 GUI: vuMeter toggle should control both meters 2024-07-12 16:05:30 +02:00
Martin Pulec
6549973a70 vcomp/lavc: show_coder_help - split to 2 functions
separate UG codec specific usage to a separate function
2024-07-11 14:56:14 +02:00
Martin Pulec
c0a2d0a7e2 vcomp/lavc: per-codec help improvement
If both encoder and decoder of the same name is present, eg. jpeg2000,
print help for both encoder and decoder. Since for the decoder, options
are also printed with enc=<enc>:help, print both enc and dec at the
same time.
2024-07-11 14:56:05 +02:00
Martin Pulec
60befe0b3a vcomp/lavc: add cmdline doc for libsvtav1
examples + remarks for svtav1-param option
2024-07-11 14:29:13 +02:00
Martin Pulec
52b9b38d4a configure_svt: split to av1 version et al.
Actually the setting is entirelly divergent - different if branches are
taken for libsvtav1 and HEVC/VP9. So split it to 2 functions to simplify.
2024-07-11 08:54:03 +02:00
Martin Pulec
5aa8657d3f vcomp/lavc: accept bitrate also for CQP 2024-07-10 16:17:15 +02:00
Martin Pulec
c9930dcc85 vcomp/lavc: do not assert on wrong bitrate
rather return (the error message is already printed by unit_evaluate)
2024-07-10 16:12:26 +02:00
Martin Pulec
208c2f2243 vcomp/lavc libsvtavi: allow bitrate with CRF
This sets Max Bitrate for CRF RC.
2024-07-10 16:12:24 +02:00
Martin Pulec
8737896579 vcomp/lavc: copy setparam_param
In case that set_param callback modifies some field use a copy to be
reentrant for next attempted pixfmt (or reconfiguration).

The other alternative would be to set the pointer to setparam struct
const, but some setters currenty really modify the params.
2024-07-10 15:39:20 +02:00
Martin Pulec
fbeff23698 vcomp/lavc: do not log CRF/CQP setting twice
info already printed with chec_av_opt_set

\+ prints eventual error with error verboseity (template second parameter)
2024-07-09 16:33:35 +02:00
Martin Pulec
e20ce512fb vcomp/lavc: unset svtav1 pred-struct=1 with bitrate
User may be tempted to set the bitrate although CRF is now default,
so unset pred-struct (because it won't work with current
ffmpeg/libxsvtav1).

But issue a (serious) warning in this case.
2024-07-09 16:33:32 +02:00
Martin Piatka
642a072bfa dshow: Add option to force no sync source 2024-07-09 15:44:44 +02:00
Martin Piatka
bd773219b0 dshow: capabilities: Hint RGB conversion only when needed 2024-07-09 15:44:38 +02:00
Martin Piatka
08fe0e0388 v4l2: capabilities: Hint for RGB conversion only when needed 2024-07-09 15:44:38 +02:00
Martin Pulec
febff7d093 Revert "vcomp/lavc libsvtav1: do not set pred_struct=1"
This reverts commit fa8bb8ca8e.

Actually this worsened the behavior significantly by increasing the
latency in the order of 100 frames (depending on properties). This
(currently) disallows setting the bitrate, using CRF/CQP is only possible
because the FFmpeg plugin isn't able to set CBR for now.
2024-07-09 14:56:26 +02:00
Martin Pulec
c445c6fd5e vcomp/lavc: set CRF=35 for libsvtav1 by default
This will allow running libsvtav1 with pred_struct=1.
2024-07-09 14:53:53 +02:00
Martin Pulec
5281fbc4a8 vcomp/lavc: set forced-idr directly
set_forced_idr function was unnecessary - the error handling can now
do chec_av_opt_set(). Moreover it prints out the setting to std output
even when succeeded.
2024-07-09 12:30:43 +02:00
Martin Pulec
7b0c7f3224 vcomp/lavc: use check_av_opt_set for svtav1-params
it also prints value set in UG output (and handles errors as well)
2024-07-09 10:14:38 +02:00
Martin Pulec
89b173ba2b AppImage: option --ug-help for UG help
If run from within the AppImage, -h shows help of the AppImage wrapper
itself, not the one of UltraGrid. So add --ug-help as an alternative for
`-o uv -h`.

First considered was a shortopt -H, but this is currently mapped by UG
for --full-help (which can be used directly), so keep the long variant
in order not to make it confusing.
2024-07-09 09:27:19 +02:00
Martin Pulec
446fac2b0d Win 10 term warn: don't print if stdout isn't tty
The terminal warning is neadlessly printed eg. in the GUI.
2024-07-08 16:45:38 +02:00
Martin Pulec
e9eceebbcc vdisp/gl: print actual GL version in verbose 2024-07-08 16:45:38 +02:00
Martin Pulec
4654300cab pixfmt_conv: fixed clang warnings
alignment + loop not vectorized
2024-07-08 16:45:38 +02:00
Martin Pulec
cf87430666 keyboard_control: improved including 2024-07-08 16:45:38 +02:00
Martin Piatka
af4090a305 capture/dshow: Add workaround for OBS virtual camera 2024-07-08 16:04:21 +02:00
Martin Piatka
8f6c5fb81e CI Win: Install VC 2010 Redist 2024-07-08 16:04:21 +02:00
Martin Piatka
2f601f5ccd CI Win: Dependencies for screen capture 2024-07-08 16:04:20 +02:00
Martin Pulec
e52dffac5e src/audio/playback/alsa.c: todo for get_sched_latency_ns
returns now always -1, suggesting removal
2024-07-08 10:21:01 +02:00