<?xml version="1.0" encoding="UTF-8" ?>
<!-- Copyright (C) 2012 The Android Open Source Project
     Copyright (c) 2014 Intel Corporation

     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.
-->


<VideoPostProcessSettings>
	<!-- The default status for VPP/FRC.
	     "0" is OFF and "1" is ON
	-->
	<Parameter name="DefaultVPPStatus" value="1" />
	<Parameter name="DefaultFRCStatus" value="1" />

	<Filter name="ProcFilterNoiseReduction">
		<enabled value="false"/>
		<minResolution value="320x240"/>
		<maxResolution value="640x480"/>
	</Filter>

	<Filter name="ProcFilterDeinterlacing">
		<enabled value="false"/>
		<minResolution value="0"/>
		<maxResolution value="FFFFFFFF"/>
	</Filter>

	<Filter name="ProcFilterSharpening">
		<enabled value="true"/>
		<minResolution value="176x144"/>
		<maxResolution value="1920x1080"/>
	</Filter>

	<Filter name="ProcFilterColorBalance">
		<enabled value="false"/>
		<minResolution value="176x144"/>
		<maxResolution value="640x480"/>
	</Filter>

	<Filter name="ProcFilterDeblocking">
		<enabled value="false"/>
		<minResolution value="176x144"/>
		<maxResolution value="320x240"/>
	</Filter>

	<Filter name="ProcFilterFrameRateConversion">
		<enabled value="true"/>
		<minResolution value="176x144"/>
		<maxResolution value="1920x1080"/>
		<FRCRate input="15" rate="2"/>
		<FRCRate input="25" rate="2"/>
		<FRCRate input="30" rate="2"/>
		<FRCRate input="24" rate="2.5"/>
	</Filter>

	<Filter name="ProcFilterSkinToneEnhancement">
		<enabled value="false"/>
		<minResolution value="0"/>
		<maxResolution value="FFFFFFFF"/>
	</Filter>

	<Filter name="ProcFilterTotalColorCorrection">
		<enabled value="false"/>
		<minResolution value="0"/>
		<maxResolution value="FFFFFFFF"/>
	</Filter>

	<Filter name="ProcFilterNonLinearAnamorphicScaling">
		<enabled value="false"/>
		<minResolution value="0"/>
		<maxResolution value="FFFFFFFF"/>
	</Filter>

	<Filter name="ProcFilterImageStabilization">
		<enabled value="false"/>
		<minResolution value="0"/>
		<maxResolution value="FFFFFFFF"/>
	</Filter>

</VideoPostProcessSettings>
