At asymptotic, we are passionate about building high quality, reliable, useful software.
We love working close to the metal, solving complex problems, and building elegant and efficient systems.
If you think you might be able to use our help, get in touch at hello@asymptotic.io
Projects
Built and improved several backend media features for Daily's voice/video calling platform, including the recording and live streaming service, media ingestion, and real-time transcription.
Led a team that designed and built a smart audio platform for speakers, soundbars and AVRs. The platform uses PulseAudio and GStreamer, and leverages several hardware features for power-efficiency and high-quality audio.
Conducted training on PulseAudio and architecture review of next gen in-vehicle infotainment platform for MBition.
Integrated accelerated encode of 4K video for medical recording devices on Intel-based devices using GStreamer and the VA-API framework.
As part of Samsung Research America’s open source group, we built a synchronised streaming library and improved accelerated media support on Exynos SoC-based devices.
Corporate training on PulseAudio and GStreamer for teams building products based on the webOS platform.
Helped integrate the PulseAudio echo-canceller and quantify the efficacy of far-field performance for Soundwall's wall-mounted art speakers.
Improved the PulseAudio echo canceller to use recent webrtc.org audio processing features. Read more about this work here and here.
Helped with the open-sourcing of the OpenWebRTC stack, including general review and stabilisation, improvements to iOS/macOS support, and dynamic bitrate adaptation.
Designed and implemented a system for video capture and streaming using various depth-based cameras, with cloud-based ingestion and processing of the stream.
Open Source
Our customers have used our expertise to adapt the PulseAudio audio server to their needs on embedded systems in various form factors.
We have leveraged the flexibility of the GStreamer multimedia framework to build solutions spanning real time communications, computer vision, out of home media and much more.
We are involved in the PipeWire project, helping build the next generation audio stack for desktops, in-vehicle infotainment systems and other classes of devices.
Talks
A review of the clock rate matching problem, and exploration of how we solve this GStreamer and PipeWire.
About the challenges we faced while building real-time, low latency applications on Windows.
Explores the design and implementation of a new GStreamer convenience bin that generates HLS master playlists with variant streams and alternate renditions.
An overview of our work to add QUIC support in GStreamer, including RTP-over-QUIC (RoQ) and Media over QUIC (MoQ).
An overview of how we architected media services for Daily, a WebRTC-as-a-service provider, and some general learnings about building such systems.
An introduction on WHIP/WHEP protocols and how we implemented them in GStreamer using Rust.
An introduction to the work we did to bridge WebRTC calls with traditional SIP systems using GStreamer and SIP.js.
A summary of the work recently done to improve the state of Bluetooth in PulseAudio.
An introduction to the gst-sync-server library for building applications that perform synchronised playback over a network.
A summary of the on-going work in PulseAudio to add support for saving power by offloading decoding of audio to a DSP. This is based on the ALSA compress offload API.
A walk-through of common home media experience use-cases and how the GNOME desktop might be able to realise them.
An understanding of the GObject framework is critical for working with GStreamer and other GNOME-based projects. This talk is a deep-dive into how GObject works.
Event loops are a central part of applications, whether they are running on servers or phones or watches. This talk walks through how event loops work and how we might want to think about them for our programs.
Covering the various pieces in the GNOME stack, why they exist and what they do, and what a person wanting to write audio-related software might want to use.