Camera2 API support?

Does the Kompact allow use of Camera2 API? A yes means that could (perhaps) also run Open-Camera-Sensors.

1 Like

I’m not sure what that means. Is that an app?

No.

API = Application Programming Interface

I recieved this reply in email, which may help:

“Yes to Camera2, but not to the part of Open Camera Sensors that matters.

Checked on a Kompakt (Android 12, API 31). The camera reports:

  • Hardware level: FULL

  • Capabilities: BACKWARD_COMPATIBLE, MANUAL_SENSOR, MANUAL_POST_PROCESSING,
    READ_SENSOR_SETTINGS

  • SYNC_MAX_LATENCY: PER_FRAME_CONTROL

  • Exposure 100 us - 400 ms, ISO 100-2400

  • One camera, rear only - 3264x2448 stills, 1080p30 video, no RAW

  • SENSOR_INFO_TIMESTAMP_SOURCE: UNKNOWN

Full Camera2 with manual sensor control and per-frame control, which is better
than most e-ink phones manage. But that last line is the blocker. Open Camera
Sensors gates camera-IMU synchronisation on exactly one thing:

public boolean supportsVideoImuSync() {
    Integer source = characteristics.get(
        CameraCharacteristics.SENSOR_INFO_TIMESTAMP_SOURCE);
    return source != null
        && source == CameraMetadata.SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME;
}

UNKNOWN isn’t REALTIME, so that returns false. Frame timestamps don’t share a
clock with SensorEvent.timestamp, and there’s no fixed offset to correct for -
which is the whole point of the fork. RecSync is out for the same reason. Their
README is upfront about it: “Smartphones are required to support real-time
timestamping to be correctly synchronized.”

I installed it anyway (v1.48.3.1, package com.opencamera_sensors.app - it
coexists with regular Open Camera). Preview and manual controls work fine.
Settings crashes with an NPE at MyPreferenceFragment.java:895, on the branch you
only reach if the device passes the Camera2 check, so it’s devices like this one
that trip it.

The IMU itself is fine - gyro to 400 Hz, accel to 200 Hz, both with a
4500-event FIFO. It’s the clock that’s missing, not the sensors.”

1 Like

@notyet I will have to ask our team about this because I honestly don’t know.