MediaCodec.ReleaseOutputBuffer メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
| 名前 | 説明 |
|---|---|
| ReleaseOutputBuffer(Int32, Int64) |
バッファーが完了したら、この呼び出しを使用してサーフェスタイムスタンプを更新し、コーデックに返して出力サーフェイスにレンダリングします。 |
| ReleaseOutputBuffer(Int32, Boolean) |
バッファーを使用した場合は、この呼び出しを使用して、バッファーをコーデックに返すか、出力サーフェイスにレンダリングします。 |
ReleaseOutputBuffer(Int32, Int64)
バッファーが完了したら、この呼び出しを使用してサーフェスタイムスタンプを更新し、コーデックに返して出力サーフェイスにレンダリングします。
[Android.Runtime.Register("releaseOutputBuffer", "(IJ)V", "")]
public void ReleaseOutputBuffer(int index, long renderTimestampNs);
[<Android.Runtime.Register("releaseOutputBuffer", "(IJ)V", "")>]
member this.ReleaseOutputBuffer : int * int64 -> unit
パラメーター
- index
- Int32
#dequeueOutputBufferの呼び出しから以前に返されたクライアント所有の出力バッファーのインデックス。
- renderTimestampNs
- Int64
Surfaceに送信されるときにこのバッファーに関連付けるタイムスタンプ。
- 属性
例外
が実行中の状態でない場合は〘。
コーデック エラー時に発生します。
注釈
バッファーが完了したら、この呼び出しを使用してサーフェスタイムスタンプを更新し、コーデックに返して出力サーフェイスにレンダリングします。 このビデオ コーデックの構成時に出力サーフェスを指定していない場合、この呼び出しは単にバッファーをコーデックに返します。
タイムスタンプは、変換先のサーフェスによって特別な意味を持つ場合があります。
<table><tr><th>SurfaceView specifics</th></tr><tr><td>android.view.SurfaceView でバッファーをレンダリングする場合は、タイムスタンプを使用してバッファーを特定の時刻 (バッファー タイムスタンプの VSYNC) でレンダリングできます。 これを機能させるには、タイムスタンプが現在のSystem#nanoTimeに適度に近い必要があります。 現在、これは 1 秒以内に設定されています。 いくつかの注意事項:
<ul><li>タイムスタンプが渡され、バッファーが android.view.Surfaceによって使用されなくなるまで、バッファーはコーデックに返されません。
<li>バッファーは順番に処理されるため、後続のバッファーが android.view.Surfaceに表示されないようにすることができます。 これは、ビデオの停止やシークなど、ユーザーのアクションに対応する場合に重要です。
<li>複数のバッファーが同じ VSYNC でレンダリングされる android.view.Surface に送信されると、最後のバッファーが表示され、他のバッファーは削除されます。
<li>タイムスタンプが現在のシステム時刻<em></em> "合理的に近い" 場合、android.view.Surfaceはタイムスタンプを無視し、可能な限り早い時点でバッファーを表示します。 このモードでは、フレームはドロップされません。
<li>最適なパフォーマンスと品質を得る場合は、目的のレンダリング時間の約 2 つの VSYNC 時間前にこのメソッドを呼び出します。 60Hz ディスプレイの場合、これは約 33 ミリ秒です。
</ul></td></tr></table>
出力バッファーがコーデックに解放された後、#dequeueOutputBuffer戻り値またはCallback#onOutputBufferAvailableコールバックに応答して#getOutputBufferによって取得されるまで、出力バッファーを使用することはできません。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
適用対象
ReleaseOutputBuffer(Int32, Boolean)
バッファーを使用した場合は、この呼び出しを使用して、バッファーをコーデックに返すか、出力サーフェイスにレンダリングします。
[Android.Runtime.Register("releaseOutputBuffer", "(IZ)V", "")]
public void ReleaseOutputBuffer(int index, bool render);
[<Android.Runtime.Register("releaseOutputBuffer", "(IZ)V", "")>]
member this.ReleaseOutputBuffer : int * bool -> unit
パラメーター
- index
- Int32
#dequeueOutputBufferの呼び出しから以前に返されたクライアント所有の出力バッファーのインデックス。
- render
- Boolean
コーデックの構成時に有効なサーフェスが指定された場合、true を渡すと、この出力バッファーがサーフェスにレンダリングされます。
- 属性
例外
が実行中の状態でない場合は〘。
コーデック エラー時に発生します。
注釈
バッファーを使用した場合は、この呼び出しを使用して、バッファーをコーデックに返すか、出力サーフェイスにレンダリングします。 出力サーフェイスでコーデックを構成した場合、 render を true に設定すると、最初にその出力サーフェイスにバッファーが送信されます。 サーフェスは、使用または表示されなくなったら、バッファーをコーデックに解放します。
出力バッファーがコーデックに解放された後、#dequeueOutputBuffer戻り値またはCallback#onOutputBufferAvailableコールバックに応答して#getOutputBufferによって取得されるまで、出力バッファーを使用することはできません。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。