Fixed a fail in U20.04 (currently GH's ubuntu-latest) affecting
coverity-scan (continuous still using 18.04):
https://github.com/CESNET/UltraGrid/actions/runs/3506409582
A dependency of libsdl2 debhelper-compat=12 is not available. apt
frontend can handle that somehow, but aptitude doesn't, so use apt to
install SDL2 dependencies (aptitude still used for mixer and ttf to
avoid installation of libsdl2 library itself).
Originally it was used to printout all modules' devices at once which is
no longer the case. Now only module names are printed with '-s help' and
individual modules need to be queried further, as it is usual otherwise
in UG.
It seems like that changing arbitrary packages installed (dependencies
for SDL) cause some FFmpeg dependencies to be rebuild (libvpx, SVT-*).
So revert back to depending on whole .github/scripts/Linux/prepare.sh
but move building/installation of AJA, live555 etc. to separate file
to reduce cached FFmpeg rebuilds at least a bit.
+ removed chmod 777 /usr/local
avoid message:
Package SDL2_mixer was not found in the pkg-config search path.
Perhaps you should add the directory containing `SDL2_mixer.pc'
to the PKG_CONFIG_PATH environment variable
Package 'SDL2_mixer', required by 'virtual:world', not found
if sdl2_mixer is not present
fixed `-d gl` of `-t testcard:size=47x32:codec=v210` or `..size=48x32`
The problem was perhaps with truncation of a number slightly below
nearest integer. Result was a "broken" bar of a testcard (in midst it
was shifted by one horizontal pixel).
Quite a huge eps is needed in macOS - .49999 cut-off was not sufficient
for `size=$((48*53))x$((32*53))`.
- simplified comutations (n + .5) instead of (n + 1.) / 2.
- documentation
- renamed imageWidthOrig to imageWidthRaw - it was confusing because
the originl version used size and sizeOrig, where sizeOrig is our
imageWidth and size, which is now imageWidthRaw, was imageWidthOrig
before
+ exit if (any) shader compilation fails and errors are treated as fatal
(`--param errors-fatal`)
R10k line is padded to 256 B (as DeckLinks requires) so widths not
divisible by 64 pixels were not displayed correctly.
Not sure if AJA holds also this convetion, it is not mentioned in docs
for NTV2_FBF_10BIT_DPX. However, SDI formats' line widths are generally
divisible by 64 pixels so it is not relevant there.
Steps to reproduce the problem were:
uv -t testcard:size=48x32:codec=R10k -d gl
Since display FPS indicator has set background color, using something
like "[Decklink display] " caused also the trailing space background to
be colored, which doesn't look nice.
Do not interfere with UltraGrid -m parameter -- show man if only 1-2
parameters given (`uv -m 1500` doesn't make much sense for UG),
otherwise pass it to UltraGrid.
This allows using commands like `UltraGrid-continuous-x86_64.AppImage -m
1316 -t testcard -d gl` (`-m` MTU parameter at the first place).
It is possible that some old card do not compile all shaders, eg. in
Windows 10 HD Graphics 3000 doesn't compile v210_to_rgb_fp.
Instead of aborting (until last commit), just disable the codec and let
video decoder to decode it to some of other supported codecs.
Do not abort if compile/link fails but return 0. Some of callers already
expect returning 0 on error.
+ print the errors with ERROR severity to be more obvious in program output