The name default.sf3 is no longer required, the soundfont name is resolved
directly so use the original name. It is TimGM6mb derivative with just
piano downloaded from:
<https://musical-artifacts.com/artifacts/2642>
This simplifies things a bit at the expense that the soundfont is always
included/installed (91 kB).
Added get_data_path() function for generic handling the path to common
data (eg. /usr/local/share/ultragrid if installed). The idea is to catch
all cases - installed (run with absolute or relative path) or run from
inside the source directory in one place.
A common way would be to use generic FPS indicator. But a slight problem
is that _putf return value isn't entirely reliable for this module,
since the frame may be dropped later doe to insufficient performance.
Because of the above, do not use the generic indicator, at least
for now. But use the common function to make the output "prettier"
(bold/color and if not performing well also use a color for FPS).
Add MODULE_FLAG_ALIAS (+ complete API) for modules that are not hidden
as technical/deprecated moudles but rather an alias.
The difference is important for GUI not to print aliased module twice.
Unpin SDL version 2 - SDL 3 can be now considered idempotent.
Issues mentioned in sdl3:
- sdl_mixer -> replaced with fluidsynth
- Vulkan issues - Vulkan is currently (SDL 3.20) not implicit in either
of platforms; if so, trigger a warning. Also it is unavailable in SDL2.
- p010 corruption in Direct3D 11 or 12 - there is already a workaround
to disable
To replace sdl3_mixer that does no longer support MIDI playback, thus
unusable for our use case.
- song1 needs to be static included potentially from 2 compilation units -
this and sdl_mixer
- rename some symbols (state bs->bt), callbacks prefix with libbt
- assemble the line with strappend-like functions and write() just the
result
- flush the output after backtrace_symbols_fd() in case that the later
calls fail to have at least something output
- write_number->append_number for point 2 + tid write
crashes since the commit ab5d2a5ca (2025-06-17)
That commit started to enforce existence of control socket, which is
not true in case of the reflector.
fixes ab5d2a5ca
closes GH-461
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).
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)
- 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).
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)!
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
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.