Calendario de previsualización de cámara de Android

¿Hay una manera de obtener una marca de tiempo de cuándo se capturó el marco de previsualización de la cámara Android?

  1. No método de cámara está devolviendo una marca de tiempo
  2. No se puede acceder a la cámara desde el código nativo
  3. El tamaño del búfer no es estático (depende del tamaño mínimo de vista previa adquirido de la cámara – cuando y si el método está funcionando) y si hay más fotogramas en la cola, entonces hay búferes de vista previa que se descartan
  4. Frame rate que se estableció (de nuevo, si / cuando el método está funcionando) es sólo una pista para el sistema, la cámara puede ignorar el valor. Igual va para la tarifa de marco que la cámara está volviendo.

Estoy haciendo un procesamiento de imágenes pesado en tiempo real, y los pequeños errores cuando se agregan son un problema real.

La única manera que sé para hacer esto es utilizar un SurfaceTexture en vez de la devolución de llamada de la inspección previo.

SurfaceTexture tiene un método getTimestamp () que devuelve nanoseconds desde algún tiempo no especificado (pero constante).

Por desgracia, SurfaceTexture es una textura externa de OpenGL, por lo que no es tan fácil trabajar con la devolución de llamada de vista previa.

Por otra parte, es sustancialmente más eficiente de la CPU: La devolución de llamada de vista previa hace la conversión de color y la transformación de imagen en software, mientras que uno puede utilizar las características de OpenGL ES2 para realizar cantidades significativas de procesamiento de imágenes en la GPU.

  • Visualización del flujo de la cámara en un GLSurfaceView a través de SurfaceTexture
  • Tomar una foto con android ndk - camera api
  • Recubrimiento opengl en vista de cámara
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.