Table schema
============

MythVideo uses two tables to determine what sort of transcoding the user can
perform. These tables are:

    dvdinput
    dvdtranscode

When a DVD is inserted, the mtd (Myth Transcoding Daemon) reads the
format of the titles (sometimes refered to as tracks) from the disc. For
each title, it calculates things like horizontal resolution, vertical
resolution, framerate, and so on. It then looks at the dvdinput table
and uses those calculated values to find a match. The result is a single
integer value (the intid column of dvdinput) that represents the format
of a given title.

When the user wants to transcode something (i.e. when the user enters
the transcode dialog), the next step is to look up possible transcode
settings from the dvdtranscode table. A row in the dvdtranscode table
represents all the command line arguments that must be passed to the
transcode program to perform a given transcoding. The "input" column
restricts which options to present to a user, as it is the input format
for the title (i.e. the single integer identifier from the dvdinput
table).

If this seems unclear, look in ./mythvideo/dbcheck.cpp, and look at each
of the SQL statements that begin "INSERT INTO dvdinput ... " (a row for
each known title/track format) and "INSERT INTO dvdtranscode ... " (a
row for each set of transcode options, given an input format).

It is probably useful to point out that if you have a set of transcode
options that you want to use, you can simply create a new row in the
dvdtranscode table. That option will be immediately available without
the need to recompile or reconfigure anything.
