////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2016-2024 Qualcomm Technologies, Inc.
// All Rights Reserved.
// Confidential and Proprietary - Qualcomm Technologies, Inc.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// @file  chivendortagdefines.h
/// @brief Define Qualcomm Technologies, Inc. CHI VendorTag define
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#ifndef CHIVENDORTAGDEFINES_H
#define CHIVENDORTAGDEFINES_H

/************************************************************************************************
 *
 * IMPORTANT NOTE:
 *
 *   This file is QTI vendorTag define headers
 *
 *   Vendor or third-party should define their vendortag in chivendortagoemdefines.h
 *
 *   - DO NOT ADD STRUCTURE DEFINE
 *   - DO NOT ADD CUSTOMER VENDORTAG
 *   - DO NOT CHANGE THE LAYOUT
 ************************************************************************************************/

#include "chivendortag.h"
#include "chieisdefs.h"
#include "chiifedefs.h"
#include "chiipedefs.h"
#include "chiiqmodulesettings.h"
#include "chiispstatsdefs.h"
#include "chisegdefs.h"
#include "chistatsproperty.h"
#include "chiswispdefs.h"
#include "chituningmodeparam.h"
#include "camxsensordriverapi.h"
#include "system/camera_metadata.h"

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// VendorTag Type Define
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

/// @brief redefine from camx-lib\system\firmware\ipdefs.h
struct CHIImageDimensions
{
    uint32_t    widthPixels;
    uint32_t    heightLines;
};

