Commit Graph

609 Commits

Author SHA1 Message Date
Martin Pulec
cc2e7103b1 configure.ac: generate debug symbols for Win
<https://stackoverflow.com/questions/74416539/clang-14-does-not-generate-pdb-file>

Set it only when linking, not for configure.
2025-08-12 12:24:59 +02:00
Martin Pulec
f1e2c9b568 CI Win: pthreads are now provided with a new pkg 2025-08-12 12:24:58 +02:00
Martin Pulec
194cb695e3 GH scripts: add -f to curl
to catch 4xx HTTP errors (curls returns 0 otherwise)
2025-07-15 09:20:42 +02:00
Martin Pulec
a10bc18ae4 GH arm+coverity builds: add -f to curl
in order to fail on 4xx HTTP errors
2025-07-15 09:20:42 +02:00
Martin Pulec
8adbafcda9 gh/arm/bootstrap.sh: pass GITHUB_TOKEN
to avoid GH rate-limit
2025-07-15 09:20:37 +02:00
Martin Pulec
1ba9fbd609 ccpp: update etags handling
Print the output variable assigned in the script in case that this
fails, otherwise it on the output without NL and will be prepended to
next var (if any).

This also simplifies the call in YAML.
2025-06-26 14:26:52 +02:00
Martin Pulec
be33cbed45 gh/get-etag.sh: sanitize ETAGs
XIEMA uses something like (for ARM mac):
"cs-cz|6ea47896-cfc1-4c33-a2cc-5dc7ee38de39|15.05.2024 11:57:53|LiveSite"

where the spaces and pipes may cause problems later if not properly
sanitized. Doesn't seem to cause problems so far but perhaps still better
to sanitize.

Keep just chars from Portable Filename Character Set (alnums + <space>,
<dash-minus>, <underscore>), other replace with _.
2025-06-26 14:26:18 +02:00
Martin Pulec
0a9bc4be68 CI improve etag handling
- simplify: do not handle more items (unneded)
- unless optional specified, fail early
2025-06-20 14:59:18 +02:00
Martin Pulec
98515da346 CI FFmpeg Linux: fix libsvt_vp9
now without the patch
2025-06-20 14:59:18 +02:00
Martin Pulec
e88251ec73 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-06-20 14:59:18 +02:00
Martin Pulec
4f3945fc44 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-06-20 14:59:18 +02:00
Martin Pulec
ae8cc3db8c CI FFmpeg Linux: copy SVT-HEVC patch
to be updated in next commit, for reference
2025-06-20 14:59:17 +02:00
Martin Pulec
735b6d8060 Revert "CI Linux FFmpeg: libsvtav1 API change patch"
This reverts commit 79f85919f1.

No longer needed since cartwheel removal.
2025-06-20 14:59:17 +02:00
Martin Pulec
e475c4f774 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-06-20 14:59:16 +02:00
Martin Pulec
40dd353465 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-06-19 09:09:44 +02:00
Martin Pulec
abd7ae96fd vcomp/lavc: h264_nvenc: fix pulsation w intra-refr
Avoid pulsation with inra-refresh by repeating the missing SPS/PPS with
header inseter.

Unfortunately this is doesn't work well with HEVC because it seems that
the NVIDIA encoder keeps the reference almost forever in specific cases,
eg. `testcard:patt=text`. However, it _may_ work under some circumstances.
2025-06-19 09:08:32 +02:00
Martin Pulec
5e54e7838f 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-12 10:04:03 +02:00
Martin Pulec
2b9b642023 GH scripts: import back from GPUJPEG
import improvements from GPUJPEG - summary:
- LABEL - replace ' ' with %20 (will get to URL)
- use while instead of for..seq
- cat json file directly (avoid interpretting \n and \r that XSI-compilant
echo, as in dash, does)
- cat really the $json file, don't print its name
- wrap long lines + early return in while-loop

The rewrite of `for n in \`seq` may be perhaps a bit controversal
(with while is less readable) but technically POSIX doesn't specify the
seq comand.
2025-06-11 13:16:03 +02:00
Martin Pulec
5b2f2fe48a CI: libajantv2 build workaround
workaround for aja-video/libajantv2 commit e760d416 (merged 2024-04-15)

