Commit Graph

9168 Commits

Author SHA1 Message Date
Martin Pulec
669a27d847 UltraGrid 1.9.12 v1.9.12 2025-10-20 12:41:22 +02:00
Martin Pulec
5976ee5d1a CI Windows: updated Spout build
the CMakeList.txt in upstream changed build location

+ print missing items in configure.ac
2025-10-20 12:41:21 +02:00
Martin Pulec
9a3552a46c vcap/file: fix locking
The fix commit 8c19440a (2025-10-01) locked in flush_capture_data(),
which was ok when called from rewind_file(). But that function is
called also from vidcap_file_process_message() which is called with
mutex already held (CID 896223).

So moving the lock from flush_captured_data() up to rewind_file().

Also CID 896221 is fixed - subsequent s->new_msg was called seemingly
without lock (double lock + 1x unlock considered unlocked). Now in this
context one pair lock/unlock was removed which means that the lock is
still held.

fixes CID 896221, CID 896223, commit 8c19440a
2025-10-20 12:41:21 +02:00
Martin Pulec
44848b6acb CI Linux FFmpeg: build own dav1d
current FFmpeg code requires dav1d >1.0.0 but in Ubuntu 22.04 is just 0.9.2
2025-10-20 12:41:21 +02:00
Martin Pulec
762a2c200d CI Linux FFmpeg: update libde265 patch
the original version no longer applied so the UG/FFmpeg build failed
2025-10-20 12:41:21 +02:00
Martin Pulec
36f7e67a51 vdisp/decklink: fix pixel format change handling
Since the commit 443fe59d (2023-04-11), the sole CS change was not
handled.

There can be 2 cases:
1. bit-depth change (without color-space), which was not handled
2. CS changed was even more harmful because no signal was detected then

The above cases should be handled. The bit-depth handle should be
ignored just if codec= is explicitly specified, in which case the depth
is taken from the argument (specified codec CS is not honored - YUV must
be captured as YUV, RGB similarly).
2025-10-20 12:41:21 +02:00
Martin Pulec
37d346360b vcap/deck: set configuredCsBitDepth earlier
if used as a cache, we will need unaltered value

the original commit is perhaps 3595802a3 (2020-07-27)
2025-10-20 12:41:21 +02:00
Martin Pulec
cab9e7b45f vcap/file: set FPS from avg_frame_rate
The [file] (URL few commits below) has actually set r_frame_rate as
1/1200k, which causes the libavcodec JPEG decoder crash (received is
something like 1792i due to overflow). avg_frame_rate contains 1/25.
2025-10-20 12:41:21 +02:00
Martin Pulec
0cf18b75fe vcomp/file: do not run avio_seek normally
Prior to the commit 9891f19a (HEAD~3) avio_seek was called prior to
avformat_seek_file. This worked fine for normal containers (eg. MP4). But
after this was swapped, avio_seek after that broke that.