/// @brief redefine from camx\src\core\hal\camxhal3metadatatagtypes.h
struct CHIIPEICACapability
{
    INT32 supportedIPEICATransformType;      ///< ICA Transform Type
    INT32 IPEICATransformGridSize;           ///< ICA Transform Grid Size
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// VendorTag Data Index Define
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

/// @brief Session parameters tag index
enum VendorTagIndexSessionParameters
{
    EnableMCTFIndex = 0,        ///< Index for Enable MCTF
    ContourVersionIndex,        ///< Index for Contour Version
    EnableInsensorZoomIndex,    ///< Index for Enable Insensor Zoom
    HorizonLevelControlIndex,   ///< Index for Horizon Level Control
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// VendorTag Data Define
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

///< chxextensioninterface.cpp, Section:com.qti.chi.override
static CHIVENDORTAGDATA g_VendorTagDataChiOverride[] =
{
    { "override_tag1",                     TYPE_INT32, 1,  NoPrintFormat      },
    { "override_tag2",                     TYPE_BYTE,  1,  NoPrintFormat      },
    { "override_tag3",                     TYPE_INT64, 1,  NoPrintFormat      },
    { "override_tag4",                     TYPE_INT64, 2,  NoPrintFormat      }
};

///< chxextensioninterface.cpp, Section:com.qti.chi.multicamerasensorconfig
static CHIVENDORTAGDATA g_VendorTagDataMulticameraSensorConfig[] =
{
    { "sensorsyncmodeconfig",              TYPE_BYTE,  sizeof(SensorSyncModeMetadata),       PrintSensorSyncModeMetadata      },
    { "DeferSensorInit",                   TYPE_INT32, 1,                                    NoPrintFormat                    }
};

///< chxextensioninterface.cpp, Section:com.qti.chi.multicamerainputmetadata
static CHIVENDORTAGDATA g_VendorTagDataMulticameraInputMetadata[] =
{
    { "InputMetadataOpticalZoom",          TYPE_BYTE,  sizeof(InputMetadataOpticalZoom),     PrintInputMetadataOpticalZoom    },
    { "RealtimeMetadataOpticalZoom",       TYPE_BYTE,  sizeof(RealtimeMetadataOpticalZoom),  PrintRealTimeMetadataOpticalZoom },
    { "InputMetadataBokeh",                TYPE_BYTE,  sizeof(InputMetadataBokeh),           PrintInputMetadataBokeh          },
    { "InputMetadataForSwitchController",  TYPE_BYTE,  sizeof(SATSwitchController),          PrintSATSwitchController         }
};

///< chxextensioninterface.cpp, Section:com.qti.chi.multicameraoutputmetadata
static CHIVENDORTAGDATA g_VendorTagDataMulticameraOutputMetadata[] =
{
    { "OutputMetadataOpticalZoom",         TYPE_BYTE,  sizeof(OutputMetadataOpticalZoom),    PrintOutputMetadataOpticalZoom   },
    { "OutputMetadataBokeh",               TYPE_BYTE,  sizeof(OutputMetadataBokeh),          PrintOutputMetadataBokeh         }
};

///< chxextensioninterface.cpp, Section:com.qti.chi.multicamerainfo
static CHIVENDORTAGDATA g_VendorTagDataMulticameraInfo[] =
{
    { "MultiCameraIds",                    TYPE_BYTE,  sizeof(MultiCameraIds),      PrintMultiCameraIds   },
    { "MasterCamera",                      TYPE_BYTE,  sizeof(BOOL),                NoPrintFormat         },
    { "LowPowerMode",                      TYPE_BYTE,  sizeof(LowPowerModeInfo),    PrintLowPowerModeInfo },
    { "SyncMode",                          TYPE_BYTE,  sizeof(SyncModeInfo),        PrintSyncModeInfo     },
    { "FPSMatch",                          TYPE_BYTE,  sizeof(BOOL),                NoPrintFormat         },
    { "ActiveCameraMask",                  TYPE_INT32, 1,                           NoPrintFormat         },
    { "ActiveCameraInfo",                  TYPE_BYTE,  sizeof(ActiveCameraInfo),    PrintActiveCameraInfo },
    { "PhyCamFOVMargin",                   TYPE_FLOAT, 1,                           NoPrintFormat         }
};

///< chxextensioninterface.cpp, Section:com.qti.chi.auxcamerainfo
static CHIVENDORTAGDATA g_VendorTagDataAuxCameraInfo[] =
{
    { "AuxFPS",                                   TYPE_INT32, 1,                        NoPrintFormat         },
    { "PrimaryPipelinesActiveInAuxSessionMask",   TYPE_INT32, 1,                        NoPrintFormat         },
    { "ActiveAuxCameraInfo",                      TYPE_BYTE,  sizeof(ActiveCameraInfo), PrintActiveCameraInfo },
    { "IsAuxSession",                             TYPE_BYTE,  sizeof(BOOL),             NoPrintFormat         },
    { "IsAuxStandby",                             TYPE_BYTE,  sizeof(BOOL),             NoPrintFormat         }

};

///< chxextensioninterface.cpp, Section:com.qti.chi.logicalcamerainfo
static CHIVENDORTAGDATA g_VendorTagDataLogicalCameraInfo[] =
{
    { "NumPhysicalCameras",                TYPE_BYTE,  sizeof(UINT32),      NoPrintFormat     },
    { "OutputMetadataStreamMask",          TYPE_INT64, 1,                   NoPrintFormat     }
};

///< chxextensioninterface.cpp, Section:com.qti.cropregions
static CHIVENDORTAGDATA g_VendorTagCropRegion[] =
{
    { "crop_regions",                      TYPE_BYTE,  sizeof(CaptureRequestCropRegions), PrintCaptureRequestCropRegions   },
    { "ChiNodeResidualCrop",               TYPE_BYTE,  sizeof(CHIRECT),                   PrintCHIRECT                     },
    { "FinalScalerCropRegion",             TYPE_BYTE,  sizeof(CHIRECT),                   PrintCHIRECT                     }
};

///< chxextensioninterface.cpp, Section:com.qti.chi.statsaec
static CHIVENDORTAGDATA g_VendorTagAECLux[] =
{
    { "AecLux",                            TYPE_FLOAT, 1,  NoPrintFormat     }
};

///< chxextensioninterface.cpp, Section:com.qti.chi.statsSkip
static CHIVENDORTAGDATA g_VendorTagStatsSkip[] =
{
    { "skipFrame",                         TYPE_INT32, 1,  NoPrintFormat     }
};

///< chxextensioninterface.cpp, Section:com.qti.chi.metadataOwnerInfo
static CHIVENDORTAGDATA g_VendorTagMetaOwnerInfo[] =
{
    { "MetadataOwner",                     TYPE_BYTE,  sizeof(MetadataOwnerInfo),         PrintMetadataOwnerInfo        }
};

///< chxextensioninterface.cpp, Section:com.qti.chi.feature2RequestInfo
static CHIVENDORTAGDATA g_VendorTagFeature2RequestInfo[] =
{
    { "IsSnapshot",                        TYPE_BYTE,  1,                                 NoPrintFormat                 },
    { "Feature2MccResult",                 TYPE_BYTE,  sizeof(Feature2ControllerResult),  PrintFeature2ControllerResult }
};

///< chxextensioninterface.cpp, Section:com.qti.chi.cameraconfiguration
static CHIVENDORTAGDATA g_VendorTagDataCameraConfiguration[] =
{
    { "PhysicalCameraConfigs",             TYPE_BYTE,  sizeof(CameraConfigs),                PrintCameraConfigs               },
    { "PhysicalCameraInputConfig",         TYPE_BYTE,  sizeof(ChiMultiCameraConfig),         PrintChiMultiCameraConfig        },
    { "PhysicalDifferentDimensionMap",     TYPE_BYTE,  sizeof(ChiMultiCamDimensionDiffMap),  PrintChiMultiCamDimensionDiffMap }
};

///< chxextensioninterface.cpp, Section:com.qti.chi.lowResolutionUpscale
static CHIVENDORTAGDATA g_VendorTagDataLowResolutionUpscale[] =
{
    { "LowResolutionUpscale",             TYPE_BYTE,  sizeof(BOOL),                PrintLowResolutionUpscale   }
};


///< chxextensioninterface.cpp, Section:com.qti.chi.superslowmotionfrc
static CHIVENDORTAGDATA g_VendorTagSuperSlowMotionFRC[] =
{
    { "CaptureStart",                      TYPE_INT32, 1, NoPrintFormat                     },
    { "CaptureComplete",                   TYPE_INT32, 1, NoPrintFormat                     },
    { "ProcessingComplete",                TYPE_INT32, 1, NoPrintFormat                     },
    { "InterpolationFactor",               TYPE_INT32, 1, NoPrintFormat                     }
};

///< chxextensioninterface.cpp, Section:com.qti.chi.bpsrealtimecam
static CHIVENDORTAGDATA g_VendorTagBPSRealtimeCam[] =
{
    { "cameraRunningOnBPS",                TYPE_BYTE,  sizeof(BOOL),                    NoPrintFormat },
};

///< chxextensioninterface.cpp, Section:com.qti.chi.stabilizationmode
static CHIVENDORTAGDATA g_VendorTagStabilizationModeRealtimeCam[] =
{
    { "imageStabilizationMode",            TYPE_BYTE,  sizeof(ImageStabilizationMode),  NoPrintFormat },
};

///< chxextensioninterface.cpp, Section:com.qti.chi.ZSLSettings
static CHIVENDORTAGDATA g_VendorTagZSLTags[] =
{
    { "ZSLTimeRange",                      TYPE_INT64, 2, NoPrintFormat                  },
    { "lastZSLframe",                      TYPE_INT32, 1, NoPrintFormat                  },
    { "lastDebugZSLframe",                 TYPE_INT32, 1, NoPrintFormat                  }
};

///< chxextensioninterface.cpp, Section:com.qti.chi.livePreview
static CHIVENDORTAGDATA g_VendorTagLivePreview[] =
{
    { "enable",                            TYPE_INT32, 1, NoPrintFormat                }
};

///< chxextensioninterface.cpp, Section:com.qti.chi.snapshotframeexposuretype
static CHIVENDORTAGDATA g_VendorTagExposureType[] =
{
    { "snapshotframeexposuretype",      TYPE_INT32, 1, NoPrintFormat },
    { "SnapshotNumOfExposures",         TYPE_INT32, 1, NoPrintFormat },
};

///< chxextensioninterface.cpp, Section:com.qti.chi.qllControl
static CHIVENDORTAGDATA g_VendorTagQLLControl[] =
{
    { "QLLConfiguration",                  TYPE_BYTE, sizeof(QLLData),          PrintQLLData        }
};

///< camxchinodeseg.cpp,       Section:"com.qti.chi.segmentation"
static CHIVENDORTAGDATA g_VendorTagSegmentation[] =
{
    { "SegMetaOut",                       TYPE_BYTE, sizeof(ChiSegMetadataOut),       NoPrintFormat  },
    { "SegFaceStatsMetaOut",              TYPE_BYTE, sizeof(ChiSegFaceMetadataOut),   NoPrintFormat  }
};

///< chxextensioninterface.cpp, Section:org.quic.camera.debugDumpConfig
static CHIVENDORTAGDATA g_VendorTagDebugDumpConfig[] =
{
    { "DebugDumpConfig",                   TYPE_BYTE,  sizeof(DumpFileName),    PrintDumpFileName   }
};

///< camxafinterface.cpp Section:com.qti.stats.af
static const CHAR AFAlgoSectionName[]                = "com.qti.stats.af";
static CHIVENDORTAGDATA g_VendorTagDataAFInterface[] =
{
    { "horiCountTag",                       TYPE_INT32,    1,                NoPrintFormat         },
    { "vertCountTag",                       TYPE_INT32,    1,                NoPrintFormat         },
    { "widthRegionTag",                     TYPE_INT32,    1,                NoPrintFormat         },
    { "heightRegionTag",                    TYPE_INT32,    1,                NoPrintFormat         },
    { "horiOffsetTag",                      TYPE_INT32,    1,                NoPrintFormat         },
    { "vertOffsetTag",                      TYPE_INT32,    1,                NoPrintFormat         },
    { "ConfidenceMapTag",                   TYPE_INT32,    MaxAFFocusMapNum, NoPrintFormat         },
    { "DistanceMapTag",                     TYPE_INT32,    MaxAFFocusMapNum, NoPrintFormat         },
    { "AFSelectionMapTag",                  TYPE_INT32,    MaxAFFocusMapNum, NoPrintFormat         },
    { "DefocusMapTag",                      TYPE_INT32,    MaxAFFocusMapNum, NoPrintFormat         },
};

static CHIVENDORTAGSECTIONDATA g_VendorTagSectionDataAFInterface[] =
{
    {
        AFAlgoSectionName,  0,
        sizeof(g_VendorTagDataAFInterface) / sizeof(g_VendorTagDataAFInterface[0]), g_VendorTagDataAFInterface,
        CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToAll
    }
};

static ChiVendorTagInfo g_VendorTagInfoAFInterface[] =
{
    {
        &g_VendorTagSectionDataAFInterface[0],
        sizeof(g_VendorTagSectionDataAFInterface) / sizeof(g_VendorTagSectionDataAFInterface[0])
    }
};

///< Section:com.qti.stats.aec
static const CHAR AECAlgoSectionName[]              = "com.qti.stats.aec";

///< Section:com.qti.stats.awb
static const CHAR AWBAlgoSectionName[]              = "com.qti.stats.awb";

///< Section:"com.qti.stats.pdlib"
static const CHAR PDLibSectionName[]                = "com.qti.stats.pdlib";

///< chxextensioninterface.cpp, Section:com.qti.chi.offlinepipelineinfo
static CHIVENDORTAGDATA g_VendorTagOfflinePipelineInfo[] =
{
    { "MetaBufferDelay",                   TYPE_INT32, 1, NoPrintFormat                 }
};

///< chxextensioninterface.cpp, Section:com.qti.chi.pixelshift
static CHIVENDORTAGDATA g_VendorTagPixelShift[] =
{
    { "PixelShift",                        TYPE_BYTE, sizeof(ImageShiftData),   PrintImageShiftData }
};

static CHIVENDORTAGDATA g_VendorTagAnchorSync[] =
{
    { "AnchorFrame", TYPE_INT32, 1, NoPrintFormat }
};

///< Section:org.quic.camera.MultiFrame
static CHIVENDORTAGDATA g_VendorTagMultiFrameInfo[] =
{
    { "MultiframeBurstLimit", TYPE_BYTE, 1, NoPrintFormat },
    { "MultiframeBurstEnable", TYPE_BYTE, 1, NoPrintFormat }
};

///< Section:org.codeaurora.qcamera3.saturation
static CHIVENDORTAGDATA g_VendorTagSectionSaturation[] =
{
    { "use_saturation",                    TYPE_INT32, 1, NoPrintFormat                 },
    { "range",                             TYPE_INT32, 4, NoPrintFormat                 }
};

///< camxchinodeeisv3.cpp, Section:org.quic.camera2.ipeicaconfigs
static CHIVENDORTAGDATA g_VendorTagSectionEISV3ICA[] =
{
    { "ICAInPerspectiveTransform",           0,       sizeof(IPEICAPerspectiveTransform), PrintIPEICAPerspectiveTransform },
    { "ICAInGridOut2InTransform",            0,       sizeof(IPEICAGridTransform),        PrintIPEICAGridTransform        },
    { "ICAInGridTransformLookahead",         0,       sizeof(IPEICAGridTransform),        PrintIPEICAGridTransform        },
    { "ICAReferenceParams",                  0,       sizeof(IPEICAPerspectiveTransform), PrintIPEICAPerspectiveTransform },
    { "ICAInGridIn2OutTransform",            0,       sizeof(IPEICAGridTransform),        PrintIPEICAGridTransform        },
    { "AltExpToAnchorExpAlignmentTransform", 0,       sizeof(IPEICAGridTransform) ,       PrintIPEICAGridTransform        },
    { "ICAReferenceParamsGrid",              0,       sizeof(IPEICAGridTransform),        PrintIPEICAGridTransform        }
};

///< camxchinodeeisv3.cpp, Section:org.quic.camera.recording
static CHIVENDORTAGDATA g_VendorTagSectionRecording[] =
{
    { "endOfStreamRequestId",              0,          sizeof(UINT64), NoPrintFormat    },
    { "requestHasVideoBuffer",             0,          1,              NoPrintFormat    }
};

///< camxchinodeeisv3.cpp, Section:org.quic.camera.eislookahead
static CHIVENDORTAGDATA g_VendorTagSectionEISLookahead[] =
{
    { "Enabled",                           0,          1,                            NoPrintFormat            },
    { "FrameDelay",                        0,          sizeof(UINT32),               NoPrintFormat            },
    { "RequestedMargin",                   0,          sizeof(MarginRequest),        PrintMarginRequest       },
    { "StabilizationMargins",              0,          sizeof(StabilizationMargin),  PrintStabilizationMargin },
    { "AdditionalCropOffset",              0,          sizeof(CHIImageDimensions),   PrintCHIImageDimensions  },
    { "StabilizedOutputDims",              0,          sizeof(CHIDimension),         PrintCHIDimension        },
    { "MinimalTotalMargins",               0,          sizeof(MarginRequest),        PrintMarginRequest       },
    { "DISMVStats",                        0,          sizeof(DISMVStats),           PrintDISMVStats          },
    { "ExtraHALBuffers",                   0,          sizeof(UINT32),               NoPrintFormat            },
    { "MOFAlignment",                      0,          sizeof(MOFAlignment),         PrintMOFAlignment        },
    { "StabilizationInputDims",            0,          sizeof(CHIDimension),         PrintCHIDimension        }
};

///< camxchinodeeisv2.cpp, Section:org.quic.camera.eisrealtime
static CHIVENDORTAGDATA g_VendorTagSectionEISV2RealTime[] =
{
    { "Enabled",                           0,          1,                           NoPrintFormat              },
    { "RequestedMargin",                   0,          sizeof(MarginRequest),       PrintMarginRequest         },
    { "StabilizationMargins",              0,          sizeof(StabilizationMargin), PrintStabilizationMargin   },
    { "AdditionalCropOffset",              0,          sizeof(CHIImageDimensions),  PrintCHIImageDimensions    },
    { "StabilizedOutputDims",              0,          sizeof(CHIDimension),        PrintCHIDimension          },
    { "MinimalTotalMargins",               0,          sizeof(MarginRequest),       PrintMarginRequest         },
    { "MotionIndication",                  0,          sizeof(FLOAT),               NoPrintFormat              },
    { "EISOISMode",                        0,          sizeof(EISOISMode),          NoPrintFormat              },
    { "EIS2ModeWithDM",                    0,          sizeof(BOOL),                NoPrintFormat              },
    { "StabilizationInputDims",            0,          sizeof(CHIDimension),         PrintCHIDimension        }
};

///< camxchinodeeisv3.cpp & camxchinodeeisv2.cpp, Section:org.codeaurora.qcamera3.sensor_meta_data
static CHIVENDORTAGDATA g_VendorTagSectionEISSensorMeta[] =
{
    { "mountAngle",                         0,          sizeof(INT32),              NoPrintFormat           },
    { "sensor_mode_info",                   0,          sizeof(ChiSensorModeInfo),  PrintChiSensorModeInfo  },
    { "current_mode",                       0,          sizeof(INT32),              NoPrintFormat           },
    { "targetFPS",                          0,          sizeof(INT32),              NoPrintFormat           },
    { "sensorCaps",                         0,          sizeof(ChiSensorCaps),      PrintChiSensorCaps      },
};

///< camxchinodeeisv3.cpp & camxchinodeeisv2.cpp, Section:com.qti.chi.cameraconfiguration
static CHIVENDORTAGDATA g_VendorTagSectionCameraConfiguration[] =
{
    { "PhysicalCameraConfigs",              0,          sizeof(CameraConfigs),      PrintCameraConfigs  }
};

///< camxchinodeeisv3.cpp & camxchinodeeisv2.cpp, Section:org.quic.camera2.statsconfigs
static CHIVENDORTAGDATA g_VendorTagSectionStatsConfig[] =
{
    { "FOVCFrameControl",                   0,          sizeof(FOVCOutput),         PrintFOVCOutput     },
    { "IFOVCFrameControl",                  0,          sizeof(FOVCOutput),         PrintFOVCOutput     }
};

/// @brief org.quic.camera.FOVCMetaData
static CHIVENDORTAGDATA g_VendorTagSectionFOVCMetaData[] =
{
    { "FOVCMargin",        TYPE_FLOAT, 1, NoPrintFormat }
};

/// @brief com.qti.node.gyrornn
static CHIVENDORTAGDATA g_VendorTagSectiongyroRNNMetaData[] =
{
    { "BayerAlignmentMargin",        TYPE_FLOAT, 1,                               NoPrintFormat               },
    { "BayerAlignmentGrid",          TYPE_BYTE,  sizeof(IPEICAGridTransform),     PrintIPEICAGridTransform    },
    { "BayerAlignmentShiftOffset",   TYPE_BYTE,  sizeof(BayerAlignmentShiftOut),  PrintBayerAlignmentShiftOut },
};

///< Section:com.qti.chi.metadataOwnerInfo
static CHIVENDORTAGDATA g_VendorTagSectionMultiCameraInfo[] =
{
    { "MetadataOwner",                      0,          sizeof(UINT32), NoPrintFormat          }
};

///< camxchinodeeisv3.cpp & camxchinodeeisv2.cpp, Section:com.qti.cropregions
static CHIVENDORTAGDATA g_VendorTagSectionChiNodeCropRegions[] =
{
    { "ChiNodeResidualCrop",                0,          sizeof(CHIRectangle), PrintCHIRectangle }
};

///< camxchinodeeisv3.cpp, Section:org.quic.camera2.ipeicaconfigs
static CHIVENDORTAGDATA g_VendorTagSectionSAT[] =
{
    { "ICAInPerspectiveTransform",          0,          sizeof(IPEICAPerspectiveTransform), PrintIPEICAPerspectiveTransform },
};

///< camxchinodeeisv2.cpp, Section:org.quic.camera2.ipeicaconfigs
static CHIVENDORTAGDATA g_VendorTagSectionEISV2ICA[] =
{
    ///< ICA Ref perspective transform
    { "ICAInPerspectiveTransform",          0,          sizeof(IPEICAPerspectiveTransform), PrintIPEICAPerspectiveTransform },
    ///< ICA Grid out2in transform
    { "ICAInGridOut2InTransform",           0,          sizeof(IPEICAGridTransform),        PrintIPEICAGridTransform        },
    ///< ICA Grid in2out transform
    { "ICAInGridIn2OutTransform",           0,          sizeof(IPEICAGridTransform),        PrintIPEICAGridTransform        },
    ///< ICA reference params for gyro alignment
    { "ICAReferenceParams",                 0,          sizeof(IPEICAPerspectiveTransform), PrintIPEICAPerspectiveTransform },
    ///< ICA stab Grid for GPU EIS
    { "ICAInGridTransform",                 0,          sizeof(IPEICAGridTransform),        PrintIPEICAGridTransform        },
};

///< camxchinodeswlsc.cpp, Section:org.codeaurora.qcamera3.sensor_meta_data
static CHIVENDORTAGDATA g_VendorTagSectionSWLSCSensorMeta[] =
{
    { "sensor_mode_info",                   0,          sizeof(ChiSensorModeInfo),          PrintChiSensorModeInfo },
    { "current_mode",                       0,          sizeof(INT32),                      NoPrintFormat          },
};

///< camxchinodeswmctf.cpp, Section:org.codeaurora.qcamera3.sensor_meta_data
static CHIVENDORTAGDATA g_VendorTagSectionMCTFSensorMeta[] =
{
    { "targetFPS",                          0,          sizeof(INT32),                      NoPrintFormat          },
    { "sensor_mode_info",                   0,          sizeof(ChiSensorModeInfo),          PrintChiSensorModeInfo },
};

///< camxchinodeswmctf.cpp, Section:org.quic.camera.streamDimension
static CHIVENDORTAGDATA g_VendorTagSectionMCTFStreamDimension[] =
{
    { "video",                              0,          sizeof(ChiBufferDimension),         PrintCHIDimension      },
};

///< camxchinodeswmctf.cpp, Section:org.quic.camera.swcapabilities
static CHIVENDORTAGDATA g_VendorTagSectionSwMCTFEnablementStatus[] =
{
    { "SWMCTFEnable",        0, sizeof(UINT), NoPrintFormat },
    { "SWMCTFType",          0, sizeof(UINT), NoPrintFormat }
};

///< camxchinodeswmctf.cpp, Section:org.quic.camera2.statsconfigs
static CHIVENDORTAGDATA g_VendorTagStatsConfig[] =
{
    { "AECFrameControl",        TYPE_BYTE,    sizeof(AECFrameControl),           PrintAECFrameControl    },
    { "AWBFrameControl",        TYPE_BYTE,    sizeof(AWBFrameControl),           PrintAWBFrameControl    },
    { "AFFrameControl",         TYPE_BYTE,    sizeof(AFFrameControl),            PrintAFFrameControl     },
};

/// com.qti.camera.swmfnrBlendConfidence
static CHIVENDORTAGDATA g_VendorTagSectionSWMFNRBlendConfidence[] =
{
    {"SWMFNRBlendConfidence",  TYPE_FLOAT, 1, NoPrintFormat },
    {"SWMFNRBlendedFrames",    TYPE_INT32, 1, NoPrintFormat },
    {"SWMFNRAdjustmentFactor", TYPE_FLOAT, 1, NoPrintFormat },
};

///< camxchinodeswbestats.cpp, Section: com.qti.camera.swbestatsdata
static CHIVENDORTAGDATA g_VendorTagSectionSWBEStatsData[] =
{
    { "SWBEStatsConfig",  TYPE_BYTE, sizeof(SWISPBEStatsConfig),    PrintSWISPBEStatsConfig  },
    { "SWBEStatsGenData", TYPE_BYTE, 8,                             NoPrintFormat            },
};

/// org.quic.camera.swfusionInfo
static ChiVendorTagData g_VendorTagSectionSWFusionInfo[] =
{
    { "MaintainSequence", TYPE_BYTE, 1, NoPrintFormat }
};

/// @brief org.quic.camera.scratchbufferdata
static CHIVENDORTAGDATA g_VendorTagSectionScratchBufferData[] =
{
    { "ScratchBufferData",  TYPE_BYTE, sizeof(SWISPScratchBufferData), NoPrintFormat }
};

///< camxchinodedewarp.cpp, Section:org.quic.camera2.ipeicaconfigs
static CHIVENDORTAGDATA g_VendorTagSectionICAGpu[]  =
{
    { "ICAInPerspectiveTransformLookAhead", 0,        sizeof(IPEICAPerspectiveTransform),   PrintIPEICAPerspectiveTransform },
    { "ICAInPerspectiveTransform",          0,        sizeof(IPEICAPerspectiveTransform),   PrintIPEICAPerspectiveTransform },
    { "ExtraFrameworkBuffers",              0,        sizeof(UINT32),                       NoPrintFormat                   },
    { "ICAInGridTransformLookahead",        0,        sizeof(IPEICAGridTransform),          PrintIPEICAGridTransform        },
    { "ICAInGridTransform",                 0,        sizeof(IPEICAGridTransform),          PrintIPEICAGridTransform        },
    { "ICAInGridOut2InTransform",           0,        sizeof(IPEICAGridTransform),          PrintIPEICAGridTransform        },
};

///< camxchinodedepth.cpp, Section:org.quic.camera.AECData
static CHIVENDORTAGDATA g_VendorTagSectionAECData[] =
{
    { "AECData",                            TYPE_BYTE,  sizeof(ChiAECData),    PrintChiAECData   },
    { "sensor_register_control",            TYPE_INT32, 32,                    NoPrintFormat     },
};

///< Section:org.quic.camera.ADRCData
static CHIVENDORTAGDATA g_VendorTagSectionADRCData[] =
{
    { "IFEADRCInfoOutput",            TYPE_BYTE,  sizeof(TMCOutputData),    PrintTMCOutputData   },
    { "BPSADRCInfoOutput",            TYPE_BYTE,  sizeof(TMCOutputData),    PrintTMCOutputData   }
};

///< Section:org.quic.camera.GammaData
static CHIVENDORTAGDATA g_VendorTagSectionGammaData[] =
{
    { "IFEGammaOutput",               TYPE_BYTE,  sizeof(GammaInfo),            PrintGammaInfo   },
    { "BPSGammaOutput",               TYPE_BYTE,  sizeof(GammaInfo),            PrintGammaInfo   }
};

///< camxchinodedepth.cpp, Section:org.quic.camera.AECDataPublisherPresent
static CHIVENDORTAGDATA g_VendorTagSectionAECDataPublisherPresent[] =
{
    { "AECDataPublisherPresent",            TYPE_BYTE,  1, NoPrintFormat                },
};

///< camxchinodeswregistration.cpp, Section:org.codeaurora.qcamera3.platformCapabilities
static CHIVENDORTAGDATA g_VendorTagSectionICACapabilities[] =
{
    { "IPEICACapabilities",                 0,          sizeof(CHIIPEICACapability),    PrintCHIIPEICACapability  },

};

///< org.quic.camera2.objectTrackingConfig section for Tracker configure
static CHIVENDORTAGDATA g_VendorTagSectionTrackerConfig[] =
{
    { "Enable",                             TYPE_BYTE,  1, NoPrintFormat               },
    { "CmdTrigger",                         TYPE_INT32, 1, NoPrintFormat               },
    { "RegisterROI",                        TYPE_INT32, 4, NoPrintFormat               },
};

///< org.quic.camera2.objectTrackingResults section for Tracker results
static CHIVENDORTAGDATA g_VendorTagSectionTrackerResults[] =
{
    { "TrackerEnable",                      TYPE_BYTE,  1, NoPrintFormat                   },
    { "TrackerStatus",                      TYPE_INT32, 1, NoPrintFormat                   },
    { "ResultROI",                          TYPE_INT32, 4, NoPrintFormat                   },
    { "TrackerScore",                       TYPE_INT32, 1, NoPrintFormat                   },
};

///< org.codeaurora.qcamera3.hal_private_data
static CHIVENDORTAGDATA g_VendorTagSectionHALPrivate[] =
{
    { "reprocess_flags",                    TYPE_BYTE , 1, NoPrintFormat                  },
    { "reprocess_data_blob",                TYPE_BYTE , 1, NoPrintFormat                  },
    { "exif_debug_data_blob",               TYPE_BYTE , 1, NoPrintFormat                  },
    { "debug_image_dump",                   TYPE_BYTE , 1, NoPrintFormat                  },
    { "debug_image_dump_mask",              TYPE_INT32, 1, NoPrintFormat                  },
};

///< com.qti.stats_control
/// ExposureCount is the number of exposures  requested from AEC.
static CHIVENDORTAGDATA g_VendorTagStatsControl[] =
{
    { "is_flash_snapshot",                  TYPE_INT32, 1, NoPrintFormat                   },
    { "is_lls_needed",                      TYPE_INT32, 1, NoPrintFormat                   },
    { "ExposureCount",                      TYPE_INT32, 1, NoPrintFormat                   },
    { "BitSwitchMode",                      TYPE_INT32, 1, NoPrintFormat                   },
    { "is_torch_hdr_snapshot",              TYPE_INT32, 1, NoPrintFormat                   }
};

///< com.qti.insensor_control
static CHIVENDORTAGDATA g_VendorTagSeamlessInSensorControl[] =
{
    { "seamless_insensor_state",            TYPE_INT32, 1, NoPrintFormat                   }
};

///< org.quic.camera.debugdata section
static CHIVENDORTAGDATA g_VendorTagSectionDebugData[] =
{
    { "DebugDataAll",                       TYPE_BYTE,  sizeof(DebugData),                   PrintDebugData },
    { "DebugDataAEC",                       TYPE_BYTE,  sizeof(DebugData),                   PrintDebugData },
    { "DebugDataAWB",                       TYPE_BYTE,  sizeof(DebugData),                   PrintDebugData },
    { "DebugDataAF",                        TYPE_BYTE,  sizeof(DebugData),                   PrintDebugData },
    { "DebugDataAFD",                       TYPE_BYTE,  sizeof(DebugData),                   PrintDebugData },
    { "DebugDataAFC",                       TYPE_BYTE,  sizeof(DebugData),                   PrintDebugData },

    { "DebugDataMemory3A",                  TYPE_BYTE,  MaxDebugDataSize3A,                  NoPrintFormat  },
    { "DebugDataMemoryTuningMeta",          TYPE_BYTE,  MaxDebugDataSizeTuningMeta,          NoPrintFormat  },
    { "DebugDataTuningMeta",                TYPE_BYTE,  sizeof(DebugData),                   PrintDebugData },
    { "DebugDataTuningMetaArray",           TYPE_BYTE,  sizeof(DebugDataTuningMetaArray),    PrintDebugData },
    { "DebugDataCustomizedArray",           TYPE_BYTE,  sizeof(CustomizedDebugDataArray),    NoPrintFormat  },
};

///< org.codeaurora.qcamera3.sharpness section
static CHIVENDORTAGDATA g_VendorTagSectionSharpness[] =
{
    { "strength",                           TYPE_INT32, 1, NoPrintFormat                  },
    { "range",                              TYPE_INT32, 2, NoPrintFormat                  }
};

///< org.codeaurora.qcamera3.contrast section
static CHIVENDORTAGDATA g_VendorTagSectionContrast[] =
{
    { "level",                              TYPE_INT32, 1, NoPrintFormat                   },
};


///< org.codeaurora.qcamera3.exposure_metering section
static CHIVENDORTAGDATA g_VendorTagSectionExposureMetering[] =
{
    { "exposure_metering_mode",             TYPE_INT32, 1, NoPrintFormat                 },
    { "available_modes",                    TYPE_INT32, 7, NoPrintFormat                 }
};

///< org.codeaurora.qcamera3.aec_convergence_speed section
static CHIVENDORTAGDATA g_VendorTagSectionAecConvergenceSpeed[] =
{
    { "aec_speed",                          TYPE_FLOAT, 1, NoPrintFormat                 },
};

///< org.codeaurora.qcamera3.iso_exp_priority section
static CHIVENDORTAGDATA g_VendorTagSectionIsoExpPriority[] =
{
    { "use_iso_exp_priority",               TYPE_INT64, 1, NoPrintFormat                  },
    { "use_iso_value",                      TYPE_INT32, 1, NoPrintFormat                  },
    { "select_priority",                    TYPE_INT32, 1, NoPrintFormat                  },
    { "iso_available_modes",                TYPE_INT32, 8, NoPrintFormat                  },
    { "exposure_time_range",                TYPE_INT64, 2, NoPrintFormat                  },
    { "use_gain_value",                     TYPE_FLOAT, 1, NoPrintFormat                  },

};

///< org.codeaurora.qcamera3.histogram section
static CHIVENDORTAGDATA g_VendorTagSectionHistogram[] =
{
    { "enable",                             TYPE_BYTE,  1,              NoPrintFormat               },
    { "buckets",                            TYPE_INT32, 1,              NoPrintFormat               },
    { "max_count",                          TYPE_INT32, 1,              NoPrintFormat               },
    { "stats",                              TYPE_INT32, MaxBHistBinNum, NoPrintFormat               },
    { "stats_type",                         TYPE_INT32, 1,              NoPrintFormat               }
};

///< org.codeaurora.qcamera3.bayer_grid section
static CHIVENDORTAGDATA g_VendorTagSectionBGStats[] =
{
    { "enable",                             TYPE_BYTE,  1,                NoPrintFormat            },
    { "width",                              TYPE_INT32, 1,                NoPrintFormat            },
    { "height",                             TYPE_INT32, 1,                NoPrintFormat            },
    { "r_stats",                            TYPE_INT32, MaxAWBBGStatsNum, NoPrintFormat            },
    { "g_stats",                            TYPE_INT32, MaxAWBBGStatsNum, NoPrintFormat            },
    { "b_stats",                            TYPE_INT32, MaxAWBBGStatsNum, NoPrintFormat            },
    { "stats_type",                         TYPE_INT32, 1,                NoPrintFormat            }
};

///< org.codeaurora.qcamera3.bayer_exposure section
static CHIVENDORTAGDATA g_VendorTagSectionBEStats[] =
{
    { "enable",                             TYPE_BYTE,  1,                NoPrintFormat           },
    { "width",                              TYPE_INT32, 1,                NoPrintFormat           },
    { "height",                             TYPE_INT32, 1,                NoPrintFormat           },
    { "r_stats",                            TYPE_INT32, MaxAWBBGStatsNum, NoPrintFormat           },
    { "g_stats",                            TYPE_INT32, MaxAWBBGStatsNum, NoPrintFormat           },
    { "b_stats",                            TYPE_INT32, MaxAWBBGStatsNum, NoPrintFormat           },
    { "stats_type",                         TYPE_INT32, 1,                NoPrintFormat           },
    { "roi_be_x",                           TYPE_FLOAT, 1,                NoPrintFormat           },
    { "roi_be_y",                           TYPE_FLOAT, 1,                NoPrintFormat           },
    { "roi_be_width",                       TYPE_FLOAT, 1,                NoPrintFormat           },
    { "roi_be_height",                      TYPE_FLOAT, 1,                NoPrintFormat           },
    { "bitDepth",                           TYPE_INT32, 1,                NoPrintFormat           }
};

///< org.codeaurora.qcamera3.instant_aec section
static CHIVENDORTAGDATA g_VendorTagSectionInstanctAec[] =
{
    { "instant_aec_mode",                   TYPE_INT32, 1, NoPrintFormat           },
    { "instant_aec_available_modes",        TYPE_INT32, 3, NoPrintFormat           }
};

///< org.codeaurora.qcamera3.awb_convergence_speed section
static CHIVENDORTAGDATA g_VendorTagSectionAwbConvSpeed[] =
{
    { "awb_speed",                          TYPE_FLOAT, 1, NoPrintFormat           }
};

///< org.codeaurora.qcamera3.ae_bracket section
static CHIVENDORTAGDATA g_VendorTagSectionAEBracket[] =
{
    { "mode",                              TYPE_BYTE,  1,  NoPrintFormat           },
    { "num_frames",                        TYPE_INT32, 1,  NoPrintFormat           },
    { "exposure_values",                   TYPE_INT32, 16, NoPrintFormat           }
};

///< org.codeaurora.qcamera3.af_bracket section
static CHIVENDORTAGDATA g_VendorTagSectionAFBracket[] =
{
    { "AFBracketingConfiguration",         TYPE_BYTE,  sizeof(AFBracketingData),    PrintAFBracketingData        }
};

///< org.codeaurora.qcamera3.temporal_denoise section
static CHIVENDORTAGDATA g_VendorTagSectionTemporalDenoise[] =
{
    { "enable",                            TYPE_BYTE,  1, NoPrintFormat                     },
    { "process_type",                      TYPE_INT32, 4, NoPrintFormat                     }
};

///< org.codeaurora.qcamera3.manualWB section
static CHIVENDORTAGDATA g_VendorTagSectionManualWB[] =
{
    { "color_temperature",                 TYPE_INT32, 1, NoPrintFormat                    },
    { "color_temperature_range",           TYPE_INT32, 2, NoPrintFormat                    },
    { "gains",                             TYPE_FLOAT, 3, NoPrintFormat                    },
    { "gains_range",                       TYPE_FLOAT, 2, NoPrintFormat                    },
    { "partial_mwb_mode",                  TYPE_INT32, 1, NoPrintFormat                    },
};

///< org.codeaurora.qcamera3.jpeg_encode_crop section
static CHIVENDORTAGDATA g_VendorTagSectionJpegEncodeCrop[] =
{
    { "enable",                            TYPE_BYTE,  1, NoPrintFormat                    },
    { "rect",                              TYPE_INT32, 4, NoPrintFormat                    },
    { "roi",                               TYPE_INT32, 4, NoPrintFormat                    }
};

///< org.codeaurora.qcamera3.av_timer
static CHIVENDORTAGDATA g_VendorTagSectionAVTimer[] =
{
    { "use_av_timer",                     TYPE_BYTE,   1, NoPrintFormat                    }
};

///< org.codeaurora.qcamera3.sensor_meta_data section
static CHIVENDORTAGDATA g_VendorTagSectionSensorMeta[] =
{
    { "dynamic_black_level_pattern",      TYPE_FLOAT,  1,                                    NoPrintFormat                   },
    { "is_mono_only",                     TYPE_BYTE,   1,                                    NoPrintFormat                   },
    { "sensor_mode_index",                TYPE_INT32,  MaxSensorModes,                       NoPrintFormat                   },
    { "EEPROMInformation",                TYPE_BYTE,   sizeof(ChiEEPROMInformation),         PrintChiEEPROMInformation       },
    { "integration_information",          TYPE_INT32,  3,                                    NoPrintFormat                   },
    { "mountAngle",                       TYPE_INT32,  1,                                    NoPrintFormat                   },
    { "CSIPHYSlotInfo",                   TYPE_INT32,  1,                                    NoPrintFormat                   },
    { "cameraPosition",                   TYPE_INT32,  1,                                    NoPrintFormat                   },
    { "sensor_mode_info",                 TYPE_BYTE,   sizeof(ChiSensorModeInfo),            PrintChiSensorModeInfo          },
    { "sensor_pdaf_info",                 TYPE_BYTE,   sizeof(ChiSensorPDAFInfo),            PrintChiSensorPDAFInfo          },
    { "current_mode",                     TYPE_INT32,  1,                                    NoPrintFormat                   },
    { "targetFPS",                        TYPE_INT32,  1,                                    NoPrintFormat                   },
    { "DepthConversionLibInfo",           TYPE_BYTE,   sizeof(ChiDepthConversionLibInfo),    PrintChiDepthConversionLibInfo  },
    { "sensorCaps",                       TYPE_BYTE,   sizeof(ChiSensorCaps),                PrintChiSensorCaps              },
    { "dynamicSensorModeSwitch",          TYPE_INT32,  1,                                    NoPrintFormat                   },
    { "sensorDynamicFPS",                 TYPE_FLOAT,  1,                                    NoPrintFormat                   }
};

///< org.quic.camera2.ipeicaconfigs section
static CHIVENDORTAGDATA g_VendorTagSectionICAConfigs[] =
{
    { "ICAInPerspectiveTransform",           TYPE_BYTE, sizeof(IPEICAPerspectiveTransform),   PrintIPEICAPerspectiveTransform },
    { "ICAInGridOut2InTransform",            TYPE_BYTE, sizeof(IPEICAGridTransform),          PrintIPEICAGridTransform        },
    { "ICAInGridIn2OutTransform",            TYPE_BYTE, sizeof(IPEICAGridTransform),          PrintIPEICAGridTransform        },
    { "ICAInInterpolationParams",            TYPE_BYTE, sizeof(IPEICAInterpolationParams),    PrintIPEICAInterpolationParams  },
    { "ICARefPerspectiveTransform",          TYPE_BYTE, sizeof(IPEICAPerspectiveTransform),   PrintIPEICAPerspectiveTransform },
    { "ICARefGridTransform",                 TYPE_BYTE, sizeof(IPEICAGridTransform),          PrintIPEICAGridTransform        },
    { "ICARefInterpolationParams",           TYPE_BYTE, sizeof(IPEICAInterpolationParams),    PrintIPEICAInterpolationParams  },
    { "ICAReferenceParams",                  TYPE_BYTE, sizeof(IPEICAPerspectiveTransform),   PrintIPEICAPerspectiveTransform },
    { "ICAReferenceParamsLookAhead",         TYPE_BYTE, sizeof(IPEICAPerspectiveTransform),   PrintIPEICAPerspectiveTransform },
    { "ICAInPerspectiveTransformLookAhead",  TYPE_BYTE, sizeof(IPEICAPerspectiveTransform),   PrintIPEICAPerspectiveTransform },
    { "ICAInGridTransformLookahead",         TYPE_BYTE, sizeof(IPEICAGridTransform),          PrintIPEICAGridTransform        },
    { "ExtraFrameworkBuffers",               TYPE_BYTE, sizeof(UINT32),                       NoPrintFormat                   },
    { "EISv3OutputCropFOV",                  TYPE_BYTE, sizeof(WindowRegionCropF),            PrintWindowRegionCropF          },
    { "EISv2OutputCropFOV",                  TYPE_BYTE, sizeof(WindowRegionCropF),            PrintWindowRegionCropF          },
    { "AltExpToAnchorExpAlignmentTransform", TYPE_BYTE, sizeof(IPEICAGridTransform),          PrintIPEICAGridTransform        },
    { "ICAReferenceParamsGrid",              TYPE_BYTE, sizeof(IPEICAGridTransform),          PrintIPEICAGridTransform        },
    { "DistortionCorrectionGridMeta",        TYPE_BYTE, sizeof(DistortionCorrectionGridMeta), PrintIPEICAGridTransform        },
    { "ICASnapshotPerspectiveTransform",     TYPE_BYTE, sizeof(IPEICAPerspectiveTransform),   PrintIPEICAPerspectiveTransform },
    { "ICASnapshotGridOut2InTransform",      TYPE_BYTE, sizeof(IPEICAGridTransform),          PrintIPEICAGridTransform        },
    { "EIS2ApproxCrop",                      TYPE_BYTE, sizeof(WindowRegionCropF),            PrintWindowRegionCropF          },
    { "MainSensorCompositeRectAndDist",      TYPE_BYTE, sizeof(ICAWarp),                      NoPrintFormat                   },
    { "AuxSensorCompositeRectAndDist",       TYPE_BYTE, sizeof(ICAWarp),                      NoPrintFormat                   },
    { "DeRectification",                     TYPE_BYTE, sizeof(ICAWarp),                      NoPrintFormat                   },
    { "TimeWarpPerspectiveTranform",         TYPE_BYTE, sizeof(MOFAlignment),                 PrintMOFAlignment               },
    { "ValidDepthPolygon",                   TYPE_BYTE, sizeof(DepthPolygon),                 NoPrintFormat                   },
    { "MainSensorRectification",             TYPE_BYTE, sizeof(ICAWarpMatrices),              NoPrintFormat                   },
    { "ICAInGridTransform",                  TYPE_BYTE,  sizeof(IPEICAGridTransform),         PrintIPEICAGridTransform        },
};

///< org.quic.camera.recording
static CHIVENDORTAGDATA g_VendorTagSectionRecordingConfig[] =
{
    { "endOfStream",                        TYPE_BYTE, 1,              NoPrintFormat            },
    { "endOfStreamRequestId",               TYPE_BYTE, sizeof(UINT64), NoPrintFormat            },
    { "requestHasVideoBuffer",              TYPE_BYTE, 1,              NoPrintFormat            }
};

///< org.quic.camera.EarlyPCRenable
static CHIVENDORTAGDATA g_VendorTagSectionEarlyPCRFlag[] =
{
    { "EarlyPCRenable",                     TYPE_BYTE, 1, NoPrintFormat              }
};

///< org.quic.camera.BurstFPS
static CHIVENDORTAGDATA g_VendorTagSectionBurstFPSFlag[] =
{
    { "burstfps",                           TYPE_BYTE,  1, NoPrintFormat             },
    { "isBurstShotSupported",               TYPE_BYTE,  1, NoPrintFormat             },
    { "MaxBurstShotFPS",                    TYPE_FLOAT, 1, NoPrintFormat             }
};

///< org.quic.camera.MaxPreviewSize
static CHIVENDORTAGDATA g_VendorTagSectionMaxPreviewSizeFlag[] =
{
    { "MaxPreviewSize",                     TYPE_INT32, 2, NoPrintFormat             }
};

///< org.quic.camera.LiveshotSize
static CHIVENDORTAGDATA g_VendorTagSectionLiveshotSizeFlag[] =
{
    { "isLiveshotSizeSameAsVideoSize",      TYPE_BYTE,  1, NoPrintFormat             }
};

///< org.quic.camera.deviceCapabilities
static CHIVENDORTAGDATA g_VendorTagSectionDeviceCapabilities[] =
{
    { "deviceMemoryType",                   TYPE_BYTE,  1, NoPrintFormat             }
};

///< org.quic.camera.FDRendering
static CHIVENDORTAGDATA g_VendorTagSectionFDRenderingFlag[] =
{
    { "isFDRenderingInCameraUISupported",   TYPE_BYTE,  1, NoPrintFormat             },
    { "isFDRenderingInVideoUISupported",    TYPE_BYTE,  1, NoPrintFormat             }
};

///< org.quic.camera.AutoHDRSupport
static CHIVENDORTAGDATA g_VendorTagSectionAutoHDRSupport[] =
{
    { "isAutoHDRSupported",    TYPE_BYTE,  1, NoPrintFormat                          }
};

///< org.quic.camera.CustomNoiseReduction
static CHIVENDORTAGDATA g_VendorTagSectionCustomNoiseReductionFlag[] =
{
    { "CustomNoiseReduction",               TYPE_BYTE,  1, NoPrintFormat             }
};

///< org.quic.camera.SensorModeFS
static CHIVENDORTAGDATA g_VendorTagSectionSensorModeFSFlag[] =
{
    { "isFastShutterModeSupported",        TYPE_BYTE,   1, NoPrintFormat             },
    { "SensorModeFS",                      TYPE_BYTE,   sizeof(BOOL), NoPrintFormat             }
};

///< org.quic.camera.XCFARemosaicType
static CHIVENDORTAGDATA g_VendorTagSectionXCFARemosaicType[] =
{
    { "XCFARemosaicType",                 TYPE_INT32,   1, NoPrintFormat             },
};

///< org.quic.camera.IsXCFAPZSLSnapshot
static CHIVENDORTAGDATA g_VendorTagSectionIsXCFAPZSLSnapshot[] =
{
    { "IsXCFAPZSLSnapshot",               TYPE_INT32,   1, NoPrintFormat             },
};

///< org.quic.camera.HWResourceInfo
static CHIVENDORTAGDATA g_VendorTagSectionHWResourceInfo[] =
{
    { "IFEMaxLineWidth",                  TYPE_INT32,   1, NoPrintFormat             },
    { "numIFEsforGivenTarget",            TYPE_INT32,   1, NoPrintFormat             },
    { "maxIFEsRequired",                  TYPE_INT32,   1, NoPrintFormat             }
};

///< org.quic.camera2.mfnrconfigs section
static CHIVENDORTAGDATA g_VendorTagSectionMFNRConfigs[] =
{
    { "MFNRTotalNumFrames",               TYPE_INT32,   1, NoPrintFormat                   },
    { "MFNRBlendFrameNum",                TYPE_INT32,   1, NoPrintFormat                   },
    { "MultiframeRequestTimestamp",       TYPE_INT64,   1, NoPrintFormat                   },
};

///< org.quic.camera2.mfsrconfigs section
static CHIVENDORTAGDATA g_VendorTagSectionMFSRConfigs[] =
{
    { "MFSRTotalNumFrames",               TYPE_INT32,  1, NoPrintFormat                    },
    { "MFSRBlendFrameNum",                TYPE_INT32,  1, NoPrintFormat                    },
};

///< org.quic.camera2.streamconfigs section
static CHIVENDORTAGDATA g_VendorTagSectionStreamConfigs[] =
{
    { "HDRVideoMode",                     TYPE_BYTE,   1, NoPrintFormat                     },
};

///< org.quic.camera.oem.trigger section
static CHIVENDORTAGDATA g_VendorTagSectionOEMIQTrigger[] =
{
    { "OEM_AEC_IQTrigger",     TYPE_BYTE,   sizeof(OEM_AEC_IQTrigger),     PrintOEM_AEC_IQTrigger     },
    { "OEM_AWB_IQTrigger",     TYPE_BYTE,   sizeof(OEM_AWB_IQTrigger),     PrintOEM_AWB_IQTrigger     },
    { "OEM_AF_IQTrigger",      TYPE_BYTE,   sizeof(OEM_AF_IQTrigger),      PrintOEM_AF_IQTrigger      },
    { "OEM_Reserve_IQTrigger", TYPE_BYTE,   sizeof(OEM_Reserve_IQTrigger), PrintOEM_Reserve_IQTrigger }
};

///< org.quic.camera2.sensor_register_control
static CHIVENDORTAGDATA g_VendorTagSectionSensorRegisterControl[] =
{
    { "sensor_register_control",          TYPE_INT32,  32, NoPrintFormat                  }
};

///< org.quic.camera.isDepthFocus
static CHIVENDORTAGDATA g_VendorTagSectionIsDepthFocus[] =
{
    { "isDepthFocus",                     TYPE_BYTE,  sizeof(BOOL), NoPrintFormat               }
};

///< org.quic.camera2.tuning mode
static CHIVENDORTAGDATA g_VendorTagSectionTuningParam[] =
{
    { "TuningMode",                       TYPE_BYTE,  sizeof(ChiTuningModeParameter),   PrintChiTuningModeParameter    }
};

///< org.quic.camera2.tuning.PerStreamHDRMode
static CHIVENDORTAGDATA g_VendorTagSectionPerStreamHDRMode[] =
{
    { "StreamHDRModeMap",                  TYPE_BYTE,  sizeof(ChiStreamHDRModeMap),  NoPrintFormat    }
};


///< org.quic.camera2.tuning.feature mode
static CHIVENDORTAGDATA g_VendorTagSectionFeatureParam[] =
{
    { "Feature1Mode",                     TYPE_BYTE,  1, NoPrintFormat                    },
    { "Feature2Mode",                     TYPE_BYTE,  1, NoPrintFormat                    }
};

///< org.quic.camera.ifecropinfo
static CHIVENDORTAGDATA g_VendorTagSectionIFECropInfo[] =
{
    {"ResidualCrop",                      TYPE_BYTE,  sizeof(IFECropInfo),    PrintIFECropInfo },
    {"AppliedCrop",                       TYPE_BYTE,  sizeof(IFECropInfo),    PrintIFECropInfo },
    {"SensorIFEAppliedCrop",              TYPE_BYTE,  sizeof(IFECropInfo),    PrintIFECropInfo },
    {"RDIStreamCrop",                     TYPE_BYTE,  sizeof(StreamCropInfo), PrintStreamCropInfo }
};

/// @brief org.quic.camera.ifedsxinfo
static CHIVENDORTAGDATA g_VendorTagSectionIFEDSXInfo[] =
{
    { "IFEDS4Output", TYPE_BYTE, sizeof(IFEDSXInfo), NoPrintFormat }
};

///< org.quic.camera.ifeinitpacket
static CHIVENDORTAGDATA g_VendorTagSectionIFEInitPacket[] =
{
    {"Submitted",                         TYPE_BYTE,  sizeof(BOOL), NoPrintFormat  }
};

///< org.quic.camera.qtimer
static CHIVENDORTAGDATA g_VendorTagSectionQTimer[] =
{
    { "timestamp",                        TYPE_BYTE,  sizeof(ChiTimestampInfo),     PrintChiTimestampInfo     },
    { "startOfExposure",                  TYPE_BYTE,  sizeof(ChiTimestampInfo),     PrintChiTimestampInfo     }
};

///< org.quic.camera.eis3enable
static CHIVENDORTAGDATA g_VendorTagSectionEISConfig[] =
{
    { "EISV3Enable",                      TYPE_BYTE,  1, NoPrintFormat         }
};

///< org.quic.camera.streamTypePresent
static CHIVENDORTAGDATA g_VendorTagSectionStreamTypePresent[] =
{
    { "preview",                          TYPE_BYTE,  1, NoPrintFormat         }
};

///< org.quic.camera.resource section
static CHIVENDORTAGDATA g_VendorTagSectionResource[] =
{
    { "enable",                           TYPE_INT32, 1, NoPrintFormat         },
    { "res_type",                         TYPE_INT32, 1, NoPrintFormat         }
};

///< org.codeaurora.qcamera3.available_video_hdr_modes
static CHIVENDORTAGDATA g_VendorTagSectionVideoHDR[] =
{
    { "video_hdr_modes",                  TYPE_INT32, HDRModeMax, NoPrintFormat }
};

///< org.codeaurora.qcamera3.supportedHDRmodes.HDRModes
static CHIVENDORTAGDATA g_VendorTagSectionSupportedMFHDRmodes[] =
{
    { "HDRModes",                         TYPE_INT32, HDRFeatureModeMax, NoPrintFormat },
};

///< org.codeaurora.qcamera3.supportedScreenGrabmodes.ScreenGrabModes
static CHIVENDORTAGDATA g_VendorTagSectionSupportedScreenGrabmodes[] =
{
    { "ScreenGrabModes",                  TYPE_INT32, ScreenGrabModeMax, NoPrintFormat },
};

///< org.codeaurora.qcamera3.HDRMaxResolutionCap.HDRMaxResolution
static CHIVENDORTAGDATA g_VendorTagSectionHDRMaxResolutionCap[] =
{
    { "HDRMaxResolution",                 TYPE_INT32, 2, NoPrintFormat },
};

///< org.quic.camera.streamDimension
static CHIVENDORTAGDATA g_VendorTagSectionStreamDimension[] =
{
    { "preview",                          TYPE_BYTE, sizeof(ChiBufferDimension),    PrintCHIDimension },
    { "video",                            TYPE_BYTE, sizeof(ChiBufferDimension),    PrintCHIDimension },
    { "snapshot",                         TYPE_BYTE, sizeof(ChiBufferDimension),    PrintCHIDimension },
    { "depth",                            TYPE_BYTE, sizeof(ChiBufferDimension),    PrintCHIDimension }
};

///< org.quic.camera.manualExposure
static CHIVENDORTAGDATA g_VendorTagSectionManualExposure[] =
{
    { "disableFPSLimits",                 TYPE_BYTE,  1, NoPrintFormat                      },
    { "overrideSensorFrameDuration",      TYPE_INT64, 1, NoPrintFormat                      }
};

///< org.quic.camera.strobeControl
static CHIVENDORTAGDATA g_VendorTagSectionStrobeControl[] =
{
    { "strobeControl",                   TYPE_BYTE,  sizeof(SensorStrobeInfo),      PrintSensorStrobeInfo   }
};

///< org.codeaurora.qcamera3.logicalCameraType
static CHIVENDORTAGDATA g_VendorTagSectionLogicalCameraType[] =
{
    { "logical_camera_type",              TYPE_BYTE,  1, NoPrintFormat                     },
};

///< org.quic.camera.ltmDynamicContrast
static CHIVENDORTAGDATA g_VendorTagSectionltmDynamicContrast[] =
{
    {"ltmDynamicContrastStrength",        TYPE_FLOAT, 1, NoPrintFormat                     },
    {"ltmDarkBoostStrength",              TYPE_FLOAT, 1, NoPrintFormat                     },
    {"ltmBrightSupressStrength",          TYPE_FLOAT, 1, NoPrintFormat                     },
    {"ltmDynamicContrastStrengthRange",   TYPE_FLOAT, 2, NoPrintFormat                     },
    {"ltmDarkBoostStrengthRange",         TYPE_FLOAT, 2, NoPrintFormat                     },
    {"ltmBrightSupressStrengthRange",     TYPE_FLOAT, 2, NoPrintFormat                     }
};

///< org.quic.camera.ifecsidconfig
static CHIVENDORTAGDATA g_VendorTagSectionCSIDBinningInfo[] =
{
    { "csidbinninginfo",                  TYPE_BYTE,  sizeof(CSIDBinningInfo),  PrintCSIDBinningInfo    },
};

///< org.quic.camera.snapshotOutputDimension
static CHIVENDORTAGDATA g_VendorTagSectionSnapshotOutputDimension[] =
{
    { "StillOutputDimension",             TYPE_BYTE, sizeof(GeoLibStreamOutput), PrintGeoLibStreamOutput    },
    { "DisplayOutputDimension",           TYPE_BYTE, sizeof(GeoLibStreamOutput), PrintGeoLibStreamOutput    },
    { "AppOutputDimension",               TYPE_BYTE, sizeof(GeoLibStreamOutput), PrintGeoLibStreamOutput    },
};

///< org.quic.camera.ISPConfigData
static CHIVENDORTAGDATA g_VendorTagSectionISPConfigData[] =
{
    { "numIFEsUsed",                      TYPE_INT32, 1, NoPrintFormat                     }
};

///< org.quic.camera.overrideIPEScaleProfile
static CHIVENDORTAGDATA g_VendorTagSectionOverrideIPEScaleProfile[] =
{
    { "OverrideIPEScaleProfile",         TYPE_BYTE,   1, NoPrintFormat                     }
};

///< org.quic.camera.overrideGPURotationUsecase
static CHIVENDORTAGDATA g_VendorTagSectionOverrideGPURotation[] =
{
    { "OverrideGPURotationUsecase",      TYPE_BYTE,   1, NoPrintFormat                    }
};

///< org.quic.camera.hdrfeaturemode
static CHIVENDORTAGDATA g_VendorTagSectionHdrFeatureMode[] =
{
    { "HDRFeatureMode",                  TYPE_INT32,  1, NoPrintFormat                    },
    { "HDRFeatureModeData",              TYPE_INT32,  1, NoPrintFormat                    },
    { "NumberOfSplits",                  TYPE_INT32,  1, NoPrintFormat                    },
    { "NumberOfExpFrames",               TYPE_INT32,  1, NoPrintFormat                    }
};

///< org.quic.camera.geolib
static CHIVENDORTAGDATA g_VendorTagSectionGeoLib[] =
{
    { "isGeoLibNeeded",                  TYPE_BYTE,  1, NoPrintFormat                     },
    { "geoLibHDRFlowMode",               TYPE_BYTE,  1, NoPrintFormat                     },
};

///< org.codeaurora.qcamera3.tmcusercontrol section
static CHIVENDORTAGDATA g_VendorTagSectionTMCUserControl[] =
{
    { "isValidDarkBoostOffset",          TYPE_BYTE,   1, NoPrintFormat                     },
    { "darkBoostOffset",                 TYPE_FLOAT,  1, NoPrintFormat                     },
    { "isValidFourthToneAnchor",         TYPE_BYTE,   1, NoPrintFormat                     },
    { "fourthToneAnchor",                TYPE_FLOAT,  1, NoPrintFormat                     }
};

///< org.quic.camera.swcapabilities
static CHIVENDORTAGDATA g_VendorTagSectionSWCapabilities[] =
{
     { "SWMCTFEnable",                   TYPE_BYTE,   1, NoPrintFormat                     },
     { "MFNRType",                       TYPE_INT32,  1, NoPrintFormat                     },
     { "SWMCTFType",                     TYPE_BYTE,   1, NoPrintFormat                     },
     { "isQLLSupported",                 TYPE_BYTE,   1, NoPrintFormat                     },
     { "isDMMSupported",                 TYPE_BYTE,   1, NoPrintFormat                     },
};

///< org.codeaurora.qcamera3.alsc section
static CHIVENDORTAGDATA g_VendorTagSectionALSCBGStats[] =
{
    { "stats",                           TYPE_BYTE,   sizeof(ParsedALSCBGStatsOutput), NoPrintFormat  },
};

///< org.codeaurora.qcamera3.tintless section
static CHIVENDORTAGDATA g_VendorTagSectionTintlessBGStats[] =
{
    { "stats",                           TYPE_BYTE,   sizeof(ParsedTintlessBGStatsOutput), NoPrintFormat  },
};

///< org.codeaurora.qcamera3.bhist section
static CHIVENDORTAGDATA g_VendorTagSectionBHistStats[] =
{
    { "stats",   TYPE_BYTE,   sizeof(ParsedBHistStatsOutput),       PrintParsedBHistStatsOutput       },
};

///< org.codeaurora.qcamera3.aecbhist section
static CHIVENDORTAGDATA g_VendorTagSectionAECBHistStats[] =
{
    { "stats",   TYPE_BYTE,   sizeof(ParsedBHistStatsOutput),       PrintParsedBHistStatsOutput       },
};

///< org.codeaurora.qcamera3.awbbg section
static CHIVENDORTAGDATA g_VendorTagSectionAWBBGStats[] =
{
    { "stats",   TYPE_BYTE,   sizeof(ParsedAWBBGStatsOutput),       NoPrintFormat       },
};

///< org.codeaurora.qcamera3.hdrbhist section
static CHIVENDORTAGDATA g_VendorTagSectionHDRBHistStats[] =
{
    { "stats",   TYPE_BYTE,   sizeof(ParsedHDRBHistStatsOutput),    PrintParsedHDRBHistStatsOutput    },
};

///< org.codeaurora.qcamera3.hdrbe section
static CHIVENDORTAGDATA g_VendorTagSectionHDRBEStats[] =
{
    { "stats",   TYPE_BYTE,   sizeof(ParsedHDRBEStatsOutput),    NoPrintFormat   },
};

///< org.codeaurora.qcamera3.hdr10phist section
static CHIVENDORTAGDATA g_VendorTagSectionHDR10pStats[] =
{
    { "stats",   TYPE_BYTE,   sizeof(ParsedHDR10pStatsOutput),      PrintParsedHDR10pStatsOutput      },
};

///< org.codeaurora.qcamera3.aecbe section
static CHIVENDORTAGDATA g_VendorTagSectionAECBE[] =
{
    { "stats",  TYPE_BYTE,   sizeof(ParsedBEStatsOutput),           NoPrintFormat             },
};

/// @brief org.codeaurora.qcamera3.baf section
static CHIVENDORTAGDATA g_VendorTagSectionBAFStats[] =
{
    { "stats",   TYPE_BYTE,   sizeof(ParsedBFStatsOutput),          PrintParsedBFStatsOutput          }
};

/// @brief org.codeaurora.qcamera3.baf27 section
static CHIVENDORTAGDATA g_VendorTagSectionBAF27Stats[] =
{
    { "stats",   TYPE_BYTE,   sizeof(ParsedBF27StatsOutput),        PrintParsedBF27StatsOutput }
};

///< org.codeaurora.qcamera3.caf section
static CHIVENDORTAGDATA g_VendorTagSectionCAFStats[] =
{
    { "stats",      TYPE_BYTE, sizeof(ParsedCAFStatsOutput),        NoPrintFormat },
};

/// @brief org.codeaurora.qcamera3.rs section
static CHIVENDORTAGDATA g_VendorTagSectionRSStats[] =
{
    { "stats",   TYPE_BYTE,   sizeof(ParsedRSStatsOutput),          PrintParsedRSStatsOutput          }
};

/// @brief "org.codeaurora.qcamera3.bfw"section
static CHIVENDORTAGDATA g_VendorTagSectionBFWStats[] =
{
    { "stats",   TYPE_BYTE,   sizeof(ParsedBFWStatsOutput),         PrintParsedBFWStatsOutput         }
};

/// @brief "org.codeaurora.qcamera3.ihist"section
static CHIVENDORTAGDATA g_VendorTagSectionIHistStats[] =
{
    { "stats",   TYPE_BYTE,   sizeof(ParsedIHistStatsOutput),       PrintParsedIHistStatsOutput       }
};


/// @brief "org.codeaurora.qcamera3.ltmdc"section
static CHIVENDORTAGDATA g_VendorTagSectionLTMDCStats[] =
{
    { "stats",   TYPE_BYTE,   sizeof(IFELTMDCStatsOutput),          PrintIFELTMDCStatsOutput          }
};

/// @brief "org.codeaurora.qcamera3.cs"section
static CHIVENDORTAGDATA g_VendorTagSectionCSStats[] =
{
    { "stats",   TYPE_BYTE,   sizeof(ParsedCSStatsOutput),          PrintParsedCSStatsOutput          }
};


///< org.quic.camera.org.quic.camera.inSensorZoom
static CHIVENDORTAGDATA g_VendorTagSectionInSensorZoom[] =
{
    /// Sensor Zoom state Binning/ QCFACrop
    { "InSensorZoomState",               TYPE_INT32,  1,            NoPrintFormat                 },
    /// is TRUE, any time switching from binning to none binning mod
    { "SensorSwitched",                  TYPE_BYTE,   1,            NoPrintFormat                 },
};

///< org.quic.camera.bayerAlignment
static CHIVENDORTAGDATA g_VendorTagSectionBayerAlignment[] =
{
    /// Bayer alignment input and output size
    { "BayerAlignmentSize",             TYPE_BYTE,   sizeof(BayerAlignmentSize),          PrintBayerAlignmentSize       },
    /// Bayer alignment margin offset
    { "BayerAlignmentOffset",           TYPE_BYTE,   sizeof(BayerAlignmentOffset),        PrintBayerAlignmentOffset     },
};

///< org.quic.camera.skipgpuprocessingbasedonfd
static CHIVENDORTAGDATA g_VendorTagSectionSkipGPUprocessingbasedonFD[] =
{
    { "SkipGPUprocessingbasedonFD",      TYPE_BYTE,  1,             NoPrintFormat               }

};

///< org.quic.camera.skiphmeprocessingbasedonqsat
static CHIVENDORTAGDATA g_VendorTagSectionSkipHMEprocessingbasedonQSAT[] =
{
    { "SkipHMEprocessingbasedonQSAT",    TYPE_BYTE,  1,             NoPrintFormat               }

};

///< org.quic.camera.HEICSupport
static CHIVENDORTAGDATA g_VendorTagSectionOverrideHEICSupport[] =
{
    { "HEICEnabled",                     TYPE_BYTE,  1,             NoPrintFormat               }
};

///< org.quic.camera2.ref.cropsize
static CHIVENDORTAGDATA g_VendorTagSectionRefCropsize[] =
{
    { "RefCropSize",                     TYPE_BYTE,  sizeof(RefCropWindowSize),         PrintRefCropWindowSize   },
    { "DisableZoomCrop",                 TYPE_INT32, 1,                                 NoPrintFormat            }
};

///< org.quic.camera.enableVSR
static CHIVENDORTAGDATA g_VendorTagSectionGeoLibEnableVSR[] =
{
    { "GeoLibEnableVSR",                 TYPE_BYTE,  1,             NoPrintFormat                },
};

///< org.quic.camera.geoLibInit
static CHIVENDORTAGDATA g_VendorTagSectionGeoLibInit[] =
{
    { "GeoLibInitMetadataVideo",         TYPE_BYTE,  sizeof(GeoLib2StreamCfg),      PrintGeoLib2StreamCfg    },
    { "GeoLibInitMetadataDisplay",       TYPE_BYTE,  sizeof(GeoLib2StreamCfg),      PrintGeoLib2StreamCfg    }
};

///< org.quic.camera.mctfIpeMaxFov
static CHIVENDORTAGDATA g_VendorTagSectionMctfIpeMaxFov[] =
{
    { "MctfIpeMaxFovMetadataVideo",   TYPE_BYTE, sizeof(GeoLib2InitIn), NoPrintFormat     },
    { "MctfIpeMaxFovMetadataDisplay", TYPE_BYTE, sizeof(GeoLib2InitIn), NoPrintFormat     }
};

///< org.quic.camera.geoLibFrameConfig
static CHIVENDORTAGDATA g_VendorTagSectionGeoLibIpeFrameConfig[] =
{
    { "GeoLibIpeFrameCfgMetadataPerPort", TYPE_BYTE, sizeof(GeoLib2FrameCfg) * MaxGeoLibIpeFrameConfigTagCount, NoPrintFormat },
};

///< org.quic.camera.enableVSR
static CHIVENDORTAGDATA g_VendorTagSectionGeoLibInitConfig[] =
{
    { "GeoLibEnableVSR",                  0,         sizeof(INT32), NoPrintFormat           }
};

///< com.qti.camera.streamCropInfo
static CHIVENDORTAGDATA g_VendorTagSectionPSStreamCropInfo[] =
{
    { "StreamCropInfo",                   0,          sizeof(StreamCropInfo),   PrintStreamCropInfo },
    { "EnableStreamCrop",                 TYPE_INT32, 1,                        NoPrintFormat       }
};

///< org.quic.camera.ADRCParams
static CHIVENDORTAGDATA g_VendorTagSectionADRCParams[] =
{
    { "ADRCParams",                       TYPE_BYTE, sizeof(ISPADRCParams),     PrintISPADRCParams  }
};

///< com.qti.node.swpreprocess
static CHIVENDORTAGDATA g_VendorTagSectionPreprocess[] =
{
    { "SupportedFeature",       TYPE_BYTE,  ChiNodeSupportedFeatureBufferSize, NoPrintFormat },
    { "CurrentMode",            TYPE_BYTE,  1,                                 NoPrintFormat },
    { "ProcessedFrameNumber",   TYPE_INT64, 1,                                 NoPrintFormat },
    { "FrameDimension",         TYPE_INT32, 2,                                 NoPrintFormat },
};

///< org.quic.camera.ADRCParam
static CHIVENDORTAGDATA g_VendorTagSectionIFEAdrcConfig[] =
{
    { "ADRCParams", 0, sizeof(ISPADRCParams), PrintISPADRCParams}
};

///< org.quic.camera.HWMFHDRSupported
static CHIVENDORTAGDATA g_VendorTagSectionHWMFHDRSupported[] =
{
    { "isHWMFHDRSupported",                TYPE_BYTE, 1, NoPrintFormat                     }
};

///< org.quic.camera.induceSleepInChiNode
static CHIVENDORTAGDATA g_VendorTagInduceSleepInChiNode[] =
{
    { "InduceSleep",                     TYPE_INT32, 1, NoPrintFormat                     }
};

///< com.qti.chi.rawcbinfo
static CHIVENDORTAGDATA g_VendorTagRawCBInfo[] =
{
    { "IdealRaw",     TYPE_BYTE, sizeof(IdealRawInfo), PrintIdealRawInfo    },
    { "RawSize",      TYPE_BYTE, sizeof(CHIDimension), PrintCHIDimension    }
};

///< org.quic.camera.forceFullFOV
static CHIVENDORTAGDATA g_VendorTagSectionForceFullFOV[] =
{
    { "ForceFullFOV", TYPE_BYTE, sizeof(ForceFullFOVInfo), PrintForceFullFOVInfo}
};

/// @brief org.codeaurora.qcamera3.sessionParameters
static CHIVENDORTAGDATA g_VendorTagSectionSessionParameters[] =
{
    { "enableMCTFwithReferenceFrame", TYPE_BYTE,  1, NoPrintFormat },
    { "contour_version",              TYPE_BYTE,  1, NoPrintFormat },
    { "EnableInsensorZoom",           TYPE_INT32, 1, NoPrintFormat },
    { "HorizonLevelControl",          TYPE_INT32, 1, NoPrintFormat }
};

///< org.quic.camera.IFETestGenCapability
static CHIVENDORTAGDATA g_VendorTagTestGenCapablity[] =
{
    { "IFETestGenCapability", TYPE_BYTE, sizeof(CHITESTGENCAPS), PrintCHITESTGENCAPS    },
};

///< org.quic.camera.IFETestGenConfig
static CHIVENDORTAGDATA g_VendorTagTestGenConfig[] =
{
    { "IFETestGenConfig", TYPE_BYTE, sizeof(IFETestGenConfig), PrintIFETestGenConfig    },
};

///< org.quic.camera.hdr10p section
static CHIVENDORTAGDATA g_VendorTagSectionHDR10p[] =
{
    { "FrameDelay", TYPE_INT32,  sizeof(INT32),   NoPrintFormat },
    { "HDR10pSEI",  TYPE_BYTE,   sizeof(CHAR)*64, NoPrintFormat },
};


///< @brief com.qti.chi.multiFrameData
static CHIVENDORTAGDATA g_VendorTagDataMultiFrameData[] =
{
    { "MultiFrameData", TYPE_BYTE,  sizeof(MultiFrameData),     PrintMultiFrameData     },
};

///< @brief com.qti.chi.stackedFrame
static CHIVENDORTAGDATA g_VendorTagDataStackedFrame[] =
{
    { "StackedFrame", TYPE_BYTE, 1, NoPrintFormat },
};

///< @brief com.qti.chi.Feature2ErrorInduceFramework
static CHIVENDORTAGDATA g_VendorTagDataFeature2ErrorInducer[] =
{
    { "InducerFeatureGraphName",       TYPE_BYTE,    MaxStringLength256,   NoPrintFormat   },
    { "InducerFeatureName",            TYPE_BYTE,    MaxStringLength256,   NoPrintFormat   },
    { "InducerFROProcessSeqId",        TYPE_INT32,   1,                    NoPrintFormat   },
    { "InducerFeaturePortName",        TYPE_BYTE,    MaxStringLength256,   NoPrintFormat   },
    { "InduceFeature2ErrorType",       TYPE_INT32,   1,                    NoPrintFormat   }
};

///< @brief com.qti.chi.transitionMode
static CHIVENDORTAGDATA g_VendorTagDataTransitionMode[] =
{
    { "TransitionMode", TYPE_BYTE,  sizeof(UINT32), NoPrintFormat },
};

///< org.quic.camera.NumOfBayerMerge
static CHIVENDORTAGDATA g_VendorTagNumOfBayerMerge[] =
{
    { "NumOfBayerMerge", TYPE_INT32, 1, NoPrintFormat },
};

///< com.qti.chi.enableadrcpath
static CHIVENDORTAGDATA g_VendorTagEnableADRCPath[] =
{
    { "enableADRCPath",                TYPE_INT32,   1, NoPrintFormat },
};

///< com.qti.chi.OfflineifeMode
static CHIVENDORTAGDATA g_VendorTagSectionOfflineIFEMode[] =
{
    { "isOfflineIFEMode", TYPE_BYTE,  sizeof(BOOL), NoPrintFormat }
};

///< com.qti.chi.OfflineCamera
static CHIVENDORTAGDATA g_VendorTagSectionOfflineCamera[] =
{
    { "NumHWInputFrames", TYPE_BYTE, sizeof(UINT32), NoPrintFormat },
    { "FeatureTag",       TYPE_BYTE, sizeof(UINT32), NoPrintFormat },
    { "HWProfileId",      TYPE_BYTE, sizeof(UINT32), NoPrintFormat }
};

///< org.quic.camera.enableBDSsplitmode
static CHIVENDORTAGDATA g_VendorTagSectionBDSSplitMode[] =
{
    { "EnableBDSSplitFeature",  TYPE_BYTE, 1, NoPrintFormat }
};

///< org.quic.camera.cascade2dlut
static CHIVENDORTAGDATA g_VendorTagControlCascade2DLut[] =
{
    { "cascade2DLutControl",    TYPE_BYTE,   sizeof(Cascade2DLUTControl), PrintCascade2DLUTControlData },
};

///< com.qti.chi.warpsCropTransform
static CHIVENDORTAGDATA g_VendorTagSectionWarpsCropTransform[] =
{
    { "warpsCropTransform", TYPE_BYTE,  sizeof(ICAWarpsCropTransform), NoPrintFormat },
    { "enablePostWarpCrop", TYPE_BYTE,  1,                             NoPrintFormat },
    { "postWarpFDRoiInfo",  TYPE_BYTE,  sizeof(WarpsFaceRectData),     NoPrintFormat },
};

///< org.quic.camera.offlinedump
static CHIVENDORTAGDATA g_VendorTagSectionOfflineDump[] =
{
    { "isEnabled",          TYPE_INT32, 1, NoPrintFormat},
    { "OfflineDumpTrigger", TYPE_INT32, 1, NoPrintFormat},
    { "frameNum",           TYPE_INT64, 1, NoPrintFormat}
};

///< Section:org.codeaurora.qcamera3.sensor_meta_data
static CHIVENDORTAGDATA g_VendorTagCSIPHYCDRSweepParameters[] =
{
    { "cdrLaneValue",     TYPE_BYTE, sizeof(UINT32), NoPrintFormat },
    { "cdrTolerance",     TYPE_BYTE, sizeof(UINT32), NoPrintFormat },
    { "cdrToleranceType", TYPE_BYTE, sizeof(UINT32), NoPrintFormat },
};

///< com.qti.chi.CameraStatusInfo
static CHIVENDORTAGDATA g_VendorTagSectionCameraStatusInfo[] =
{
    { "CameraStatusInfo",  TYPE_BYTE,  sizeof(CameraStatusInfo),  PrintCameraStatusInfo }
};

///< org.quic.camera.touchFocusAssist
static CHIVENDORTAGDATA g_VendorTagSectionTouchFocusAssist[] =
{
    { "touchFocusAssist", TYPE_BYTE,  sizeof(BOOL), NoPrintFormat }
};

///< com.qti.node.aon
static CHIVENDORTAGDATA g_VendorTagSectionAONInfo[] =
{
    { "AONInfo",    TYPE_BYTE, sizeof(AONInfo), NoPrintFormat }
};

static CHIVENDORTAGDATA g_VendorTagSectionSWVRT[] =
{
    { "EnableSWVRT",        TYPE_BYTE,   1, NoPrintFormat  }
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// VendorTag Section Define
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

static const CHAR ChiOverrideNodeSectionName[]      = "com.qti.chi.override";
static const CHAR IPEICASectionName[]               = "org.quic.camera2.ipeicaconfigs";
static const CHAR IFECropInfoSectionName[]          = "org.quic.camera.ifecropinfo";
static const CHAR SensorMetaSectionName[]           = "org.codeaurora.qcamera3.sensor_meta_data";
static const CHAR QTimerSectionName[]               = "org.quic.camera.qtimer";
static const CHAR StreamDimensionSectionName[]      = "org.quic.camera.streamDimension";
static const CHAR RecordingSectionName[]            = "org.quic.camera.recording";
static const CHAR EISLookAheadSectionName[]         = "org.quic.camera.eislookahead";
static const CHAR EISRealTimeSectionName[]          = "org.quic.camera.eisrealtime";
static const CHAR MultiCameraInfoSectionName[]      = "com.qti.chi.metadataOwnerInfo";
static const CHAR Feature2RequestInfoSectionName[]  = "com.qti.chi.feature2RequestInfo";
static const CHAR CameraConfigurationSectionName[]  = "com.qti.chi.cameraconfiguration";
static const CHAR ChiNodeCropRegions[]              = "com.qti.cropregions";
static const CHAR StatsConfigSectionName[]          = "org.quic.camera2.statsconfigs";
static const CHAR EISDewarpMatrixSectionName[]      = "org.quic.camera2.ipeicaconfigs";
static const CHAR StreamTypePresent[]               = "org.quic.camera.streamTypePresent";
static const CHAR GPUSkipbasedonFDSkip[]            = "org.quic.camera.skipgpuprocessingbasedonfd";
static const CHAR SWRegistrationNodeSectionName[]   = "org.quic.camera2.ipeicaconfigs";
static const CHAR ICACapabilitiesSectionName[]      = "org.codeaurora.qcamera3.platformCapabilities";
static const CHAR GeoLibIfeFrameConfigSectionName[] = "org.quic.camera.geoLibFrameConfig";
static const CHAR GeoLibInitConfigSectionName[]     = "org.quic.camera.enableVSR";
static const CHAR SwMCTFEnablementSectionName[]     = "org.quic.camera.swcapabilities"; ///< SWMCTF enablement status
static const CHAR EISMultiCameraInfoSectionName[]   = "com.qti.chi.multicameraoutputmetadata";
static const CHAR PSStreamCropInfoSectionName[]     = "com.qti.camera.streamCropInfo";
static const CHAR PreprocessNodeSectionName[]       = "com.qti.node.swpreprocess";
static const CHAR IFEAdrcConfigSectionName[]        = "org.quic.camera.ADRCParam";
static const CHAR MFHDRFuseSectionName[]            = "org.quic.camera.HWMFHDRSupported";
static const CHAR HDRFeatureModeSectionName[]       = "org.quic.camera.hdrfeaturemode";
static const CHAR GeoLibSectionName[]               = "org.quic.camera.geolib";
static const CHAR IdealRawCBInfoSectionName[]       = "com.qti.chi.rawcbinfo";
static const CHAR SessionParameterSectionName[]     = "org.codeaurora.qcamera3.sessionParameters";
static const CHAR SWBEStatsSectionName[]            = "org.quic.camera.swbestatsdata";
static const CHAR IFETestGenCapabilitySectionName[] = "org.quic.camera.IFETestGenCapability";
static const CHAR IFETestGenConfigSectionName[]     = "org.quic.camera.IFETestGenConfig";
static const CHAR FOVCMarginSectionName[]           = "org.quic.camera.FOVCMetaData";
static const CHAR NumOfBayerMergeSectionName[]      = "org.quic.camera.NumOfBayerMerge";
static const CHAR gyroRNNSectionName[]              = "com.qti.node.gyrornn";
static const CHAR BayerAlignmentSectionName[]       = "org.quic.camera.bayerAlignment";
static const CHAR ScratchBufferMetaSectionName[]    = "org.quic.camera.scratchbufferdata";
static const CHAR SWFusionInfoSectionName[]         = "org.quic.camera.swfusionInfo";
static const CHAR IFEDSXInfoSectionName[]           = "org.quic.camera.ifedsxinfo";
static const CHAR SWVRTSectionName[]                = "com.qti.node.swvrt";
static const CHAR GammaDataSectionName[]            = "org.quic.camera.GammaData";
static const CHAR ADRCDataSectionName[]             = "org.quic.camera.ADRCData";

static CHIVENDORTAGSECTIONDATA g_VendorTagSectionDataChiOverride[] =
{
    {
        "org.codeaurora.qcamera3.saturation", 0,
        sizeof(g_VendorTagSectionSaturation) / sizeof(g_VendorTagSectionSaturation[0]),
        g_VendorTagSectionSaturation, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToAll
    },

    {
        ChiOverrideNodeSectionName, 0,
        sizeof(g_VendorTagDataChiOverride) / sizeof(g_VendorTagDataChiOverride[0]),
        g_VendorTagDataChiOverride, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToAll
    },

    {
        "com.qti.chi.multicamerasensorconfig", 0,
        sizeof(g_VendorTagDataMulticameraSensorConfig) / sizeof(g_VendorTagDataMulticameraSensorConfig[0]),
        g_VendorTagDataMulticameraSensorConfig, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToAll
    },

    {
        "com.qti.chi.multicamerainputmetadata", 0,
        sizeof(g_VendorTagDataMulticameraInputMetadata) / sizeof(g_VendorTagDataMulticameraInputMetadata[0]),
        g_VendorTagDataMulticameraInputMetadata, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToOEM
    },

    {
        "com.qti.chi.multicameraoutputmetadata", 0,
        sizeof(g_VendorTagDataMulticameraOutputMetadata) / sizeof(g_VendorTagDataMulticameraOutputMetadata[0]),
        g_VendorTagDataMulticameraOutputMetadata, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToAll
    },

    {
        "com.qti.chi.multicamerainfo", 0,
        sizeof(g_VendorTagDataMulticameraInfo) / sizeof(g_VendorTagDataMulticameraInfo[0]),
        g_VendorTagDataMulticameraInfo, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToAll
    },

    {
        "com.qti.chi.auxcamerainfo", 0,
        sizeof(g_VendorTagDataAuxCameraInfo) / sizeof(g_VendorTagDataAuxCameraInfo[0]),
        g_VendorTagDataAuxCameraInfo, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToOEM
    },

    {
        "com.qti.chi.logicalcamerainfo", 0,
        sizeof(g_VendorTagDataLogicalCameraInfo) / sizeof(g_VendorTagDataLogicalCameraInfo[0]),
        g_VendorTagDataLogicalCameraInfo, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToAll
    },

    {
        "com.qti.cropregions",  0,
        sizeof(g_VendorTagCropRegion) / sizeof(g_VendorTagCropRegion[0]),
        g_VendorTagCropRegion, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToAll
    },

    {
        "com.qti.camera.swmfnrBlendConfidence", 0,
        CAMX_ARRAY_SIZE(g_VendorTagSectionSWMFNRBlendConfidence), g_VendorTagSectionSWMFNRBlendConfidence,
        CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToOEM
    },

    {
        SWBEStatsSectionName, 0,
        CAMX_ARRAY_SIZE(g_VendorTagSectionSWBEStatsData), g_VendorTagSectionSWBEStatsData,
        CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToOEM
    },

    {
        "com.qti.chi.statsaec", 0,
        sizeof(g_VendorTagAECLux) / sizeof(g_VendorTagAECLux[0]),
        g_VendorTagAECLux, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToAll
    },

    {
        "com.qti.chi.statsSkip",  0,
        sizeof(g_VendorTagStatsSkip) / sizeof(g_VendorTagStatsSkip[0]),
        g_VendorTagStatsSkip, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToAll
    },

    {
        "com.qti.chi.metadataOwnerInfo",  0,
        sizeof(g_VendorTagMetaOwnerInfo) / sizeof(g_VendorTagMetaOwnerInfo[0]),
        g_VendorTagMetaOwnerInfo, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToAll
    },

    {
        Feature2RequestInfoSectionName,  0,
        sizeof(g_VendorTagFeature2RequestInfo) / sizeof(g_VendorTagFeature2RequestInfo[0]),
        g_VendorTagFeature2RequestInfo, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToAll
    },

    {
        "com.qti.chi.cameraconfiguration",  0,
        sizeof(g_VendorTagDataCameraConfiguration) / sizeof(g_VendorTagDataCameraConfiguration[0]),
        g_VendorTagDataCameraConfiguration, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToOEM
    },

    {
        "com.qti.chi.superslowmotionfrc", 0,
        sizeof(g_VendorTagSuperSlowMotionFRC) / sizeof(g_VendorTagSuperSlowMotionFRC[0]),
        g_VendorTagSuperSlowMotionFRC, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToAll
    },

    {
        "com.qti.chi.bpsrealtimecam", 0,
        sizeof(g_VendorTagBPSRealtimeCam) / sizeof(g_VendorTagBPSRealtimeCam[0]),
        g_VendorTagBPSRealtimeCam, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToAll
    },

    {
        "com.qti.chi.stabilizationmode", 0,
        sizeof(g_VendorTagStabilizationModeRealtimeCam) / sizeof(g_VendorTagStabilizationModeRealtimeCam[0]),
        g_VendorTagStabilizationModeRealtimeCam, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToAll
    },

    {
        "com.qti.chi.ZSLSettings", 0,
        sizeof(g_VendorTagZSLTags) / sizeof(g_VendorTagZSLTags[0]),
        g_VendorTagZSLTags, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToAll
    },
    {
        "com.qti.chi.livePreview", 0,
        sizeof(g_VendorTagLivePreview) / sizeof(g_VendorTagLivePreview[0]),
        g_VendorTagLivePreview, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToAll
    },

    {
        "com.qti.chi.snapshotframeexposuretype", 0,
        sizeof(g_VendorTagExposureType) / sizeof(g_VendorTagExposureType[0]),
        g_VendorTagExposureType, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToAll
    },

    {
        "org.quic.camera.debugDumpConfig", 0,
        sizeof(g_VendorTagDebugDumpConfig) / sizeof(g_VendorTagDebugDumpConfig[0]),
        g_VendorTagDebugDumpConfig, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToAll
    },
    {
        "com.qti.chi.offlinepipelineinfo", 0,
        sizeof(g_VendorTagOfflinePipelineInfo) / sizeof(g_VendorTagOfflinePipelineInfo[0]),
        g_VendorTagOfflinePipelineInfo, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToOEM
    },
    {
        "com.qti.chi.pixelshift", 0,
        sizeof(g_VendorTagPixelShift) / sizeof(g_VendorTagPixelShift[0]),
        g_VendorTagPixelShift, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToOEM
    },
    {
        "org.quic.camera.AnchorSync", 0,
        sizeof(g_VendorTagAnchorSync) / sizeof(g_VendorTagAnchorSync[0]),
        g_VendorTagAnchorSync, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToAll
    },
    {
        "org.quic.camera.MultiFrame", 0,
        sizeof(g_VendorTagMultiFrameInfo) / sizeof(g_VendorTagMultiFrameInfo[0]),
        g_VendorTagMultiFrameInfo, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToAll
    },
    {
        "org.quic.camera.induceSleepInChiNode", 0,
        sizeof(g_VendorTagInduceSleepInChiNode) / sizeof(g_VendorTagInduceSleepInChiNode[0]),
        g_VendorTagInduceSleepInChiNode, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToOEM
    },
    {
        "com.qti.chi.rawcbinfo", 0,
        sizeof(g_VendorTagRawCBInfo) / sizeof(g_VendorTagRawCBInfo[0]),
        g_VendorTagRawCBInfo, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToAll
    },
    {
        "com.qti.chi.qllControl", 0,
        sizeof(g_VendorTagQLLControl) / sizeof(g_VendorTagQLLControl[0]),
        g_VendorTagQLLControl, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToAll
    },
    {
        "com.qti.chi.segmentation", 0,
        sizeof(g_VendorTagSegmentation) / sizeof(g_VendorTagSegmentation[0]),
        g_VendorTagSegmentation, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToOEM
    },
    {
        IFETestGenCapabilitySectionName, 0,
        sizeof(g_VendorTagTestGenCapablity) / sizeof(g_VendorTagTestGenCapablity[0]),
        g_VendorTagTestGenCapablity, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToOEM
    },
    {
        IFETestGenConfigSectionName, 0,
        sizeof(g_VendorTagTestGenConfig) / sizeof(g_VendorTagTestGenConfig[0]),
        g_VendorTagTestGenConfig, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToOEM
    },
    {
        "com.qti.chi.multiFrameData", 0,
        sizeof(g_VendorTagDataMultiFrameData) / sizeof(g_VendorTagDataMultiFrameData[0]),
        g_VendorTagDataMultiFrameData, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToAll
    },
    {
        "com.qti.chi.stackedFrame", 0,
        sizeof(g_VendorTagDataStackedFrame) / sizeof(g_VendorTagDataStackedFrame[0]),
        g_VendorTagDataStackedFrame, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToAll
    },
    {
        "com.qti.chi.Feature2ErrorInduceFramework", 0,
        sizeof(g_VendorTagDataFeature2ErrorInducer) / sizeof(g_VendorTagDataFeature2ErrorInducer[0]),
        g_VendorTagDataFeature2ErrorInducer, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToAll
    },
    {
        "com.qti.chi.transitionMode", 0,
        sizeof(g_VendorTagDataTransitionMode) / sizeof(g_VendorTagDataTransitionMode[0]),
        g_VendorTagDataTransitionMode, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToAll
    },
    {
        NumOfBayerMergeSectionName, 0,
        sizeof(g_VendorTagNumOfBayerMerge) / sizeof(g_VendorTagNumOfBayerMerge[0]),
        g_VendorTagNumOfBayerMerge, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToOEM
    },
    {
        BayerAlignmentSectionName, 0,
        sizeof(g_VendorTagSectionBayerAlignment) / sizeof(g_VendorTagSectionBayerAlignment[0]),
        g_VendorTagSectionBayerAlignment, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToOEM
    },
    {
        "com.qti.chi.enableadrcpath", 0,
        sizeof(g_VendorTagEnableADRCPath) / sizeof(g_VendorTagEnableADRCPath[0]),
        g_VendorTagEnableADRCPath, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToAll
    },
    {
        "com.qti.chi.OfflineIFEMode", 0,
        sizeof(g_VendorTagSectionOfflineIFEMode) / sizeof(g_VendorTagSectionOfflineIFEMode[0]),
        g_VendorTagSectionOfflineIFEMode, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToOEM
    },
    {
        "com.qti.chi.OfflineCamera", 0,
        sizeof(g_VendorTagSectionOfflineCamera) / sizeof(g_VendorTagSectionOfflineCamera[0]),
        g_VendorTagSectionOfflineCamera, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToOEM
    },
    {
        "org.quic.camera.scratchbufferdata", 0,
        CAMX_ARRAY_SIZE(g_VendorTagSectionScratchBufferData), g_VendorTagSectionScratchBufferData,
        CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToOEM
    },
    {
        "org.quic.camera.swfusionInfo", 0,
        CAMX_ARRAY_SIZE(g_VendorTagSectionSWFusionInfo), g_VendorTagSectionSWFusionInfo,
        CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToOEM
    },
    {
        "org.quic.camera.enableBDSsplitmode", 0,
        CAMX_ARRAY_SIZE(g_VendorTagSectionBDSSplitMode), g_VendorTagSectionBDSSplitMode,
        CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToOEM
    },
    {
        "org.quic.camera.cascade2dlut", 0,
        sizeof(g_VendorTagControlCascade2DLut) / sizeof(g_VendorTagControlCascade2DLut[0]),
        g_VendorTagControlCascade2DLut, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToOEM
    },
    {
        "com.qti.chi.warpsTransform", 0,
        sizeof(g_VendorTagSectionWarpsCropTransform) / sizeof(g_VendorTagSectionWarpsCropTransform[0]),
        g_VendorTagSectionWarpsCropTransform, CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToOEM
    },
    {
        "org.quic.camera.offlinedump", 0,
        CAMX_ARRAY_SIZE(g_VendorTagSectionOfflineDump), g_VendorTagSectionOfflineDump,
        CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToAll
    },
    {
        "org.codeaurora.qcamera3.sensor_meta_data", 0,
        CAMX_ARRAY_SIZE(g_VendorTagCSIPHYCDRSweepParameters), g_VendorTagCSIPHYCDRSweepParameters,
        CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToOEM
    },
    {
        "com.qti.chi.CameraStatusInfo", 0,
        CAMX_ARRAY_SIZE(g_VendorTagSectionCameraStatusInfo), g_VendorTagSectionCameraStatusInfo,
        CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToAll
    },
    {
        "com.qti.node.aon", 0,
        CAMX_ARRAY_SIZE(g_VendorTagSectionAONInfo), g_VendorTagSectionAONInfo,
        CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToOEM
    },
    {
        "com.qti.chi.lowResolutionUpscale",  0,
        CAMX_ARRAY_SIZE(g_VendorTagDataLowResolutionUpscale), g_VendorTagDataLowResolutionUpscale,
        CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToOEM
    },
};

///< camxchinodeswpreprocess.cpp
static CHIVENDORTAGSECTIONDATA g_VendorTagPreprocessSection[] =
{
    {
        PreprocessNodeSectionName,  0,
        sizeof(g_VendorTagSectionPreprocess) / sizeof(g_VendorTagSectionPreprocess[0]), g_VendorTagSectionPreprocess,
        CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToAll
    }
};

///< camxchinodegyrornn.cpp
static CHIVENDORTAGSECTIONDATA g_VendorTagGyroRNNSection[] =
{
    {
        gyroRNNSectionName,
        0,
        sizeof(g_VendorTagSectiongyroRNNMetaData) / sizeof(g_VendorTagSectiongyroRNNMetaData[0]),
        g_VendorTagSectiongyroRNNMetaData,
        CHITAGSECTIONVISIBILITY::ChiTagSectionVisibleToAll
    }
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// VendorTag Info Define
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

static ChiVendorTagInfo g_VendorTagInfoChiOverride[] =
{
    {
        & g_VendorTagSectionDataChiOverride[0],
        sizeof(g_VendorTagSectionDataChiOverride) / sizeof(g_VendorTagSectionDataChiOverride[0])
    }
};

///< camxchinodeswpreprocess.cpp
static ChiVendorTagInfo g_VendorTagInfoPreprocess[] =
{
    {
        &g_VendorTagPreprocessSection[0],
        sizeof(g_VendorTagPreprocessSection) / sizeof(g_VendorTagPreprocessSection[0])
    }
};

///< camxchinodegyrornn.cpp
static ChiVendorTagInfo g_VendorTagInfoGyroRNNNode[] =
{
    {
        &g_VendorTagGyroRNNSection[0],
        sizeof(g_VendorTagGyroRNNSection) / sizeof(g_VendorTagGyroRNNSection[0])
    }
};

///@brief Non-Android CHI static capabilities (from dumpsys) table used to calculate static meta size
static std::pair<const CHAR*, const CHAR*> g_CHIVendorTagStaticCaps[] =
{
    { "org.codeaurora.qcamera3.available_video_hdr_modes", "video_hdr_modes"                  },
    { "org.codeaurora.qcamera3.exposure_metering",         "available_modes"                  },
    { "org.codeaurora.qcamera3.HDRMaxResolutionCap",       "HDRMaxResolution"                 },
    { "org.codeaurora.qcamera3.histogram",                 "buckets"                          },
    { "org.codeaurora.qcamera3.histogram",                 "max_count"                        },
    { "org.codeaurora.qcamera3.instant_aec",               "instant_aec_available_modes"      },
    { "org.codeaurora.qcamera3.iso_exp_priority",          "exposure_time_range"              },
    { "org.codeaurora.qcamera3.iso_exp_priority",          "iso_available_modes"              },
    { "org.codeaurora.qcamera3.logicalCameraType",         "logical_camera_type"              },
    { "org.codeaurora.qcamera3.manualWB",                  "color_temperature_range"          },
    { "org.codeaurora.qcamera3.manualWB",                  "gains_range"                      },
    { "org.codeaurora.qcamera3.platformCapabilities",      "EnableVSR"                        },
    { "org.codeaurora.qcamera3.platformCapabilities",      "ExtendedMaxZoom"                  },
    { "org.codeaurora.qcamera3.platformCapabilities",      "IPEICACapabilities"               },
    { "org.codeaurora.qcamera3.saturation",                "range"                            },
    { "org.codeaurora.qcamera3.sharpness",                 "range"                            },
    { "org.codeaurora.qcamera3.stats",                     "bsgc_available"                   },
    { "org.codeaurora.qcamera3.supportedHDRmodes",         "HDRModes"                         },
    { "org.codeaurora.qcamera3.supportedScreenGrabmodes",  "ScreenGrabModes"                  },
    { "org.quic.camera.AutoHDRSupport",                    "isAutoHDRSupported"               },
    { "org.quic.camera.BurstFPS",                          "isBurstShotSupported"             },
    { "org.quic.camera.BurstFPS",                          "MaxBurstShotFPS"                  },
    { "org.quic.camera.FDRendering",                       "isFDRenderingInCameraUISupported" },
    { "org.quic.camera.FDRendering",                       "isFDRenderingInVideoUISupported"  },
    { "org.quic.camera.HEICSupport",                       "HEICEnabled"                      },
    { "org.quic.camera.LiveshotSize",                      "isLiveshotSizeSameAsVideoSize"    },
    { "org.quic.camera.ltmDynamicContrast",                "ltmBrightSupressStrengthRange"    },
    { "org.quic.camera.ltmDynamicContrast",                "ltmDarkBoostStrengthRange"        },
    { "org.quic.camera.ltmDynamicContrast",                "ltmDynamicContrastStrengthRange"  },
    { "org.quic.camera.MaxPreviewSize",                    "MaxPreviewSize"                   },
    { "org.quic.camera.SensorModeFS",                      "isFastShutterModeSupported"       },
    { "org.quic.camera.swcapabilities",                    "isQLLSupported"                   },
    { "org.quic.camera.swcapabilities",                    "MFNRType"                         },
    { "org.quic.camera.swcapabilities",                    "SWMCTFEnable"                     },
    { "org.quic.camera2.objectTrackingResults",            "TrackerEnable"                    }
};

#endif // CHIVENDORTAGDEFINES_H
