The double-brace initialization is need for now because of legacy C++
limitations that are fixed in more recent standard version, otherwise:
../../modules/audio_filter/spatializer/spatializer.cpp:132:1: error: too many initializers for ‘const std::array<{anonymous}::callback_s, 5>’
132 | };
| ^
Directly references the size of the array through ARRAY_SIZE() instead
of storing the computation of its size in a separate enum, so that the
loop iteration is more readable.
cf. 9c74061333
Furthermore, it is probed as an "audio resampler" but won't load if
`fmt_in.audio.i_rate == fmt_out.audio.i_rate` causing this module to be
never loaded.
"audio resampler" change the rate live.
"audio converter" convert the fixed samplerate.
This module should have been an "audio converter".
bandlimited.c:145:30: warning: dereferencing ‘void *’ pointer
bandlimited.c:145:30: error: request for member ‘i_buf_size’ in something not a structure or union
bandlimited.c:303:46: error: invalid application of ‘sizeof’ to incomplete type ‘struct filter_sys_t’
bandlimited.c:333:26: warning: dereferencing ‘void *’ pointer
bandlimited.c:333:26: error: request for member ‘p_buf’ in something not a structure or union
Down the line, we probably should not have one directory per ISA
extension. This replicates the model from the hw/*/ directory.
isa/ seems better than arch/ because:
- "Instruction Set Architecture" is more specific than "Architecture",
- it saves one character,
- no modules/ subdirectory starts with I yet (so this will not break
auto-completion habits).
This also moves non-NEON-specific files to isa/arm/.
per discussion in !90, these strings were considered "too technical"
and/or advanced to want translations for, at the risk of ending up with
poor translations.
it is hoped that by adding these comments, it will avoid such unwanted
translation being resubmitted by anyone later.
see e967f81f6a.
note, this does **not** affect cat-based module selection items
(of which there are just three in use by the core), since that
mechanism uses subcats not cats.
-1 was not in the choice list.
this adds the missing choice list entry corresponding to the default.
i've made a guess at the right label and explanation to use based upon
what seems to be happening with a -1 value in `stereo_to_mono()` and
from bits of git history relating to it.
The config "advanced" flag was unused and has been removed by
6a7a137f7b.
It has been removed from many add_*() macros, but not all. Remove it
from the remaining macros.
Instead of using a custom cfg with an extra "audio filter".
i_chan_mode is already used by "audio converter" for dolbystereo.
The spatialaudio "audio filter" is converted to an "audio converter".
Such type of modules are loaded automatically when a conversion is needed
(the chan_mode conversion). Since this module is now an "audio
converter", don't override in/out fmt, but test for in/out fmt
compatibility.
It's easier to find out who flushes filters and when.
It's also easier to reorder the code without having the Flush callback above a
lot of common code.
The di_flush call in MMAL passthrough mode was probably wrong.
Generate a simple operations structure for filters generating their own filter
callback via VIDEO_FILTER_WRAPPER().
The filter chain sets a mouse handler on video filters that don't have one,
just as before, by using a local version of the ops structure of the filter and
adding the local mouse callback.
Co-authored-by: Steve Lhomme <robux4@ycbcr.xyz>
there are no in-tree modules using this subcat that actually have any
options; this moves the few that do reference it (filter/mixer modules)
to audio-filter (making no difference since no options) and removes the
unneeded subcat.
note that in the previous commit I restored an add_subcategory() call for
it to the core option set, missing since 2005, to fix organisation of
any options that may be associated with it, but since no in-tree modules
actually place any options under it, it means that there's an empty page
for it in the preferences which isn't ideal, so here we just ditch it.
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>