Commit Graph

7027 Commits

Author SHA1 Message Date
Martin Pulec
f1556436b1 video_display.h: document timeout_ns parameter
It has replaced flags recently but it doesn't seem to have much
importance but it makes the modules implementing that more complex so
added a hint that only BLOCKING/NONBLOCK/DISCARD are important values.
2022-12-02 11:15:21 +01:00
Martin Pulec
de64f60d29 AppRun: simplify a bit
do more work in add_whitelist()
2022-12-02 11:15:20 +01:00
Martin Pulec
2714c6b3bf AppRun: watch adding /tmp
Beware not to add --whitelist=/tmp[something] because that would hide
the actual mounted image (/tmp/.mount_ultragridsomething). As /tmp is
remounted RO, just make the "whitelisted" dirs RW.

+ add to whitelist $DIR (path to executable) if it is not /tmp (eg.
  extracted AppImage somewhere)
2022-12-02 11:15:18 +01:00
Martin Piatka
cee4f37ebc configure: Check for vulkan headers
The vulkan.pc pkgconfig file is for the vulkan loader library and
doesn't guarantee the presence of the vulkan headers. Indeed, some
distributions (e.g. Arch) package those in separate packages
(vulkan-icd-loader and vulkan-headers).

It would be perhaps more correct to check for vulkan.hpp, but that
header is so big that it would slow the configuration by ~10 seconds.
2022-12-01 10:49:52 +01:00
Martin Piatka
c33c39da10 multiplier disp: Pass reconfigure to all displays
Fixes crash when used with the vulkan display.
2022-12-01 10:49:52 +01:00
Martin Pulec
9b1df905b0 fixed condition in 9b80a61d 2022-11-30 13:55:57 +01:00
Martin Pulec
f93776e7be main: help: hide also some other options
Hidden port, cuda-device and rate limiter in basic view. Those are not
more important than many of already hidden.

- cuda device - slightly changed description 's/CUDA device/GPU' - it
  actually selects a card also for NVENC, in the end
2022-11-30 12:27:16 +01:00
Martin Pulec
c554fc707f lavc SVT HEVC: disable UnrestrictedMotionVector
Together with tiles setting, it should enable Motion Constrained Tile
Sets (MCTS) that should allow independed tile decoding. But it doesn't
seem to be currently the case with FFmpeg HEVC decodeer.
2022-11-30 11:36:53 +01:00
Martin Pulec
38b13bd63d lavc SVT: check for libsvtav1 explicitly
If checking AV1 properties, check if the codecs is really libsvtav1. It
can be also libsvt_vp9, where the option setting would fail (athough
innocent, it may be confusing).
2022-11-30 10:43:25 +01:00
Martin Pulec
9b80a61d9f lavc: do not enable MT with CAP_OTHER_THREADS
Only enable for libvpx*.

Codecs must be individually evaluated - for libx265, it increases
latency because it uses frame threading parallelism internally.

For libsvt_hevc and libx264, the performance boost is not noticeable.
2022-11-30 08:55:46 +01:00
Martin Pulec
a578d84b90 lavc vpx: set rc_lookahead to 0
to reduce latency
2022-11-30 08:55:46 +01:00
Martin Pulec
2dd9b39d58 lavc show_encoder_help: print default values 2022-11-30 08:55:46 +01:00
Martin Pulec
df327548e2 libavcodec NVENC: set p4 also for HEVC
NVENC 12.0 and above supports Split Frame Encoding up to p4 so it is
perhaps better to set default as such. See also:

    https://docs.nvidia.com/video-technologies/video-codec-sdk/nvenc-video-encoder-api-prog-guide/#multi-nvenc-split-frame-encode
2022-11-30 08:55:43 +01:00
Martin Piatka
1274775af5 Update NEWS 2022-11-29 12:53:28 +01:00
Martin Piatka
9776bf1c56 GUI: vuMeter: parsing error handling 2022-11-29 12:53:27 +01:00
Martin Piatka
976778eaef GUI: Fix vuMeter layout when preview disabled 2022-11-29 12:53:27 +01:00
Martin Piatka
062ca8bcff GUI: No longer disable stats widgets in preview
Since there are now separate audio vuMeters, nothing gets sent via
loopback to the receiving side anymore, so there is no need to disable
those.
2022-11-29 12:53:27 +01:00
Martin Piatka
8d08adb4d7 GUI: Add audio stats filter to launch params
In preview add also the 'discard' filter, so that the audio doesn't get
sent to the receiving side (same behaviour as video).
2022-11-29 12:53:26 +01:00
Martin Piatka
1abf9fbb45 GUI: vuMeter: Copy first channel volume to second if mono 2022-11-29 12:53:26 +01:00
Martin Piatka
cbe619587f GUI: Separate vuMeters for send & receive 2022-11-29 12:53:26 +01:00
Martin Piatka
ff9736a726 GUI: vuMeter: parsing with configurable prefix 2022-11-29 12:53:25 +01:00
Martin Piatka
589adadbee audio: Add 'discard' audio filter 2022-11-29 12:53:25 +01:00
Martin Piatka
0f1dce2b7b audio: Allow filter to completely discard frame 2022-11-29 12:53:25 +01:00
Martin Piatka
7d7e5112c3 audio_filter: Add controlport_stats for volume reporting
For reporting audio volume on the sending side. The report format is similar
to reports from the recieving side, except instead of "ARECV", "ASEND"
is used, and the number of channels reported is the same as in the audio
frame.
2022-11-29 12:53:25 +01:00
Martin Piatka
b257c72d99 audio utils: calculate_rms() for audio_frame 2022-11-29 12:53:24 +01:00
Martin Piatka
2f0b933fce help: print echo-cancellation only in fullhelp 2022-11-29 12:53:24 +01:00
Martin Piatka
49be3e7619 fullhelp: add audio-filter help 2022-11-29 12:53:24 +01:00
Martin Pulec
6716c55cc9 Revert "lavd: enable frame multithreading for hevc"
This reverts commit ec702d5c25.

