V2310
Android 15 (API 35)
vivo · Mediatek MT6769V/CZ
Cameras
| Lens | Facing | Focal length | Sensor size | Max res | Modes | HW level |
|---|---|---|---|---|---|---|
| Rear #0 | BACK | 27mm (4.05mm) | 5.22 × 3.93 mm | 2560×1440 | 26 | FULL |
| Front #1 | FRONT | 24mm (2.54mm) | 3.67 × 2.75 mm | 2560×1440 | 26 | FULL |
Focal lengths show the 35mm equivalent first; the sensor's native focal length is in parentheses. Only the equivalent is comparable between phones.
Max res is the largest frame this lens was proven to record: a real clip written to disk and read back with frames in it.
Encoder frame ceilings
| Codec | Largest frame | Macroblocks | Advertised max |
|---|---|---|---|
| HEVC | 2176×1024 | 8,704 | |
| AVC | 2560×1440 | 14,400 | 2560 × 1440 |
One macroblock is 16×16 pixels. The macroblock count is the encoder's real ceiling — a budget every frame has to fit, landscape or portrait — and the largest frame beside it is simply the biggest shape that spends it. The advertised maximum width and height are struck through where their product exceeds that budget. They are independent limits that cannot be used together, so the figure they imply is not a resolution this encoder will accept: design against the macroblock count, not the advertised pair.
Diagnostics
94 checks — 29 supported · 5 partial · 19 unsupported · 41 informational
Camera 0 (BACK) — Rear 30 checks
Hardware
| Hardware Level | FULLGood — manual control + RAW likely available |
Capabilities
| Manual Sensor Control | YesRequired for manual ISO/exposure in log shooting |
| RAW Capture | YesEnables access to raw Bayer sensor data |
| Burst Capture | YesSustained high-framerate capture |
| Read Sensor Settings | YesPer-frame sensor metadata readback |
| Dynamic Range Profiles | NoNot available — may need API 33+ or device support |
Sensor
| Bit Depth | 10-bit (white level = 1023)Good — standard for mobile sensors |
| Sensitivity Range | ISO 100 – 19200Max analog ISO: 6400 (digital gain above this) |
| Exposure Range | 100.0µs – 0.4sFastest: ~1/10000 |
| Bayer Pattern | GBRG |
| Physical Size | 5.22 × 3.93 mm (diag 6.53 mm)Larger sensor = more light = better DR for log |
| Pixel Array | 4080 × 3060 (12.5 MP) |
RAW Formats
| RAW_SENSOR | 4080×3060 @ 15.0 fps sustained (30.0 fps readout, 33.3 ms stall)Marginal for video — consider lower res Rates are sustained: this HAL stalls the request while it moves the RAW data, so the readout rate holds for one frame, not for a stream. |
| RAW10 | Not supported |
| RAW12 | Not supported |
| RAW_PRIVATE | Not supported |
Streams
| Max Simultaneous Outputs | RAW:1 Processed:3 Stalling:1Can capture RAW + encoded video simultaneously |
| YUV_420_888 Modes | 4080×3060 @ 20 fps 4080×2296 @ 30 fps 3060×3060 @ 30 fps 3840×2160 @ 30 fps 3264×2448 @ 30 fps … and 42 more |
HDR / 10-Bit
| Dynamic Range Profiles | None reportedDevice does not advertise HDR profiles |
| 10-Bit YUV (P010) | Not supportedEncoder may only receive 8-bit data even if Main10 is available |
Tonemap / ISP
| Tonemap Modes | CONTRAST_CURVE, FAST, HIGH_QUALITYCONTRAST_CURVE available — can define custom log curve (101 points max) |
| Max Curve Points | 101Plenty for smooth log curve |
| Noise Reduction | OFF, FAST, HIGH_QUALITY, MINIMALOFF available — can disable NR for clean log |
| Edge / Sharpening | OFF, FAST, HIGH_QUALITYOFF available — can disable sharpening |
| Hot Pixel Modes | OFF, FAST, HIGH_QUALITY |
| Lens Shading Correction | OFF, FAST, HIGH_QUALITYOFF available — raw vignetting preserved for manual correction |
| Chromatic Aberration Correction | OFF |
Vendor Tags
| Count | 33 vendor tags foundOEM-specific extensions available |
| com.mediatek (26) | com.mediatek.facefeature.availableforceface3a = [0, 1] com.mediatek.nrfeature.available3dnrmodes = [0, 1] com.mediatek.hdrfeature.availableHdrModesPhoto = [0, 1] com.mediatek.hdrfeature.availableHdrModesVideo = [0] com.mediatek.hdrfeature.availableMStreamHdrModes = [0] com.mediatek.hdrfeature.availableStaggerHdrModes = [0] com.mediatek.mfnrfeature.availablemfbmodes = [0, 1, 2, 255] com.mediatek.mfnrfeature.availableaismodes = [0, 1] com.mediatek.cshotfeature.availableCShotModes = [0] com.mediatek.streamingfeature.availableRecordStates = [0, 1] com.mediatek.streamingfeature.cropOuterLinesEnable = [0] com.mediatek.multicamfeature.availableMultiCamFeatureSensorManualUpdated = [983040, 983050, 983046, 983042, 983051, 983058, 917518, 524293, 65559, 65564] com.mediatek.control.capture.early.notification.support = [0, 1] com.mediatek.control.capture.availablepostviewmodes = [0, 1] com.mediatek.control.capture.available.zsl.modes = [0, 1] ... and 11 more |
| com.vivo (7) | com.vivo.chi.override.CameraType = [77, 97, 115, 116, 101, 114] com.vivo.chi.override.SensorSize = [4080, 3060] com.vivo.sensor.worktype = [0] com.vivo.chi.override.CameraComposition = [109, 97, 115, 116, 101, 114] com.vivo.AFCode = [0, 0, 1, 7, 0, 0, 1, 215, 0, 0, 2, 144, 0, 0, 0, 0] com.vivo.RAWInfo = [4080, 3060, 2, 1, 64, 84, 10, 64] com.vivo.halversion = [1152921504606847008] |
Camera 1 (FRONT) — Front 30 checks
Hardware
| Hardware Level | FULLGood — manual control + RAW likely available |
Capabilities
| Manual Sensor Control | YesRequired for manual ISO/exposure in log shooting |
| RAW Capture | NoEnables access to raw Bayer sensor data |
| Burst Capture | YesSustained high-framerate capture |
| Read Sensor Settings | YesPer-frame sensor metadata readback |
| Dynamic Range Profiles | NoNot available — may need API 33+ or device support |
Sensor
| Bit Depth | 10-bit (white level = 1023)Good — standard for mobile sensors |
| Sensitivity Range | ISO 100 – 16000Max analog ISO: 1600 (digital gain above this) |
| Exposure Range | 100.0µs – 0.4sFastest: ~1/10000 |
| Bayer Pattern | GRBG |
| Physical Size | 3.67 × 2.75 mm (diag 4.59 mm)Larger sensor = more light = better DR for log |
| Pixel Array | 3280 × 2464 (8.1 MP) |
RAW Formats
| RAW_SENSOR | Not supported |
| RAW10 | Not supported |
| RAW12 | Not supported |
| RAW_PRIVATE | Not supported |
Streams
| Max Simultaneous Outputs | RAW:1 Processed:3 Stalling:1Can capture RAW + encoded video simultaneously |
| YUV_420_888 Modes | 3264×2448 @ 30 fps 3264×1840 @ 30 fps 2448×2448 @ 30 fps 2560×1920 @ 30 fps 3264×1472 @ 30 fps … and 34 more |
HDR / 10-Bit
| Dynamic Range Profiles | None reportedDevice does not advertise HDR profiles |
| 10-Bit YUV (P010) | Not supportedEncoder may only receive 8-bit data even if Main10 is available |
Tonemap / ISP
| Tonemap Modes | CONTRAST_CURVE, FAST, HIGH_QUALITYCONTRAST_CURVE available — can define custom log curve (101 points max) |
| Max Curve Points | 101Plenty for smooth log curve |
| Noise Reduction | OFF, FAST, HIGH_QUALITY, MINIMALOFF available — can disable NR for clean log |
| Edge / Sharpening | OFF, FAST, HIGH_QUALITYOFF available — can disable sharpening |
| Hot Pixel Modes | OFF, FAST, HIGH_QUALITY |
| Lens Shading Correction | OFF, FAST, HIGH_QUALITYOFF available — raw vignetting preserved for manual correction |
| Chromatic Aberration Correction | OFF |
Vendor Tags
| Count | 32 vendor tags foundOEM-specific extensions available |
| com.mediatek (25) | com.mediatek.facefeature.availableforceface3a = [0, 1] com.mediatek.nrfeature.available3dnrmodes = [0, 1] com.mediatek.hdrfeature.availableHdrModesPhoto = [0, 1] com.mediatek.hdrfeature.availableHdrModesVideo = [0] com.mediatek.hdrfeature.availableMStreamHdrModes = [0] com.mediatek.hdrfeature.availableStaggerHdrModes = [0] com.mediatek.mfnrfeature.availablemfbmodes = [0, 1, 2, 255] com.mediatek.mfnrfeature.availableaismodes = [0, 1] com.mediatek.cshotfeature.availableCShotModes = [0, 1] com.mediatek.streamingfeature.availableRecordStates = [0, 1] com.mediatek.streamingfeature.cropOuterLinesEnable = [0] com.mediatek.multicamfeature.availableMultiCamFeatureSensorManualUpdated = [983040, 983050, 983046, 983042, 983051, 983058, 917518, 524293, 65559, 65564] com.mediatek.control.capture.early.notification.support = [0, 1] com.mediatek.control.capture.availablepostviewmodes = [0, 1] com.mediatek.control.capture.available.zsl.modes = [0, 1] ... and 10 more |
| com.vivo (7) | com.vivo.chi.override.CameraType = [77, 97, 115, 116, 101, 114] com.vivo.chi.override.SensorSize = [3264, 2448] com.vivo.sensor.worktype = [0] com.vivo.chi.override.CameraComposition = [109, 97, 115, 116, 101, 114] com.vivo.AFCode = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] com.vivo.RAWInfo = [3264, 2448, 2, 0, 64, 82, 10, 16] com.vivo.halversion = [1152921504606847008] |
Concurrent Cameras 1 checks
Concurrent Cameras
| Concurrent Camera Sets | NoneDevice advertises no camera combination that can stream concurrently |
Startup Ramp 2 checks
Startup Ramp
| First Frame Latency | 108 msCamera start → first encoded frame, at 1920×1080 HEVC — the dead time between pressing record and the first frame of video existing. 3 runs: 108 / 90 / 194 ms |
| Frames Dropped at Startup | 5 framesFrames the camera produced but the encoder dropped while warming up (rate control and 3A settling) — the cost of starting a recording, not throttling. 3 runs: 5 / 5 / 5 |
Video Encoders 28 checks
Encoders
| HEVC (H.265) — c2.mtk.hevc.encoder | Max bitrate: 50 MbpsGood — adequate for grading |
| HEVC (H.265) Max Resolution | 2560 × 1440 |
| HEVC (H.265) Max Macroblocks/Frame | 8,704 MB — largest frame 2176×1024Max width × max height (14,400 MB) exceeds this — those two cannot be combined |
| HEVC (H.265) Dimension Alignment | width ×2 height ×2Any even size accepted |
| HEVC (H.265) 10-Bit Profiles | None — 8-bit onlyLog footage limited to 8-bit (256 levels) |
| HEVC (H.265) Bitrate Modes | CBR:Yes VBR:Yes CQ:YesCQ (constant quality) available — ideal for log footage |
| HEVC (H.265) Color Formats | 0x7f000789 AndroidOpaque (opaque buffer — OMX_COLOR_FormatAndroidOpaque) 0x7f420888 YUV420Flexible (COLOR_FormatYUV420Flexible — framework maps to NV12) 0x00000013 YUV420Planar (I420) 0x00000015 YUV420SemiPlanar (NV12) 0x00000014 YUV420PackedPlanar 0x00000027 (vendor-specific / unknown) |
| HEVC (H.265) — OMX.MTK.VIDEO.ENCODER.HEVC | Max bitrate: 50 MbpsGood — adequate for grading |
| HEVC (H.265) Max Resolution | 2560 × 1440 |
| HEVC (H.265) Max Macroblocks/Frame | 8,704 MB — largest frame 2176×1024Max width × max height (14,400 MB) exceeds this — those two cannot be combined |
| HEVC (H.265) Dimension Alignment | width ×2 height ×2Any even size accepted |
| HEVC (H.265) 10-Bit Profiles | None — 8-bit onlyLog footage limited to 8-bit (256 levels) |
| HEVC (H.265) Bitrate Modes | CBR:Yes VBR:Yes CQ:YesCQ (constant quality) available — ideal for log footage |
| HEVC (H.265) Color Formats | 0x7f000789 AndroidOpaque (opaque buffer — OMX_COLOR_FormatAndroidOpaque) 0x7f420888 YUV420Flexible (COLOR_FormatYUV420Flexible — framework maps to NV12) 0x00000013 YUV420Planar (I420) 0x00000015 YUV420SemiPlanar (NV12) 0x00000014 YUV420PackedPlanar 0x00000027 (vendor-specific / unknown) |
| AVC (H.264) — c2.mtk.avc.encoder | Max bitrate: 100 MbpsExcellent — high enough for quality log |
| AVC (H.264) Max Resolution | 2560 × 1440 |
| AVC (H.264) Max Macroblocks/Frame | 14,400 MB — largest frame 2560×1440Frame-area budget at 16×16 macroblocks; any shape must fit inside it |
| AVC (H.264) Dimension Alignment | width ×16 height ×16Dimensions must be multiples of these values |
| AVC (H.264) Bitrate Modes | CBR:No VBR:Yes CQ:NoCQ not available — use VBR with high target bitrate |
| AVC (H.264) Color Formats | 0x7f000789 AndroidOpaque (opaque buffer — OMX_COLOR_FormatAndroidOpaque) 0x7f420888 YUV420Flexible (COLOR_FormatYUV420Flexible — framework maps to NV12) 0x00000013 YUV420Planar (I420) 0x00000015 YUV420SemiPlanar (NV12) 0x00000014 YUV420PackedPlanar 0x00000027 (vendor-specific / unknown) |
| AVC (H.264) — OMX.MTK.VIDEO.ENCODER.AVC | Max bitrate: 100 MbpsExcellent — high enough for quality log |
| AVC (H.264) Max Resolution | 2560 × 1440 |
| AVC (H.264) Max Macroblocks/Frame | 14,400 MB — largest frame 2560×1440Frame-area budget at 16×16 macroblocks; any shape must fit inside it |
| AVC (H.264) Dimension Alignment | width ×16 height ×16Dimensions must be multiples of these values |
| AVC (H.264) Bitrate Modes | CBR:No VBR:Yes CQ:NoCQ not available — use VBR with high target bitrate |
| AVC (H.264) Color Formats | 0x7f000789 AndroidOpaque (opaque buffer — OMX_COLOR_FormatAndroidOpaque) 0x7f420888 YUV420Flexible (COLOR_FormatYUV420Flexible — framework maps to NV12) 0x00000013 YUV420Planar (I420) 0x00000015 YUV420SemiPlanar (NV12) 0x00000014 YUV420PackedPlanar 0x00000027 (vendor-specific / unknown) |
HDR / 10-Bit
| 10-Bit Encode (measured) | No encoderNo hardware encoder on this device advertises a 10-bit profile |
| 10-Bit Display (measured) | No — nothing rendered10-bit surface accepted and swapped, but nothing reached the screen |
Native Camera Libraries 3 checks
Native Libs
| Camera HAL (/vendor/lib64/hw/) | android.hardware.camera.provider@2.6-impl-mediatek.so vendor.mediatek.hardware.camera.atms@1.0-impl.so vendor.mediatek.hardware.camera.bgservice@1.1-impl.so vendor.mediatek.hardware.camera.isphal@1.0-impl.so vendor.mediatek.hardware.camera.lomoeffect@1.0-impl.so vendor.vivo.hardware.camera.jpegencoder@1.0-impl.so vendor.vivo.hardware.camera.provider@1.0-impl.so vendor.vivo.hardware.camera.vif@1.0-impl.so vendor.vivo.hardware.camera.vivodevice@1.0-impl.so vendor.vivo.hardware.camera.vivopostproc@1.0-impl.so vendor.vivo.hardware.camera.vivoreprocess@1.0-impl.so vendor.vivo.hardware.camera3rd.provider@1.0-impl.soCamera-related native libraries found |
| Vendor libs (/vendor/lib64/) | android.hardware.camera.common@1.0.so android.hardware.camera.device@1.0.so android.hardware.camera.device@3.2.so android.hardware.camera.device@3.3.so android.hardware.camera.device@3.4.so android.hardware.camera.device@3.5.so android.hardware.camera.device@3.6.so android.hardware.camera.provider@2.4.so android.hardware.camera.provider@2.5.so android.hardware.camera.provider@2.6.so libSonyIMX230PdafLibrary.so libSonyIMX230PdafLibraryWrapper.so libSonyIMX338PdafLibrary.so libSonyIMX338PdafLibraryWrapper.so libSonyIMX386PdafLibrary.so libSonyIMX386PdafLibraryWrapper.so libSonyIMX519PdafLibrary.so libSonyIMX519PdafLibraryWrapper.so libaal_cust.so libaal_key.so libaal_mtk.so libaalservice.so libc.vivo.s5kjnssq33pd2317fqtechindia_mipi_raw.chromatix.zsl_hdr_preview.awb.so libc.vivo.s5kjnssq33pd2317fqtechindia_mipi_raw.chromatix.zsl_preview.awb.so libc.vivo.s5kjnssq33pd2317fqtechindia_mipi_raw.chromatix.zsl_preview_engineer.awb.so libc.vivo.s5kjnssq33pd2317fqtechindia_mipi_raw.chromatix.zsl_preview_wechatqq.awb.so libc.vivo.s5kjnssq33pd2317fqtechindia_mipi_raw.chromatix.zsl_snapshot_superns.awb.so libc.vivo.s5kjnssq33pd2317fqtechindia_mipi_raw.chromatix.zsl_video_4K.awb.so libcameracustom.eis.so libcameracustom.so libispcameraca.so libmtkcam.atmseventmgr.so libmtkcam.eventcallback.so libmtkcam.featurepipe.capture.so libmtkcam.featurepipe.depthmap.so libmtkcam.featurepipe.streaming.so libmtkcam.featurepipe.vsdof_util.so libmtkcam.logicalmodule.so libmtkcam_3rdparty.core.so libmtkcam_3rdparty.customer.so libmtkcam_3rdparty.mtk.so libmtkcam_3rdparty.so libmtkcam_3rdparty.vivoalgoentrance.so libmtkcam_3rdparty.vivoeisalgo.so libmtkcam_calibration_convertor.so libmtkcam_calibration_provider.so libmtkcam_debugutils.so libmtkcam_device3_app.so libmtkcam_device3_hal.so libmtkcam_device3_hidl.so libmtkcam_device3_hidlutils.so libmtkcam_device3_utils.so libmtkcam_devicesessionpolicy.so libmtkcam_diputils.so libmtkcam_dpe.so libmtkcam_exif.so libmtkcam_fdvt.so libmtkcam_featurepolicy.so libmtkcam_featureutils.so libmtkcam_fwkutils.so libmtkcam_grallocutils.so libmtkcam_hwnode.so libmtkcam_hwutils.so libmtkcam_imem.so libmtkcam_imgbuf.so libmtkcam_metadata.so libmtkcam_metastore.so libmtkcam_modulefactory_aaa.so libmtkcam_modulefactory_custom.so libmtkcam_modulefactory_drv.so libmtkcam_modulefactory_utils.so libmtkcam_modulehelper.so libmtkcam_pipeline.so libmtkcam_pipeline_fbm.so libmtkcam_pipelinemodel.so libmtkcam_pipelinemodel_adapter.so libmtkcam_pipelinemodel_capture.so libmtkcam_pipelinemodel_isp.so libmtkcam_pipelinemodel_session.so libmtkcam_pipelinemodel_utils.so libmtkcam_pipelinemodel_zsl.so libmtkcam_pipelinepolicy-aov.so libmtkcam_pipelinepolicy-security.so libmtkcam_pipelinepolicy-smvr.so libmtkcam_pipelinepolicy.so libmtkcam_pipelinepolicy_factory.so libmtkcam_prerelease.so libmtkcam_rsc.so libmtkcam_scenariorecorder.so libmtkcam_stdutils.so libmtkcam_streamutils.so libmtkcam_synchelper.so libmtkcam_sysutils.so libmtkcam_tuning_utils.so libmtkcam_ulog.so libpixelflinger.so libvivo.camera3rd.log.so libvivo.pap.vivocameraprovider.client.so libvivo.vas.cameralog.so libvivo_facetrack_camera.so mtkcam s5kjnssq33pd2317fqtechindia_mipi_raw_IdxMgr.so s5kjnssq33pd2317fqtechindia_mipi_raw_tuning.so vendor.mediatek.hardware.camera.atms@1.0.so vendor.mediatek.hardware.camera.bgservice@1.0.so vendor.mediatek.hardware.camera.bgservice@1.1.so vendor.mediatek.hardware.camera.ccap@1.0.so vendor.mediatek.hardware.camera.frhandler@1.0.so vendor.mediatek.hardware.camera.isphal@1.0.so vendor.mediatek.hardware.camera.isphal@1.1.so vendor.mediatek.hardware.camera.lomoeffect@1.0.so vendor.mediatek.hardware.camera.postproc@1.0.so vendor.mediatek.hardware.camera.security@1.0.so vendor.vivo.hardware.camera.cameralog@1.0.so vendor.vivo.hardware.camera.jpegencoder@1.0.so vendor.vivo.hardware.camera.provider@1.0.so vendor.vivo.hardware.camera.vif3ainfotransmitter@1.0.so vendor.vivo.hardware.camera.vif@1.0.so vendor.vivo.hardware.camera.vivodevice@1.0.so vendor.vivo.hardware.camera.vivopostproc@1.0.so vendor.vivo.hardware.camera.vivoreprocess@1.0.so vendor.vivo.hardware.camera3rd.context@1.0-impl.so vendor.vivo.hardware.camera3rd.context@1.0.so vendor.vivo.hardware.camera3rd.provider@1.0.so vendor.vivo.hardware.nativecamera.provider@1.0.so vendor.vivo.hardware.nativecamera.vivodevice@1.0.soCamera-related native libraries found |
| Detected Platform | Mediatek MT6769V/CZ (mt6768)check vendor tags for capabilities |