Skip to content

[VDD 2025] Technical Discussions summary

VLC4

libVLC API rework

  • no blocker, everyone agrees on what needs to be done (@deyayush6).
  • need to sync wrappers (libvlcpp, etc..)

Core Regressions & Changes

Clock core

Frame-previous

  • @tguillem has some kinda working branch, he should propose it to be merged. AND BE PRAGMATIC

MP4 seeking too much regression

SPU regression issues

  • Master issue: #28908
  • Subtitle perf scaling improvement MR need to be rebased and merged (@alexandre-janniaux ?)
    • Check the 4K problem with derek file (@jbk need to provide one)

Packaging

Remove ActiveX

  • NPAPI has been removed, can we remove also ActiveX ? 👍
  • ActriveX is now considered as UNMAINTAINED
  • The code will be kept on master, but it will be removed from the CI (@robUx4)

Features

Preparser process (almost merged, no blocker)

whisper/STT

  • external process in progress
  • after the external process is merged, we can ship what is working right now (simple solution) (@gabriel_lt)
  • Even if not perfect, need to be sure core changes don't introduce regressions (@tguillem)

IAMF

  • detect IAMF track in mp4 => fallback to avformat
  • FFmpeg headers to vlc_iamf.h
  • ES calling ES recursively ?
  • Master ES with all sub ES in extradata ? Use json serializer from Preparser ? => No core changes
  • @tguillem and @ePirat

click to pause

  • #29240
    • A group that wants precise pause. (Already handled !7208 (merged) (merged))
    • A group that does not care about the 300ms delay, however does not want fullscreen-toggle lag.
    • A group that uses click to pause so rapidly that fullscreen toggle might annoy them.
  • => The window provider handle the click forward whether it has focus or not
  • Option to disable
  • @deyayush6: could you work on it after libvlc 4 API ?

Unsecure network auth (libdsm)

  • Downgrade attack smb2 -> smb
  • add a dialog warning YES/no/don't care when logging to smb1. (@tguillem)
  • Switch to smb2 by default on all ports (-> @Aza , @fkuehne )

VLC release process

  • macOS release built from CI
  • Windows signature process
    • the main issue right now is the person signing the binaries and packages doesn't have a lot of time
    • we also need to have the signing script to be more flexible
  • MSI signing
    • this is 100% related to the signing script flexibility
    • as soon as the person(s) able to sign have more time, we can fix this pretty quickly (3.0.22 stable).

Windows update process

  • If we want to handle updates properly on Windows, we will need at some point: OS (precise) version, GPU information , CPU arch, CPU extensions
  • any user profile related info CANNOT be sent to the server (locales, user personal info, etc.)
  • any hardware or pure-system related info can be used, AS LONG AS we inform the user (for example during the install/reinstall/update wizard).
  • Agreed on doing the update selection process at the server side with the hardware information (so a very simple process on VLC side sending info, and getting the proper update manifest from the server.
  • @Garf on it

Gitlab

  • Add a tag to differentiate between pending backports and backported Merge Requests
  • contrib tarballs caching

Medialibrary preview:

  • Preview implementation (cf. https://code.videolan.org/videolan/medialibrary/-/issues/493))
  • POC, but not mandatory for VLC 4.0 (Gabriel and Francois)
  • The medialib already has a way to manage metadata, but the issue is how to publish the preview picture AND the timestamp/crop metadata externally (ie. having users a way to generate that outside of VLC)
  • As adaptive already has some standard for that, we should try to:
    • get some extreme simplified version of the format metadata (manifest?)
    • have a dedicated module/submodule from the adaptive access/demux
    • use the module as an input slave for the player to use the info.
  • It doesn't seem a good idea to enable that at real time (during the playback) given the potential hardware limitations of the VLC host.
  • Having a way to properly inject this information in a format like MKV (the standard way) could be valuable. #29393
  • Whether the preparser/medialib will trigger the previewer in batch will be decided by every application port (desktop, android, iOS, etc.)
  • Depending where the medialibrary stores the previews, a new api may be needed for the ports to manage this cache.
    This cache management could be merged with the cache generated by the download API (basically for podcasts)
  • @gabriel_lt and @fcartegnie on it

macOS

  • Remove growl in 3.0 ? (at least on arm64) 👍 #29432 (closed)
    • Keep it for intel
  • Sparkle version in 4.0
    • keep it
  • update CI machines (use macOS 26 VMs ?)
    • which Xcode version we use ?
      • For intel: use latest xcode version compatible
      • For arm: use latest code version to have up to date UI
    • we need to select xcode from the job tag (There seems to have some environment variable for the xcode selection)
    • we need to have multiple versions of XCode on the existing CI machines
  • @robUx4 and @fkuehne on it

LLM/AI USAGE

  • Say no but VLC developers with commits access can use it
  • They need to understand and review it
  • Copy QEMU AI rule ?
  • @tguillem on it

Youtube

  • remove in lua 3.0 as it can't work (no js) !7984
  • use yt-dlp executable (vlc 4 code up to be published) (@Courmisch on it)
  • NewPipe from vlc-android ?
    • VLC android will not embed NewPipe.
    • There should be no direct link between VLC and NewPipe

System testing and CI

  • work from @wlalaoui, whether and how we are going to integrate this in the CI
  • run it if qt folder is modified
  • one requirement is having a Windows CI machine (@robUx4 ?)

How to integrate Coverity CI job

  • Closed source: does not belong on VideoLAN
  • need to be run manually

RISC-V

  • TBA
Edited by Steve Lhomme
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information