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.
Currently the wasm-emscripten port of VLC (Vlc.js) does not support compilation with shared module. This project enables shared module loading for vlc.js, while finding and mitigating the limitations from underlying tools like Emscripten, Libtool and VLC itself to achieve it.
<p><a href="https://github.com/KhronosGroup/SPIRV-Tools" target="_blank">SPIRV-Tools</a> is a collection of tools to work on <em>SPIR-V</em> modules. One of these tools is <em>spirv-fuzz</em>. It applies <em>semantics-preserving transformations</em> to a <em>SPIR-V</em> module, that we call the <em>reference</em> module, to obtain a modified <em>variant</em> module. Theoretically, a <em>semantics-preserving transformation</em> should not change the behaviour of the code. In this way, the <em>reference</em> and <em>variant</em> modules can be run, and the outputs compared. The output is usually an image. If the images differ, this probably indicates a shader compiler bug. This is a specialised form of <em>fuzzing</em> that uses a technique called <em>metamorphic testing</em>.</p> <p>This project involved using the metamorphic testing approach to extend <em>spirv-fuzz</em> by adding new transformations to cover instructions and patterns of <em>SPIR-V</em> that were not previously covered by existing <em>spirv-fuzz</em> transformations. Also, the project used tools such as <a href="https://github.com/ChrisLidbury/CLSmith" target="_blank">CLSmith</a> and <a href="https://github.com/google/clspv" target="_blank">clspv</a> to improve <em>spirv-fuzz</em>.</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.
The VLC interface is quite outdated on Linux and Windows. It has a lot of features, but some are not properly exposed. Scope of the tasks to do: Use the new designs shared on the mailing list, and help developping part of those, using Qml. This new interface is simpler, more user friendly, and has a better "media center" feel into it. It requires integration with the media library and with the current interface. Qml is the technology needed to improve the current UI.
<p>Extracting metadata from AV1 videos is very useful for codec research. This metadata can be used to create a video analyzer, analyze coding performance of a video, encoder development and many other purposes. While there is a way to extract metadata by using the reference decoder, libaom, the extraction of sophisticated metadata is lacking.</p> <p>This project succeeded in adding additional metadata extraction APIs to libaom and visualizations of AV1 bitstream features in the AOMAnalyzer. The features added involved analyzing compound prediction types, motion modes and a full-featured debugging tool for analyzing and visualizing film grain, a coding tool unique to AV1.</p> <p>This project culminated with a presentation to the AOMedia working group. These industry professionals are the core developers who were responsible for the development, testing and standardization of the new AV1 video format. A highlight of my GSoC experience was getting feedback directly from the authors of the coding tools I worked to visualize.</p>
<p>The objective of this project would be to write Vulkan Apps that demonstrate some part/combination of the Vulkan API that is not already covered by the Sascha-Willems Demos, the Khronos Samples, the Google Test Apps or the Imagination demos.</p>
After video decoding in VLC it might be that the user wants to use a specific filter like deinterlace and/or adjust and/or other filters that run on the GPU before the frame gets displayed. Vulkan branch now misses filters support and many GPU-accelerated filters in VLC that some of them currently existed in OpenGL pipeline (deinterlace) not yet available for the Vulkan pipeline. And other filters are not implemented in Vulkan and OpenGL (adjust). This project will introduce the Vulkan-based filtering abstraction and implement some filters such as deinterlace and adjust-style filters (brightness, contrast, saturation, gamma) using Vulkan shaders.
This proposal aims to improve the developer experience of using VLC in Unity. Right now, developers have to write extra boilerplate code and use raw strings just to play a video and configure settings instead of using standard Unity tools. I plan to change this manual setup into a simple plug and play experience. To achieve this, I will integrate standard Unity features like the Package Manager and ScriptableObjects for visual menus. I will also add useful features like video preloading, a playlist API, unified logging, and better demo scenes. Overall, this proposal aims to make the plugin much easier to use and reduce setup errors, which will encourage more developers to choose VLC for their projects.
Add FFmpeg audio filters to VLC. This will be achieved by adding wrappers for FFmpeg audio filters. Basically, each wrapper will act as an audio filter module in VLC. Adjust audio parameters dynamically using GUI . Add libvlc entry points for some of the audio filters.
Currently, Mixxx uses PortAudio as a high level abstraction over audio APIs across all supported platforms, which only exposes the common subset of all those APIs, missing Linux specific features and conventions. This implementation will add Pipewire audio API support to Mixxx for Linux, listen for PipeWire events to support soundcard hotplug and update routing UI according to changes made in an external patchbay. It will also allow Mixxx to route audio to and from any source/sink. This proposal also attempts to achieve ALSA comparable latency with the PipeWire backend.
<p>This project aims at integrating a JavaScript engine into VLC to enable extensions development and scripting support inside VLC in JS. This project should replace the already existing Lua engine.</p>
This project completes VLC netsync and then enables fully Rust-written VLC modules by introducing Rust bindings for the vlc_player API. The work is carried out in three stages: first, rebasing and restoring the existing Player Clock API and netsync implementation on current VLC master; second, developing a new vlcrs-player binding crate with safe Rust abstractions over vlc_player.h; and third, rewriting the netsync module entirely in Rust. The final deliverables include a restored netsync implementation, a reusable Rust player binding crate, and a pure-Rust VLC module that serves as a reference for future development.
This project aims to optimize the open-source AV1 decoder, dav1d, for the RISC-V Vector (RVV) ISA by implementing Vector-Length Agnostic (VLA) intrinsics. The focus is on improving AV1 decoding performance across various resolutions and bit depths through dynamic vector-length handling, with benchmarking on real hardware like the Kendryte K230 (VLEN = 128 bits), the SpacemiT K1 (VLEN = 256 bit) and comparisons against ARM NEON using built-in dav1d tooling such as checkasm for detailed analysis.
<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>
The aim of this project is to provide an API in libVLC so users can embed the media player in their programs. Although there’s already a support for x11 and Windows API, wayland doesn’t work in the same way. In this project, I implemented a native wayland back-end enabling integration of VLC’s rendering capabilities into wayland-based applications. I wrote a simple demo that explains how this backend can be used and tested it on different wayland compositors.
The goal of this project is to make cloud storage services (like Dropbox and Google Drive) easily accessible from the VLC media player. The primary deliverables will be: 1. Reviving and Updating libcloudstorage: update the existing libcloudstorage library (which provides standardized cloud storage access) to ensure compatibility with current cloud provider APIs and best practices. 2. VLC Integration: Port libcloudstorage to the VLC desktop application so users can browse, play, and edit cloud-stored media files just as they would with local files. 3. Testing and Sample Use Cases: develop automated test suites and sample scenarios to verify integration and demonstrate functionality. This project will make VLC more accessible in cloud workflows and give users better access to media hosted across multiple platforms
The goal of this project is to bring VLC’s media playing capabilities to watchOS using the newly added support from VLCKit. The watchOS app will be able to play audio files locally as a standalone app as well as sync with the iOS app to act as a remote for controlling audio playback.
<p>This project will provide initial infrastructure to make dav1d capable of offloading some work to the GPU using shaders and APIs such as OpenGL, Vulkan, Metal and DirectX. I will write a shader for at least one of the decoding stages (more if time permits).</p>
<p>I want VLC to have the ability to subtitle in real-time, obviously without having subtitles available. I would therefore like to implement a Machine Learning model that can generate subtitles in real time, at least for the English language. The idea is to use a deep neural network but I am open to other alternatives.</p>
<p>Through refactoring the rendering, workflow and UI classes, we will have a better structure of the software, which will make easier to implement a sandboxed rendering engine and a remote UI. The sandboxed rendering engine will help reduce the risk of crashing the main UI process of VLMC. And being able to create a remote UI will give us many options of UI forms such as a web application and QML.</p>
This project aims to address the limitations of the current C-based development of the open-source VideoLAN Client (VLC) media player in terms of maintainability, safety, and security. Specifically, the project focuses on porting the playlist module under the "demux" modules of VLC into Rust, a systems programming language that offers high efficiency, safety, and memory safety. The main aim is to provide a safe Rust implementation of the playlist module that can serve as a reference for other modules and projects along with setting up the necessary VLC core features in Rust required to implement VLC Rust modules.
<p>Project Description: The VLC interface is quite outdated on macOS.</p> <p>This project for the summer is to rework heavily this interface to make it beautiful and useful again.</p> <p>Scope of the tasks to do: The idea is to get closer to what the Apple TV/iOS interface looks like (search on google image to get an idea), but other ideas are welcome.</p> <p>The iOS/AppleTV interface is simpler, more user friendly, and has a better "media center" feel into it.</p> <p>It would require integration with the media library and with the current interface.</p> <p>Starting from the current UI is a requirement.</p> <p>Requirements: This project requires Obj-C knowledge.</p> <p>Proposed mentor: David Fuhrmann, Felix Paul Kühne</p> <p>[from <a href="https://wiki.videolan.org/SoC_2018/" target="_blank">https://wiki.videolan.org/SoC_2018/</a> ]</p>
<p>The project deals with analysing the implemented C functions and then implementing their corresponding assembly function using NEON registers and advanced SIMD (co-processor 10,11) instructions which will enhance the efficiency and makes dav1d more faster. There’s also performance testing is involved after the assembly function is implemented by using performance counters, for improving production quality of dav1d across ARMv8 and ARMv7 devices. Currently project is being tested and analysed on Raspberry Pi 3 model B which has BCM2837 quad-core ARM Cortex A53 (ARMv8) cluster.</p>
<p>Add lock button, Equalizer UI, Track management, Next & Previous button MediaElement, extend gesture support, Add docs on how to custom style/bind the LibVLCSharp.Forms MediaElement</p>