[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
- clock-start branch (@tguillem and @alexandre-janniaux)
- any sample with audio timestamps (or rate) wrong are glitching, notably for old codecs
- waiting issue and samples from @fcartegnie
Frame-previous
- @tguillem has some kinda working branch, he should propose it to be merged. AND BE PRAGMATIC
MP4 seeking too much regression
- #29426
- #28966
- @DoctorWho will test on samba / http shares and provide samples
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)
- Needs rebase and buildsystem (@gabriel_lt)
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
- which Xcode version we use ?
- @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