Commit Graph

10611 Commits

Author SHA1 Message Date
Martin Pulec
f1e2c9b568 CI Win: pthreads are now provided with a new pkg 2025-08-12 12:24:58 +02:00
Martin Pulec
8126c1fbaf utils/windows: backtrace: print fail if not resolved 2025-08-12 12:24:54 +02:00
Martin Pulec
2007a16d01 sdl3: fix b80eb821
The actual count should be returned **without** duplicites.

The fixed fix fixed just the content of the array but not the count.

This would trigger assertion in
video_decoder_order_output_codecs()->get_pixfmt_desc(VIDEO_CODEC_NONE).
2025-08-11 16:12:37 +02:00
Martin Pulec
dc9f09f3bd configure.ac: accept also cygwin as Windows
The variable #MSYSTEM_CHOST is taken as the base (/etc/config.site) and
contains now in MSYS x86_64-pc-cygwin resulting in $host_os=cygwin. Not
sure where the variable is defined, anyways...
2025-08-11 16:12:37 +02:00
Martin Pulec
945d307dc0 vo_pp/temporal_3d: add nodelay option
same meaning and behavior as for vo_pp/temporal-deint:
1. both frames will be output in a burst
2. in order not to be dropped immediately, set the display blocking
behavior (may or may not work correctly)
2025-08-11 11:37:54 +02:00
Martin Pulec
4979b8c22a add vo_pp/temporal_3d
refers to GH-440
2025-08-11 11:37:38 +02:00
Martin Pulec
d31e075e92 vo_postprocess.h: deprecate also in_tile_mode
+ fix the info - brief (actually really just ontput format) + missing
doxy block asterisk
2025-08-11 10:50:11 +02:00
Martin Pulec
8c66766be4 vo_pp video_mode changes: get the mode from PP
- try to get the mode from PP with the new VO_PP_VIDEO_MODE
- if false returned, then PP should support all and ask display
- deprecate/don't use VO_PP_DOES_CHANGE_TILING_MODE, see below

See the commits 5197a11c (2016-07-22) and 97454acc (2012-08-20) where
added.

The tiling mode is set to true for pp/split only, for that it won't do
anything. Otherwise, for all other PPs the desc will be converted to
single tile, which doesn't seem to be legit (the actual input desc is
given by the `desc` argument to display_reconfigure).
2025-08-11 10:04:45 +02:00
Martin Pulec
da7893026b vdecoders: reconf display to correct mode
If decoder (== received) video mode doesn't match display, namely if
display doesn't support separate tiles, set VIDEO_NORMAL.
2025-08-11 10:04:36 +02:00
Martin Pulec
c725630e1c acap/{none,sdi}: IWYU 2025-08-11 08:59:54 +02:00
Martin Pulec
b77f1de071 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-11 08:59:17 +02:00
Martin Pulec
129f51164b lavc: add magic
tiled video compress actually seems to pass invalid ponter as for:

    uv -F split:2:1 -t testcard:fps=30p -c lavc

(not the problem of lavc itself, however)

note that module_data is now not first so returning `s` from _init
2025-08-11 08:59:17 +02:00
Martin Pulec
195d6b2d8f displays: DISPLAY_PROPERTY_VIDEO_MODE check/set len 2025-08-08 10:41:19 +02:00
Martin Pulec
7b65da8cf5 vdisp/aggregate codec probe: break if found
no need to iterate further if match found

If display misbehaves (outputs one codec multiple times), it causes
that codec to be elimited later (if the count != 1 for 2 devices) or
more in case of eg. 3 devices and the codec being listed 2-times for one
and no for another, it will be falsely accepted.
2025-08-07 11:19:41 +02:00
Martin Pulec
b80eb8213d vdisp/sdl3 probe: do output codec_t multiple times
It will actually cause problems to callers those count the occurences
like vdisp/aggregate.
2025-08-07 11:18:05 +02:00
Martin Pulec
6e1277a08f types.h: set RGBA as "primary", not alias
At least gdb prints VIDEO_CODEC_FIRST for value `(codec_t) 1`, which
is unfortunate.  So assuming that the first identifier is taken as a
"primary" if more have the same value.
2025-08-07 11:17:48 +02:00
Martin Pulec
cd77aa367d utils/opencl: set CL_TAERGET_OPENCL_VERSION=120
CL headers issue warning when not set and default to eg. 300 (3.0).

Not sure if this influences just this code but it seems that this may just
limit API availability provided by hdrs? So we can get along with !.2 (for
CL_DEVICE_TYPE_CUSTOM).

