RSSAmplifier

Blog

Nirbheek’s Rantings

blog.nirbheek.inRSS feed ↗25 posts

Latest posts

Incredible. Every Single Take on AI is Wrong.

For the past 6 months, I've been reading on-and-off the flurry of blog posts and articles written by very experienced software developers on AI, and the overwhelming feeling I get is, that they are all wrong . I don't have the inclination to write a treatise countering all the things people are saying, but I do have three articles for which I want to simply document agree/disagree on the various…

An Esoteric Type of Memory "Leak"

A little while ago, my colleague Sebastian started complaining about OOMs caused by Evolution taking up tens of gigabytes of memory. We discussed using sysprof to debug it, but it was too busy a time for Sebastian to set aside a few hours to do that. Funnily enough, the most efficient fix at the time was to buy more RAM, since rust-analyzer was also causing OOM issues. A few weeks went by.…

A strange game. The only winning move is not to play.

That's a reference to the 1983 film “WarGames”. A film that has had incredible influence on not just the social milieu, but also cyber security and defence. It has a lot of lessons that need re-learning every couple of generations, and I think the time for that has come again. Human beings are very interesting creatures. Tribalism and warfare are wired in our minds in such a visceral way, that we…

The Substance

I have many thoughts about this film, and I don't really have the time to put it all together into one coherent whole, but an incoherent whole is also what the film also gave us, so I don't mind mirroring it. This film is three movies in a trench coat—one per act. The First Act The first act was about beauty standards. The entertainment industry. The youth-consuming machine. The brutality of every…

What is WebRTC? Why does it need ‘Signalling’?

If you’re new to WebRTC, you must’ve heard that it’s a way to do video calls in your browser without needing to install an app. It’s pretty great! However, it uses a bunch of really arcane terminology because it builds upon older technologies such as RTP, RTCP, SDP, ICE, STUN, etc. To understand what WebRTC Signalling is, you must first understand these foundational technologies. Readers who are…

Building GStreamer on Windows the Correct Way

For the past 4 years, Tim and I have spent thousands of hours on better Windows support for GStreamer. Starting in May 2016 when I first wrote about this and then with the first draft of the work before it was revised, updated, and upstreamed. Since then, we've worked tirelessly to improve Windows support in GStreamer with patches to many projects such as the Meson build system , GStreamer's…

GStreamer 1.18 supports the Universal Windows Platform

tl;dr: The GStreamer 1.18 release ships with UWP support out of the box, with official GStreamer binary releases for it. Try out the 1.17.90 pre-release 1.18.0 release and let us know how it goes! There's also an example gstreamer app for UWP that showcases OpenGL support (via ANGLE), audio/video capture, hardware codecs, and WebRTC. Short History Lesson Last year at the GStreamer Conference in…

GStreamer's Meson and Visual Studio Journey

Almost 3 years ago, I wrote about how we at Centricular had been working on an experimental port of GStreamer from Autotools to the Meson build system for faster builds on all platforms, and to allow building with Visual Studio on Windows. At the time, the response was mixed, and for good reason—Meson was a very new build system, and it needed to work well on all the targets that GStreamer…

A simple method of measuring audio latency

In my previous blog post , I talked about how I improved the latency of GStreamer's default audio capture and render elements on Windows. An important part of any such work is a way to accurately measure the latencies in your audio path. Ideally, one would use a mechanism that can track your buffers and give you a detailed breakdown of how much latency each component of your system adds. For…

Low-latency audio on Windows with GStreamer

Digital audio is so ubiquitous that we rarely stop to think or wonder how the gears turn underneath our all-pervasive apps for entertainment. Today we'll look at one specific piece of the machinery: latency. Let's say you're making a video of someone's birthday party with an app on your phone. Once the recording starts, you don't care when the app starts writing it to disk — as long as everything…

Latency in Digital Audio

We've come a long way since Alexander Graham Bell , and everything's turned digital. Compared to analog audio, digital audio processing is extremely versatile, is much easier to design and implement than analog processing, and also adds effectively zero noise along the way. With rising computing power and dropping costs, every operating system has had drivers, engines, and libraries to record,…

Decoupling GStreamer Pipelines

This post is best read with some prior familiarity with GStreamer pipelines. If you want to learn more about that, a good place to start is the tutorial Jan presented at LCA 2018 . Elevator Pitch GStreamer was designed with modularity, pluggability, and ease of use in mind, and the structure was somewhat inspired by UNIX pipes. With GStreamer, you start with an idea of what your dataflow will look…

GStreamer has grown a WebRTC implementation

