фактически не было)

017 год, и я наконец начинаю переключаться с Camera1 на Camera2. В Camera1 я очень полагался наsetPreviewCallbackWithBuffer() чтобы выполнить обработку кадров в реальном времени, однако в Camera2 это работает намного медленнее, до такой степени, что становится практически непригодным для использования.

Для сравнения, на Moto G3 Camera1 может легко выдавать 30-40 FPS, тогда как на Camera2 я не мог получить более 10-15 FPS.

Вот как я создаюImageReader

imageReader = ImageReader
  .newInstance(
    previewSize.width,        // size is around 1280x720
    previewSize.height,
    ImageFormat.YUV_420_888,  // note, it is not JPEG
    2 // max number of images, does not really affect performance
  );

imageReader.setOnImageAvailableListener(
  callback,
  CameraThread.getInstance().createHandler()
);

Сам Callback выполняет минимально возможную работу:

Image image = reader.acquireNextImage();
image.close();

Я уже проверил похожие ответы, такие какэтот, Однако их проблема в том, что они используютJPEG формат изображения вместоYUV_420_888.

Как добиться производительности, аналогичной Camera1?

Ответы на вопрос(2)

Ваш ответ на вопрос