In order to work properly, run avio_seek() just if avformat_seek_file
fails (fixes temporarily broken .mp4 loop). Only case remaining is
JPEG/MJPEG file loop, which returns 0 for the avformat_seek_file() call.
This is handled ad hoc (I don't have any better solution now).
2025-10-20 12:41:21 +02:00
Martin Pulec
22dcc747a8 vcap/file: missing lock
When playing single JPEG, the s->video_frame_queue got corrupted (.size()
returned UINT_MAX).
2025-10-20 12:41:21 +02:00
Martin Pulec
d143ffaa43 vcap/file: fix raw HEVC rewinding
Rewinding the file (:loop option) doesn't work using raw HEVC like with
the [file].

avformat_seek_file retrurns EPERM, which was handled as an error, so
stopped the worker.

avio_seek seems to do the job but must be performed _after_ (unsuccessful)
avformat_seek_file.

[file]:
https://ultravideo.fi/video/ReadySetGo_3840x2160_120fps_420_8bit_HEVC_RAW.hevc
2025-10-20 12:41:20 +02:00
Martin Pulec
be559e98be get_video_desc_from_string: fix 4k modes (3840 wide) 2025-10-20 12:41:20 +02:00
Martin Pulec
2c38058c7c vo_pp/split: fix crash when no args given 2025-10-20 12:41:20 +02:00
Martin Pulec
8fe80f402c vulkan_sdl2: fix gpu=integrated|discrete 2025-10-20 12:41:20 +02:00
Martin Pulec
6357c3d878 vulkan_sdl2: check some SDL calls 2025-10-20 12:41:20 +02:00
Martin Pulec
53bf3d61c5 configure.ac: test fix
not sure why `if [ test $4 ... ]` worked... (excess [], which are possibly
consumed/erased by m4)

- check that $4 is set and avoid splitting on spaces (should not happen)
- use -eq instaead of = (should be 0 or 1)
2025-10-20 12:41:20 +02:00
Martin Pulec
694dbec137 excludelist.local.x86: disable also libgdk-3.so.0
Not tested but trivially, libgdk-3.so.0 from (build) Ubuntu 22.04
should not be incompatible when running on the  same distro.

This is not known to cause issues but better to remove this since it
the original use case seem no longer being valid. Track just the
excludelist from AppImage creator.
2025-10-20 12:41:20 +02:00
Martin Pulec
e5b0da185d excludelist.local.x86: disable libgdk_pixbuf-2.0.so.0
commented out libgdk_pixbuf-2.0.so.0

Normal build no longer runs on Rocky Linux 9 but alternative build (built
on centos 7) does. But conversly excluding the files causes dependency
problems for vcap/file vcomp/lavc, vdisp.file, vdisp/gl. Tested on Alma
9.6, which shuld be basically the same as Rocky. After re-adding the
problem disappears.
2025-10-20 12:41:15 +02:00
Martin Piatka
0345ea7626 tools/ipc_frame: Fix color_spec selection 2025-10-20 09:51:51 +02:00
Martin Piatka
634ab2e68f acap/pipewire: Fix help text 2025-10-20 09:51:00 +02:00
Martin Pulec
dc8184d678 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.
2025-08-29 09:52:15 +02:00
Martin Pulec
dd95a8a3ee UltraGrid 1.9.11 v1.9.11 2025-08-20 12:12:22 +02:00
Martin Pulec
fd47df644c CI Linux FFmpeg: update SVT-HEVC patch
the older seem no longer apply with the last 5000 commits from FFmpeg Git

rebased upon current FFmpeg Git master
2025-08-20 12:12:22 +02:00
Martin Pulec
b2bb169ad9 vcompress: fix multi-tile lavc
fixes the commit 69024468 (from 2022-08-18) that has broken:
`uv -F split:2:1 -t testcard:fps=30p -c lavc`

The problem is that the `tile_cnt` was set _prior_ to the vcompress
state reconfigure, which will yield 2 states. But prior that, the count
was 1. The task was started for tile_cnt (== 1) but waited upon for
separate_tiles.size() (== 2)!
2025-08-20 11:32:37 +02:00
Martin Pulec
d6b1b3f88a ccpp.yml: XIMEA has separate pkg fox x64 and arm64
runner.os = macos
matrix.os = macos-13 or macos 14

(combination runner.os + runner.arch would also work)
2025-08-20 11:26:34 +02:00
Martin Pulec
83289a5fb7 vcomp/lavc: nvenc no intra-refresh for HEVC/AV1
Since the pulsation issue, it was not much usable, anyways and this
clean-ups the code a bit.

Also the behavior will be now more deterministic - it behaved differently
with patched FFmpeg (most likely GH Linux builds), othewrise differntly.

+ enable the header-inserter if user expliclty requesetd intra-refresh

refers to GH-114
2025-08-20 11:26:23 +02:00
Martin Pulec
d9936aac5a CI: set committer globally
as in d670e2eb in master
2025-08-20 11:04:10 +02:00
Martin Pulec
d66fb69078 CI macos-14: fix /usr/local/opt not being present 2025-08-20 10:59:48 +02:00
Martin Pulec
87d571531b main: --cuda-devices help suppress err
avoid printing 'Input number help contains non-numeric symbols!' (missing
return)
2025-08-20 10:51:21 +02:00
Martin Pulec
96d6fe17b4 CI FFmpeg Linux: fix libsvt_vp9
now without the patch
2025-08-20 10:41:49 +02:00
Martin Pulec
fcd7bfb60f CI Linux FFmpeg: update SVT-HEVC SVT-VP9 compat
assume that FFmpeg is already patched with SVT-VP9 patch

As a side effect, the SVT-VP9 patch doesn't need to be patched (these
patches conflicted because VP9 applied after HEVC, which is now not
the case).
2025-08-20 10:41:33 +02:00
Martin Pulec
b870f84860 CI Linux FFmpeg: update SVT-HEVC patch
The patch no longer compiles with upstream FFmpeg (moreover the history
of 5000 commits is now too shallow.

Use a updated custom version now - the SVT-HEVC is archived, anyways so
the upstream won't be updated.
2025-08-20 10:41:22 +02:00
Martin Pulec
0e535eeb81 CI FFmpeg Linux: copy SVT-HEVC patch
to be updated in next commit, for reference
2025-08-20 10:41:14 +02:00
Martin Pulec
c0a1095aa5 Revert "CI Linux FFmpeg: libsvtav1 API change patch"
This reverts commit 79f85919f1.

No longer needed since cartwheel removal.
2025-08-20 10:41:05 +02:00
Martin Pulec
da7873b856 Revert "CI Linux FFmpeg: apply cartwheel patches"
This reverts commit a30a8945e3.

This doesn't seem to be required anymore (at least xv30 and yuvx work
with Arc A770 and Raptor Lake-P GPU on i7-1355U).

