31 Commits

Author SHA1 Message Date
Martin Pulec
1d4754b681 tools/Makefile: compat - use :=
GNU Make 3.81 as in macOS 14 doesn't support the new ::= syntax, use
the legacy one.

(the ::= syntax is quite new, defined by POSIX v8 in 2024)
2026-03-04 09:04:52 +01:00
Martin Pulec
a22bc8f7e9 moved to_planar conversion from pixfmt_conv
this follows the recent similar change for from_planar
2026-03-04 09:04:52 +01:00
Martin Pulec
cb5076b768 tools/Makefile: use pkg-config for libavcodec path
eg. when in non-system searched as on Mac with Homebrew
2026-02-27 16:07:14 +01:00
Martin Pulec
9d2dcc36d1 build: do not use -Ofast
-Ofast is basically -O3 + -ffast-math

But from my measurements (x64 gcc and arm64 clang), it doesn't make
any difference as tested with `tools/convert benchmark`. Actually,
currently almost no conversion uses floating point math except of
vc_copylineUYVYtoRGBA, for which the -ffast-math didn't have any
performance impact.
2026-02-27 16:07:11 +01:00
Martin Pulec
62e0ffacb5 tools/Makefile/benchmark_ff_convs: compile fix
after recent changes
2026-02-27 09:20:53 +01:00
Martin Pulec
7cd99c6a68 moved from planar conversions from pixfmt_conv
removed all ad hoc optimizations:
- -Ofast - removed by context (pixfmt_conv compiles with), _but_ see
previous commit - even in pixfmt_conv it was not actually used
- remove ALWAYS_INLINE + OPTIMIZED_FOR - from measurements it doesn't
seem to make some difference
2026-02-25 16:52:43 +01:00
Martin Pulec
77cf31e45a vdec/jpegxs: run the conversions in parallel
Since the decompression is synchronous, so that decompression and
conversion cannot interleaved, it is very useful to set the conversion
to be performed in multiple threads.

For 4K, the conversions may (to R12L or R10k) may take around 10 ms when
run in single thread, which makes it a bit hard for 60 FPS video (the
decompression must then take at most 6 ms).

To enable eg. 2160p60 video, make the decoders run in parallel.

As for now, just the conversions using generic decode_planar_func_t are
parallelized. Eveutally all conversions would use this API.
2026-02-25 16:52:42 +01:00
Martin Pulec
434d23ddd6 color.{c,h}: rename to color_space
color is too much general - the declarations relate to color spaces
2025-10-08 15:19:36 +02:00
Martin Pulec
e8cd71b259 vcap/import: IWYU + aligned_malloc compat 2025-03-25 09:17:13 +01:00
Martin Pulec
e2b42a3c03 add tools/mux_ivf
refers to GH-434
2025-03-13 09:14:35 +01:00
Martin Pulec
bdce8d7ae8 tools: add ug_stub.c to substitute host.cpp
Because host.cpp has extensive dependencies on UG internals, it is a
bit tricky to link-in. Created a replacement instead.
2024-09-30 11:07:37 +02:00
Martin Pulec
4542f9d1c6 tools/benchmark_ff_conv: add bench for from_lavc 2024-09-27 17:06:18 +02:00
Martin Pulec
fa0412b121 tools: add benchmark_ff_convs (only to_lavc now) 2024-09-27 17:06:17 +02:00
Martin Pulec
1a118aea3b color.c,pixfmt_conv.c: do not hard-code the coeffs
Start rewrite with coefficients not hard-coded in the macro. For the
beginning, the new implementation used in pixfmt_conv.o. From
the performance evaluation it doesn't have impact on performance
(`tools/convert benchmark`).
2024-09-27 17:06:16 +02:00
Martin Pulec
5c311cebd1 tools/Makefile: use -Ofast by default
For the benchmark, we use -Ofast in UltraGrid so make it the same.

It won't break anything for the rest of the objects so make it default
instead of writing a custom rule for pixfmt_conv.o.
2024-09-26 14:05:55 +02:00
Martin Pulec
ef0a820048 tools/Makefile: set -msse4.1 for x86_64
to match UG (usual) defaults
2024-09-26 10:02:12 +02:00
Martin Pulec
450cb6c2dc tools/Makefile: really delete the .o files
The .o files are no longer directly in the root of tools/ but in the
respective subdirectories as in sources in src/. Used find command
instead of wildard because the objects may be deeper in src/.
2024-09-26 09:12:29 +02:00
Martin Piatka
b2c79c2fda tools/Makefile: Remove sse4.1 flag
So that compilation on ARM keeps working
2024-07-02 12:56:57 +02:00
Karel Šebela
3cde2f1ba0 pixfmt_conv.c: RGB <-> RGBA SIMD
Reduces time per 4k frame from 9 ms to about 5 ms.
2024-07-02 12:56:16 +02:00
Martin Pulec
c7bc7962aa tools/Makefile: moved "all" as a first rule
to rum `make all` as a default target (without arguments to make)
2024-03-22 16:24:01 +01:00
Martin Pulec
96373a1e73 tools/convert: support for storing PNM/Y4M 2023-11-09 16:00:21 +01:00
Martin Pulec
d17c5ea24c removed platform_time.c + references
get_time_in_ns() should be used instead time_since_epoch_in_ms(). Having
both may be misleading and may lead to errors when interchanged.
2023-08-08 15:32:29 +02:00
Martin Piatka
a01475050c tools: Add preview thumbnail generator 2023-06-16 13:43:01 +02:00
Martin Pulec
6ae7f268f0 video_codec: moved pixfmt convs to a separate file
Just the conversions grew to a significant amount so it is better to
split the file to two to keep the general video codec utility functions
in one file and the conversions in the another.
2023-03-16 14:26:22 +01:00
Martin Pulec
bb709aabe1 tools/Makefile updates: build in current directory
Build even UG obj files in tools/ subdirectory if make called there
(because color_out.o builds differently for `convert` and `uv` not to be
used interchangeably).

- supported also out-of-tree build when SRCDIR was passed, eg.:

      mkdir build && cd build
      make -f ../tools/Makefile SRCDIR=.. convert

+ decklink_temperature to gitignore
2022-11-22 14:50:25 +01:00
Martin Pulec
579389cebc tool/convert: compilation fixes
- moved macros to utils/macros.h (not config_common.h that is not going
  to be included) and include in config_common.h the macros.h file
  instead (later it should be removed)
- avoid dependency of color_out.o on host.o if build outside UG (easiest
  for now)
- compile tools with '-g' (obviously for better debuggability)
2022-11-22 10:34:37 +01:00
Martin Pulec
db02374999 tools/convert: added benchmark 2022-08-18 14:21:51 +02:00
Martin Pulec
3d198c168f tools/Makefile +decklink_temperature +clean 2022-08-18 14:08:44 +02:00
Martin Pulec
9f2d8b5029 tools: merged Makefiles
+ fixed compilation of convert (dependency on color_out)
2022-08-17 17:27:43 +02:00
Martin Pulec
9826374188 Added tool/library to read audio statistics 2018-04-24 09:59:32 +02:00
Martin Pulec
d58b44ff50 tools/uyvy2yuv422p: added Makefile and usage 2014-06-23 13:13:10 +02:00