Fetching the latest programs, projects, and workspace data.
Find open source projects actively accepting contributors. Search repositories, filter by program milestones, difficulty tags, or tech stack.
Use our Orbit AI Matcher to find out! Get instant matching scores based on your developer skills, preferred frameworks, and contribution experience.
Convert your selected open-source project into a winning GSoC, LFX, or Outreachy application using Proposal Studio.
This project aims to enhance the user experience of the VLC application on iOS by improving playback controls and resolving persistent subtitle issues. It will implement intuitive dynamic-length seeking based on swipe distance, allow users to set a custom default playback speed, and fix critical subtitle bugs affecting size consistency, character rendering (e.g., Chinese), and display/selection accuracy. Furthermore, the project will introduce a dual subtitle display feature, particularly useful for language learners. The deliverables will be these functional improvements integrated into the VLC iOS app, including the dynamic seek, custom speed setting, resolved subtitle problems, and the new dual subtitle capability, accompanied by necessary testing and documentation.
<p>The Android Graphics Tools Team's GraphicsFuzz is a metamorphic testing framework for OpenGL and Vulkan graphics drivers. Among its tools are a shader generator, which mutates a shader program into variants that differ in machine code, but render a similar image to the original - and a shader reducer, which reduces shader code to focus on specific logic that a user is interested in. Used in tandem, these tools allow one to fuzz test shader compilers for flaws and easily reproduce them.</p> <p>The generator mutates a shader by performing "transformations" on the original code which complicate control/data flow. These transformations often make use of OpenGL's built-in functions and features to mutate expressions into equivalent forms.</p> <p>However, the generator and reducer are only aware of a subset of the OpenGL shader language, and do not support all of OpenGL's built-in math and transformation functions. This reduces the number of potential mutations and ultimately hampers GraphicsFuzz's capability of finding edge cases.</p> <p>This project aims to enhance GraphicsFuzz's support for OpenGL semantics and extend its capabilities with new transformations, then apply them to open-source drivers.</p>
<p>The goal of this project is to bring the macOS interface of VLC Media Player to an easier to maintain state and improve the overall design of it, to fit better into recent macOS versions.</p>
The project aims to enhance VLC by introducing support for WebAssembly (Wasm) plugins, paving the way for a potential replacement of the current Lua scripting functionality in the future. This endeavour involves the development of a Wasm Plugin Manager within VLC, allowing for the utilisation of plugins written in various languages that support Wasm compilation. By introducing this feature, VLC users will have the flexibility to create plugins in their preferred programming languages, streamlining the plugin development process and expanding VLC's capabilities. While the Lua scripting system will remain in place for now, this project lays the groundwork for a potential transition to Wasm-based plugins in the future, offering users even more options for customization and extension of VLC's functionality.
VLC is a powerful and feature-rich media player, but its current UI can feel outdated and less intuitive—especially for newer users. This project aims to make a redesign of the user interface of VLC Media Player using Qt and Qt QML by enhancing both the visual consistency and performance of the application. From my own use of the software and from reading community feature requests, I will implement thoughtful Quality of Life features, some of which are also inspired from my own presentation software project with Qt.
<p>VLC wants to access cloud services using a library libcloudstorage that is not integrated anywhere in libVLC. This integration will allow it to be used later in the respective internal modules, like Media Library.</p> <p>The user is going to be able to access any media directly from most of the cloud services (as long as it is supposed by libcloudstorage) and reproduce it using VLC.</p>
<p>The VideoLAN organisation has transformed the digital audio and media space since its inception over 10 years ago. The ease of use of its forerunning product, VLC Media Player, has made it the number one choice for millions of users around the world for viewing and interacting with media. Yet, despite this VLC Media Player’s design is relatively outdated. Features should be readily obvious to users, not hidden in multiple menus so that they can be accessed quickly and easily.</p> <p>As an avid VLC Media Player fan, this forms the motivation behind my proposal. I propose to update VLC Media Player by leveraging Qt/QML to design a more modern and elegant interface. Specifically, I plan to redesign and implement a new welcome screen which is visible upon first opening of VLC Media Player. This includes the relevant Privacy and Metadata Consent passages for users as well as the ability to alter some commonly changed settings through an easily accessible modal.</p>
<p>In this project, I will study WebGPU, the upcoming standard for exposing the capabilities of the GPU hardware in web browsers, and its shading language WGSL. I will then try to test WGSL, by using a mutation based approach. Designing custom mutators can be done by either using the bijection between SPIR-V and WGSL and the existing spirv-fuzz tools, or by studying WGSL in isolation and generating new LibFuzzer custom mutators that operate on WGSL directly or in the output generated by Tint, which is a compiler for WGSL.</p>
This project aims to expand the Qt Integration Tests by adding tests for Keyboard navigation, playback controls, playlist management, and other UI elements. Improve CI integration in Linux for better stability, and explore running the tests on Windows for VLC 3.
<p>With VLC’s version 3.0, a major feature is the renderer API.This api makes it possible to create modules such as the new chromecast module that allows a user to cast arbitrary media to a chromecast enabled device. There is a clear use-case for the same functionality for the AirPlay and ROAP protocols.</p>
As part of Google Summer of Code 2025 with VideoLAN, this project focused on integrating advanced audio features into VLC to significantly improve the user listening experience. To address inconsistent volume levels in media, I implemented a Dynamic Audio Normalizer by integrating FFmpeg's dynaudnorm filter, which intelligently balances quiet and loud sounds in real-time. To make VLC's powerful reverb effect more accessible, I also developed a user-friendly preset system for the Audio Spatializer. This feature replaces five complex sliders with a simple dropdown menu of common acoustic environments like "Auditorium" and "Great Hall," making a powerful tool easy for all users while retaining manual control for experts.
<p>Shaka Streamer is a tool that simplifies media transcoding and packaging by utilizing FFmpeg and Shaka Packager and managing the command line arguments that should be fed to them using simple and reusable configuration files.</p> <h3>The two features concerning this project:</h3> <ul> <li>Adding a <strong><code>PeriodConcat</code></strong> node that will make Shaka Streamer capable of producing multi-period DASH manifests using the single-period manifests outputted by Shaka Packager(which yet doesn't support multi-period DASH). A workaround can be done for HLS since it doesn't support periods, by using <strong><code>#EXT-X-DISCONTINUITY</code></strong> tag as a separator between different periods.</li> <li>Bundling hermetic copies of FFmpeg and Shaka Packager and allowing the user to specify whether Shaka Streamer should use the hermetic versions or the system-wide versions instead.</li> </ul>
The VLC interface is quite outdated on Linux and Windows. It has a lot of features, but some are not properly exposed. The new interface is available on master branch which is not yet released on Windows and Linux. I had conversations with Pierre over emails regarding the expectations and immediate concerns that need to be addressed and I have based this proposal on those 2 main concerns: 1) Homepage 2) Sidebar Navigation
<p>VLC is the most widely used media-player. It supports wide-range of media formats, both audio and video. For macOS, the UI is outdated, and needs a bit of redesign. This project aims to modernize VLC’s UI and give it a similar feel to the UI on iOS/tvOS.</p>
<p>Currently VLC is built using the autotools build system, which is hard to write, extend and maintain. Therefore the goal of this project is to port VLCs build system over to the relatively new but promising meson build system. This offers more flexibility and backend choices, a powerful module extension system and WrapDB for dependency management, especially useful for larger projects like VLC with a lot of dependencies.</p>
<p>This project aims to contribute to the stability of Android port of VLC, by writing test suites for the VLC android codebase, along with libVLC and medialibrary. This will ensure that the regressions are caught by developers at an early stage and the released application stays stable.</p> <ul> <li>Write test suites around libVLC, medialibrary and the main android codebase, so that the core framework stays stable.</li> <li>Write instrumentation tests for the application’s interface to ensure the correct behaviours of UI views.</li> <li>Aim to maximise test coverage of codebase.</li> <li>Run the written tests at least once per day on the Gitlab CI/CD.</li> </ul>
<p>In order to build Redox on Redox, Rustc has to be ported, along with Cargo, and any dependencies (such as LLVM). Additionally, the build process currently requires make and a Bourne-compatible shell, which will have to be ported, or a way to build without them provided.</p> <p>LLVM seems to assume it is running under Windows or Unix. So the code in lib/Support/Unix and lib/Support/Windows likely needs to be reimplemented for Redox.</p>
VLC contains hand-written SSE2/SSSE3 assembly for performance-critical paths but has no automated correctness testing for them. This project integrates the checkasm framework into VLC's Meson build and CI pipeline, adds test coverage for all existing assembly routines, and implements new SIMD kernels for audio/video format conversions — with initial RISC-V vector groundwork.
<p>For a seamless blending of tracks it is required not only aligned beats and downbeats, but also that the phrases are matched. Currently, Mixxx can only help with matching the beats. This project aims to fix that by providing the tools to automatically detect downbeats and phrases, store this information and show it in a helpful way for the DJ.</p>
<p>There are moves through which a DJ expresses himself - and there are many other, sometimes tedious tasks that need to be done as groundwork. Instead of having to juggle beatmatching, effects, cues and sliders all at once, a DJ should be able to rely on his tools so he can focus on what really matters. For some, beatmatching and syncing two tracks is an art in itself - for others, including me, it is something happily delegated to the software - that is why there is a sync function.</p> <p>But sometimes, more sophisticated automation can be helpful - maybe you want to skip a breakdown, shuffle around verses, loop an intro a specific way or deliberately repeat certain parts. Handling that while messing with effects and getting the next track ready can be tricky, so that is where Mixxx Macros will come in handy. Basically, they will allow you to record specific moves while playing a track and store them, so that they can later be utilised again.</p>
Video frame interpolation (VFI) refers to the process of increasing the framerate or frames-per-second (FPS) of digital media beyond the initial framerate that is explicitly available (e.g., interpolating 24fps video to 60fps video), and is desirable to be done in real-time using GPU-accelerated algorithms to allow for use in media players such as VLC Media Player. This technique is not available to a broad audience through open source software, with implementations either being proprietary, unsuitable for real-time use, or unsuitable for use in a media player setting. We will solve this problem in libplacebo, VideoLAN's GPU-accelerated video processing library, by implementing a motion compensation-based VFI algorithm, a class of VFI algorithms well suited for real-time performance. This algorithm will require two stages: motion estimation (predicting the motion of pixels from one frame to the next), and motion interpolation (using motion estimates to estimate an intermediate frame between the two). This algorithm will be robust to common VFI challenges, using an image pyramid for large motion handling, and bidirectional motion estimation for occlusion handling. We will clearly document VFI in libplacebo to enable easy integration into software projects, such as media players. We will document the performance, the speed and accuracy of our VFI implementation, using common benchmarks from literature such as Adobe240FPS, or the Xiph dataset, using metrics such as SSIM as well as visually identifying artifacts, to better understand the computational efficiency of our algorithm (performance on 1080p vs 4k resolution, performance when interpolating multiple frames 24->120fps) and accuracy under varying input (large motion caused by high resolution).