<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Copyright 2006 The Apache Software Foundation Licensed under the Apache 
	License, Version 2.0 (the "License"); you may not use this file except in 
	compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 
	Unless required by applicable law or agreed to in writing, software distributed 
	under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES 
	OR CONDITIONS OF ANY KIND, either express or implied. See the License for 
	the specific language governing permissions and limitations under the License. -->
<document>

	<properties>
		<title>How to configure Camera default resolutions </title>
		<author email="sebawagner@apache.org">
			OpenMeetings Team
		</author>
	</properties>

	<body>

		<section name="How to configure Camera default resolutions">

			<p>When you choose the webcam you have different resolutions
				available the user can choose from. </p>
			<p>You can add/remove resolutions and also change the default
				selection. In the config.xml there is a section: </p>
			<div class="xmlcode">
				&lt;availableCameraResolutions&gt;<br/>
				<div style="margin-left:20px">
				    &lt;resolution type="4:3 (~6 KByte/sec)" width="40" height="30" isDefault="false" /&gt;<br/>
				    &lt;resolution type="4:3 (~12 KByte/sec)" width="80" height="60" isDefault="false" /&gt;<br/>
				    &lt;resolution type="4:3 (~20 KByte/sec)" width="120" height="90" isDefault="true" /&gt;<br/>
				    &lt;resolution type="QQVGA 4:3 (~36 KByte/sec)" width="160" height="120" isDefault="false" /&gt;<br/>
				    &lt;resolution type="4:3 (~40 KByte/sec)" width="240" height="180" isDefault="false" /&gt;<br/>
				    &lt;resolution type="HVGA 4:3 (~56 KByte/sec)" width="320" height="240" isDefault="false" /&gt;<br/>
				    &lt;resolution type="4:3  (~60 KByte/sec)" width="480" height="360" isDefault="false" /&gt;<br/>
				    &lt;resolution type="4:3 (~68 KByte/sec)" width="640" height="480" isDefault="false" /&gt;<br/>
				    &lt;resolution type="XGA 4:3" width="1024" height="768" isDefault="false" /&gt;<br/>
				    &lt;resolution type="16:9" width="256" height="150" isDefault="false" /&gt;<br/>
				    &lt;resolution type="WQVGA 9:5" width="432" height="240" isDefault="false" /&gt;<br/>
				    &lt;resolution type="pseudo 16:9" width="480" height="234" isDefault="false" /&gt;<br/>
				    &lt;resolution type="16:9" width="512" height="300" isDefault="false" /&gt;<br/>
				    &lt;resolution type="nHD 16:9" width="640" height="360" isDefault="false" /&gt;<br/>
				    &lt;resolution type="16:9" width="1024" height="600" isDefault="false" /&gt;<br/>
				    </div>
				&lt;/availableCameraResolutions&gt;			 
			</div>	
		      
		    <p>Tip: You might edit the config.xml with an XML aware editor that correctly 
		    handles the XSD defintion to avoid misconfiguration. The openmeetings-config.xsd 
		    is in the same folder like the config.xml. </p>
		</section>

	</body>

</document>