For a long time, I resisted mentioning Coronavirus in this blog. After all, computer programs can get infected by viruses, but just not by that kind of virus. Or can they?
Luckily, my family and I are safe so far, and so is the Chronotron app. Social distancing and other changes in our behavior have helped us stay healthy. For example, people are increasingly working from home using Remote Desktop.
Remote Desktop is a technology that allows users to access a desktop environment from a distant PC or device. Oversimplifying things by a lot, it’s like you’re home watching a live video feed showing the screen of a PC that sits at your workplace, while using an ultra-long-range wireless keyboard and mouse to control it.
Any app can be used remotely in this way, but media players like Chronotron pose specific challenges: audio needs to be sent over the network, video playback results in frequent screen refreshes (therefore increasing network usage), sound and video have to be kept in sync and so on. The Operating System is doing all the hard work behind the scenes aided by cool technologies like RemoteFX.
The app has its share of concerns, too. Playback isn’t happening over a real video adapter and soundcard, except on some exotic – read expensive – setups. Heck, even the whole PC may not be real, sharing CPU and memory resources with other workloads and virtual PCs. Some obscure app bugs may surface under these circumstances, which would otherwise remain well hidden inside code paths that had never been thoroughly tested.
When I first tried Chronotron on Remote Desktop, I noticed that music playback worked fine, but any video failed to play spitting out a cryptic error message. After some debugging, I found out that the problem was related to how the app handles video frames allocated in system memory – as opposed to video card’s memory, which is usually where frames would be allocated on a “normal” PC.
This bug has been fixed in the upcoming Release 150, making Chronotron a pandemic-compatible app.