7130 Commits

Author SHA1 Message Date
Martin Pulec
f032226791 UltraGrid 1.8.2 v1.8.2 2023-03-21 12:39:43 +01:00
Martin Pulec
88e9ee6bff added v1.8.2 FIXES.md 2023-03-21 12:39:43 +01:00
Martin Pulec
fd522907ce video_rxtx: do not crash after querying rtsp usage
do not crash after `uv --video-protocol rtsp:help` call

Note: other video_rxtx modules handle help differently, eg. h264_sdp
throws 0 from constructor instead of returning nullptr from ::create.
2023-03-21 12:39:43 +01:00
Martin Pulec
0b9a008632 portaudio cap.: use default ch_count if undef
Maximal number of channels was chosen instead of
DEFAULT_AUDIO_CAPTURE_CHANNELS. This was noticable especially for
Pulseaudio plugin, which has 64 channels.

fixes commit 89747981
2023-03-21 12:39:43 +01:00
Martin Pulec
89f9a56a45 portaudio cap/play: fixed default device selection
Passed configuration string is empty ("") if no configuration given by
user. Which evaluates incorrectly as 0 if parsed with atoi.
2023-03-21 12:39:43 +01:00
Martin Pulec
ec80275cfc CI Linux FFmpeg: use a mirror for nv-codec-headers
The master repo https://git.videolan.org/?p=ffmpeg/nv-codec-headers.git
is currently unresponsive. The mirror would be perhaps more reliable
since it is hosted on the GitHub, anyways.
2023-03-21 12:39:42 +01:00
Martin Pulec
3d35f42751 CI Linux FFmpeg: apply patches with 'git am'
see also a30a8945

This may fix failed run:

    https://github.com/MartinPulec/UltraGrid/actions/runs/4466205698/jobs/7844098282
2023-03-21 12:39:42 +01:00
Martin Pulec
857da67340 CI Linux: set git user identity
otherwise 'git am' fails
2023-03-21 12:39:42 +01:00
Martin Pulec
3ef33247fd CI macOS: add readline to PKG_CONFIG_PATH
brew port readline is no longer liked to system path by default.

Fixes failed build:

    https://github.com/MartinPulec/UltraGrid/actions/runs/4202715324/jobs/7291225396
2023-03-21 12:39:42 +01:00
Martin Pulec
f4fdf7e707 CI: fix Windows build upload workaround
Used msys/curl instead of clang64/mingw-w64-clang-x86_64-curl for the
upload.

For whatever reason, the other curl variant ceased to collaborate with
GitHub, see failed run (and subsequent ones):

    https://github.com/CESNET/UltraGrid/actions/runs/4223917061/jobs/7334218587

I didn't manage to reproduce it on a local Windows machine so there is
perhaps some hidden factor present.

This change is just a workaround and should be removed when not needed.
2023-03-21 12:39:42 +01:00
Martin Pulec
6cc697991b CI Linux FFmpeg: patch SVT-VP9 patch 2023-03-21 12:39:42 +01:00
Martin Piatka
a18d7e0dc4 create-appimage: Bundle qt plugins with correct version
Starting from about 20th January, the wrong version (qt4) started
getting bundled on the Ubuntu runner.
2023-03-21 12:39:42 +01:00
Martin Piatka
be415f5cb4 GUI: Fix specific display device selection 2023-03-21 12:39:39 +01:00
Martin Pulec
4bc5614fa6 RTP: mem safety imrovement
The handling of source::sr is MT-Unsafe when the library is used from
within 2 threads. Typically when running `uv -t testcard -d dummy` (with
-DDEBUG), check_database() is run from sender thread while process_rtcp_sr
from receiver thread leading to a crash on line 589 using the old
structure data that has been freed and overwritten by some new data.

The above mentioned crash doesn't usually occur since check_database()
is run only if DEBUG is defined. However, in theory it may happen that
both threads accidentaly run process_rtcp_sr() (alhough not observed). In
that case either double-free or a leak could occur if the runs of
process_rtcp_sr() is interleaved in a wrong way. Unfortunately, as the
RTP library is originally mt-unsafe, there can be plenty of similar
undiscovered problems.