We currently only do device listing to pass further (Cmpto J2K codec) so
AFAIK we don't have initialization of the device so this shouldn't matter
(at most we'll allow device with unsupported OpenCL version but perhaps
cmpto codec could catch this)
2025-08-07 08:57:51 +02:00
Martin Pulec
6a91cf000e add vo_cf/temporal_3d 2025-08-07 08:57:48 +02:00
Martin Pulec
03d4d69dbb capture_filter/*: IWYU 2025-08-07 08:39:19 +02:00
Martin Pulec
f48a685a05 3d-interlaced: add help documentation 2025-08-06 14:29:20 +02:00
Martin Pulec
39d76ee4be configure: refuse sdl3_mixer
SDL_mixer 3.0 rwmoved support for native MIDI [1], which was the reason it
was used for so refuse that.

Note that at this this moment, the latest released SDL_mixer version is
2.8.1, anyways. But it can be installed from Git.

[1]: https://wiki.libsdl.org/SDL3_mixer/README-migration
2025-08-05 10:14:21 +02:00
Martin Pulec
ef0a54f6f3 pam: add PAM_PITCH_CONTINUOUS placeholder for pitch
If the value of pitch is "default", it ti actually a bit tricky to set
the value explicitly.

Also the value was set incorrectly in HEAD^^ - pitch equals width only
for single channel + 8-bit.

added doxy
2025-07-31 08:26:36 +02:00
Martin Pulec
f2102361c4 pam: fix writing 3 channels 2025-07-30 15:30:47 +02:00
Martin Pulec
022942ae13 pam: sync with upstream changes
support for pitch (not used by UG)
2025-07-30 10:11:09 +02:00
Martin Pulec
2e39c4e512 jpeg_reader: fixed a typo 2025-07-21 14:45:36 +02:00
Martin Pulec
61261a39df create-appimage.sh: try curl prior to wget
In CI, the attempt to download mkappimage sometimes fail with some cryptic:
```
ERROR 403: Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature..
```
2025-07-17 15:32:31 +02:00
Martin Piatka
7b44acee22 tools/ipc_frame: Fix color_spec selection 2025-07-17 13:59:28 +02:00
Martin Piatka
3c0e7d5660 Makefile: Fix GUI build
Add missing $(srcdir)
2025-07-17 12:57:53 +02:00
Martin Pulec
36ab104675 CI macos-14: fix /usr/local/opt not being present 2025-07-15 09:52:27 +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
7c882baa98 lavc: add mapping VUYA<->AV_PIX_FMT_VUYX
should allow FF codecs with VUYX supported without conversion
2025-07-02 08:41:06 +02:00
Martin Pulec
5d5ebd6812 lavc VUYA compat
use already existing VUYX_PRESENT (VUYA was added by 6ab8a9d3 in Jul
2022 a month earlier than VUYX)
2025-07-01 09:02:59 +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
64a3e9f31d 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-06-26 14:06:57 +02:00
Martin Pulec
f660857e61 sdl3_mixer: improve the channel warn
- use LOG_LEVEL_WARNING
- reformulate the message a bit better
2025-06-26 11:22:19 +02:00
Martin Pulec
4820b4d2f8 vc_copylineVUYAtoRGB fix
BPP(RGB) = 3
2025-06-26 11:13:34 +02:00
Martin Pulec
7aa204d574 from_lavc_pf_priority: fine-grain selection
If there is no direct conversion from a AV PF compatible with internal
format, penalize a bit.

This may be mostly unneeded but just in case. It can be safely reverted,
anyways.
2025-06-26 11:13:34 +02:00
Martin Pulec
647d8627c4 from_lavc_pf_priority: get supported pf from convs
Assume that the output pixel format (ugc) is supported if there is at
least one conversion. This may not be optimal but it is just as it was
until now, we just remove the hard coded list.

Effectively this is just a refactor, except:
- VDEC_PRIO_NOT_PREFERRED now not returned if internal.rgb !=
codec_is_rgb(ugc) - doesn't seem relevant, because the codec is already
probed and ugc determined. So any alternative decompress will need to do
the conversion as well.
2025-06-26 11:13:34 +02:00
Martin Pulec
fcdb58e669 vdec/lavc: get_priority - delegate to from_lavc
Since the pixfmt conversion is responsibility of from_lavc conversion,
delegate the get_priority query there (after we know that we can decode
codec).
2025-06-26 11:13:34 +02:00
Martin Pulec
22ec0a903f sdl1: do not register q to keycontrol
In order not to be pressed by accident - other SW displays disable 'q'
as well.

Also, the call was incorrect - the message with the key would receive
root module because the first argument is the receiver of the key event,
which should be the sdl display mod. Also the events were not handled in
check_message event.
2025-06-26 11:13:06 +02:00
Martin Pulec
466de28481 audio_decodes: get correct ptr to control_socket
->priv_data now must be used (see also the commit ab5d2a5c from 2025-06-17)
2025-06-26 10:32:23 +02:00
Martin Pulec
86a53f9c1d pixfmt_conv: additional convs from YUVA 2025-06-25 14:09:26 +02:00
Martin Pulec
4fad1e7bad module: reference count modules in tree
- module is now removed when reach ref=0
- childer now hold reference to parent

As a consequence, if parent is (mistakenly) removed before child, the
poiner to it doesn't need to be erased, which is bug-prone (other thread
might have already retrieved the parent pointer).
2025-06-25 14:09:26 +02:00
Martin Pulec
c218188108 module: separate del_ref from module_done
now mostly the refactor but del_ref logic will be implemented later
2025-06-25 14:09:26 +02:00
Martin Pulec
90168ab5de module: add lock assumption to doxy 2025-06-25 14:09:26 +02:00
Martin Pulec
f6f313cdc9 module_mutex_lock: detect dead-locks 2025-06-25 14:09:22 +02:00
Martin Pulec
b9487faa3f add vc_copylineVUYAtoY416
This allows indirect conversion of 8-bit YUV 4:4:4 at least to Y416 for
displays that do not support VUYA directly over VUYA. Previously, due
to limited set of conversions from yuv444p and to Y416 it was UYVY, which
decimated the subsampling to 4:2:2.
2025-06-24 16:45:50 +02:00