4

カメラ フレームを GLSurfaceView に表示しながら MediaCodec でエンコードするサンプル アプリケーション (完全なソース) があります。

Systrace は、毎秒 30 回の描画呼び出しが行われていることを確認します。

シストレースのスクリーンショット

ただし、スクリーンレコードの記録 ( .mp4YouTube ) は、見かけのフレームレートがかなり低いことを示しています。

簡単に言えば、私のエンコードと表示のループは次のことを行います。

  • MediaCodec Surface 入力 EGL コンテキストを現在の状態にします
  • カメラ フレームを MediaCodec EGL サーフェスに描画します
  • GLSurfaceView EGL コンテキストを現在の状態にします
  • 同じカメラ フレームを GLSurfaceView に描画します

Galaxy Nexus LTE および Nexus 7 (どちらも AOSP 4.4 を使用) では、アプリケーションは期待どおりに動作します。これまでのところ、Nexus 5 だけが、画面に描画されるフレーム数と見かけのフレーム数との間にこの不一致を経験しています...

私が狂っていないことを祈ります。

4

1 に答える 1