9095 Commits

Author SHA1 Message Date
Martin Pulec
b3ec13a2ce UltraGrid 1.9.7 v1.9.7 2024-10-21 15:04:56 +02:00
Martin Pulec
480c95c0d4 updated FIXES for 1.9.7 2024-10-21 15:04:56 +02:00
Martin Pulec
8881d22150 Revert "CI Linux FFmpeg: patch VP9 FFmpeg patch"
This reverts commit c8b1e6859d.

the upstream SVT-VP9 patch has been updated
2024-10-21 15:04:56 +02:00
Martin Pulec
a6ed0cbcdb CI FFmpeg Linux: updated libde265 patch
remove FFCodec.init_static_data - dropped from upstream but not used by
libde265 plugin anyways
2024-10-21 15:04:55 +02:00
Martin Pulec
82cfa8caf8 CI Linux FFmpeg: compat vaapi patch update 2024-10-21 15:04:55 +02:00
Martin Pulec
cb3089d589 vdisp/ndi: set stride explicitly
The documentation in header for
NDIlib_video_frame_v2_t.line_stride_in_bytes says that if set to 0,
default value (size of pixel * bpp) will be used.

However, this doesn't seem to work for P216 and PA16 in Windows. It does
in Linux, also 8-bit formats do not require that. However in Windows,
it causes "No data received.".

see also GH-148
2024-10-21 15:04:55 +02:00
Martin Pulec
cc617d7f9f vcap/ndi: handle source disconnect 2024-10-21 15:04:55 +02:00
Martin Pulec
8e0504bce6 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-10-21 15:04:55 +02:00
Martin Pulec
60592ffbf7 vcap/ndi: ndi_disp_convert_Y416_to_PA16 fix 2024-10-21 15:04:54 +02:00
Martin Pulec
6eb681070f fix vc_copylineRG48toY216
incorrectly braced

Actually not obvious until 2f450060  (2024-09-24) in master because the
chroma x1.5 was used but clamped, which has somehow hidden that.
2024-10-21 15:04:54 +02:00
Martin Pulec
7c6681c016 macOS build: fixed crashing build
the build fails after switch to macos-13 on manual page generation:
```
dyld[39415]: Symbol not found: _glfwCreateWindow
  Referenced from: <2CA04B35-6318-3824-91FA-664E963F3C86> /Users/runner/work/UltraGrid/UltraGrid/bin/uv
  Expected in:     <no uuid> unknown
Could not obtain data from UG/reflector output!
```

Please note that the corresponding error in master (from which was this
commit cherry-picked) was the following, which seems to be the same issue:
```
dyld[41003]: Symbol not found: __Z11IsRGBFormat21NTV2FrameBufferFormat
  Referenced from: <2945C378-5453-3610-9AA4-63E2723BBA5D> /Users/runner/work/UltraGrid/UltraGrid/bin/uv
  Expected in:     <no uuid> unknown
Could not obtain data from UG/reflector output!
make: *** [uv.1] Error 3
make: *** Waiting for unfinished jobs....
```

which tries to run bin/uv with --fullhelp.

