Android Bitmap.copyPixelsFromBuffer SIGSEGV - PullRequest
0 голосов
/ 18 июня 2019

Я создал предварительный просмотр камеры, используя 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
...