Status Update, and Question for the Community Minds

stephen on 2005-03-19T22:43:04

So Playback Machine, the TV station in a box, is essentially ready to rock and roll. Basic functionality includes:

  • It plays things back at the right times.
  • Whenever it isn't doing anything else, it plays some kind of filler-- either a short film or music with slides.
  • It provides a usable (if plain) web interface, so that we can change the schedule on the fly.
  • It restarts itself every four hours, between playing things, so that any memory leak in the player gets cleaned up.

(The last one really shouldn't be necessary, but I've found memory leaks in Xine which only become apparent after you play for about eight hours straight. I'd imagine that other players may have similar problems, and I don't want to be at the mercy of others' memory leaks.)

In theory I should be able to walk into the BCTV room, hook up the computer, start playback, head for the bar, and come back at the end of the weekend when the Con is over. (Yeah, right.)

Except... one thing I'd really like to do is have onscreen schedules. I'd like to be able to generate a PNG which shows the next five shows and their start times, then display it onscreen as a slide.

My options are:

  1. SVGs. Nearly custom-designed for the purpose. I can define nice bounding boxes. I tried this last year and got incredibly ugly results. Try again?
  2. Image::Magick. Common, easy to install, available as an RPM. However, its interface assumes that you're writing a simple annotation, and so I can't really do the kind of cell-based word wrapping I need.
  3. Image::Imlib2. I'm already using Imlib2's C interface to load and display slides, so there's some dependency efficiency. There's no RPM, though (I'd like to distribute this eventually as an RPM, so I'm watching my dependencies closely) and I'd need to implement my own word-wrapping code. Possible, though.
  4. GD. Looks like there's already a CPAN class out there for the kind of aligned text I'd like to produce. It'd add yet another C library dependency, but I should be able to live with that.

So it looks like I'll try SVGs again, then try GD to see if I can get it running quickly.

So my questions: Are there any easy ways of creating the kind of formatted-text-in-graphics that I'm looking for? I'm happy to have the system call a non-Perl command line utility, or even do a little XS work. The requirements: I need to be able to format tabular text against a background.

Second question: anyone have any suggestions for a better name? "The Playback Machine" sounds like a Xine-type movie player. "TV Station In A Box" lacks coolness. "The Twonky" is cool, appropriate, and taken by the Twonky Media Server.