Lenguaje

MediaCodec.ReleaseOutputBuffer Método

Definición

Sobrecargas

Nombre Description
ReleaseOutputBuffer(Int32, Int64)

Si ha terminado con un búfer, use esta llamada para actualizar su marca de tiempo de superficie y devolverla al códec para representarla en la superficie de salida.

ReleaseOutputBuffer(Int32, Boolean)

Si ha terminado con un búfer, use esta llamada para devolver el búfer al códec o para representarlo en la superficie de salida.

ReleaseOutputBuffer(Int32, Int64)

Si ha terminado con un búfer, use esta llamada para actualizar su marca de tiempo de superficie y devolverla al códec para representarla en la superficie de salida.

[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

Parámetros

index
Int32

Índice de un búfer de salida propiedad del cliente devuelto anteriormente de una llamada a #dequeueOutputBuffer.

renderTimestampNs
Int64

Marca de tiempo que se va a asociar a este búfer cuando se envía al Surface.

Atributos

Excepciones

si no está en el estado Executing.

error de códec.

Comentarios

Si ha terminado con un búfer, use esta llamada para actualizar su marca de tiempo de superficie y devolverla al códec para representarla en la superficie de salida. Si no ha especificado una superficie de salida al configurar este códec de vídeo, esta llamada simplemente devolverá el búfer al códec.

La marca de tiempo puede tener un significado especial en función de la superficie de destino.

<table>tr th SurfaceView specifics</th></tr tr td><>>< If you render your buffer on a android.view.SurfaceView, you can use the timestamp to render the buffer at a specific time (at the VSYNC at or after the buffer timestamp).>><< Para que esto funcione, la marca de tiempo debe estar razonablemente cerca de la actual System#nanoTime. Actualmente, esto se establece como dentro de un segundo (1). Algunas notas:

<ul><li>el búfer no se devolverá al códec hasta que se haya pasado la marca de tiempo y el búfer ya no lo use .android.view.Surface <Los búferes li>se procesan secuencialmente, por lo que puede bloquear los búferes posteriores que se mostrarán en .android.view.Surface Esto es importante si desea reaccionar a la acción del usuario, por ejemplo, detener el vídeo o buscar. <li>si se envían varios búferes al objeto que se va a android.view.Surface representar en la misma VSYNC, se mostrará el último y se quitarán los otros. <li>si la marca de tiempo es <em>not</em> "razonablemente cerca" de la hora actual del sistema, omitirá android.view.Surface la marca de tiempo y mostrará el búfer en el momento más pronto factible. En este modo no se quitarán los fotogramas. <li>para obtener el mejor rendimiento y calidad, llame a este método cuando tenga aproximadamente dos VSYNC antes del tiempo de representación deseado. Para las pantallas de 60Hz, se trata de aproximadamente 33 msec. </ul></td></tr></table>

Una vez que se libera un búfer de salida en el códec, NO DEBE usarse hasta que se recupere más adelante en #getOutputBuffer respuesta a un #dequeueOutputBuffer valor devuelto o a una Callback#onOutputBufferAvailable devolución de llamada.

Java documentación para android.media.MediaCodec.releaseOutputBuffer(int, long).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Se aplica a

ReleaseOutputBuffer(Int32, Boolean)

Si ha terminado con un búfer, use esta llamada para devolver el búfer al códec o para representarlo en la superficie de salida.

[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

Parámetros

index
Int32

Índice de un búfer de salida propiedad del cliente devuelto anteriormente de una llamada a #dequeueOutputBuffer.

render
Boolean

Si se especificó una superficie válida al configurar el códec, pasar true representa este búfer de salida en la superficie.

Atributos

Excepciones

si no está en el estado Executing.

error de códec.

Comentarios

Si ha terminado con un búfer, use esta llamada para devolver el búfer al códec o para representarlo en la superficie de salida. Si configuró el códec con una superficie de salida, establecer render en true enviará primero el búfer a esa superficie de salida. La superficie devolverá el búfer al códec una vez que ya no se use o se muestre.

Una vez que se libera un búfer de salida en el códec, NO DEBE usarse hasta que se recupere más adelante en #getOutputBuffer respuesta a un #dequeueOutputBuffer valor devuelto o a una Callback#onOutputBufferAvailable devolución de llamada.

Java documentación para android.media.MediaCodec.releaseOutputBuffer(int, boolean).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Se aplica a