(Note: to test the check_database() crash, running in GDB seems to
increase the likelihood that it crashes. This change on the other hand
seems to retuce that, but clearly doesn't eliminate that because the
content of the struct is read while it may be freed by the other thread.)
2023-03-07 08:50:51 +01:00
Martin Pulec
827d0f9834 parse_bitrate: fixed parsing of spec vals
fixes 03f70eade

closes GH-300
2023-03-07 08:41:43 +01:00
Martin Pulec
3680ded789 DeckLink: continue if CoInit fails on diff. mode 2023-03-07 08:37:31 +01:00
Martin Pulec
9f296b2dfa lavd: fixed sws setting NULL before a clear
leads to a leak
2023-03-07 08:31:14 +01:00
Martin Pulec
9df60d3114 RTP: attempt also other ports on error
We want perhaps attempt another ports even though there is another error
from udp_port_pair_is_free() than the port is taken. This error is on
hand unpredicted but by no means fatal.

Fixes:

    https://github.com/CESNET/UltraGrid/actions/runs/4225115209/jobs/7336964502
2023-03-07 08:29:48 +01:00
Martin Piatka
e440195df4 CI: Fix libde265dec patch
AV_CODEC_CAP_AUTO_THREADS was removed in ffmpeg commit 10c9a08
It was replaced by AV_CODEC_CAP_OTHER_THREADS (same macro value)
2023-02-21 11:37:49 +01:00
Martin Pulec
756a92f93f macOS: replace altool with notarytool 2023-02-21 11:35:12 +01:00
Martin Pulec
6495c3ace8 aggregate vicdap: fixed a leak 2023-02-21 11:34:37 +01:00
Martin Pulec
2963393f3d Revert "CI: patch SVT-HEVC patch"
This reverts commit 842a86b82f.

no more needed, patch was rebased in upstream
2023-02-21 11:33:09 +01:00
Martin Piatka
34d262925f vulkan: Fix Y416 conversion
see GH-291
2023-02-21 11:31:06 +01:00
Martin Piatka
ccb7f876e1 vulkan: Fix shader conversions not processing whole image
When the image resolution was not cleanly divisible by the local
workgroup size, the remaining pixels were left unprocessed.
2023-02-21 11:30:53 +01:00
Martin Piatka
220f115974 vulkan: Fix shader UYVY conversion
There were 2 issues:
1. normalized floating coords causing artifacts (see GH-291)
2. The resulting image width was incorrectly doubled
2023-02-21 11:30:29 +01:00
Martin Piatka
4f478c730d vulkan: RGB10A2_conv: Use unnormalized integer coords
closes GH-291
2023-02-21 11:25:53 +01:00
Martin Pulec
9a230136e7 lavc: subsampling is now internally a four-digit
Three digit subsampling is obsolete, now the format 'JabA' is used (so
4220 instead of 422), so represent it internally in that way in order to
the comparison work.
2023-02-21 11:06:27 +01:00
Martin Piatka
17998f52e1 swmix: Fix trimming trailing space
The previous implementation could corrupt memory before the string
buffer, if the string contained only whitespace or was empty.
2023-02-21 11:03:57 +01:00
Martin Pulec
85607c6873 lavd: fixed directly mapped pixfmts memcpy
it should respect AVFrame set linesize
2023-02-21 11:01:23 +01:00
Martin Pulec
cebd5bf517 lavc: dump/transfer correct frame
Input frame may not be s->in_frame if just setting the pointers to input
buffer (without copying).
2023-02-21 11:00:44 +01:00
Martin Pulec
5bc6eafd8a fixed yuv444p1Xle_to_uyvy
shift + more correct average
2023-01-24 16:08:01 +01:00
Martin Pulec
972ffee2f8 CI: AOM AV1 U18.04 build fix 2023-01-24 16:07:36 +01:00
Martin Pulec
d49b109b21 SDL1 compilation fix 2023-01-24 16:06:52 +01:00
Martin Pulec
39b92c14b5 lavc: fixed a crash when using input buffer directly
With the change in f67aa7c, the input buffer pointers should not be
simpley unset by av_freep because then final av_free_frame would crash
on double-free when AVFrame::data were freed by av_freep (which is
basically a wrapper over free()). The buffers AVFrame::buf still remain
allocated and the destructor would free them on the second time.
2023-01-24 16:06:41 +01:00
Martin Pulec
be4049a7f7 display: print reconfigured mode
Fixes 7e0c77c4 that caused the display mode to be printed only if there
was a postprocessor.
2023-01-19 16:01:51 +01:00
Martin Pulec
d3907092a3 UltraGrid 1.8.1 v1.8.1 2023-01-19 10:06:22 +01:00
Martin Pulec
ca02763d19 added v1.8.1 FIXES.md 2023-01-19 10:06:08 +01:00
Martin Pulec
1cfc38cfb3 CI: fixed Windows natpmp build error
Fixes failed run  https://github.com/CESNET/UltraGrid/actions/runs/3894640814/jobs/6648919900.

