April 3, 2006
Reverse Engineering a SynergyPlease note, this blog has been archived and now lives at www.discretecosine.com
The Ross Synergy MD and MD-X lines of production switchers have a pretty cool ability to load images over the network and play them out through what Ross calls a "global store." This is a pretty cool feature for doing image playout, as it doesn't require extra equipment, and gives you three scriptable channels of images. With extra software upgrades, you can also play animations using this feature.
There are few downsides, from my point of view. The Synergy requires specially formatted TGA images. Furthermore, the included software for moving images from a computer to the Synergy only works on Windows, and cannot reformat images internally. With that in mind, I decided to write my own interface software. Wanna know how? Click the link.
The first issue to deal with is that Ross had little interest in providing me with any protocol documentation or source code. Not surprising really, but it meant I needed to do a bit of investigation. Luckily for me, the Synergy is built on an open platform (Linux) and makes use of industry standard protocols for the transaction. Here's an ethereal dump of an upload. I was already logged in when I initiated the transfer, but then logged in again at the end.
So, we can see a few things are happening. The image is being appended with _0000 and then uploaded over FTP. Then, an XML file is being sent. Next, we jump over to HTTP and call a couple URLs, then download an XML. You'll also see the username and password information at the end of the dump.
That's all pretty straightforward. The only stumbling block is the XML file that gets uploaded. Luckily, it's pretty straightforward as well, if we change our filter a bit to look at the ftp-data traffic.
Really pretty straightforward - just a description of a file, with lots of extra settings that don't concern us at this point.
So, now we know how to post the image to the Synergy, and how to make the Synergy aware of the new files (those http calls). Next we need to get the images into a format that the Synergy understands.
The TGA files required need to be 24bit or 32bit (with an alpha mask). If you're running your Synergy in SD, you should also take into account the pixel aspect ratio. RLE compression is OK. Also, for whatever reason, TGAs generated by The Gimp won't work.
One unfortunate thing I've discovered is that if you ask the Quicktime API to do your conversion to TGA for you, you'll get different results depending on the platform. On Windows XP, you'll get 24bit targas, whereas on OSX you'll get 32bit targas, with an empty alpha. Not the end of the world, but a bit of a bummer.
So, throw together a bit of Targa resizing and FTP/HTTP code, and you've got yourself a really nice replacement for Image Mover. I call mine Synergizer, and will post it in a few days, once I'm relatively sure it won't destroy your $100,000 switcher ...
Posted by at April 3, 2006 9:46 AM | Tutorials