Commit Graph

9387 Commits

Author SHA1 Message Date
atrivialatomic
2bd4c094cf Implement 930abe5 from master
Implement [930abe5](930abe5325) from master
2024-09-06 17:45:10 -04:00
atrivialatomic
bf7e84dde7 Implement af5d584 and 3adb9a4 from master
Implement [af5d584](af5d5841d0) and [3adb9a4](3adb9a46cc)
2024-09-06 17:25:38 -04:00
atrivialatomic
0b5714727b Implementing c2cebd3 from master
Implementing [c2cebd3](c2cebd3198) from master
2024-09-06 16:24:47 -04:00
atrivialatomic
c133739bff Implementing 4061f8d from master
Implementing [4061f8d](4061f8d0f2) from master
2024-09-06 16:23:10 -04:00
atrivialatomic
10b4c693f9 Implementing ca71f59 from master
Implementing [ca71f59](ca71f59b9c) from master
2024-09-06 16:21:05 -04:00
atrivialatomic
aea5ffa076 Implement Commit c2e7811 from master
Implementation of [c2e7811}(c2e7811152) from master
2024-09-06 16:17:45 -04:00
atrivialatomic
9ae3bb2d82 Mirror Commit 779021b
Mirror [779021b](779021b804) from master
2024-09-06 15:37:03 -04:00
atrivialatomic
1ea3b5a707 Fixed mct comparison
Implement commit [9e05752](9e0575239b)
2024-09-06 15:28:03 -04:00
atrivialatomic
08969b51fb Free data when enc fails
Implementing Commit [9577372](9577372760) from master
2024-09-06 15:26:13 -04:00
atrivialatomic
fbdeef3b5b Use cuda_allocator naming over allocator for using statement
This matches cpu_allocator naming and helps to be explicit about what allocator is being used during video_frame_pool creation during `bool state_video_compress_j2k::initialize_j2k_enc_ctx()`
2024-06-18 13:53:38 -04:00
atrivialatomic
95b9a7e6d3 Standardize on MSG() over log_msg() for most cases of message reporting 2024-06-18 13:42:31 -04:00
atrivialatomic
fb19aaa82e Refactor cmpto decompress to prefer cmpto_version::technology checks over cuda conditionals
Remove #ifdef HAVE_CUDA

j2k_decompress_platform now uses CMPTO_TECHNOLOGY_{CPU,CUDA} instead of 1, 2

bool supports_cmpto_technology(int) function created for checking if supported technology version is supported on system
2024-06-17 18:05:44 -04:00
atrivialatomic
3387b7f5b9 Refactor cmpto compress to prefer cmpto_version::technology checks over have_cuda conditionals
j2k_compress_platform now uses CMPTO_TECHNOLOGY_{CPU,CUDA}  instead of 1, 2

bool supports_cmpto_technology(int) function created for checking if supported technology version is supported on system

Added NoCmptoTechnologyFound exception for error reporting
2024-06-17 18:02:38 -04:00
Martin Pulec
4fb6d5f13a reduce merge request diff 2024-06-14 10:45:44 -04:00
atrivialatomic
5df9aae4e0 Initial cmpto implementation 2024-06-13 17:56:01 -04:00
Martin Pulec
818fcc0057 added log-nocolor compat
refers to GH-394 and also earlier GH-256
2024-06-11 15:18:09 +02:00
Martin Pulec
1a71edffd5 vdisp/deck: accept shortopt for profile 2024-06-07 10:40:20 +02:00
Martin Pulec
f9d619bd1c vdisp/deck: profile= fix 2024-06-07 10:40:20 +02:00
Martin Pulec
dd02943726 {vcap,vdisp}/deck: added "simplex" option
Added option "simplex" in a fasshion of "half-duplex" and "full-duplex",
which are informal shortcuts for device profiles.

Here, simplex refers to bmdProfileOneSubDeviceHalfDuplex (1dhd) for 8K
Pro, which basically sets device to a mode that is capable to use all
four connectors for the signal, effectively allowing quad-link input
(eg. 8K).
2024-06-07 10:40:20 +02:00
Martin Pulec
3d76f25832 vcap/deck: shortcuts for profile+[no]passthrough
Allowed shortcuts for profile and [no]passthrough (4/6 first letters
is required).

