/* device:ishtar some quick reference: stream format: (for complete list, refer to: system/core/include/system/graphics-base-vx.x.h) HAL_PIXEL_FORMAT_RGBA_8888 = 1, HAL_PIXEL_FORMAT_RGBX_8888 = 2, HAL_PIXEL_FORMAT_RGB_888 = 3, HAL_PIXEL_FORMAT_RGB_565 = 4, HAL_PIXEL_FORMAT_BGRA_8888 = 5, HAL_PIXEL_FORMAT_YCBCR_422_SP = 16, HAL_PIXEL_FORMAT_YCRCB_420_SP = 17, HAL_PIXEL_FORMAT_YCBCR_422_I = 20, HAL_PIXEL_FORMAT_RGBA_FP16 = 22, HAL_PIXEL_FORMAT_RAW16 = 32, HAL_PIXEL_FORMAT_BLOB = 33, HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED = 34, HAL_PIXEL_FORMAT_YCBCR_420_888 = 35, HAL_PIXEL_FORMAT_RAW_OPAQUE = 36, HAL_PIXEL_FORMAT_RAW10 = 37, HAL_PIXEL_FORMAT_RAW12 = 38, HAL_PIXEL_FORMAT_RGBA_1010102 = 43, HAL_PIXEL_FORMAT_Y8 = 538982489, HAL_PIXEL_FORMAT_Y16 = 540422489, HAL_PIXEL_FORMAT_YV12 = 842094169, stream dataspace: (for complete list, refer to: system/core/include/system/graphics-base-vx.x.h) HAL_DATASPACE_JFIF = 257, HAL_DATASPACE_V0_JFIF = 146931712, // ((STANDARD_BT601_625 | TRANSFER_SMPTE_170M) | RANGE_FULL) */ { "enableBokehOptimize": 0, "supportFrontBokehDepthScale": true, "supportDownCapture": true, "supportSortResult": false, "supportRemosaicMfnrQuickShot": true, // When APP supports DownCapture, mihal needs to discard the useless snapshot request front Burst. "InternalPreviewBufferQueueSize": 36, "MockCameraFwkStreamMaxBufferQueueSize": 30, // when mihal allocate a stream's GraBuffer, it will refresh a timer. // If no one else request the stream's GraBuffer for "BufferReclaimWaitMilliseconds", // then the idle buffers of that stream will be reclaimed to save memory "BufferReclaimWaitMilliseconds": 3000, // this is the time you wait for some buffers to get released when all the buffers of the // stream you are requesting are busy "RequestGraBufferTimeOutMilliseconds": 300, "InternalSnapshotStreamProperty": { "UpScaleSizeFactor": 2, "InternalRawStreamAspectRatio": 1.33, // NOTE: the sensor supported yuv output resolution // resolution of streams sent by framework should be in this option list with ± tolerance "YuvStreamResolutionOptions": { "AspectRatioList": [1, 1.12851, 1.33333, 1.77777, 2.22222], // the tolerance shouldn't be too small. otherwise, mihal will choose the wrong // resolution. for example, in L2, when do Sr+Hdr, if you change frame ratio as 3:4, // then Qcom expects ouput stream size as 4080X3072, but 4080/3072=1.328125 // which is not 4/3=1.33333. Therefore, we need some tolerance "Tolerance": 0.005 }, "RawStreamResolutionOptions": { "AspectRatioList": [1, 1.33, 1.77, 2.22], "Tolerance": 0.3 } }, "supportMiviFullSceneRawCB": false, "FeatureList": { "FeatureHDR": { // in normal hdr mode(not stagger hdr), we need to send mutiple requests // to vendor and merge these requests in mialgoengine, this variable sets // the minimum number of requests needed by mialgoengine to do // HDR processing, if the number of ev values returned by hdr checker is // less than this value, then this HDR snapshot is problematic "MinNumOfSnapshotRequiredByYuvHDR": 3, "MinNumOfSnapshotRequiredByRawHDR": 6, // please refer to function applyHdrParameter in: // packages/apps/MiuiCamera/src/com/android/camera2/MiCamera2ShotParallelBurst.java "shouldApplyAElock": true }, "FeatureSR": { "NumOfSnapshotRequiredBySR": 8 }, "FeatureSRHDR": { "NumOfSnapshotRequiredBySRHDR": 10, "DefaultExpValuesOfSRHDR": [0, 0, 0, 0, 0, 0, 0, 0, -6, 6] }, "FeatureSN": { "supportMfnrForSn": false }, "FeatureAINR": { "NumOfSnapshotRequiredByAINR": 6, "LimitTimeByHDUltrRawUpper": 7000, "LimitTimeByHDUltrRawLower": 4000 }, "FeatureFusion": { "SrFusionZoomRegion": { "lowerBound": 3.0, "upperBound": 5.0 }, "MfnrFusionZoomRegion": { "lowerBound": 0.6, "upperBound": 1.0 } }, "FeatureHD": { // in K1, under superHD mode we want to use mfnr to get a high quality image // but if we set exposure time to a large value, it will take very long time to // snapshot, so we need to disable mfnr when we set a long exposure time. // this variable is the max exposure time to allow mfnr. the unit is nano second. "MfnrMaxExpTime": 250000000, // used in function findBiggestResolution() "SuperResolutionImageRatio": { "width": 4, "height": 3 } } }, // you can't just keep sending tasks to mialgoengine, we need to confine the num // of task in process, (one task means one photographer) "MialgoTaskCapacity": 10, // the total resource in mialgo "MialgoTaskConsumption": { // the entries below show the reources cost by various photographer per snapshot. // If the sum of these resource reaches "MialgoCapacity", we will stop the app // This value supports input of one or two digits: // 2 or [2] (both low memory and high memory, the cost is 2.) // [8, 2] (The cost is 8 for low memory device and 2 for high memory device.) "Photographer": 1, "BokehPhotographer": [4,2], "MDBokehPhotographer": 2, "HdrBokehPhotographer": [4,2], "SEBokehPhotographer": [4,2], "HdrPhotographer": 3, "HwmfPhotographer": 1, "SupernightPhotographer": 4, "RawSupernightPhotographer": [4,3], "SrPhotographer": 4, "SrHdrPhotographer": 5, "FusionPhotographer": 3, "ProfessionalPhotographer": 1, "BurstPhotographer": 0, "AINRPhotographer": 4, "HdAINRPhotographer": 6 }, "BokehStaticRemosaicSwitch": { "Full": { "masterEnable": false, "slaveEnable": false }, "Bust": { "masterEnable": false, "slaveEnable": false }, "35mm": { "masterEnable": false, "slaveEnable": false }, "50mm": { "masterEnable": true, "slaveEnable": false }, "75mm": { "masterEnable": false, "slaveEnable": false }, "90mm": { "masterEnable": false, "slaveEnable": false }, "duration": 30000, // Due to memory pressure, only N3 with 8G RAM need to choose binning mode for slave lens, please check. "SlaveRAMControl": true }, "BokehStaticFallback": { "Full": { "enable": false }, "Bust": { "enable": true }, "35mm": { "enable": false }, "50mm": { "enable": false }, "75mm": { "enable": true }, "90mm": { "enable": true }, "duration": 30000 } }