Mythbackend

From MythTV Official Wiki
Revision as of 20:40, 5 February 2011 by Wagnerrp (Talk | contribs)

Jump to: navigation, search

The backend process (mythbackend) is the portion of the system that handles the Video capture cards as well as Scheduling Recordings on those cards, Commercial Detection, and transcoding. The backend process interacts with the Database primarily.

As with the MythFrontend, there can be multiple backends. One backend process is designated as the master backend. This is usually the first backend installed on a system. This backend is responsible for coordinating the activities of the other backends known as slaves. This is especially true for scheduling as the master backend will determine the best distribution of programs across all available tuners. Each backend can have any number of tuners, including zero. Commercial Detection can be distributed across different backends, thereby spreading the load of that process.

There is no requirement for direct user interaction with the backend. The backend can use local HardWare/File Storage or have it mounted from another system. If remotely mounted, network performance should be considered as there will be considerable traffic on the network as recordings are stored and retreived by the backend process.

Command Line Options

Valid options are:

-h or --help                   List valid command line parameters
-l or --logfile filename       Writes STDERR and STDOUT messages to filename
-p or --pidfile filename       Write PID of mythbackend to filename
-d or --daemon                 Runs mythbackend as a daemon
-v or --verbose debug-level    Use '-v help' for level info
--printexpire                  List of auto-expire programs
--printsched                   Upcoming scheduled programs
--testsched                    Test run scheduler (ignore existing schedule)
--resched                      Force the scheduler to update
--nosched                      Do not perform any scheduling
--noupnp                       Do not enable the UPNP server
--nojobqueue                   Do not start the JobQueue
--nohousekeeper                Do not start the Housekeeper
--noautoexpire                 Do not start the AutoExpire thread
--version                      Version information

Communications Protocol

The backend and frontend communicate using their own Myth Protocol. Work on defining the Myth Protocol is being performed on this Wiki.

Troubleshooting

To control what debug information is logged to the log file the following switches may be used. These can be viewed by entering 'mythbackend -v help'

Verbose debug levels. Accepts any combination (separated by comma) of:

 all           - ALL available debug output 
 most          - Most debug (nodatabase,notimestamp,noextra) 
 important     - Errors or other very important messages 
 general       - General info 
 record        - Recording related messages 
 playback      - Playback related messages 
 channel       - Channel related messages 
 osd           - On-Screen Display related messages 
 file          - File and AutoExpire related messages 
 schedule      - Scheduling related messages 
 network       - Network protocol related messages 
 commflag      - Commercial detection related messages 
 audio         - Audio related messages 
 libav         - Enables libav debugging 
 jobqueue      - JobQueue related messages 
 siparser      - Siparser related messages 
 eit           - EIT related messages 
 vbi           - VBI related messages 
 database      - Display all SQL commands executed 
 dsmcc         - DSMCC carousel related messages 
 mheg          - MHEG debugging messages 
 upnp          - upnp debugging messages 
 socket        - socket debugging messages 
 xmltv         - xmltv output and related messages 
 dvbcam        - DVB CAM debugging messages 
 media         - Media Manager debugging messages 
 idle          - System idle messages 
 channelscan   - Channel Scanning messages 
 gui           - GUI related messages 
 system        - External executable related messages 
 extra         - More detailed messages in selected levels 
 timestamp     - Conditional data driven messages 
 none          - NO debug output 

The default for this program appears to be: '-v important,general'

Most options are additive except for none, all, and important. These three are semi-explicit and take precedence over any prior options given. You can however use something like '-v none,jobqueue' to get only JobQueue related messages and override the default verbosity level.

The additive options may also be subtracted from 'all' by prefixing them with 'no', so you may use '-v all,nodatabase' to view all but database debug messages.

Some debug levels may not apply to this program.

Need to add backend-specific troubleshooting help here, or at least link to Troubleshooting

Interpreting --printsched Output

The --printsched command line option prints out upcoming scheduled recordings.

This format is also used in mythbackend logs of scheduling activity (with -v schedule), and is particularly useful when obtaining schedule data with --testsched.

For example:

Title - Subtitle                    Ch Station Day Start  End   S C I  T N Pri
Ask This Old House - "Installi     21_2 WLIWDT2 13 16:30-17:00  1 1 1  A 1 0
The Simpsons - "Treehouse of Horro   11 WPIX    13 19:00-19:30  1 0 0  A R 0

Title, subtitle, channel (number), station (callsign), day, start (time) and end (time) are rather straight forward. The meanings of the other columns are:

  • S - Source ID
  • C - Card ID
  • I - Input ID
  • T - Recording Type Character
  • N - Recording Status Character
  • Pri - Priority

The meanings of the Recording Type Character (T) are:

  • S - Single record
  • T - Timeslot
  • W - Weekslot
  • C - Channel
  • A - All
  • F - Find one
  • d - Find one daily
  • w - Find weekly
  • O - Override or Don't record

The meanings of the Recording Status Character (N) are:

  • A - Aborted
  • R - Recorded / Current recording
  • X - Don't record
  • P - Previous recording
  • E - Earlier showing
  • T - Too many recordings
  • c - Cancelled
  • M - Missed
  • C - Conflict
  • L - Later showing
  • r - Repeat
  • x - Inactive
  • K - Low disk space
  • B - Tuner busy
  • f - Failed
  • N - Not listed
  • V - Never record
  • F - Offline
  • O - Other showing
  • (a number) - the card ID on which the show is currently recording