TextureView odbiera ramki na SurfaceTexture, który odbywa ramek wysyłanych do jego Surface i przekształca je w teksturę GLES. Aby uzyskać dane piksela, teksturę należy renderować do bufora ramki, a następnie odczytać przy pomocy glReadPixels()
. Dane pikselowe można następnie opakować za pomocą obiektu Bitmap (który może, ale nie musi obejmować kopiowania danych pikseli).
Korzystanie z NDK nie przyniesie Ci wiele dobrego, ponieważ cały kod, który musi działać szybko, jest już wdrożony natywnie.
Możliwe, że zauważysz pewną poprawę, wysyłając dane bezpośrednio do SurfaceTexture i wykonując pracę GLES samodzielnie, ale prawdopodobnie chcesz wyświetlić przychodzące klatki w TextureView, więc wszystko, co możesz potencjalnie zapisać, to obciążenie bitmapowe (które może być lub może nie być znaczący).
To może pomóc, jeśli wyjaśnisz w swoim pytaniu, skąd pochodzą ramki i co chcesz z nimi zrobić.
Czy udało Ci się przyspieszyć otrzymywanie bitmapy z TextureView? –