Sto implementando l'interfaccia SurfaceTexture.OnFrameAvailableListener nella mia app in modo da poter utilizzare i frame video come trama OpenGL. Tutto è configurato come dovrebbe e funziona perfettamente tuttavia onFrameAvailable (SurfaceTexture surfaceTexture) smette di essere chiamato dopo pochi secondi, in modo efficace e apparentemente congelando il video in OpenGL in quanto nessun nuovo texturedata viene caricato tramite SurfaceTexture.updateTextImage.SurfaceTexture.OnFrameAvailableListener smette di essere chiamato
Sto impostando un flag su onFrameAvailable per eseguire la chiamata updateTextImage dal thread GL e solo quando necessario. Attualmente sto impostando il flag su true su ogni chiamata draw in modo che il video texturedata venga caricato ogni frame mentre il controllo onFrameAvailable viene saltato. In questo modo, tutto funziona come dovrebbe, ma sembra inefficiente in quanto non è necessario caricare nuovi texturedata se è sempre uguale (fotogramma del filmato).
AFAIK non ci sono perdite di memoria e logcat non mostra errori. Inoltre, il lettore multimediale è impostato su loop ma il problema si verifica prima che una singola esecuzione sia stata completata.
Che cosa potrebbe causare la non più chiamata onFrameAvailable dopo alcuni secondi?
Hai risolto? –