Fixing Program Guide data on MythTV after Daylight Savings Time switch

I'm running MythTV (Subversion Trunk) on a Ubuntu 7.10 box. After the daylight savings time changeover, my mythtv box had the correct time, but the Program Guide data was still off by an hour.  Manually running a mythfilldatabase didn't fix it. After checking to make sure that my timezone xmltv settings were set to Auto, I decided to manually erase all of the program data from the database.

(After using mysql to connect to the database, I issued the "delete from program;" command to delete all of the program entries.)

Then I re-ran mythfilldatabase and everything was fixed. (I still don't understand why this didn't automatically fix itself when the ubuntu box changed it's timezone, as all of the program data is supposed to be stored under UTC…)

Mythtv gotchas when upgrading from Ubuntu 7.04 (Feisty) to 7.10 (Gutsy)

I upgraded my Mythtv server from Feisty to Gutsy for no good reason (other than I like the pain).

Gotchas I ran into when trying to get MythTV working again:

1. The upgrade lost/removed the libqt3-mysql support from my computer. This resulted in the MythTV applications (frontend and backend) giving "unable to connect to database" errors. As the upgrade had also upgraded my MySQL install, I spent a good amount of time checking that the mythtv user still existed and had the proper permissions before I figured out it was a QT database library problem.
  apt-get install libqt3-mt-mysql fixed it.

2. LIRCD stopped receiving commands from my HDHomeRun receiver from SiliconDust. Turns out you have to change the LIRCD_ARGS="-d 5000" line in the /etc/lirc/hardware.conf file to LIRCD_ARGS="-H udp -d 5000".  After this, typing irw showed that LIRCD was now receiving the command codes as it was supposed to.

3. The module name for my D-Link GWL-G122 usb wifi-adaptor have changed, so I had to change entry in the /etc/modprobe.d/blacklist  file to reflect the new name(s) of: rt2x00usb and rt2500usb.

Tuning an ext3 filesystem for storing large media files

I added a new hard disk to my MythTV box, specifically for storing movies copied from my DVD collection. Because this disk will be used for storing mostly files that will be in the 1-4GB size range, and because it is NOT going to be used as the root (/) drive of this computer, I set the sparse_super and largefile4 settings, plus reserved zero space for the superuser (-m 0) with the following command:

mkfs -t ext3 -m 0 -O sparse_super -T largefile4 /dev/sdb1

MythTV to phone (.3gp) transcoder script and Bluetooth transfer

I built a perl script that can be used as a "User Job" from within mythtv to convert a recorded TV program into a cell phone (.3gp) movie. It makes uses of to get the show and title (for the filename) and mplayer/mencoder and ffmpeg to do the actual transcoding.

Unless you want to drop your files off in the /var/lib/mythtv/for_phone directory, you will need to edit the output directory.  I've found that 35 minutes of TV gets shrunken down to 24-30megs when in .3gp format when transcoded at a generous 80/16 (video/audio bitrate).

Script to transcode from mythtv files to .3gp files

I wrote a second script to transfer any files in this directory to my phone via bluetooth OBEX push every night. I use cron to start the script up each night, and it looks for any .3gp files in the directory and tries to copy them to my phone. If successful, it removes them from the directory.  Note that my Motorola V3xx has an annoying feature where it will receive OBEX bluetooth files into phone memory, and NOT to the default download location (which can be set to the memory card). If your phone is similar, you will have to copy files from the phone's memory to the memory card so that your phone's memory doesn't get full. If your phone's memory gets full, it will refuse further bluetooth transfers until you move the files over to a memory card. 

Script that does a bluetooth transfer to phone

Note that to use this script you will have to find your phone's bluetooth mac address (using "hcitool scan") and put it in the script. Also, you should pair your phone with your computer, and set your phone up to automatically accept OBEX push/FTP transfers unless you want to manually approve each video transfer.