In other news, GStreamer is now almost buzzword-compliant! The next blog post on our list: blockchains and smart contracts in GStreamer. Late last year, we at Centricular announced a new implementation of WebRTC in GStreamer. Today we're happy to announce that after community review, that work has been merged into GStreamer itself! The plugin is called webrtcbin , and the library is, naturally,…

The Meson build system at GUADEC 2016

For the third year in a row, Centricular was at GUADEC , and this year we sponsored the evening party on the final day at Hoepfner’s Burghof ! Hopefully everyone enjoyed it as much as we hoped. :) The focus for me this year was to try and tell people about the work we've been doing on porting GStreamer to Meson and to that end, I gave a talk on the second day about how to build your GNOME app ~2 x…

Building and Developing GStreamer using Visual Studio

Two months ago, I talked about how we at Centricular have been working on a Meson port of GStreamer and its basic dependencies (glib, libffi, and orc) for various reasons — faster builds, better cross-platform support (particularly Windows), better toolchain support, ease of use, and for a better build system future in general. Meson also has built-in support for things like gtk-doc,…

GStreamer and Meson: A New Hope

Anyone who has written a non-trivial project using Autotools has realized that (and wondered why) it requires you to be aware of 5 different languages . Once you spend enough time with the innards of the system, you begin to realize that it is nothing short of an astonishing feat of engineering. Engineering that belongs in a museum. Not as part of critical infrastructure. Autotools was created in…

एक बच्चों की पद्यक

आो मीलो (clap clap clap) शीलम शालो (clap clap clap) कच्चा धागा (clap clap clap) रेस लगा लो (clap clap clap) (जलदी से) आो मीलो शीलम शालो कच्चा धागा रेस लगा लो दस पत्ते तोड़े एक पत्ता कच्चा हिरन का बच्चा हिरन गया पानी में पकड़ा उस्की नानी ने नानी गयी लंडन वहां से लाइ कंगन कंगन गया टूट (clap) नानी गयी रूठ (clap) (और भी तेज़ी से) नानी को मनाएंगे रस मालाइ खाएंगे रस मालाइ अच्छी हमने खाइ मच्छी मच्छी में…

A Transcoding Proxy for HTTP Video Streams

Sometime last year, we worked on a client project to create a prototype for a server that is, in essence, a "transcoding proxy". It accepts N HTTP client streams and makes them available for an arbitrary number of clients via HTTP GET (and/or over RTP/UDP) in the form of WebM streams. Basically, it's something similar to Twitch.tv . The terms of our work with the client allowed us to make this…

Making things better

When I read Matthew’s post a week ago about creating desktop features that cater to developers, I found myself agreeing quite strongly with the sentiment put forth, and I started to wonder how we could better integrate development features into GNOME. We’ve so far focused strongly on general ease of use and the use-cases of non-technical users, but as we’ve seen time and again, FOSS projects tend…

A New Chapter

Yesterday, my 20-month-long stint at Collabora ended. The company culture, work environment, and perks were brilliant, and working with friendly and extremely competent colleagues was a pleasure. Starting today, and for the next couple of months, I'll be spending most of my time on the various projects that I've been working on , and on tackling the enormous backlog of itches to scratch that I…

A FOSS Devanagari to Bharati Braille Converter

Almost a year ago, I worked with Pooja on transliterating a Hindi poem to Bharati Braille for a Type installation at Amar Jyoti School; an institute for the visually-impaired in Delhi. You can read more about that on her blog post about it . While working on that, we were surprised to discover that there were no free (or open source) tools to do the conversion! All we could find were expensive…

Recording VoIP calls using pulseaudio and avconv

For ages, I've wanted an option in Skype or Empathy to record my video and voice calls 1 . Text is logged constantly because it doesn't cost much in the form of resources, but voice and video are harder. In lieu of integrated support inside Empathy, and also because I mostly use Skype (for various reasons), the workaround I have is to do an X11 screen grab and encode it to a file. This is not hard…

Android and Disk Encryption

Beginning with Android 3.0 (Honeycomb), Android includes the ability to transparently encrypt your phone's storage using the phone's settings. Internally, this works by using dm-crypt — just like every other Linux distro out there. But what I found intriguing about this was that it only allows you to encrypt your phone if you use either a password or a numeric pin to lock your phone. This means…

GUADEC 2012, A Coruña

This will be my first GUADEC , and I'm looking forward to it. Thanks to my employer Collabora for sponsoring this trip! I'll be around from 25th evening to 30th morning. Hope to see you all there. :)

Wired, headline click area

Something has always bothered me about the story links on Wired magazine 's home page. Today it bothered me enough to write about it. I don't know if they do this on purpose, or whether it's just an oversight. If it's on purpose, I'd love to know the reason why. So here's a story; and I hover over the text: There you go, it lights up and I can click on it… Oops! I moved my mouse by just a few…