Подтвердить что ты не робот

Камера для предварительного просмотра камеры для камеры

Есть ли способ получить временную метку, когда был взят кадр предварительного просмотра камеры Android?

  • no Метод камеры возвращает временную метку
  • вы не можете получить доступ к Camera from native code
  • размер буфера не является статическим (зависит от размера предварительного просмотра, полученного с камеры, - когда и если этот метод работает), и если в очереди больше кадров, тогда есть буферы предварительного просмотра, которые они отбрасываются.
  • частота кадров, которая была установлена ​​(опять же, если/когда метод работает) является лишь подсказкой для системы, камера может игнорировать значение. То же самое касается частоты кадров, которые камера возвращает.

Я занимаюсь обработкой тяжелых изображений в реальном времени, а небольшие ошибки при объединении - настоящая проблема.

4b9b3361

Ответ 1

Единственный способ, которым я это знаю, - использовать SurfaceTexture вместо обратного вызова предварительного просмотра.

SurfaceTexture имеет метод getTimestamp(), который возвращает наносекунды с некоторого неопределенного (но постоянного) времени.

К сожалению, SurfaceTexture является внешней текстурой OpenGL, поэтому работать с обратным вызовом предварительного просмотра не так просто.

С другой стороны, это существенно больше эффективности ЦП: обратный вызов предварительного просмотра выполняет преобразование цветов и изменение изображения в программном обеспечении, тогда как можно использовать функции OpenGL ES2 для выполнения значительных объемов обработки изображений на графическом процессоре.