As the patches need to be applied against specific version of FFmpeg
(pinned in db308b17 2023-02-03). Currently the version is from 23th Dec
2024, which is slightly old. That is a half of the year but we also
depend on the cartwheel version bump, which is a bit unfortunate, whereas
is now not cerain, if there is something needed.
2025-08-20 10:40:43 +02:00
Martin Pulec
ae68883ac5 to_lavc_vid_conv: set uv_to_av metadata later
Set the metadata for parallel conversion later - av_frame_make_writable()
may actually alter that (at least pointer but perhaps also linesize), those
old values might have been invalidated by that lavc call.
2025-06-20 15:22:57 +02:00
Martin Pulec
0a38ac209b download-gh-asset.sh improved
fix the situation when most recent release doesn't include the asset
matching the patern (but some other does)

notes:
- the assets are included directly in /releases, no need for subsequent fetch
- use -e to fail jq if the result is null
- $pattern doesn't need to be anchored
2025-06-20 15:22:57 +02:00
Martin Pulec
90032048f1 CI: sync etag handling with master
except live555 and aja stuff for Win, which diverges a bit
2025-06-20 15:22:31 +02:00
Martin Pulec
bda5532c54 acap/coreaudio: fix outputting empty frames
a race condition

Prior to e511f898 (2024-11-14) and still in the stable branch, it
produces:
[Audio decompress] 2 empty channel(s) returned!
v1.9.10
2025-05-05 14:07:56 +02:00
Martin Pulec
98e298cf22 vdec/lavc: fix H.265 decode with intra-refresh
Fix decoding of HEVC streams with intra-refresh and current Git FFmpeg
code. When intra-refresh is enabled and we are not catching the first
frame, no frame will be decoded without the flag
AV_CODEC_FLAG_OUTPUT_CORRUPT. This corresponds with FFmpeg commit
bc1a3bfd (2025-02-20), not yet included in current 7.1.1 / lavc 61,
should appear in lavc 62.

Steps to reproduce:
```
uv -t testcard -c lavc:e=libx265 -d gl
```
2025-05-05 11:45:07 +02:00
Martin Pulec
3b39a30cd7 unit_evaluate_dbl: fixed err check
arm64 (Apple silicon) needs the comparison with NAN with isnan().

Fixes also failing test misc_test_unit_evaluate on GH macos-14 runner
(arm64 mac),
2025-05-05 11:35:01 +02:00
Martin Pulec
3b9f4441d4 respect the selected port if sending over loopback
`uv -t testcard -d gl -P 5004` didn't select the port 5004 until now
2025-05-05 11:25:17 +02:00
Martin Pulec
d0bbce5af9 vcomp/lavc version: print ver from run-time linked
Do print the runtime lavc version instead the one from headers, that
may differ (minor and patch only).
2025-05-05 11:17:32 +02:00
Martin Pulec
28bb5609d6 configure.ac: pcp has changed pkg-config name 2025-05-05 10:56:05 +02:00
Martin Pulec
1fbd3bf7b6 CI: fix XIMEA URL 2025-05-05 10:52:14 +02:00
Martin Pulec
21319bbe48 vulkan_sdl2: vulkan_display_log: fix log_level
fixed log_level shadowing

The vulkan_sdl mapped log_level shadows the global log_level variable,
so that automatic variable log_level is compared to itself (always true).
2025-04-02 12:56:41 +02:00
Martin Pulec
5e9fc00864 fix macOS 15.4 beta crashes due to LC_RPATH dups
Fixes the UG crashes caused by the multiplication of
"@executable_path/../libs/" caused by replacing multiple (originally
distinct) LC_RPATH values with this one.

+ removed invalid comment from Makefile (actually was related to
"bundle-nolib" target that is no longer present)

closes GH-436
2025-04-02 12:54:18 +02:00
Martin Pulec
26ba0bc6d8 AppImage Firejail: suppress private-tmp in config
Upstream Firejail (0.9.75) has now private-tmp enabld by default in
default.profile, which breaks run from the nounted AppImage.
2025-03-28 09:34:00 +01:00
Martin Pulec
8035b2f5f1 UltraGrid 1.9.9 v1.9.9 2025-03-21 14:52:23 +01:00
Martin Pulec
76dcda887d CI PCP: fix another breakage [Win]
The development in PCP seem to be very turbulent these days and it breaks
Win builds often so pin a commit in Windows CI until the situation calms
down a bit.
2025-03-21 14:52:23 +01:00