go

Extending GObjects From Go and Making Them Available to C

When I first started writing my GStreamer bindings for go, I had never done C library bindings before. I had written small programs in C for fun, but most of my professional work was either Go, Python, or just pure BASH. I spent a lot of time over in #gstreamer on freenode probably driving the core developers utterly insane. About half way through this adventure, I was working on the bindings for one of the APIs (I don’t remember which) and when inquiring further about it slomo informed me “that’s really only used for plugins.

Read more →

GStreamer, Go, and Kubernetes

Back when I was working on kvdi (a Kubernetes-native “Virtual Desktop Infrastructure” written in Go), I got to the inevitable point that I wanted support for audio streams from the user desktops. In a web-based VDI solution, this posed several challenges: Raw PCM data is huge, and as such is not suitable for streaming over low latency networks. To work with browser-native audio APIs, we need either raw PCM or one from a small set of browser supported encodings (WASM opens more doors, but I wanted to avoid it).

Read more →