Как преобразовать метку времени камеры Android и системное время? - PullRequest
1 голос
/ 17 июня 2019

В моем проекте Android с интерфейсом camera2 я использовал AImage_getTimestamp(), чтобы получить метку времени каждого изображения.Но эта временная метка отличается от моего системного времени, полученного с clock_gettime().Но мне действительно нужно использовать эти два раза вместе, чтобы получить какую-то работу.

Я мог бы понять, что эти два раза находятся в разных архитектурах, но могу ли я преобразовать их друг в друга?Или, скажем, можно ли получить системное время, когда создается метка времени изображения камеры?

Например, метки времени камеры дискретны как ts0 , ts1 , ц2 и ц3 .В моем коде я хочу получить отметку времени реального времени ts0 ' во время выполнения некоторого кода, который не совсем ts0 , но ts0 с добавленной временной границей.Как я могу получить это ts0 '?

enter image description here

1 Ответ

0 голосов
/ 20 июня 2019

Обычно, в зависимости от значения TIMESTAMP_SOURCE , временные метки камеры основаны либо на CLOCK_MONOTONIC, либо на CLOCK_BOOTTIME.

MONOTONIC используется, когда SOURCE НЕИЗВЕСТЕН; но нет гарантии качества синхронизации между временными метками камеры и остальной частью системы; то есть фактическое время начала экспозиции может быть отключено на несколько миллисекунд.

REALTIME означает, что временные метки находятся в базе времени CLOCK_BOOTTIME (в Java SDK, что соответствует SystemClock # elapsedRealtimeNanos . Метки времени REALTIME будут тесно синхронизированы, чтобы их можно было комбинировать с инерциальным датчиком данные (гироскопы и т. д.) точно.

Я не знаю, какие временные метки вы читаете из clock_gettime, но самый простой вариант - сопоставить источник с камерой. В противном случае вам нужно определить смещение между временем, которое вы используете, и тем, что использует камера. Смещение не изменится во время одного сеанса камеры, поэтому вы можете просто измерить его один раз в начале использования камеры.

...