2016-05-19 10 views

答えて

1

1秒間に30フレームを受信して​​いて、5フレームの一定の遅延を導入したい場合は、その5フレームで何かする必要があります。

SurfaceTextureは(多くの)バッファリングを行いません。プロデューサとコンシューマのエンドポイントは同じプロセスにあるため、コンシューマのオーバーランによりデッドロックが発生する可能性は非常にあります。したがって、SurfaceTextureは、非同期モードでBufferQueueを使用します。これは、コンシューマが次のフレームの準備ができていない場合にフレームをドロップすることを意味します。

したがって、独自のバッファリングを行う方法が必要です。これは、データを「外部」テクスチャからコピーすることを意味します。これを行う1つの方法は、テクスチャを後でレンダリングできる一連のFBOにレンダリングすることです。ここでのメモリ使用量に注意してください。1920x1080の32ビットARGBイメージは約8MBを占めます。したがって、5を維持すると、メモリフットプリントが40MB増加します。

色の忠実度が失われることがありますが、YUVからRGBへの変換が含まれますが、最終的なターゲットがRGBの場合は問題ありません。

これは可能ですが、簡単ではありません。あなたは何を達成しようとしていますか?

+0

私はARのライブラリの遅延にレンダリング遅延を調整しようとしています(固定遅延で動作しています) – user1730694

関連する問題