\+ use the short opts in help examples
2024-06-07 10:40:20 +02:00
Martin Pulec
47c492ffb9 CI Win: CUDA/MSVC incompatibility fix
Latest MSVS 2022 17.10.34928.147 (MSVC v14.40.33807) in GH runner
20240603.1.0) is no longer compatible with CUDA 11.8.0.52206. CUDA refuses
to compile because of unsupported compiler. Previous version 17.9.34902.65
(GH runner 20240514.3.0) was OK.

As MSVS 2022 is supported by CUDA 11.8 in general, we can pass
-allow-unsupported-compiler flag.
2024-06-07 10:40:19 +02:00
Martin Pulec
106666b63b decklink: fail if set_profile not successful
If explicit setting of profiles fail, it should be handled as an
error. Unsure if implit setting with stereo should not proceed but if so,
it could be fixed later.
2024-06-07 10:40:19 +02:00
Martin Pulec
c7d2ac25f1 bmd_common: decklink_set_profile stereo clarification
Clarify handling if stereo == true (handled implicitly only if the
profile is set to default).
2024-06-07 10:40:19 +02:00
Martin Pulec
ba2d634c2d decklink_set_profile: handle help 2024-06-07 10:40:19 +02:00
Martin Pulec
2ee702e15e blackmagic_common: fixed including
do not include config*h
2024-06-07 10:40:19 +02:00
Martin Pulec
0467e7e7d6 bmd_option: added get_string 2024-06-07 10:40:13 +02:00
Martin Pulec
698adf74ab vcap/decklink: profile setting fix
Fixed the wrong condition since the commit 215ee42481 (2023-05-04) -
profile was actually not set.
2024-06-06 11:06:39 +02:00
Martin Pulec
a6f9ac43f0 fixed new (>0.25) gpujpeg compat
\+ use RESTART_AUTO if we have >= 0.25.3
2024-06-06 11:06:39 +02:00
Martin Pulec
924cb7d0fa configure: fixed drm help string 2024-06-06 11:06:39 +02:00
Martin Pulec
281d85b15f vcomp/gpujpeg: accept opt prefix
Also advertise (only) the key/value syntax in usage.

\+ removed Macros from clang-tidy suggestion in CONTRIBUTING.md -
doesn't seem to perform better as for the changed line in this commit
(color_printf)
2024-06-06 11:05:35 +02:00
Martin Pulec
950dd0adbd vcomp/gpujpeg: restart interval param fix
fixed setting the restart interval with named opt
2024-06-05 09:41:51 +02:00
Martin Pulec
d651d2ccc5 drop support for gpujpeg < 0.14 2024-06-05 09:36:51 +02:00
Martin Pulec
bf36adeee8 get_local_address: use early return 2024-06-05 08:45:06 +02:00
Martin Pulec
e290283659 fix repeated get_sockaddr_str calls
When get_sockaddr_str was called second time, the buffer was not cleared.