The NL in VERSION.txt causes cmake fail (obviously the NL) is expanded
in cmake where it shouldn't:
```
$ cmake --build libajantv2/build --config Release -j 4
ajantv2/CMakeFiles/ajantv2.dir/build.make:1746: *** missing separator.  Stop.
gmake[1]: *** [CMakeFiles/Makefile2:174: ajantv2/CMakeFiles/ajantv2.dir/all] Error 2
gmake: *** [Makefile:136: all] Error 2
````
2025-04-16 12:47:22 +02:00
Martin Pulec
13a0c48126 Linux ARM CI: install imagemagick
Now (since 2025-04-04, 05187ea56) it is required to bundle magickwand
dependencies.
2025-04-15 09:28:02 +02:00
Martin Pulec
05187ea56d AppImage: bundle aux data for IM magickwand 2025-04-04 22:42:41 +02:00
Martin Pulec
937d07ded2 CI: fix XIMEA URL 2025-04-04 11:58:23 +02:00
Martin Pulec
e2f0ddc6eb CI ARM: set CFLAGS for 32-bit off_t
The flags queried also for 64-bit ARM but it is empty there.

This does basically the same as the commit f46a101c, that adds
_FILE_OFFSET_BITS=64 define to config.h. But the config.h may not be
always included now.

+ compat/misc: typo in comment + assert 64b off_t (off_t should be
actually 64b in _OFF64 env and >= 64b in _OFFBIG so assert at least 64)
2025-03-27 12:17:34 +01:00
Martin Pulec
3aa6c398f8 CI PCP: change also repo URL
There is a redirect from libpcp/pcp.git but it is better to have this
explicitly.
2025-03-27 09:54:22 +01:00
Martin Pulec
d6a42b38e3 CI PCP ARM Linux: Debian 11 build fix
Debian 11 has autoconf v0.69 only but the PCP configure.ac now requires
2.71, perhaps needlessly.
2025-03-27 07:36:15 +01:00
Martin Pulec
5bd65911cd CI: remove U20.04 compat
+ update TODO for pipewire where still neeeded for Debian 11
2025-03-27 07:36:11 +01:00
Martin Pulec
382f2fc26b 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:51:39 +01:00
Martin Pulec
1970dafe2e CI PCP Win: most of incompat is now fixed upstream
Most of the incompatibilities, which were patched, have already been
fixed in upstream.

just forward decl of struct timezone/timeval is still needed
2025-03-18 16:07:17 +01:00
Martin Pulec
d670e2ebee CI PCP Win: patch rather than using old version
IP*PKTINFO is defined by the Mingw-w64 headers but the structs
(eg. msghdr or cmsghdr) as defined in RFC 3542 seem to be called
differently (WSAMSG, WSACMSGHDR).

So the compat will be perhaps still required unless PCP adds support
for Win structure names. The other changes are just fixing Win-specific
headers (which may be fixed in PCP upstream eventually).

Also moved dummy Git identity setting to enfironment.sh (is now needed
also for MSW).
2025-03-18 14:15:34 +01:00
Martin Pulec
2fbcf4f7bf Revert "CI Linux: XIMEA install workaround"
This reverts commit 7162decfb7.
2025-03-18 14:08:40 +01:00
Martin Pulec
dccc4fff1e Revert "CI mac: disable pkg-config and use pkgconf"
This reverts commit 9cee3b1011.
2025-03-18 14:08:40 +01:00
Martin Pulec
a07c0db968 Revert "CI macos: pkg-config install fix"
This reverts commit 3e8100c7d2.
2025-03-18 14:08:40 +01:00
Martin Pulec
2b0433483a CI PCP Win: compat
Recent development in PCP breaks the compatibility with MSW so use an
older version for now. Restoring the compat would require some effort.
2025-03-18 14:08:40 +01:00
Martin Pulec
7b29a9d817 CI ARM: build Vulkan with armhf
This effectively reverts commit 02cd2479 (later modified to disable
Vulkan only for 32b ARM).
2025-03-11 14:16:11 +01:00
Martin Pulec
0a3b315229 CI ARM: remove buster compat 2025-03-11 14:16:10 +01:00
Martin Pulec
2f1de5bd4e fix CI coverity
The workarond is not needed in U24.04 (current ubuntu-latest used by
coverity-scan) and actually doesn't work (qtchooser is not installed).
2025-03-11 14:16:10 +01:00
Martin Pulec
65d886746f Revert "CI Linux: install pipewire with distro pkg"
ARM builds still use Debian 11, for which that is needed.

This reverts commit 35e30cd58c.
2025-03-11 14:16:07 +01:00
Martin Pulec
af222c70a5 CI Linux: use Qt6 in ubuntu-22.04 2025-03-10 11:08:59 +01:00
Martin Pulec
35e30cd58c CI Linux: install pipewire with distro pkg
+ remove explicit libdav1d install (already in FFmpeg build-dep)
2025-03-10 10:47:15 +01:00
Martin Pulec
223f2b95a1 Revert "Reapply "CI Linux: use Vulkan directy from repo""
This reverts commit 91b56cddab.

The ppa:savoury1/ffmpeg4 repo is no longer used with ubuntu-22.04
runner but FFmpeg currently needs Vulkan v1.3.277 ibut the distro has
only 1.3.204.
2025-03-07 09:03:17 +01:00
Martin Pulec
2eaf9bc17d CI Linux: removed obsolete commands 2025-03-07 09:03:17 +01:00
Martin Pulec
fb022f2d1b CI Linux: switch to ubuntu-22.04
ubuntu-20.04 GH image is being deprecated and will be eventually removed
from GH
2025-03-07 09:03:06 +01:00
Martin Pulec
a525f474c1 CI GPUJPEG Win: upstream file name has changed 2025-01-27 10:26:40 +01:00
Martin Pulec
79f85919f1 CI Linux FFmpeg: libsvtav1 API change patch 2025-01-20 10:42:50 +01:00
Martin Pulec
2365a00ce9 GH/releases/continuous: add link for alt builds outside GH 2025-01-09 09:54:13 +01:00
Martin Pulec
a4c1268ee0 ARM CI: use GH runner ubuntu-22.04
Use runner ubuntu-22.04 instead of ubuntu-latest. Because ubuntu-latest
has switched to ubuntu-24.04 recently, whiich breaks the build for arm64.

There seem to be an unresolved bug in QEMU >= 8.1
(U24.04 has v8.2.2) when using ARM64 and bullseye:
<https://gitlab.com/qemu-project/qemu/-/issues/2377>.

(ARM64 buster and bookworm, as well as ARMHF, may be fine as indicated
in the bug description.)

This can be reverted later (either when fixed in QEMU or when switched
the chroot to bookworm). But it shouldn't matter much, anyways, since this
is just the "host" environment.

Also include runner ver in chroot key because it seem to make a difference
from the above..
2025-01-03 10:38:17 +01:00
Martin Pulec
49a16a90a4 CI Linux: add-apt-repostitory retries
Fetching GPG keys sometimes fails on timeout so prevent it by adding
retries with exponentially increasing intervals taken from:
<https://github.com/canonical/server-test-scripts/pull/18>
(just removed bashisms)
2024-11-29 12:36:28 +01:00
Martin Pulec
3e8100c7d2 CI macos: pkg-config install fix
THe problem seems to be that there is preinstalled pkg-config@0.29.2 in
CI but the version that is being to be installed is an alias for pkgconf.

The problem seems to be cumbersome, because installing pkgconf fails, pkg-config
as well (tries to install pkgconf 2.3.0; installed version of pkg-config
is pkg-config@0.29.2).

So made just a workaround, that will not be needed after the updated
pkg-config (linked to pkgconf) applies to all macos runners (will be
preinstalled).

The problematic package is pkg-config in current macos-13 runner but
pkg-config@0.29.2 in macos-14 image.
2024-11-25 11:19:45 +01:00
Martin Pulec
1edef2b0c8 .github/scripts/macOS/prepare.sh: suppres brew out
suppress `brew list` output

It is used just to check if a package is installed and the output is
print is output to stdout. To stderr is print that it if the package is
not installed.
2024-11-25 09:06:41 +01:00
Martin Pulec
9cee3b1011 CI mac: disable pkg-config and use pkgconf
pkgconf is more modern version and the CI on macos-14 now fails
because both pkg-config and pkgconf (presumably as a dependency) are to
be installed.

The erroa (the beginning, additional info omittedr):
```
==> Pouring pkgconf--2.3.0_1.arm64_sonoma.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /opt/homebrew
Could not symlink bin/pkg-config
Target /opt/homebrew/bin/pkg-config
is a symlink belonging to pkg-config@0.29.2. You can unlink it:
  brew unlink pkg-config@0.29.2
```

Both pkgconf and pkg-config can be installed automatically as a dependency
of some other packages so ensure a defined state (both installed,
pkg-config disabled).
2024-11-22 10:41:13 +01:00