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

    MythDVD 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 ./mythdvd/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.




