Unfortunately, when I went to run this on Linux, it compiled fine, but started throwing some weird exceptions buried deep down in the code. I hadn't actually written the math portion of this myself, but traced it pretty far down. Finally concluded it wasn't finding "cos" somehow, which didn't make any sense, because I was explicitly importing the C function from math.h if using Cython, and importing the normal Python function from the "math" module otherwise.
Took me about 6 hours of tracing, investigating, and steadily growing confusion before I finally figured out what was going on: there was a single letter casing mismatch between a .py file and its corresponding .pxd file. One had a capital 'O', the other had a lower-case 'o'. Worked fine on case-insensitive Windows, but under case-sensitive Linux, it never actually found the proper .pxd file, didn't get the right imports, and thus stuff eventually exploded.
Definitely a pretty high hours-of-work to number-of-characters-changed ratio :)
It was an embedded system problem and I didn't fix it and I don't know if it ever did get fixed - sometimes I wonder if it ever was figured out.
I still cannot display video on my Chromecast while continuing to play audio on my phone while using any given Chromecast app.