V2404
Android 16 (API 36)
vivo · QTI SM7550
Cameras
| Lens | Facing | Focal length | Sensor size | Max res | Modes | HW level |
|---|---|---|---|---|---|---|
| Rear #0 | BACK | 26mm (4.84mm) | 6.55 × 4.92 mm | 3840×2160 | 32 | LEVEL_3 |
| Front #1 | FRONT | 28mm (3.74mm) | 4.61 × 3.46 mm | 2304×1728 | 25 | LEVEL_3 |
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 | 4096×2176 | 34,816 | |
| AVC | 4096×2176 | 34,816 |
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
105 checks — 47 supported · 4 partial · 6 unsupported · 48 informational
Camera 0 (BACK) — Rear 28 checks
Hardware
| Hardware Level | LEVEL_3Best tier — RAW + YUV + reprocessing guaranteed |
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 72 – 3200Max analog ISO: 3200 (digital gain above this) |
| Exposure Range | 91.7µs – 13.4sFastest: ~1/10905 |
| Bayer Pattern | BGGR |
| Physical Size | 6.55 × 4.92 mm (diag 8.19 mm)Larger sensor = more light = better DR for log |
| Pixel Array | 4096 × 3072 (12.6 MP) |
RAW Formats
| RAW_SENSOR | 4096×3072 @ 30.0 fpsVideo-rate RAW achievable! The HAL reports no stall, so the readout rate is the streaming rate. |
| RAW10 | 4096×3072 @ 30.0 fpsVideo-rate RAW achievable! The HAL reports no stall, so the readout rate is the streaming rate. |
| RAW12 | Not supported |
| RAW_PRIVATE | 4096×3072 @ 30.0 fpsVideo-rate RAW achievable! The HAL reports no stall, so the readout rate is the streaming rate. |
Streams
| Max Simultaneous Outputs | RAW:1 Processed:3 Stalling:2Can capture RAW + encoded video simultaneously |
| YUV_420_888 Modes | 4096×3072 @ 30 fps 4096×2304 @ 30 fps 4096×2304 @ 30 fps 3840×2160 @ 30 fps 3200×2400 @ 30 fps … and 36 more |
HDR / 10-Bit
| Dynamic Range Profiles | None reportedDevice does not advertise HDR profiles |
| 10-Bit YUV (P010) | 4096×3072 @ 30 fps 4096×2304 @ 30 fps 4096×2304 @ 30 fps 3840×2160 @ 30 fps 3200×2400 @ 30 fps 4096×1844 @ 30 fps 3200×1800 @ 30 fps 2400×2400 @ 30 fps 2560×1920 @ 30 fps 3200×1440 @ 30 fps 2304×1728 @ 30 fps 2560×1440 @ 30 fps 1920×1920 @ 30 fps 2048×1536 @ 30 fps 2304×1296 @ 30 fps 1728×1728 @ 30 fps 1920×1440 @ 30 fps 2400×1080 @ 30 fps 2304×1036 @ 30 fps 2304×964 @ 30 fps 1920×1080 @ 30 fps 1632×1224 @ 30 fps 1600×1200 @ 30 fps 2032×920 @ 30 fps 1440×1080 @ 30 fps 1280×960 @ 30 fps 1080×1080 @ 30 fps 1600×720 @ 30 fps 1440×720 @ 30 fps 1280×720 @ 30 fps 960×960 @ 30 fps 1024×768 @ 30 fps 1280×576 @ 30 fps 960×540 @ 30 fps 800×600 @ 30 fps 800×480 @ 30 fps 720×480 @ 30 fps 640×480 @ 30 fps 352×288 @ 30 fps 320×240 @ 30 fps 176×144 @ 30 fps10-bit input available for HEVC Main10 encoder |
Tonemap / ISP
| Tonemap Modes | CONTRAST_CURVE, FAST, HIGH_QUALITYCONTRAST_CURVE available — can define custom log curve (64 points max) |
| Max Curve Points | 64Plenty for smooth log curve |
| Noise Reduction | OFF, FAST, HIGH_QUALITY, MINIMAL, ZSLOFF available — can disable NR for clean log |
| Edge / Sharpening | FAST, HIGH_QUALITY, OFF, ZSLOFF 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, FAST, HIGH_QUALITY |
Vendor Tags
| Vendor-Specific Keys | None foundNo OEM-specific camera extensions detected |
Camera 1 (FRONT) — Front 28 checks
Hardware
| Hardware Level | LEVEL_3Best tier — RAW + YUV + reprocessing guaranteed |
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 50 – 800Max analog ISO: 800 (digital gain above this) |
| Exposure Range | 51.5µs – 0.6sFastest: ~1/19430 |
| Bayer Pattern | GBRG |
| Physical Size | 4.61 × 3.46 mm (diag 5.76 mm)Larger sensor = more light = better DR for log |
| Pixel Array | 2304 × 1728 (4.0 MP) |
RAW Formats
| RAW_SENSOR | 2304×1728 @ 30.0 fpsVideo-rate RAW achievable! The HAL reports no stall, so the readout rate is the streaming rate. |
| RAW10 | 2304×1728 @ 30.0 fpsVideo-rate RAW achievable! The HAL reports no stall, so the readout rate is the streaming rate. |
| RAW12 | Not supported |
| RAW_PRIVATE | 2304×1728 @ 30.0 fpsVideo-rate RAW achievable! The HAL reports no stall, so the readout rate is the streaming rate. |
Streams
| Max Simultaneous Outputs | RAW:1 Processed:3 Stalling:2Can capture RAW + encoded video simultaneously |
| YUV_420_888 Modes | 2304×1728 @ 30 fps 2048×1536 @ 30 fps 2304×1296 @ 30 fps 1728×1728 @ 30 fps 1920×1440 @ 30 fps … and 23 more |
HDR / 10-Bit
| Dynamic Range Profiles | None reportedDevice does not advertise HDR profiles |
| 10-Bit YUV (P010) | 2304×1728 @ 30 fps 2048×1536 @ 30 fps 2304×1296 @ 30 fps 1728×1728 @ 30 fps 1920×1440 @ 30 fps 2304×1036 @ 30 fps 2304×964 @ 30 fps 1920×1080 @ 30 fps 1632×1224 @ 30 fps 1600×1200 @ 30 fps 2032×920 @ 30 fps 1440×1080 @ 30 fps 1280×960 @ 30 fps 1080×1080 @ 30 fps 1600×720 @ 30 fps 1440×720 @ 30 fps 1280×720 @ 30 fps 960×960 @ 30 fps 1024×768 @ 30 fps 1280×576 @ 30 fps 960×540 @ 30 fps 800×600 @ 30 fps 800×480 @ 30 fps 720×480 @ 30 fps 640×480 @ 30 fps 352×288 @ 30 fps 320×240 @ 30 fps 176×144 @ 30 fps10-bit input available for HEVC Main10 encoder |
Tonemap / ISP
| Tonemap Modes | CONTRAST_CURVE, FAST, HIGH_QUALITYCONTRAST_CURVE available — can define custom log curve (64 points max) |
| Max Curve Points | 64Plenty for smooth log curve |
| Noise Reduction | OFF, FAST, HIGH_QUALITY, MINIMAL, ZSLOFF available — can disable NR for clean log |
| Edge / Sharpening | FAST, HIGH_QUALITY, OFF, ZSLOFF 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, FAST, HIGH_QUALITY |
Vendor Tags
| Vendor-Specific Keys | None foundNo OEM-specific camera extensions detected |
Concurrent Cameras 1 checks
Concurrent Cameras
| Concurrent Camera Sets | 0 (BACK)Each set can stream simultaneously, but only at the platform's constrained concurrent stream limits (~720p per camera) |
Startup Ramp 2 checks
Startup Ramp
| First Frame Latency | 147 msCamera start → first encoded frame, at 3840×2160 HEVC — the dead time between pressing record and the first frame of video existing. 3 runs: 146 / 148 / 147 ms |
| Frames Dropped at Startup | 8 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: 8 / 8 / 8 |
Video Encoders 42 checks
Encoders
| HEVC (H.265) — c2.qti.hevc.encoder | Max bitrate: 100 MbpsExcellent — high enough for quality log |
| HEVC (H.265) Max Resolution | 4096 × 4096 |
| HEVC (H.265) Max Macroblocks/Frame | 34,816 MB — largest frame 4096×2176Max width × max height (65,536 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 | Main10, Main10HDR10, Main10HDR10Plus10-bit encoding supported |
| HEVC (H.265) Bitrate Modes | CBR:Yes VBR:Yes CQ:NoCQ not available — use VBR with high target bitrate |
| 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) 0x7f00aaa2 (vendor-specific / unknown) 0x00000036 (vendor-specific / unknown) |
| HEVC (H.265) — c2.qti.hevc.encoder.cq | Max bitrate: 100 MbpsExcellent — high enough for quality log |
| HEVC (H.265) Max Resolution | 512 × 512 |
| HEVC (H.265) Max Macroblocks/Frame | 1,024 MB — largest frame 512×512Frame-area budget at 16×16 macroblocks; any shape must fit inside it |
| HEVC (H.265) Dimension Alignment | width ×2 height ×2Any even size accepted |
| HEVC (H.265) 10-Bit Profiles | Main10, Main10HDR10, Main10HDR10Plus10-bit encoding supported |
| HEVC (H.265) Bitrate Modes | CBR:No VBR:No 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) 0x7f00aaa2 (vendor-specific / unknown) 0x00000036 (vendor-specific / unknown) |
| HEVC (H.265) — OMX.qcom.video.encoder.hevc | Max bitrate: 100 MbpsExcellent — high enough for quality log |
| HEVC (H.265) Max Resolution | 4096 × 4096 |
| HEVC (H.265) Max Macroblocks/Frame | 34,816 MB — largest frame 4096×2176Max width × max height (65,536 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 | Main10, Main10HDR10, Main10HDR10Plus10-bit encoding supported |
| HEVC (H.265) Bitrate Modes | CBR:Yes VBR:Yes CQ:NoCQ not available — use VBR with high target bitrate |
| 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) 0x7f00aaa2 (vendor-specific / unknown) 0x00000036 (vendor-specific / unknown) |
| HEVC (H.265) — OMX.qcom.video.encoder.hevc.cq | Max bitrate: 100 MbpsExcellent — high enough for quality log |
| HEVC (H.265) Max Resolution | 512 × 512 |
| HEVC (H.265) Max Macroblocks/Frame | 1,024 MB — largest frame 512×512Frame-area budget at 16×16 macroblocks; any shape must fit inside it |
| HEVC (H.265) Dimension Alignment | width ×2 height ×2Any even size accepted |
| HEVC (H.265) 10-Bit Profiles | Main10, Main10HDR10, Main10HDR10Plus10-bit encoding supported |
| HEVC (H.265) Bitrate Modes | CBR:No VBR:No 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) 0x7f00aaa2 (vendor-specific / unknown) 0x00000036 (vendor-specific / unknown) |
| AVC (H.264) — c2.qti.avc.encoder | Max bitrate: 100 MbpsExcellent — high enough for quality log |
| AVC (H.264) Max Resolution | 4096 × 4096 |
| AVC (H.264) Max Macroblocks/Frame | 34,816 MB — largest frame 4096×2176Max width × max height (65,536 MB) exceeds this — those two cannot be combined |
| AVC (H.264) Dimension Alignment | width ×2 height ×2Any even size accepted |
| AVC (H.264) Bitrate Modes | CBR:Yes 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) 0x7f00aaa2 (vendor-specific / unknown) 0x00000036 (vendor-specific / unknown) |
| AVC (H.264) — OMX.qcom.video.encoder.avc | Max bitrate: 100 MbpsExcellent — high enough for quality log |
| AVC (H.264) Max Resolution | 4096 × 4096 |
| AVC (H.264) Max Macroblocks/Frame | 34,816 MB — largest frame 4096×2176Max width × max height (65,536 MB) exceeds this — those two cannot be combined |
| AVC (H.264) Dimension Alignment | width ×2 height ×2Any even size accepted |
| AVC (H.264) Bitrate Modes | CBR:Yes 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) 0x7f00aaa2 (vendor-specific / unknown) 0x00000036 (vendor-specific / unknown) |
HDR / 10-Bit
| 10-Bit Encode (measured) | Yes — verifiedA hardware encoder accepted real 10-bit input via p010_imagewriter |
| 10-Bit Display (measured) | Yes — verified on screenA 10-bit (RGBA_1010102) surface rendered and read back correctly; display reports HDR10, HLG, HDR10_PLUS |
Native Camera Libraries 4 checks
Native Libs
| Camera HAL (/vendor/lib64/hw/) | camera.qcom.so com.qti.chi.offline.so com.qti.chi.override.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 |
| Camera plugins (/vendor/lib64/camera/) | com.qti.sensor.imx882.so com.qti.sensormodule.pd2404f_ex_imx882_ois.bin com.qti.tuned.pd2404f_ex_imx882.bin libVivoCameraConfig.so tuning_imx882_engineer_vivohaf.so tuning_imx882_thirdpartyapp_vivohaf.so tuning_imx882_vivohaf.soCamera-related native libraries found |
| Vendor libs (/vendor/lib64/) | android.hardware.camera.common@1.0.so camera camx.device-impl.so camx.provider-impl.so com.qti.camx.chiiqutils.so com.qti.chiusecaseselector.so libbatching.so libc.vivo.CameraConfig.so libcamerapostproc.so libcamxcommonutils.so libcamxexternalformatutils.so libcamxfacialfeatures.so libcamxfdalgo.so libcamxfdengine.so libcamxhwnodecontext.so libcamxifestriping.so libcamximageformatutils.so libcamxsettingsmanager.so libcamxstatscore.so libcamxswispiqmodule.so libcamxswprocessalgo.so libcamxtintlessalgo.so libchifeature2.so libchilog.so libcom.qti.chinodeutils.so libcommonchiutils.so libcvkit_camera.so libmmcamera_bestats.so libmmcamera_cac.so libmmcamera_lscv35.so libmmcamera_mfnr.so libmmcamera_mfnr_t4.so libmmcamera_pdpc.so libqshcamera.so libvcf_camera_aidl_device.so libvcf_camera_aidl_provider.so libvivo.camera3rd.log.so libvivo.pap.vivocameraprovider.client.so libvivo.vas.cameralog.so libvivo_facetrack_camera.so libvivocameraconfig.so libvivochihook.so vendor.qti.hardware.camera.aon-service-impl.so vendor.qti.hardware.camera.aon@1.0.so vendor.qti.hardware.camera.postproc@1.0-service-impl.so vendor.qti.hardware.camera.postproc@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 | QTI SM7550 (crow)check vendor tags for capabilities |