(this fails only if run within the script data/make_man.sh, not when run directly)
2024-10-21 15:04:54 +02:00
Martin Pulec
b6a540c552 CI mac: use macos-13
macOS 12 is no longer supported and as Homebrew has a policy, that it
compiles packages from sources on unsupported macOSes, it is needed to
switch to newer macOS to keep reasonable build times.
2024-10-21 15:04:54 +02:00
Martin Pulec
9cc7de395b configure.ac: pkgconf compat improved
pkg.m4 macro from pkgconf since 2.3.0 aborts by default if PKG_CONFIG
is not found, which check implicitly for pkg-config. Thus set
ACTION-IF-NOT-FOUND to allow fallback check for pkgconf.
2024-10-21 15:04:54 +02:00
Martin Pulec
e0f844918f tx audio: warn if Reed-Solomon is inadequate
refer to GH-408
2024-10-21 15:04:53 +02:00
Martin Pulec
068079833c aplay/alsa: warn if buffer is too short 2024-10-21 15:04:53 +02:00
Martin Pulec
6db0a9c9de vdisp/dump: fix alloc size
MIN was used by mistake, should be MAX
2024-10-21 15:04:53 +02:00
Martin Pulec
ccdf0afd10 vc_copylineR12LtoRG48: do not override output buf
In non-native R12L lengths (width%8!=0). do not override the output
last block.
2024-10-21 15:04:53 +02:00
Martin Pulec
4db099d202 video_pattern_generator/interlaced: check width 2024-10-21 15:04:53 +02:00
Martin Pulec
b5a2138ac6 video_pattern_generator/interlaced: alloc inc MAX_PADDING 2024-10-21 15:04:52 +02:00
Martin Pulec
fbb1895834 pool: alloc extra data
padding for conversions
2024-10-21 15:04:52 +02:00
Martin Pulec
acd73df59c to_lavc_vid_conv: extra padding for alloc
fixes `uv -t testcard:codec=R12L:size=1921x1080 -c lavc`
2024-10-21 15:04:52 +02:00
Martin Pulec
ca0baf8340 vdisp/sdl2: set correct data_len if pitch!=linelen
fixes:
```
uv -t testcard:codec=RGB:size=1921x1080 -d sdl
```

Doesn't crash but errors are printed on console and data at the end
(perhaps something like a line) is not written.
2024-10-21 15:04:52 +02:00
Martin Pulec
39797095bd change_pixfmt: added buffer padding
Pixelformat conversion suppose buffers with additional padding to handle
"odd" resolutions that doesn't match the pixfmt native block
size. Eg. this change fixes:
```
uv -t testcard:codec=R12L:size=1922x1080 -d gl -p change_pixfmt:RG48
```
2024-10-21 15:04:52 +02:00
Martin Pulec
c274f90fa8 CI Win: current MSVC/CUDA 11.8 incompatibility workaroud
Workaround to current MSVC error with CUDA 11.8:
```
C:\Program Files\Microsoft Visual
Studio\2022\Community\VC\Tools\MSVC\14.41.34120\include\yvals_core.h(888):
error: static assertion failed with "error STL1002: Unexpected compiler
version, expected CUDA 12.4 or newer."
```

CUDA 11.8 is used for compatibility with CC 3.5 (Kepler) devices. The
support for those will however end in 5 days [1] so we may swich to CUDA
12.x later.

[1]: https://endoflife.date/nvidia-gpu
2024-10-21 15:04:48 +02:00
Martin Piatka
6a723388ee GUI: Fix recv report sometimes not working
The widget would fail to parse SSRCs falling outside the signed int
range
2024-10-21 09:39:29 +02:00
Martin Piatka
73209676cf video_display/file: Fix crash on init
VIDEO_CODEC_NONE would get passed through get_available_pix_fmts() to
get_pixfmt_desc() and fail on assert
2024-10-21 09:39:28 +02:00
Martin Piatka
27e4e59dd5 vdisp/multiplier: Copy frame metadata
The metadate is useful in some cases like the decklink synchronized
mode. Fixes GH-419
2024-10-21 09:39:28 +02:00
Martin Pulec
ccd902667e UltraGrid 1.9.6 v1.9.6 2024-08-28 12:10:18 +02:00
Martin Pulec
842a2427c6 create-appimage.sh: do not exclude libpipewire-0.3.so.0
ilibpipewire-0.3.so.0 was added to excludelist causing the distcheck fail,
see [1]

We do not need to exclude the lib, because we already handle the preload
in data/scripts/Linux-AppImage/AppRun:282 (the case is similar as for
libjack.so.0 as also mentioned in the related AppImage issue).