Also use snprintf to write the result in get_scoaddr_addr_str.
2024-06-05 08:38:19 +02:00
Martin Pulec
2c22850a20 net: get_local_addresses - ifaddrs.ifa_addr can be NULL
The pointer ifa_addr in struct ifaddrs can be NULL and indeed it occurs
(perhaps with interfaces without assigned addrs?). Steps to reproduce:
```
uv -x sdp -t testcard -c lavc:subs=420
````
2024-06-05 08:24:23 +02:00
Martin Pulec
3aec782d03 vcomp/lavc: added defaults for OpenH264
Acually there is quite a few that can be set:
1. default compression (witout RC) works quite good
2. bitrate as well (if the bitrate isn't too low)
3. quality controlled RC doesn't seem to work good

Slice considerations:
- 32 (default) triggers a warning for FullHD and OpenH264 will use
16 -> this is OK
- slices=0 would disable multithreading
- setting max_nal_size (with slices=0) would help as well, but it is
not clear what is the "good" value

Not yet added to CI (libopenh264 is included in Ubuntu 22.04, now using
20.04 for the build).
2024-06-04 15:29:35 +02:00
Martin Pulec
f5d6cc0741 vcomp/lavc: check requested CQP/CRF vals
CQP just for number validity (not sure about the reange now), CRF also
the ranged (0-63 - 63 for 10-bit H.264, otherwise 51 /also for higher
bit depth HEVC).
2024-06-04 15:29:35 +02:00
Martin Pulec
755023088f vcomp/lavc: move req quality to setparam_params
In the configure callback, requested mode or even its value may (will)
be evaluated.
2024-06-04 15:29:31 +02:00
Martin Pulec
8603ff480e hd-rum-decompress: fixed a leak on conference help
CID 462474

\+ unchecked return value (CID 462475)
2024-06-04 15:23:59 +02:00
Martin Pulec
1454e66fba debug.h: MSG: allow MOD_NAME to be a varible
Allow the MOD_NAME to be a variable (like (constexpr const char *)). Using
non-standard extension, the standard one would be __VA_OPT__. Although
it is supported with MSVC 2019/2022, it requires the compiler flag
/Zc:preprocessor.

This version doesn't require that so use it for now. The MSVC is used to
compile the CUDA code and AJA wrapper so not to complicate the things now.

This syntax is supported for both GNU and MSVC:
1. https://stackoverflow.com/a/78185169
2. https://gcc.gnu.org/onlinedocs/cpp/Variadic-Macros.html

refer to GH-375
2024-06-03 16:39:30 +02:00
Martin Pulec
63b524c781 vcomp/lavc: thr_cnt=0 for other threads implicitly
Set automatic number (== 0) of threads if codec advertises
AV_CODEC_CAP_OTHER_THREAD implicitily, with exceptions:
1. AOM AV1, rav1e - seems not to set the number automatically
2. libx26* - allow setting but enables frame threading internally
(which is undesirable)

the current setting applies not just to libvpx* but also to
eg. libopenh264.
2024-06-03 12:13:15 +02:00
Martin Pulec
3801f6ecc9 vcomp/lavc: warn if requesting codecs w/o enc
Warn if requesting input encoder pixel formats but the encoder is
not specified explicitly, eg. for
`uv -c lavc:codec=H.264 --param lavc-use-codec=help`
we cannot know, whinch encoder will be used in the
end (usually libx264 for YCbCr and libx264rgb for RGB pixel formats).
2024-06-03 11:44:38 +02:00
Martin Pulec
59407efe38 vcomp/lavc: moved help handling to a separate function 2024-06-03 11:44:37 +02:00
Martin Pulec
64a7579387 vcomp/lavc: renamed backend->req_encoder
req_encoder seems to be more clear

\+ print "Encoder %s doesn't encode requested codec" as an error (no
encoding is actually done)
2024-06-03 11:43:33 +02:00
Martin Pulec
c8def23c98 vcomp/lac: usage parsing simplified
It was a bit unintelligible, but improve the stuff a bit.
2024-06-03 10:33:23 +02:00
Martin Pulec
cedf2b516b CI live555: pass the CPLUSPLUS_COMPILER always
Although not required for platforms other than Linux, it doesn't hurt
if we use this always (reduce script size and complexity).

\+ also removed setting CC/CXX for Win - perhaps no longer needed but
the second is now overriden, anyways (CPLUSPLUS_COPILER is set to CXX
by default but we override it)
2024-05-31 16:33:34 +02:00
Martin Pulec
bd91d16b27 CI: common live555 handling 2024-05-31 16:04:45 +02:00
Martin Pulec
234c4edc7d configure: remove old ntv2 compat
[ntv2] is no longer being updated and there is perhaps no point keeping
the support for it.

[ntv2]: https://github.com/aja-video/ntv2/
2024-05-31 16:04:45 +02:00
Martin Pulec
0ed7d449bc CI: cache AJA build [Win]
Since we must now build the new libajantv2, which takes some 3 minutes,
cache the build in order not to increase the build time.

Also use libajantv2 path for the SDK instead of AJA (doesn't require
unneeded rename), which will be Windows specific.

Only do it in MSW, since the build is slowest. But it can be easily used
also for other platforms.
2024-05-31 16:04:45 +02:00
Martin Pulec
a735dac86a CI+build Win: use libajantv2
Use libajantv2 + switch the build system to the new lib at the same time
(it is easier and there is perhaps not a big advantage to splitthis to
2 steps).
2024-05-31 16:04:44 +02:00