tinyzimmer's blog

A blog where I document my journeys through automation and code

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 →

Welcome

Welcome to my new blog where I am going to start documenting my code adventures in more detail. During the COVID-19 pandemic, constantly going between lockdowns, the one thing I realized I needed the most was my routines. The usual ones were not an option, so I dedicated myself to side projects that ventured me outside of my comfort zone. Regretfully, I didn’t blog about them at the time, so this will become a place for me to retroactively go over some of those projects, and to continue documenting new ones in the future 😄.

Read more →