Language

MediaCodec.ReleaseOutputBuffer メソッド

定義

オーバーロード

名前 説明
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によって取得されるまで、出力バッファーを使用することはできません。

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象

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によって取得されるまで、出力バッファーを使用することはできません。

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象