Probleme mit der GLSurfaceView-Framerate unter Nexus 5
Ich habe eine Beispielanwendung (vollständige Quelle), die Kamerabilder mit MediaCodec codieren, während sie auf einem GLSurfaceView angezeigt werden.
Systrace bestätigt, dass 30 Zeichenaufrufe pro Sekunde getätigt werden:
Eine Bildschirmaufnahme (.mp4, Youtube) zeigt, dass die scheinbare Framerate erheblich niedriger ist.
Kurz gesagt, meine Codierungs- und Anzeigeschleife bewirkt Folgendes:
Macht einen MediaCodec-Oberflächeneingang zum aktuellen EGL-KontextZeichnet einen Kamerarahmen auf die MediaCodec EGL-OberflächeMacht den GLSurfaceView EGL-Kontext aktuellZeichnet den gleichen Kamerarahmen in die GLSurfaceViewAuf einem Galaxy Nexus LTE und Nexus 7 (beide mit AOSP 4.4) funktioniert die Anwendung wie erwartet. Bisher zeigt nur das Nexus 5 diese Diskrepanz zwischen der Anzahl der auf dem Bildschirm gezeichneten Bilder und der Anzahl der sichtbaren Bilder ...
Ich bete, ich bin nicht verrückt.