MagicCamera-ImageReader
MagicCamera-ImageReader copied to clipboard
使用ImageReader读取出的视频帧花屏
为了提高渲染效率,我把编码器和相机预览用同一个filter,发现用ImageReader读出的帧数据会出现花屏,应该是ImageReader正在读取帧数据时,又被下一次渲染修改导致了部分帧数据被重新绘制。不知道有没有遇到过?或有没有解决方案
我用了PBO方案 ,和glReadPixeles效率一样,耗时都卡在
ByteBuffer ByteBuffer = (ByteBuffer) GLES30.glMapBufferRange(GLES30.GL_PIXEL_PACK_BUFFER, 0, mPboSize, GLES30.GL_MAP_READ_BIT);这一步不耗时
ByteBuffer.get(mData);这里耗时很大,数据拷贝
我用了PBO方案 ,和glReadPixeles效率一样,耗时都卡在 ByteBuffer ByteBuffer = (ByteBuffer) GLES30.glMapBufferRange(GLES30.GL_PIXEL_PACK_BUFFER, 0, mPboSize, GLES30.GL_MAP_READ_BIT);这一步不耗时 ByteBuffer.get(mData);这里耗时很大,数据拷贝
问题解决了, ByteBuffer.get(mData)这里使用neon拷贝数据非常快,在10ms以内