Skip to content

[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.

4.0 Milestone (unaddressed)

LibVLC 4.0 new API (unaddressed)

Master Clock input (unaddressed)

Edited by Thomas Guillem
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information