Previous section   Next section

Hack 40 Displaying Images on Your TV

figs/moderate.giffigs/hack40.gif

Hijack your television screen for displaying your own still images.

Ever considered using your TiVo to display some of your own images? Maybe you can coerce it to become your own personal slideshow viewer as you feed it JPEGs of your last family vacation? Thanks to some clever hackers, you can.

Of course TiVo Series 2 users have a much easier time of it thanks to the Home Media Option [Hack #63] which allows you to share on your personal computer with TiVo for your viewing pleasure.

When your TiVo records a television show, it creates an MPEG file on its hard drive. MPEG is the Moving Picture Experts Group's file format for motion video; it makes use of excessive computing to squeeze every single bit of redundant data out of the video, making the smallest, yet highest quality, recording it can make. Mounted on TiVo's motherboard is an IBM MPEG CS22 Decoder. This hardware converts the MPEG-encoded video that the TiVo records to what is displayed on the TV screen.

This chip's instruction set also includes the ability to overlay the MPEG stream (read: television programming) with graphics and text. This is how the status bar is displayed on the screen during recorded video playback and when the TV guide floats over live television shows.

If you convince TiVo to send the decoder the appropriate commands, you can place whatever you wish on your television screen.

TiVo accepts only 720x480 indexed color PNG image files. Converting your images to this format requires the use of an application the likes of Photoshop (my favorite), the Gimp, or just about any other modern graphics editor.

The Gimp (http://www.gimp.org) is a full-featured, open source, and free alternative to typically expensive graphics packages like Photoshop. While traditionally geared toward the Unix operating system, the Gimp is also available for Windows and Mac OS X.

In the graphics editor of your choice, open the image you want to put on your television screen. For this example, I'll use the cover of this book, as shown in Figure 3-7.

Figure 3-7. The TiVo Hacks cover at the wrong resolution and sporting too many colors for TiVo's approval
figs/tivo_0307.gif

We have a few problems: the picture is 427x643 (the wrong resolution), and it's in RGB color�24-bit (or 32 if there is an alpha channel) rather than indexed color. But these problems are nothing a little image-editing magic can't fix.

First of all, shrink the image down, but keep the aspect ratio fixed so it doesn't become distorted. If your image is taller than it is wide, set the height to something like 400; if it is wider than it is tall, set its width to 640. I'm not setting it to the maximum allowed size, to give it a nice matted border. Also, some televisions hide a few pixels on the edges, and I don't want anything chopped off my cover.

I know what you're thinking: our image is now smaller than 720x480; that can't be right. True, true. Let's expand the canvas to be the right size. This will make our graphic be 720x480 pixels, but it will leave our carefully sized and colored image whatever size we decided upon, nicely centered. So, resize the canvas, add a white background, and we have our cover as shown in Figure 3-8, ready for primetime.

Figure 3-8. The TiVo Hacks cover, scaled down and placed in an image with the right dimensions
figs/tivo_0308.gif

Now, change the image type from RGB to indexed and save it as a PNG file. Move that file over to your TiVo [Hack #36] and put it somewhere appropriate. I keep my pictures in a /var/hack/pictures directory.

Take care not to cram your /var partition too full with lots of images, or you just may trigger TiVo's instinct to clear out this directory entirely.

The software for displaying your new image is already on the TiVo, so just type (replacing tivo_hacks.png with the name of the picture you wish to display):

bash-2.02# osdwriter /var/hack/pictures/tivo_hacks.png

The image should come right up on your television screen. To clear it away, just press any button on your TiVo remote control.

You have another option to get images up on the screen. Use the JPEGwriter (http://www.allaboutjake.com/tivo/jpegwriter.html) by Jake Bordens. Usage might be a little simpler, albeit a little less stable. Just download the archive and stick the jpegwriter in /var/hack/bin. On the command line, pass it a JPEG, like so:

bash-2.02# jpegwriter /var/hack/pictures/tivo_hacks.jpg

The JPEG should come right up on your television screen.

Pre-TiVo OS 3.0 Series 1 users, on the other hand, have a little bit of a harder time. You all (hopefully, there are very few of you) will need Mike Hill's osdmngr, found at http://tivo.samba.org/download/belboz/osdmngr-1.7.tar.gz. Hill's program expects images in the TARGA (TGA) file format and will convert and output images that are in the file format your antiquated osdwriter expects. The osdwriter in Pre-OS 3.0 machines will present this file directly to the CS22 Decoder chip without ever processing it, so the osdmngr does all the processing for it.


  Previous section   Next section
Top