Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bea88936 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Camera: Improve timestamping docs"

parents 10432c77 1ce3c167
Loading
Loading
Loading
Loading
+18 −6
Original line number Diff line number Diff line
@@ -1121,12 +1121,16 @@ public abstract class CameraMetadata<TKey> {
    //

    /**
     * <p>Timestamps from {@link CaptureResult#SENSOR_TIMESTAMP android.sensor.timestamp} are in nanoseconds and monotonic,
     * but can not be compared to timestamps from other subsystems
     * (e.g. accelerometer, gyro etc.), or other instances of the same or different
     * camera devices in the same system. Timestamps between streams and results for
     * a single camera instance are comparable, and the timestamps for all buffers
     * and the result metadata generated by a single capture are identical.</p>
     * <p>Timestamps from {@link CaptureResult#SENSOR_TIMESTAMP android.sensor.timestamp} are in nanoseconds and monotonic, but can
     * not be compared to timestamps from other subsystems (e.g. accelerometer, gyro etc.),
     * or other instances of the same or different camera devices in the same system with
     * accuracy. However, the timestamps are roughly in the same timebase as
     * {@link android.os.SystemClock#uptimeMillis }.  The accuracy is sufficient for tasks
     * like A/V synchronization for video recording, at least, and the timestamps can be
     * directly used together with timestamps from the audio subsystem for that task.</p>
     * <p>Timestamps between streams and results for a single camera instance are comparable,
     * and the timestamps for all buffers and the result metadata generated by a single
     * capture are identical.</p>
     *
     * @see CaptureResult#SENSOR_TIMESTAMP
     * @see CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE
@@ -1137,6 +1141,14 @@ public abstract class CameraMetadata<TKey> {
     * <p>Timestamps from {@link CaptureResult#SENSOR_TIMESTAMP android.sensor.timestamp} are in the same timebase as
     * {@link android.os.SystemClock#elapsedRealtimeNanos },
     * and they can be compared to other timestamps using that base.</p>
     * <p>When buffers from a REALTIME device are passed directly to a video encoder from the
     * camera, automatic compensation is done to account for differing timebases of the
     * audio and camera subsystems.  If the application is receiving buffers and then later
     * sending them to a video encoder or other application where they are compared with
     * audio subsystem timestamps or similar, this compensation is not present.  In those
     * cases, applications need to adjust the timestamps themselves.  Since {@link android.os.SystemClock#elapsedRealtimeNanos } and {@link android.os.SystemClock#uptimeMillis } only diverge while the device is asleep, an
     * offset between the two sources can be measured once per active session and applied
     * to timestamps for sufficient accuracy for A/V sync.</p>
     *
     * @see CaptureResult#SENSOR_TIMESTAMP
     * @see CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE