[VDD 2023] Technical Discussions summary
RGB Mask
- the idea is to replace masks with "non masked" formats
- 8bit masks are removed, remains <8bit RGB masks
- still remains the little endian/big endian question, for 15b and 16b
- no risk to use RGBA when we used RGB before
We agree to remove RGB masks.
For AVI, treat it a little endian.
OpenGL
- Will have to fix the execution context on best effort (solution not ideal right now). Move opengl rendering to dedicated threads, already agreed on MR.
- Android already using OpenGL for subtitle with/without MediaCodec direct rendering (so, faster, but:)
- Scaling subtitles to be merged: https://code.videolan.org/alexandre-janniaux/vlc/-/commits/spu-rework/1/ waiting for Subtitles in Black bars to be merged first, see next:
Subtitles in Black Bars
- one of the key problem is to determine which old SPU generator is supposed to be placed in video referential or display referential
- the codec should define the default referential to be used.
- it should be set per spu region.
- other issue: we still have to agree on how to tell the vout to refresh a "bigger" part of it than before. update_format does not seem to be ok.
- we will not manage steam output for now.
New Apple vout AvSampleDisplayBufferLayerScreenVideoStuffRendering
- Implemented, working and faster with CVPX and subtitles
- PIP to be added
- No subtitles in PIP, or maybe using a CIFilter to blend them (need to be tested)
Qt6
- Qt6 remove ANGLE dependency (that's great), composition is far better, etc.
- but requires C++17 for QT compilation
- We think it's fine to switch to c++17 for the Qt module
- gcc9 and clang5 required for Qt
- It will be a pain to support QT6 and QT5 at the same time (especially for QML)
- QT6 Tests on Windows7 seems ok, so it should be ok to switch for all windows versions. More tests needed ?
- We may need to support both since Linux distribs will stay to Qt5 for some time (at least for now).
Side bar / New design
- retex of beta testers: people get confused at the top two bars
- this is more complicated to have consistent UX for classic/legacy and modern modes
- Playlist view too far from VLC 3.0 view
Proposition: put top menu on the left (which will mimic the old VLC3 playlist view)
Issues:
-
is the side bar can be "icon mode" only (thin view), or is it hidden completely when collapsed ?
- a large majority of the audience is for tabs and collapse (minimal icon) view
-
this looks like a lot like windows media player
-
where to we put the VLC logo ? Other proposition: on the home view, at the top of it, add: branding + quick actions, then "recent" row after that.
-
is the menubar shown by default ? UI features that should be added for 4.0:
-
open a video in a separate window
-
overlay mode VS bottom controls
-
in simple preferences. a lot will be removed
RTP Split
- there should be no namespace issue, so symbol conflicts should not happen
- redefine-syms to modify on Android
Icy
- basically no issue anymore, but we have to develop new code based on the http module to handle ICY specificities.
Click to pause
- if there is an UI, the UI catches the click event and send it to video window
- if none, the vout catches the click event and send it to the video window
- maybe we should not care about gestures
What is VLM ?
- VLM was broken in 4.0 with all the changes in both player and stream output
- We still have to maintain because a lot of users still uses it
- @asenat has started to look at it, and fix the regressions
- there is still some work to be done, but for the "common" cases, this should be fine.
mDNS
- exposing web interface through mDNS ?
- this implies a lot of security issues, and with the capabilities of the current web interface, this could be a no-go.
- QRCode for sharing secrets is cool, but only for a non-browser client scenario
- self-signed certificates is the same (ok for app to app, but not browser to app).
- we could have two different HTTP interfaces, one only for browser control (with limited capabilities), and one with higher privileges in https/self-signed/additional authentication, designed for app clients (or users who will accept https one way or another).
Meson status
- gettext: is the last "big" topic to include in meson because VLC tree has some weird specificities.
- this will need to make some changes in meson, and this is not simple
- after that, apart from a small amount of uncommon modules.