[vlc-devel] my work queue overview

Lyndon Brown jnqnfe at gmail.com
Wed Oct 14 05:38:34 CEST 2020

I thought it might possibly be helpful to provide a brief summary of
what's waiting to be submitted in my work queue that we're chipping
away at.

First though a quick thanks to those putting in the effort to review
and merged a lot of what I've submitted so far recently. I certainly do
appreciate it, especially when I'm being a pain persisting in trying to
draw out clear conclusions in discussions. So, thanks!

I'll explain items in more detail when they're submitted; I'm not
expecting any comments, I'm just sharing the info. :)
I'll just cover the big highlights, not every commit.

Just before I get to the not-yet-submitted stuff, some of the already
submitted stuff is blocking further submissions due to clashes, in

 - The help output categorisation fix. (Blocks some of the following
items, never mind not-yet-submitted stuff).
 - The FLT_MIN fixes. (Blocks the CLI enhancements at least).
 - CLI enhancements.
 - Hidden option cat hack standardisation.
 - Fix for missing 'since' obsolete option tags and purging of obsolete
 - Some of the remaining documentation fixes perhaps.

It would be great if we can get this tackled soon since it's blocking

In rough order of presence in the big patch tree...
(Some things are easier than others to submit out of order)

Complete, awaiting submission: (waiting on above blockers)
 - Disabling of plugin descriptor 'set option cat/subcat' calls where
 - Reorganisation of plugin descriptors as first step to bringing
greater clarity, helping avoid mistakes, and actually fixing a lot of
very common mistakes.
 - Initial option string review, fixing common pointless duplication of
option strings.
 - Renaming of a common config struct and function for clarity.
 - Refactor of config item types, allowing expanded set and improving
clarity; followed by addition of a new type.
 - Addition of type strictness to plugin descriptor macros. I.e. using
an intermediate variable to enforce param type correctness. (I've got
an alternative exploring use of inline functions instead). (This does
not cover the callbacks yet).
 - The enum capability refactor, partially discussed a few weeks ago.
 - Adjustment of plugin descriptor handling to use errors rather than
assertions such that simple descriptor issues do not cause an assertion
 - Refactor and fixes/improvements to Qt advanced prefs tree
 - Addition of a new 'unique option checker' test to help assess
uniqueness of option names in the option set. (To possibly be expanded
upon later to help catch common option/plugin/module description
 - Work to have module queries target the specific capabilities they
are interested in.
 - Work to help retrieve a list of only modules with config options,
and to allow inclusion/filtering of private/obsolete options such that
they can be processed by some things that are interested in them.
 - Refactor of plugin descriptor param passing, to significantly reduce
the number of function calls involved.
 - Replacement of some use of "module" with "plugin" in appropriate
places to improve clarity / avoid confusion with the difference.
 - Refactor of option subcat handling to have categories automatically
determined from subcategories, followed by a purge of set_category().
 - Further work to allow filtering module finding to a particular
 - Further big refactor of Qt advanced prefs tree construction code to
drastically simplify it and fix additional problems.
 - Adjustment of Qt advanced prefs to make use of a 'preferred category
order' such that the order is more logical for better UX.
 - Enhancement of Qt advanced prefs to actually obey plugin descriptors
splitting options across different cats/subcats such that their options
actually appear in different logical parts of the tree, as per plugin
author's intentions and giving better UX.
 - Fixes for and refactoring of macosx prefs tree construction.
 - Merging of set_capability() and set_callbacks(), as a first step
towards type-strictness. (The remainder of this work is found below in
the 'incomplete' list).
 - Refactor of help output to use same cats/subcats as preferences. (I
was sceptical about this at first but I tried it and it work out great
IMO). We thus then ditch the add_category_hint() mess.
 - A further big option string enhancement around numeric form/scale
 - A fairly comprehensive set of fixes for missing option bounds
 - Big plugin descriptor string review.
 - Fixes for some very common plugin descriptor mistakes.
 - Some memory allocation corner case stability work.
 - A split up of vlc_common.h, moving the less common stuff to a new
vlc_utils.h. (Though I'm considering dropping it, we'll see).
 - Work to add add_submodule_named(), thus closing #19049.
 - Remodelling of --list-verbose, grouping by capability, making it
much more useful IMO and justifying the specific option compared to
hypothetical alternative of combination of `-v --list`.
 - Addition of fourcc config item type.
 - Qt widget fixes and such.
 - Addition of password visibility toggle for Qt prefs controls.
 - Fix for very annoying UX issue of Qt advanced prefs tree view being
reset in toggling between simple and advanced views.
 - Fixes for various missing plugin descriptor string translations.
 - Fixes for various bad option default values.
 - Addition of show/hide password toggle for password options in Qt.
 - Improvements to plugin cache save/load.
 - A couple of adjustments to var_OptionParse() to avoid the memmove
and a strdup.
 - Work finishing up last remaining lack of use of new capability enum
 - A whole bunch of Qt hotkey control bug fixes and enhancements.

Almost complete:
 - "Expert" Qt prefs view. (I'll explain later!). This was essentially
complete, with the only issue I think being hotkey option handling.
 - Work to adjust Qt prefs saving to not close the dialog, allowing for
an edit->save->edit->save->close type experience.
 - Work to improve config saving, involving re-use of existing item
pointers rather than doing a "find" for each item to store its value,
and to allow performing a single config lock/unlock rather than one per
 - A reference based config fetcher as an alternative to the copy one
for GUI use.

 - Big adjustment of plugin open/close callbacks to move away from the
generic vlc_object based model to capability specific function
interfaces, and type strict enforcement of callback setting through new
combined set_capability() and set_callback() macros and involving
capability enum. This was complete except for the one missing piece of
the module-load side of things, it just needs that missing piece to be
solved and to be rebased from 2019.
 - Switch to use of QKeySequenceEdit for Qt hotkey editing.
Unfortunately that Qt component is rather buggy, but yet the existing
solution is far from perfect also.
 - Work to synchronise changes to preferences across the two (now
three) preference interfaces, such that a change made in one is
reflected if you switch to another, and such that if you switch to
another and hit save, the changes made in the other views are not lost,
thus giving better UX.
 - Possible addition of option form/scale hinting for use in GUIs and
maybe help output, to improve UX/clarity, rather than relying upon
mentioning in labels.
 - Some memory allocation corner case security bolstering work.

More information about the vlc-devel mailing list