Timecode Commander 1.1 Released

July 23, 2009

We’re delighted to announce the release of Timecode Commander 1.1.

The major change from 1.0 to 1.1 is that this version now includes a GUI (graphical user interface):

The main GUI window for Timecode Commander

The main GUI window for Timecode Commander

The command-line utility is still included as well.

To download a trial version, log in or register on the Limeboy website and then click on “Download Trial” on the right hand side of the Timecode Commander product page.


Latest Limeboy News

June 1, 2009

I’m currently working on the final release version of InFile 3.2.

A screencast of the latest version of InFilePS

A screencast of the latest version of InFilePS

I haven’t blogged about InFile before: it’s a software-based inserter for closed and open captions (subtitles) that I developed originally under my LB Broadcast brand. Basically it sucks in source video in a variety of formats (3.2 now supports MPEG-2 PS, Omneon, GXF, QuickTime, Windows Media and TGA sequences) along with a file describing the captions to be inserted (this is usually an EBU STL or Cheetah CAP file, but 3.2 adds support for the Final Cut Pro XML captions format). Then it works through the file inserting captions into the VBI (vertical blanking interval), burnt into the actual video, or as a separate elementary stream or track, depending on what options you’ve selected.

This latest version has been the most fun to work on. It’s almost a complete refactor of the previous version, which will make future maintenance a lot easier. Plus, it has within it the seeds of some pretty nifty transcoding functionality (which we’ll probably release in the subsequent version).

The application itself has a batch-based GUI, but it also sports a command-line interface for integrating into automated workflows. On the queue for the next version is a web-based API (SOAP and REST will be supported).

InFile is distributed by SysMedia. If you’re interested in obtaining an evaluation version, you can fill out this form or contact SysMedia directly.


Quotes in #define macros

June 1, 2009

Man, this one wasted me a lot of time. Let’s say you have a #define constant:

#define FILEVERSION 3.1.11.1

And you want to create another constant that contains the value of this constant in quotes:

#define STRFILEVERSION "3.1.11.1"

All good so far. Now let’s say you want to DRY that up a bit:

#define STRFILEVERSION "FILEVERSION"

Well, now that won’t work Jeremy. Macros inside quotes are not expanded. None of these will either:

#define STRFILEVERSION ""FILEVERSION""
#define STRFILEVERSION \"FILEVERSION\"
#define STRFILEVERSION "\""##FILEVERSION##"\""

Nope, those escape sequences just aren’t implemented in the preprocessor. And the backslash \ is meant to indicate line continuation. Aha! But what about:

#define PUTGODDAMNQUOTESAROUND(x) #x

Yes, that works. Providing the parameter you’re supplying is not… er… another macro. In other words:

PUTGODDAMNQUOTESAROUND(FILEVERSION)

returns

"FILEVERSION"

not

"3.1.1.11"

ARGH! Finally, Wikipedia to the rescue with indirect quoting of macro arguments:

#define _PUTGODDAMNQUOTESAROUND(x)	   #x
#define PUTGODDAMNQUOTESAROUND(x)	   _PUTGODDAMNQUOTESAROUND(x)

Now if you use:

PUTGODDAMNQUOTESAROUND(FILEVERSION)

at last you get

"3.1.1.11"

Choice.