Difference between revisions of "AVWizard"

From LinuxMCE
Jump to: navigation, search
(What to do if A/V Wizard does not start)
(What to do if A/V Wizard does not start)
Line 53: Line 53:
  
 
Once you have a picture you can proceed to complete the A/V Wizard. You can then resize your user interface to fit your screen, choose your audio outputs, and so on. Follow the [[AVWizard Step by Step]] instructions.
 
Once you have a picture you can proceed to complete the A/V Wizard. You can then resize your user interface to fit your screen, choose your audio outputs, and so on. Follow the [[AVWizard Step by Step]] instructions.
 +
  
 
A/V Wizard makes the process a bit more complicated for PC users who may actually be using a PC monitor (instead of a TV) for video output. They are used to having EDID automatically detect and configure their monitor's output connector and resolution. Because EDID is turned off in LinuxMCE, however, these users will also have to manually set the output connector and resolution settings, as above.
 
A/V Wizard makes the process a bit more complicated for PC users who may actually be using a PC monitor (instead of a TV) for video output. They are used to having EDID automatically detect and configure their monitor's output connector and resolution. Because EDID is turned off in LinuxMCE, however, these users will also have to manually set the output connector and resolution settings, as above.

Revision as of 18:35, 4 May 2008

The AVWizard has two points of view:


Background

Consumer A/V gear, like DVDs, cable boxes and TVs, handle video differently than PCs and PC monitors. PCs and PC monitors exchange information about the resolution and capabilities of the monitors using EDID. With EDID, the PC figures out automatically what type of monitor and what type of video connector (VGA, DVI) is used. However, consumer A/V gear generally does not work like this. Instead the output resolution is generally set by a switch. The video signal is then output to all connectors at the same time.

This often leads to frustration when using a home theater PC. When you connect the PC to a TV, the PC usually expects EDID information from the TV. But since most consumer TV's do not report EDID information (or report it improperly), the PC often incorrectly detects the active connector, or outputs the wrong resolution.

In the past, most Linux users using a TV as a monitor have determined the correct settings for their TV using a modeline tool. They then manually edit the modeline of the Xfree86 module in Linux. While this only has to be done once for each TV, it takes some effort and tweaking of Linux configuration files. Requiring a user to edit the Xfree86 modeline by hand is likely too complex for many users, so instead, we decided to use a simpler manual configuration method for all video output devices, no matter whether a TV or a PC monitor.

Starting A/V Wizard

LinuxMCE is intended to act like a normal consumer A/V device, even though it is PC based. Therefore it does not use EDID to communicate to the TV or monitor. Instead, the user must manually specify the connector type and the resolution in the A/V wizard (unless you are using the default 640 x 480 VGA).

Initially

This wizard is started automatically the very first time the system boots; it does not automatically start after that.

Starting A/V Wizard from the LinuxMCE menu

The A/V wizard can be restarted at any time from the LinuxMCE menu by choosing Advanced--> Advanced--> A/V Wizard.

Restarting the AVWizard during bootup

Alternatively, the AV Wizard can be started during bootup. Either hold down the Shift key on the keyboard, or press the "A/V Menu" button on the remote to make the A/V wizard start. During bootup you should hear a series of escalating beeps to tell you when LinuxMCE is monitoring the Shift (and "A/V Menu") keys.

When you hear the descending beeps it means that you're too late; the bootup has already gone past the AV Wizard check and LinuxMCE has already started.

How A/V Wizard Starts

When A/V Wizard starts it always outputs 640x480 on the VGA connector. If you are not using a VGA connector, you will likely see a black screen when the A/V Wizard starts (even if you previously saw the Kubuntu boot splash). You will know that the A/V Wizard is running, however, because you will hear a series of beeps. If you then have video after hearing the beeps, proceed to complete the A/V Wizard. If not, see the next section.

What to do if A/V Wizard does not start

Press the number 1 through 5 on the keyboard (or the remote control) to switch to the active connector. Wait 15 seconds, and you will hear that same sequence of beeps telling you that A/V Wizard has now restarted. If you don't hear the beeps after 15 seconds, press the number for your connector again.

 Keys for choosing a connector:

1: DVI
2: VGA
3: Component
4: Composite
5: S-Video

If you hear the beeps but still don't see a picture, it's possible that the display you're using cannot handle 640x480. Press the number 6-9, or 0, as shown below, to select your resolution. Again, 15 seconds later, you should hear the beeps when the A/V Wizard is restarted. If you again need to choose a connector (other than the default VGA), press the 1-5 key (as above) and wait until you hear the beeps again. Repeat as often as needed.

Keys for choosing a resolution:

6: 640x480
7: 1024x768
8: 720p
9: 1080i
0: 1080p

(Note: Due to a bug in the 0704 release, the numeric keys 0-9 on the Windows XP I/R remote may not be able to set your output connector & resolution. Use the 0-9 keys on the keyboard instead, or use another remote.)

Once you have a picture you can proceed to complete the A/V Wizard. You can then resize your user interface to fit your screen, choose your audio outputs, and so on. Follow the AVWizard Step by Step instructions.


A/V Wizard makes the process a bit more complicated for PC users who may actually be using a PC monitor (instead of a TV) for video output. They are used to having EDID automatically detect and configure their monitor's output connector and resolution. Because EDID is turned off in LinuxMCE, however, these users will also have to manually set the output connector and resolution settings, as above.

That is the trade-off. We decided that to use a consumer TV with a home theater PC (and still have HD video) it would be simpler to use manual output type/resolution configuration for all video output, no matter whether a TV or a PC monitor is used. The alternative of requiring a user to edit the Xfree86 modeline by hand is likely too complex for many users.

AVWizard steps

For a detailed look at the individual screens and the different methods of connecting your display see AVWizard Step by Step

AVWizard is a 10 steps easy wizard which covers everything of basic configuration of your system.

After that will launch an OrbiterGen which will create an Orbiter corresponding to that tool.

The pages are:

  • AV Welcome screen
  • AV Resolution and Refresh screen
  • AV Video Resolution counter
  • AV UI Switcher
  • AV Video Output
  • AV Audio Connector
  • AV Audio Volume
  • AV Dolby Test
  • AV DTS Test
  • AV Final Selections

Running A/V Wizard from the Commandline

If you are having difficulty running the AVWizard normally (by selecting the option in the Orbiter) it can be run manually by typing in the command line.
/usr/pluto/bin/AVWizard_Run.sh

Note that you should kill X and any process trying to reload it before running the wizard. You should only do this if your attempt to run it normally fails for whatever reason.

Note: I had to use
sudo -s /usr/pluto/bin/AVWizard_Run.sh
to get my AVWizard to restart.

For developers

AVWizard is written in C++ using the libraries:

  • SDL (SDL_image, SDL_rotozoom, etc.)
  • libXML2
  • network code

AVWizard executes these two steps:

Those two steps may be split in the future into two separate applications, making it more customisable. "Redundant code" may also then be reduced, such as defining object, save/load operations, and restore objects . The XML files keep only the display representations of the data. The factory creates the coresponding objects in a WizardWidget class which contains a tree of WizardWidgets that has as many child processes as are used.