cmd.exe script for unknown reason ceased to work, copied appropriate
parts of script to our script.

+ use shell debug flag for the script
2023-01-19 09:59:31 +01:00
Martin Pulec
de25c53b9e AppRun firejail: removed deprecated --shell
firejail repors it's deprecated as for 0.9.72 and refuses to run
2023-01-19 09:59:31 +01:00
Martin Pulec
0e665d284e vo_postprocess: updates
- fixed filters that multiply output images than receive, like
  double_framerate
- refuse filter chain (longer than 1) from complex filter - it doesn't
  currently work
2023-01-18 09:14:22 +01:00
Martin Pulec
9a532f6ae6 macOS: fixed Vulkan shader bundling/loading 2023-01-18 09:09:21 +01:00
Martin Pulec
9b58e9e481 configure: link with libMoltenVK on macOS
+ install MoltenVK with CI
2023-01-18 09:09:11 +01:00
Martin Pulec
3212e86efc CI Linux: enable Vulkan
enabled Vulkan build on U18.04 runner
2023-01-18 09:08:32 +01:00
Martin Pulec
f9c9daf8b3 Vulkan: replace std::byte with unsigned char
again, compat with U18.04
2023-01-18 09:08:22 +01:00
Martin Pulec
1528b29100 Vulkan: compat - do not use from_chars 2023-01-18 09:08:13 +01:00
Martin Pulec
2e5291985d fixed data dir lookup (Vulkan)
In Windows, uv.exe is directly in top-level directory, not in "bin"
subdirectory. Thus, cut "bin" suffix only if there is any.

This fixes Vulkan shaders not being found - eg. "C:\UltraGrid\uv.exe"
resulted in shaders being searched in "C:\shaders"
(UltraGrid/../shaders).
2023-01-18 09:08:03 +01:00
Martin Pulec
6f0b57bc58 print display mode by disp. module
Printout by video decoder might have been incorrect if there is a
postprocessor that changes properties, eg.:

    uv -t testcard:fps=50i -d gl -p double_framerate

printed 50i but display was actually set to 50p.
2023-01-18 09:07:07 +01:00
Martin Pulec
645b01c768 av_log_ug_callback: fixed incremental printout
FFmpeg doesn't always use to logger for whole lines, resulting in
smoething like:

    [lavc libx264 @ 0x6e93f000b280] Possible tunes:[lavc libx264 @ 0x6e93f000b280]  film[lavc libx264 @ 0x6e93f000b280]  animation[lavc libx264 @ 0x6e93f000b280]  grain[lavc libx264 @ 0x6e93f000b280]  stillimage[lavc libx264 @ 0x6e93f000b280]  psnr[lavc libx264 @ 0x6e93f000b280]  ssim[lavc libx264 @ 0x6e93f000b280]  fastdecode[lavc libx264 @ 0x6e93f000b280]  zerolatency[lavc libx264 @ 0x6e93f000b280]

So we should prefix only the line after <nl>.
2023-01-18 09:06:29 +01:00
Martin Pulec
0bd0fafd3c double-framerate: small fixes
- fixed taking codec from input frame (that may be NULL)
- set drop policy only if option nodelay is used - after the previous
  changes, the second frame is correctly output and the filter delays
  it output automatically (until "nodelay" is used)
2023-01-18 09:03:33 +01:00
Martin Pulec
90af29ba4e fixed display generic indicator display if there is a PP 2023-01-18 08:59:38 +01:00