Actually, this setting significantly increases the latency, not reduces.
The evaluation for the original change was incorrect because there was
16 gray levels and after that it wraps-around. Because this setting
added something around this latency, it looked to reduce the latency,
which was not true.

See GH-241 and GH-268.
2022-11-29 11:26:09 +01:00
Martin Pulec
2d20a63487 gray image pattern: allow also alternative spelling 2022-11-28 16:37:23 +01:00
Martin Pulec
ce7909990f lavc: added ret-val checking av_opt_set
+ replaced some occurences where checking was done individually
2022-11-28 15:37:29 +01:00
Martin Pulec
fadc172842 lavc: notice that : in x264/5-params should be escaped 2022-11-28 15:22:31 +01:00
Martin Pulec
3161420888 lavc x265: merge x265-params with those on cmdline
If user specifies some x265-params, it would override previously set
ours. So try to merge it with those (set our custom values only if they
do not interfere with user-specified ones).
2022-11-28 15:22:23 +01:00
Martin Pulec
24a425085d lavc: use map instead of unordered_map for codecs
This gives natural (as written) order of codecs in help, not a "random"
one.
2022-11-28 13:54:31 +01:00
Martin Pulec
d313f0cce4 lavc SVT HEVC: set la_depth and pred_struct to 0
to reduce a latency a bit (still some 19 frames)
2022-11-28 13:48:45 +01:00
Martin Pulec
6980d9ace9 lavc: replaced rang with color_out 2022-11-28 13:26:11 +01:00
Martin Pulec
7381043a18 color cap. f.: fixed wrong dst_len
Was input pixel block size but should be the output.
2022-11-28 12:03:04 +01:00
Martin Pulec
cd51c3b831 testcard gray pattern: decrease default step to 1
The previous value 16 was too much fast (one iteration lasted only 16
frames) which was even unsuitable for latency evaluation for higher
latency compressions.

With the value 1, the latency can be directy read from difference of
luma on subsequent lines.
2022-11-28 12:01:58 +01:00
Martin Pulec
c97bf2bcea testcard gray pattern: added option for color step 2022-11-28 11:36:14 +01:00
Martin Pulec
16ba5aeec0 lavc SVT HEVC: set tiling only if video is big enough
- tile must be at least 256x64
- there must be >1 tiles
2022-11-28 11:13:57 +01:00
Martin Pulec
286d9aca18 CI Linx FFmpeg SVT HEVC: uses cmake
So use it (the `cmake --install` is perhaps better than make install
since it doesn't trigger rebuilds so often). Also to be consistent with
the other SVT compressions.
2022-11-28 10:50:01 +01:00
Martin Pulec
9e0b4fbaac DeckLink cap.: removed link specification
It was incorrectly used to specify _output_ link configuration and
therefore was deprecated for a while. There doesn't seem to be anything
analogous for capture - it is autodetected perhaps without a
possibility to user-specify.
2022-11-28 10:10:17 +01:00
Martin Pulec
02e1cfc667 logo: improved err logging + moved to C 2022-11-28 09:30:45 +01:00
Martin Pulec
12d818ea19 save_video_frame_as_pnm: use pam_write
use current version of pam.h from GPUJPEG that supports writing PNM
2022-11-28 09:19:34 +01:00
Martin Pulec
15af296d27 save_video_frame_as_y4m: store also >8b YUV 2022-11-28 09:19:34 +01:00
Martin Pulec
1793514f7d save_video_frame to y4m for YUV 2022-11-28 09:19:33 +01:00
Martin Pulec
e8e41f10a4 dummy dump: allow saving raw images again
As it was before saving RGB codecs to PNM was added.
2022-11-28 09:19:33 +01:00
Martin Pulec
5fd802781a save_video_frame: use PNM instead of PAM for >8 b
PAM doesn't seem to be widely adapted while 16-bit extension to PNM
seems to work correctly (tested with eog).
2022-11-28 09:19:33 +01:00
Martin Pulec
996410976e save_video_frame: save >8 bit RGB as PAM 2022-11-28 09:19:25 +01:00
Martin Pulec
9513870057 added vc_copyliner10ktoRG48 2022-11-25 11:02:21 +01:00
Martin Pulec
38242be011 save_video_frame: write PNM for RGB 2022-11-25 11:02:21 +01:00