Я создал предварительный просмотр камеры, используя OpenGL (GLSurfaceView), и по мере визуализации кадров я использую цикл PBO для буферизации кадров, которые должны быть обработаны.
Когда я запускаю процессы выключения камеры и различных компонентов, я получаю SIG SEGV при преобразовании ByteBuffer в растровое изображение через Bitmap.copyPixelsFromBuffer.
Есть ли способ проверить, является ли ByteBuffer допустимым изображением, прежде чем преобразовать его в растровое изображение?
// Map to buffer to a byte buffer, this is our pixel data
ByteBuffer pixelsBuffer = (ByteBuffer) GLES30.glMapBufferRange(GLES30.GL_PIXEL_PACK_BUFFER, 0, mViewWidth * mViewHeight * 4, GLES30.GL_MAP_READ_BIT);
// Copy the image data into the bitmap
mBitmap.copyPixelsFromBuffer(pixelsBuffer); // This line causes SIG SEGV