VLC Source Tour: One Binary That Plays Everything, Built From Loadable Parts
You hand VLC a strange file — a 4 GB ISO, an HLS playlist from a network camera, a half-corrupted AVI — and it just plays. No codec pack, no “install a plugin to continue”, no format picker. The usual...
OBS Studio source tour: where a dropped frame actually dies in libobs
Your stream sits at 20 fps. The OBS stats window says “skipped frames due to rendering lag,” your GPU is nowhere near 100%, and none of your sources report errors. You are not alone in finding this maddening, because the...
Inside mpv's playloop: the player core that skips frames instead of stuttering
Your video stalls for a tenth of a second, and most players respond by freezing the picture while the audio buffer runs dry — you get the ugly double-jerk of a paused frame followed by a sound hiccup. mpv almost...
Inside Kodi's application loop: one thread renders the skin while a 50 GB rem...
A Raspberry Pi 4 is playing a 50 GB remux — HEVC, 4K, a full bitstream at 40 Mbps — and at the same time you arrow down through its skin menus at 60 fps with animations that never hitch....
Inside Jellyfin: What Happens in the Ten Seconds After You Press Play
You press play on a 4K HEVC movie. Your TV’s decoder flips through the profile level, chokes, and silently reports back that it can’t handle it. Four seconds later a green-ish CPU graph on your server box says one core...
Inside ImageMagick 7: A Source Tour of the Pixel Cache, the Coder Registry an...
Type magick img.png -resize 50% out.jpg and it finishes before you lift your finger off the Enter key. One hundred milliseconds of work, it seems, for a program whose binary drags in a delegate list, a dozen format libraries and...
HandBrake source tour: the state machine behind "2 hours remaining"
Your movie is forty minutes in and HandBrake confidently displays “2 hours remaining.” You pause to grab coffee, hit resume, and the estimate keeps being roughly right — which should raise an eyebrow, because nothing in that dialog looks like...
Inside GStreamer: A Source Tour of Elements, Pads and the Caps Bargain
You wire up a test graph in gst-launch-1.0 — v4l2src ! videoconvert ! x264enc ! mp4mux ! filesink — and it dies with a terse could-not-link complaint between two elements you were sure spoke the same format. You set GST_DEBUG=3,...
Inside FFmpeg: A Source Tour of the Demux, Decode, Filter, Encode and Mux Thr...
Run ffmpeg -i fourk.mov -c:v libx264 -crf 23 out.mp4 on a long 4K clip and the machine hums for an hour. The only visible feedback is that one line ticking upward: frame= 48211 fps= 41 q=23.0 size= .... It looks...
How Audacity Saves a Two-Hour Project in Seconds: the Block-File Store and th...
Record a two-hour multitrack session, let the machine crash, reopen the project, and press Ctrl+S with a hundred undo levels stacked up. Editors that treat a project as one big file must rewrite megabytes of waveform data to persist a...
Inside three.js: From Scene Graph to WebGL Draw Calls
Every three.js developer eventually hits the same three walls. First, a mesh you just added simply does not render — no error, no warning, just an empty canvas. Second, you change a single material flag like needsUpdate and the frame...
Inside SFML: How the Module System Turns Vertices into Pixels
If you have ever written a 2D game against raw SDL, you know the ritual: create a window, create a renderer, fill a rect, call SDL_RenderPresent, and only then start worrying about textures, blending, and scaling. SFML hides all of...
Inside SDL3: How the Cross-Platform Media Layer Absorbs Every OS
Ask anyone who has shipped a native app on three operating systems: the windowing layer is where optimism goes to die. On Windows you fight message loops and DPI, on macOS you fight the main thread and lifecycle events, on...
Inside raylib: How the Minimal C Game Library Draws a Frame
Every newcomer hits the same wall with a full engine: to draw one red circle you inherit a scene tree, an asset importer, an editor layout, and a build system you did not choose. Engines like Godot earn that complexity...
Inside PixiJS: How the Batcher Turns Thousands of Sprites into One Draw Call
Thousands of moving sprites are where naive canvas-2D code goes to die. A loop of drawImage calls crosses the JavaScript-to-native boundary thousands of times per frame, re-sends state on every call, and gives the GPU nothing it can chew on...
Inside Phaser: The Scene Lifecycle and Step Loop Behind 2D Web Games
A Phaser game ships as one JavaScript bundle and then runs on a five-year-old Android phone, a school Chromebook, and a desktop browser at 144 Hz. That is a strange engineering target for a game engine: no install step, no...
Inside MonoGame: The XNA Successor's Game Loop, SpriteBatch, and Content Pipe...
Stardew Valley, Celeste, Streets of Rage 4, and Carrion were all built on MonoGame — an open-source re-implementation of Microsoft’s discontinued XNA Framework. The deal XNA offered is seductive: you subclass Game, override Update and Draw, call base.Run(), and a...
Inside LÖVE: How Lua Callbacks Drive the Simplest 2D Game Framework
A complete LÖVE game fits in a single main.lua that is often shorter than this article. You define love.load(), love.update(dt), and love.draw(), run love, and a window opens with a running game. After configuring scenes and build settings in bigger...
Inside Godot: How the Scene Tree, Servers, and GDScript VM Actually Work
You write a small func _process(delta) in GDScript, press play, and a character moves across the screen at a smooth sixty frames per second. It feels like magic, but the whole thing is a precisely choreographed C++ routine that runs...
Inside Bevy: How the ECS Scheduler Runs Your Systems in Parallel
Every engine built around a god-object eventually hits the same wall. A GameObject grows a transform, a mesh, a collider, a health value, a script slot, and suddenly every subsystem walks a pointer-chasing object graph, and “can this object move...
Inside tmux: How the Client-Server Model Keeps Sessions Alive
You know the moment: the hotel Wi-Fi hiccups, your SSH connection freezes, and the shell you spent an hour setting up dies with it. Except — if you had started that shell inside tmux, nothing died. You reconnect, type tmux...
Inside Starship: How a Cross-Shell Prompt Renders in Milliseconds
Open a terminal inside a huge monorepo and watch a traditional prompt choke: the git-status segment shells out to git status, the directory scan blocks, and every draw costs hundreds of milliseconds. Starship’s problem is harsher than most, because in...
Inside ripgrep: The Crate Architecture That Makes Search This Fast
You type rg 'fn walk_builder' in a checkout of ripgrep itself and the answer is on screen before your finger has left the Enter key. Run grep -r 'fn walk_builder' . on the same tree and you can hear the...
Inside Neovim: How the RPC Core and Lua Host Actually Work
Run nvim --headless +'lua print(vim.api.nvim_buf_line_count(0))' +qa on a file and you get an answer with no window, no terminal, no user. That is a strange property for an editor: the same binary you use interactively is also a scriptable service...