[1]:
04af461f47
2024-08-28 12:10:14 +02:00
Martin Pulec
79ad9426b0 updated FIXES (1.9.6) 2024-08-20 10:30:04 +02:00
Martin Pulec
759e4a1666 workaround to a buggy GPUJPEG 2024-08-20 10:24:30 +02:00
Martin Pulec
7e9521728c 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-23 11:55:01 +02:00
Martin Pulec
d589fffe93 vcap/rtsp: advise use of devel branch 2024-07-23 10:32:24 +02:00
Martin Pulec
f0994afffe rtpdec_h264 decode_frame_h264: watch overflow 2024-07-23 10:27:55 +02:00
Martin Pulec
4c4434b028 UltraGrid 1.9.5 v1.9.5 2024-07-22 14:44:37 +02:00
Martin Pulec
a172ec1c71 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-22 14:44:37 +02:00
Martin Pulec
6498db9528 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-22 11:22:22 +02:00
Martin Piatka
4f3da43514 capture/dshow: Add workaround for OBS virtual camera 2024-07-22 11:22:22 +02:00
Martin Piatka
8c41477b43 CI Win: Install VC 2010 Redist 2024-07-22 11:22:22 +02:00
Martin Piatka
24691102c6 CI Win: Dependencies for screen capture 2024-07-22 11:22:22 +02:00
Martin Pulec
c1b8169966 vdisp/file: fixed correctly the lock problem
Fixed correctly the problem that was incorrectly attempted by the
previous commit revert. should_exit doesn't need to be checked with the
main while loop because it is done by the inner one.
2024-07-22 11:22:21 +02:00
Martin Pulec
dd801dd9d3 Revert "display/file: fixed CID 424197/1"
This reverts commit 517bef3dd1.

The fix was incorrect, causing also new CID 464471.
2024-07-22 11:22:21 +02:00
Martin Pulec
f5dad89997 vcomp/cineform: fixed a crash witn unint frame
It is actually a bug of cineform, which can be also reproduced with:
`-t testcard:c=RGB:pattern=noise -c cineform`, this is a workaround.
2024-07-22 11:22:21 +02:00
Martin Pulec
be70813aab vcomp/cineform: fixed crashing RGB
Together with the previous revert commit fixes CID 464437.

In addition to incorrect change to unsigned, also parenthesis around
(height - 1) were missing.
2024-07-22 11:22:21 +02:00
Martin Pulec
a7f7535e92 Revert "Cineform: Windows warning fix"
This reverts commit 45d0bfb615.
2024-07-22 11:22:21 +02:00
Martin Pulec
116d5533d7 video_rxtx: don't unregister callb. if not regist.
Do not unregister the should_exit callback if not registsterd. This
occurs eg. when invalid host was entered, like: `uv blah`.
2024-07-22 11:22:20 +02:00
Martin Pulec
c2c3bdc050 AppRun Firejail: allow Avahi over D-bus
needed for NDI discovery
2024-07-22 11:22:20 +02:00
Martin Pulec
82b7a21021 vcap/testcard2: try also Monaco.dfont as mac font
Some macs doesn't have Monaco.ttf, in which case Keyboard.ttf is usually
selected, which is not monospace and doesn't have a symbol for ':'.

The mac, where Monaco.ttf is missing usually have Monaco.dfont, that
can be directly used, so added it to font_candidates.
2024-07-22 11:22:20 +02:00
Martin Pulec
3cec5ad9b1 vcap/ndi: DNS-SD is required for NDI discovery (msg)
To be preciese, not mDNS but DNS-SD is required to NDI discovery,
i.e. avahi-daemon is required in Linux, although systemd-resolved is
mDNS capable.
2024-07-22 11:22:20 +02:00
Martin Pulec
a39bac849b ndi_common: increment USE_NDI_VERSION to 6
just a default value

Actually, not much is influenced by that change, since it has been 5 (by
default) and the version 6 keeps v5 API, so that the entrypoint remains
`const NDIlib_v5* NDIlib_v5_load(void);` (not 6).

Only functional change is updated fallback path in MSW.
2024-07-22 11:22:20 +02:00