The Kyber project provides multi-platform low-latency video and controls streaming. Watch this video presentation by j-b.
I developed initial prototypes for VLC low-latency and a Rust WASM client, then I designed and implemented the video and audio protocols (with and without forward error correction), libraries and abstractions over QUIC/WebTransport (among others).
C, Rust, WASM, QUIC, WebTransport, FFmpeg, VLC.
Everyone knows VLC.
I have merged hundreds of commits. Here are some of my contributions:
C, C++, OpenGL.
Rav1e is an AV1 encoder written in Rust, developed by Mozilla/Xiph.
I implemented tile-based encoding to enable parallel processing: article.
Rust, AV1.
I developed scrcpy, an open source application to mirror and control Android devices.
I keep developing and maintaining it. It has become quite popular (+100,000 stars on GitHub, ~10,000 downloads per day).
C, Java, Android, FFmpeg, SDL, libusb.
I developed gnirehtet, an open source tool that allows Android devices to use the internet connection of the computer they are connected to.
I first wrote it in Java, then rewrote it in Rust to get a native binary.
Java, Rust, Android.
For over 2 years, I worked on Genydeploy, first for its complete overhaul (v3), then for developing new features (scrcpy and gnirehtet have in fact been started as part as Genydeploy).
C++11, Qt5, Java, Android.
For Softbank Robotics (previously Aldebaran), I designed the first Android API of the Pepper robot.
I first implemented Java/JNI bindings to expose C++ promise/future from their libqi library. This part is open source : libqi-java.
I then developed a higher-level Android API that exposes the robot’s features.
C++, Java, JNI, Android, NDK, AOSP.
I worked on the development of a video system for Android set-top boxes.
I integrated LibVLC in an Android app to play UDP multicast video streams.
I also integrated a tool that enables the playback of UDP multicast video streams with the native Android video player: article.
C, Java, Android, NDK, AOSP, CyanogenMod, LibVLC.
For our foosball table at work, my colleagues developed an Android app that automatically counted the points (thanks to sensors connected to a Raspberry Pi).
I developed the video system to replay the goals.
I also wrote a (hacky) tool to delay the video stream by a few seconds:
article. This tool has since been packaged for Debian (delay
).
C, Java, Android, Bash.
Java, Android, C++.
Based on the Serval project, I developed an Android app to make Android devices communicate using an ad-hoc network (without any mobile or wifi networks):
I made contributions to the Serval project:
For the development of the walkie-talkie, I developed a simple audio mixing solution, of which I explain the principle in this article.
We also used AndroidAnnotations, where I made several contributions.
Java, C, Android, NDK.
When I first started with Android, I developed email and Twitter applications for the tablet integrated into the Renault Zoé car dashboard.
Java, Android.
I primarily worked on a 3-year project at Sanofi-Aventis to develop a Java/Flex application for molecule search.
Java EE, Adobe Flex, ActionScript.
See projects.
I like programming puzzles (1, 2, 3, 4, 5…) and surprising undefined behaviors.
Problems involving mathematics are the most interesting.
I’m less interested in developing user interfaces, and I’m not good at graphic design.
I use Linux (mainly Debian) on all my computers.
Here are relevant books I’ve read: