Camera Feature (2) -- Feature Table配置

一、前言

    上篇文章简单讲述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

      

猜你喜欢

转载自blog.csdn.net/weixin_38328785/article/details/113240387