Un TextureView riceve fotogrammi su un SurfaceTexture, che prende frame inviati a sua superficie e li converte in una texture GLES. Per estrarre i dati del pixel, è necessario eseguire il rendering della texture su un framebuffer, quindi leggerlo con glReadPixels()
. I dati dei pixel possono quindi essere avvolti con un oggetto Bitmap (che può o meno comportare la copia dei dati dei pixel).
L'utilizzo di NDK non ti farà molto bene, poiché tutto il codice che deve essere eseguito rapidamente è già implementato in modo nativo.
Potresti vedere dei miglioramenti inviando i dati direttamente a SurfaceTexture e facendo il lavoro di GLES, ma presumibilmente vuoi visualizzare i frame in entrata in TextureView, quindi tutto ciò che potresti salvare è il sovraccarico di Bitmap (che può o non può essere significativo).
Potrebbe essere d'aiuto se hai spiegato nella tua domanda da dove provengono i frame e che cosa vuoi fare con loro.
Sei riuscito a rendere più veloce l'acquisizione di bitmap da TextureView? –