一、前言
上篇文章簡單講述Feature有哪些,接下來講述下Feature具體配置
二、配置檔案
2.1 Feature 檔案描述
根據MTK官網去檢視
2.2 Feature 檔案
vendor/mediatek/proprietary/custom/mt6768/hal/sendepfeature/ov13b10_mipi_raw/config.ftbl.ov13b10__mipi_raw.h
(1)Feature name :KEY_AS_(MtkCameraParameters::KEY_SCENE_MODE)
KEY_AS_(MtkCameraParameters::KEY_EFFECT)
(2)Feature 預設值:ITEM_AS_DEFAULT_(MtkCameraParameters::SCENE_MODE_AUTO)
(3)Feature 支援Value :ITEM_AS_VALUES_(...)後面很多都是
後面的KEY_PICTURE_SIZE、KEY_PREVIEW_SIZE、KEY_VIDEO_SIZE等等都是上面的模式
FTABLE_DEFINITION(SENSOR_DRVNAME_OV13B10_MIPI_RAW)
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
FTABLE_SCENE_INDEP()
//==========================================================================
#if 1
// Scene Mode
FTABLE_CONFIG_AS_TYPE_OF_DEFAULT_VALUES(
KEY_AS_(MtkCameraParameters::KEY_SCENE_MODE),
SCENE_AS_DEFAULT_SCENE(
ITEM_AS_DEFAULT_(MtkCameraParameters::SCENE_MODE_AUTO),
ITEM_AS_VALUES_(
MtkCameraParameters::SCENE_MODE_AUTO,
// MtkCameraParameters::SCENE_MODE_NORMAL,
MtkCameraParameters::SCENE_MODE_PORTRAIT,
MtkCameraParameters::SCENE_MODE_LANDSCAPE,
MtkCameraParameters::SCENE_MODE_NIGHT,
MtkCameraParameters::SCENE_MODE_NIGHT_PORTRAIT,
MtkCameraParameters::SCENE_MODE_THEATRE,
MtkCameraParameters::SCENE_MODE_BEACH,
MtkCameraParameters::SCENE_MODE_SNOW,
MtkCameraParameters::SCENE_MODE_SUNSET,
MtkCameraParameters::SCENE_MODE_STEADYPHOTO,
MtkCameraParameters::SCENE_MODE_FIREWORKS,
MtkCameraParameters::SCENE_MODE_SPORTS,
MtkCameraParameters::SCENE_MODE_PARTY,
MtkCameraParameters::SCENE_MODE_CANDLELIGHT,
MtkCameraParameters::SCENE_MODE_HDR,
)
),
)
#endif
//==========================================================================
#if 1
// Effect
FTABLE_CONFIG_AS_TYPE_OF_DEFAULT_VALUES(
KEY_AS_(MtkCameraParameters::KEY_EFFECT),
SCENE_AS_DEFAULT_SCENE(
ITEM_AS_DEFAULT_(MtkCameraParameters::EFFECT_NONE),
ITEM_AS_VALUES_(
MtkCameraParameters::EFFECT_NONE,
MtkCameraParameters::EFFECT_MONO,
MtkCameraParameters::EFFECT_NEGATIVE,
MtkCameraParameters::EFFECT_SEPIA,
MtkCameraParameters::EFFECT_AQUA,
MtkCameraParameters::EFFECT_WHITEBOARD,
MtkCameraParameters::EFFECT_BLACKBOARD,
MtkCameraParameters::EFFECT_POSTERIZE,
MtkCameraParameters::EFFECT_NASHVILLE,
MtkCameraParameters::EFFECT_HEFE,
MtkCameraParameters::EFFECT_VALENCIA ,
MtkCameraParameters::EFFECT_XPROII ,
MtkCameraParameters::EFFECT_LOFI,
MtkCameraParameters::EFFECT_SIERRA ,
// MtkCameraParameters::EFFECT_KELVIN ,
MtkCameraParameters::EFFECT_WALDEN ,
// MtkCameraParameters::EFFECT_F1977 ,
)
),
)
#endif
#if 1
// Picture Size (Both width & height must be 16-aligned)
// For XTS: the largest preview-size must have same aspect ratio (+-0.5) as the largest picture-size
FTABLE_CONFIG_AS_TYPE_OF_DEFAULT_VALUES(
KEY_AS_(MtkCameraParameters::KEY_PICTURE_SIZE),
SCENE_AS_DEFAULT_SCENE(
ITEM_AS_DEFAULT_("4208x3120"),
ITEM_AS_VALUES_(
"4208x3120", "4160x3120", "4160x2340", "4000x3000", "4000x2250", "4000x2000", "3840x2160",
"3264x2448", "3200x2400", "2976x2976", "2592x1944", "2592x1458", "2592x1296",
"2688x1512", "2048x1536", "1920x1080", "1920x960", "1600x1200", "1440x1080",
"1280x960", "1280x768", "1280x720", "1200x1200", "1024x768", "800x600",
"640x480", "176x144", "320x240",
)
),
)
#endif
//==========================================================================
#if 1
// Preview Size
// For XTS: the largest preview-size must have same aspect ratio (+-0.5) as the largest picture-size
FTABLE_CONFIG_AS_TYPE_OF_DEFAULT_VALUES(
KEY_AS_(MtkCameraParameters::KEY_PREVIEW_SIZE),
SCENE_AS_DEFAULT_SCENE(
ITEM_AS_DEFAULT_("1280x720"),
ITEM_AS_VALUES_(
"176x144", "320x240", "352x288", "480x320", "480x368",
"640x480", "640x640", "720x480", "768x432", "800x480",
"832x486", "864x480", "960x480", "960x720", "1280x720",
)
),
)
#endif
//==========================================================================
#if 1
// Video Size
FTABLE_CONFIG_AS_TYPE_OF_DEFAULT_VALUES(
KEY_AS_(MtkCameraParameters::KEY_VIDEO_SIZE),
SCENE_AS_DEFAULT_SCENE(
ITEM_AS_DEFAULT_("4096x2160"),
ITEM_AS_VALUES_(
"4096x2160", "3840x2160", "1920x1080", "1280x960", "1280x720", "864x480",
"854x480", "800x480", "720x480", "640x480", "480x640", "640x360",
"480x360", "480x320", "352x288", "320x240", "240x320", "176x144",
"144x176", "160x120",
)
),
)
#endif
//==========================================================================
#if 1
// Preview Frame Rate Range
FTABLE_CONFIG_AS_TYPE_OF_USER(
KEY_AS_(MtkCameraParameters::KEY_PREVIEW_FPS_RANGE),
SCENE_AS_DEFAULT_SCENE(
ITEM_AS_DEFAULT_("5000,30000"),
ITEM_AS_USER_LIST_(
"(15000,15000)",
"(20000,20000)",
"(24000,24000)",
"(5000,30000)",
"(30000,30000)",
)
),
)
#endif
//==========================================================================
#if 1
// Exposure Compensation
FTABLE_CONFIG_AS_TYPE_OF_USER(
KEY_AS_(MtkCameraParameters::KEY_EXPOSURE_COMPENSATION),
SCENE_AS_DEFAULT_SCENE(
ITEM_AS_DEFAULT_("0"),
ITEM_AS_USER_LIST_(
"-3", //min exposure compensation index
"3", //max exposure compensation index
"1.0", //exposure compensation step; EV = step x index
)
),
//......................................................................
#if 1 // SCENE HDR
SCENE_AS_(MtkCameraParameters::SCENE_MODE_HDR,
ITEM_AS_DEFAULT_("0"),
ITEM_AS_USER_LIST_(
"0", //min exposure compensation index
"0", //max exposure compensation index
"1.0", //exposure compensation step; EV = step x index
)
)
#endif
//......................................................................
)
#endif
//==========================================================================
#if 1
// Anti-banding (Flicker)
FTABLE_CONFIG_AS_TYPE_OF_DEFAULT_VALUES(
KEY_AS_(MtkCameraParameters::KEY_ANTIBANDING),
SCENE_AS_DEFAULT_SCENE(
ITEM_AS_DEFAULT_(MtkCameraParameters::ANTIBANDING_AUTO),
ITEM_AS_VALUES_(
MtkCameraParameters::ANTIBANDING_OFF,
MtkCameraParameters::ANTIBANDING_50HZ,
MtkCameraParameters::ANTIBANDING_60HZ,
MtkCameraParameters::ANTIBANDING_AUTO,
)
),
)
#endif
//==========================================================================
#if 1
// Video Snapshot
#if (1 == VSS_SUPPORTED)
FTABLE_CONFIG_AS_TYPE_OF_USER(
KEY_AS_(MtkCameraParameters::KEY_VIDEO_SNAPSHOT_SUPPORTED),
SCENE_AS_DEFAULT_SCENE(
ITEM_AS_DEFAULT_(MtkCameraParameters::TRUE),
),
)
#else
FTABLE_CONFIG_AS_TYPE_OF_USER(
KEY_AS_(MtkCameraParameters::KEY_VIDEO_SNAPSHOT_SUPPORTED),
SCENE_AS_DEFAULT_SCENE(
ITEM_AS_DEFAULT_(MtkCameraParameters::FALSE),
),
)
#endif
#endif
//==========================================================================
#if 1
// Zoom
FTABLE_CONFIG_AS_TYPE_OF_USER(
KEY_AS_(MtkCameraParameters::KEY_ZOOM),
SCENE_AS_DEFAULT_SCENE(
ITEM_AS_DEFAULT_("0"), //Zoom Index
ITEM_AS_USER_LIST_(
//Zoom Ratio
"100", "114", "132", "151", "174",
"200", "229", "263", "303", "348",
"400",
)
),
)
#endif
//==========================================================================
#if 1
// Zsd
FTABLE_CONFIG_AS_TYPE_OF_DEFAULT_VALUES(
KEY_AS_(MtkCameraParameters::KEY_ZSD_MODE),
SCENE_AS_DEFAULT_SCENE(
ITEM_AS_DEFAULT_(MtkCameraParameters::OFF),
ITEM_AS_VALUES_(
MtkCameraParameters::OFF,
MtkCameraParameters::ON,
)
),
)
#endif
//==========================================================================
#if 1
// (Shot) Capture Mode
FTABLE_CONFIG_AS_TYPE_OF_DEFAULT_VALUES(
KEY_AS_(MtkCameraParameters::KEY_CAPTURE_MODE),
SCENE_AS_DEFAULT_SCENE(
ITEM_AS_DEFAULT_(MtkCameraParameters::CAPTURE_MODE_NORMAL),
ITEM_AS_VALUES_(
MtkCameraParameters::CAPTURE_MODE_NORMAL,
MtkCameraParameters::CAPTURE_MODE_CONTINUOUS_SHOT,
MtkCameraParameters::CAPTURE_MODE_SMILE_SHOT,
MtkCameraParameters::CAPTURE_MODE_BEST_SHOT,
MtkCameraParameters::CAPTURE_MODE_AUTO_PANORAMA_SHOT,
MtkCameraParameters::CAPTURE_MODE_MAV_SHOT,
MtkCameraParameters::CAPTURE_MODE_ASD_SHOT,
)
),
)
#endif
//==========================================================================
#if 1
// MFB
FTABLE_CONFIG_AS_TYPE_OF_DEFAULT_VALUES(
KEY_AS_(MtkCameraParameters::KEY_MFB_MODE),
SCENE_AS_DEFAULT_SCENE(
ITEM_AS_DEFAULT_(MtkCameraParameters::OFF),
ITEM_AS_VALUES_(
MtkCameraParameters::OFF,
MtkCameraParameters::KEY_MFB_MODE_AIS,
)
),
)
#endif
//==========================================================================
END_FTABLE_SCENE_INDEP()
//------------------------------------------------------------------------------
/*******************************************************************************
*
******************************************************************************/
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
FTABLE_SCENE_DEP()
//==========================================================================
#if 1
// Focus Mode
FTABLE_CONFIG_AS_TYPE_OF_DEFAULT_VALUES(
KEY_AS_(MtkCameraParameters::KEY_FOCUS_MODE),
SCENE_AS_DEFAULT_SCENE(
ITEM_AS_DEFAULT_(MtkCameraParameters::FOCUS_MODE_AUTO),
ITEM_AS_VALUES_(
MtkCameraParameters::FOCUS_MODE_AUTO,
MtkCameraParameters::FOCUS_MODE_MACRO,
MtkCameraParameters::FOCUS_MODE_INFINITY,
MtkCameraParameters::FOCUS_MODE_CONTINUOUS_PICTURE,
MtkCameraParameters::FOCUS_MODE_CONTINUOUS_VIDEO,
"manual", "fullscan",
)
),
//......................................................................
)
#endif
//==========================================================================
#if 1
// ISO
FTABLE_CONFIG_AS_TYPE_OF_DEFAULT_VALUES(
KEY_AS_(MtkCameraParameters::KEY_ISO_SPEED),
SCENE_AS_DEFAULT_SCENE(
ITEM_AS_DEFAULT_("auto"),
ITEM_AS_VALUES_(
"auto",
)
),
//......................................................................
#if 1 // SCENE AUTO
SCENE_AS_(MtkCameraParameters::SCENE_MODE_AUTO,
ITEM_AS_DEFAULT_("auto"),
ITEM_AS_VALUES_(
"auto", "100", "200", "400", "800", "1600",
)
)
#endif
//......................................................................
#if 1 // SCENE NORMAL
SCENE_AS_(MtkCameraParameters::SCENE_MODE_NORMAL,
ITEM_AS_DEFAULT_("auto"),
ITEM_AS_VALUES_(
"auto", "100", "200", "400", "800", "1600",
)
)
#endif
//......................................................................
)
#endif
//==========================================================================
#if 1
// White Balance.
FTABLE_CONFIG_AS_TYPE_OF_DEFAULT_VALUES(
KEY_AS_(MtkCameraParameters::KEY_WHITE_BALANCE),
SCENE_AS_DEFAULT_SCENE(
ITEM_AS_DEFAULT_(MtkCameraParameters::WHITE_BALANCE_AUTO),
ITEM_AS_VALUES_(
MtkCameraParameters::WHITE_BALANCE_AUTO, MtkCameraParameters::WHITE_BALANCE_INCANDESCENT,
MtkCameraParameters::WHITE_BALANCE_FLUORESCENT, MtkCameraParameters::WHITE_BALANCE_WARM_FLUORESCENT,
MtkCameraParameters::WHITE_BALANCE_DAYLIGHT, MtkCameraParameters::WHITE_BALANCE_CLOUDY_DAYLIGHT,
MtkCameraParameters::WHITE_BALANCE_TWILIGHT, MtkCameraParameters::WHITE_BALANCE_SHADE,
)
),
//......................................................................
#if 1 // SCENE LANDSCAPE
SCENE_AS_(MtkCameraParameters::SCENE_MODE_LANDSCAPE,
ITEM_AS_DEFAULT_(MtkCameraParameters::WHITE_BALANCE_DAYLIGHT),
ITEM_AS_VALUES_(
MtkCameraParameters::WHITE_BALANCE_AUTO, MtkCameraParameters::WHITE_BALANCE_INCANDESCENT,
MtkCameraParameters::WHITE_BALANCE_FLUORESCENT, MtkCameraParameters::WHITE_BALANCE_WARM_FLUORESCENT,
MtkCameraParameters::WHITE_BALANCE_DAYLIGHT, MtkCameraParameters::WHITE_BALANCE_CLOUDY_DAYLIGHT,
MtkCameraParameters::WHITE_BALANCE_TWILIGHT, MtkCameraParameters::WHITE_BALANCE_SHADE,
)
)
#endif
//......................................................................
#if 1 // SCENE SUNSET
SCENE_AS_(MtkCameraParameters::SCENE_MODE_SUNSET,
ITEM_AS_DEFAULT_(MtkCameraParameters::WHITE_BALANCE_DAYLIGHT),
ITEM_AS_VALUES_(
MtkCameraParameters::WHITE_BALANCE_AUTO, MtkCameraParameters::WHITE_BALANCE_INCANDESCENT,
MtkCameraParameters::WHITE_BALANCE_FLUORESCENT, MtkCameraParameters::WHITE_BALANCE_WARM_FLUORESCENT,
MtkCameraParameters::WHITE_BALANCE_DAYLIGHT, MtkCameraParameters::WHITE_BALANCE_CLOUDY_DAYLIGHT,
MtkCameraParameters::WHITE_BALANCE_TWILIGHT, MtkCameraParameters::WHITE_BALANCE_SHADE,
)
)
#endif
//......................................................................
#if 1 // SCENE CANDLELIGHT
SCENE_AS_(MtkCameraParameters::SCENE_MODE_CANDLELIGHT,
ITEM_AS_DEFAULT_(MtkCameraParameters::WHITE_BALANCE_INCANDESCENT),
ITEM_AS_VALUES_(
MtkCameraParameters::WHITE_BALANCE_AUTO, MtkCameraParameters::WHITE_BALANCE_INCANDESCENT,
MtkCameraParameters::WHITE_BALANCE_FLUORESCENT, MtkCameraParameters::WHITE_BALANCE_WARM_FLUORESCENT,
MtkCameraParameters::WHITE_BALANCE_DAYLIGHT, MtkCameraParameters::WHITE_BALANCE_CLOUDY_DAYLIGHT,
MtkCameraParameters::WHITE_BALANCE_TWILIGHT, MtkCameraParameters::WHITE_BALANCE_SHADE,
)
)
#endif
//......................................................................
)
#endif
//==========================================================================
#if 1
// ISP Edge
FTABLE_CONFIG_AS_TYPE_OF_DEFAULT_VALUES(
KEY_AS_(MtkCameraParameters::KEY_EDGE),
SCENE_AS_DEFAULT_SCENE(
ITEM_AS_DEFAULT_(MtkCameraParameters::MIDDLE),
ITEM_AS_VALUES_(
MtkCameraParameters::LOW, MtkCameraParameters::MIDDLE, MtkCameraParameters::HIGH,
)
),
//......................................................................
//......................................................................
)
#endif
//==========================================================================
#if 1
// ISP Hue
FTABLE_CONFIG_AS_TYPE_OF_DEFAULT_VALUES(
KEY_AS_(MtkCameraParameters::KEY_HUE),
SCENE_AS_DEFAULT_SCENE(
ITEM_AS_DEFAULT_(MtkCameraParameters::MIDDLE),
ITEM_AS_VALUES_(
MtkCameraParameters::LOW, MtkCameraParameters::MIDDLE, MtkCameraParameters::HIGH,
)
),
//......................................................................
//......................................................................
)
#endif
//==========================================================================
#if 1
// ISP Saturation
FTABLE_CONFIG_AS_TYPE_OF_DEFAULT_VALUES(
KEY_AS_(MtkCameraParameters::KEY_SATURATION),
SCENE_AS_DEFAULT_SCENE(
ITEM_AS_DEFAULT_(MtkCameraParameters::MIDDLE),
ITEM_AS_VALUES_(
MtkCameraParameters::LOW, MtkCameraParameters::MIDDLE, MtkCameraParameters::HIGH,
)
),
//......................................................................
//......................................................................
)
#endif
//==========================================================================
#if 1
// ISP Brightness
FTABLE_CONFIG_AS_TYPE_OF_DEFAULT_VALUES(
KEY_AS_(MtkCameraParameters::KEY_BRIGHTNESS),
SCENE_AS_DEFAULT_SCENE(
ITEM_AS_DEFAULT_(MtkCameraParameters::MIDDLE),
ITEM_AS_VALUES_(
MtkCameraParameters::LOW, MtkCameraParameters::MIDDLE, MtkCameraParameters::HIGH,
)
),
//......................................................................
//......................................................................
)
#endif
//==========================================================================
#if 1
// ISP Contrast
FTABLE_CONFIG_AS_TYPE_OF_DEFAULT_VALUES(
KEY_AS_(MtkCameraParameters::KEY_CONTRAST),
SCENE_AS_DEFAULT_SCENE(
ITEM_AS_DEFAULT_(MtkCameraParameters::MIDDLE),
ITEM_AS_VALUES_(
MtkCameraParameters::LOW, MtkCameraParameters::MIDDLE, MtkCameraParameters::HIGH,
)
),
//......................................................................
//......................................................................
)
#endif
//==========================================================================
END_FTABLE_SCENE_DEP()
//------------------------------------------------------------------------------
END_FTABLE_DEFINITION()
/*******************************************************************************
*
******************************************************************************/
#endif
//#endif //_MTK_CUSTOM_PROJECT_HAL_IMGSENSOR_SRC_CONFIGFTBL__H_
三、Feature Mode開關
vendor/mediatek/proprietary/packages/apps/Camera/src/com/android/camera/ModeChecker.java
App上層檔案決定是否要這個Feature
