MediaCodec.ReleaseOutputBuffer Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
| Nome | Description |
|---|---|
| ReleaseOutputBuffer(Int32, Int64) |
Se terminar de usar um buffer, use essa chamada para atualizar o carimbo de data/hora da superfície e devolvê-lo ao codec para renderizá-lo na superfície de saída. |
| ReleaseOutputBuffer(Int32, Boolean) |
Se terminar com um buffer, use essa chamada para retornar o buffer para o codec ou para renderizá-lo na superfície de saída. |
ReleaseOutputBuffer(Int32, Int64)
Se terminar de usar um buffer, use essa chamada para atualizar o carimbo de data/hora da superfície e devolvê-lo ao codec para renderizá-lo na superfície de saída.
[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
O índice de um buffer de saída de propriedade do cliente retornado anteriormente de uma chamada para #dequeueOutputBuffer.
- renderTimestampNs
- Int64
O carimbo de data/hora a ser associado a esse buffer quando ele é enviado para o Surface.
- Atributos
Exceções
se não estiver no estado em execução.
após o erro codec.
Comentários
Se terminar de usar um buffer, use essa chamada para atualizar o carimbo de data/hora da superfície e devolvê-lo ao codec para renderizá-lo na superfície de saída. Se você não tiver especificado uma superfície de saída ao configurar esse codec de vídeo, essa chamada simplesmente retornará o buffer para o codec.
O carimbo de data/hora pode ter um significado especial dependendo da superfície de destino.
<table>tr th SurfaceView specifics</th></tr<>tr td><> If you render your buffer on aandroid.view.SurfaceView, you can use the timestamp to renderize the buffer at a specific time (at the VSYNC at or after the buffer timestamp).>><< Para que isso funcione, o carimbo de data/hora precisa estar razoavelmente próximo do atual System#nanoTime. Atualmente, isso é definido como dentro de um (1) segundo. Algumas notas:
<ul><li>o buffer não será retornado para o codec até que o carimbo de data/hora tenha passado e o buffer não seja mais usado pelo android.view.Surface.
<os buffers li>são processados sequencialmente, portanto, você pode bloquear buffers subsequentes a serem exibidos no android.view.Surface. Isso é importante se você quiser reagir à ação do usuário, por exemplo, parar o vídeo ou procurar.
<li>se vários buffers forem enviados para o android.view.Surface que será renderizado no mesmo VSYNC, o último será mostrado e os outros serão descartados.
<li>se o carimbo de data/hora não< estiver <>">razoavelmente próximo" da hora atual do sistema, o android.view.Surface carimbo de data/hora será ignorado e exibirá o buffer no momento mais cedo possível. Nesse modo, ele não removerá quadros.
<li>para obter o melhor desempenho e qualidade, chame esse método quando você tiver cerca de dois VSYNCs antes do tempo de renderização desejado. Para exibições de 60Hz, isso é cerca de 33 msec.
</ul></td></tr></table>
Depois que um buffer de saída é liberado para o codec, ele NÃO DEVE ser usado até que seja recuperado posteriormente #getOutputBuffer em resposta a um #dequeueOutputBuffer valor retornado ou um Callback#onOutputBufferAvailable retorno de chamada.
Java documentação para android.media.MediaCodec.releaseOutputBuffer(int, long).
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.
Aplica-se a
ReleaseOutputBuffer(Int32, Boolean)
Se terminar com um buffer, use essa chamada para retornar o buffer para o codec ou para renderizá-lo na superfície de saída.
[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
O índice de um buffer de saída de propriedade do cliente retornado anteriormente de uma chamada para #dequeueOutputBuffer.
- render
- Boolean
Se uma superfície válida foi especificada ao configurar o codec, passar true renderiza esse buffer de saída para a superfície.
- Atributos
Exceções
se não estiver no estado em execução.
após o erro codec.
Comentários
Se terminar com um buffer, use essa chamada para retornar o buffer para o codec ou para renderizá-lo na superfície de saída. Se você configurou o codec com uma superfície de saída, a configuração render para true enviará primeiro o buffer para essa superfície de saída. A superfície liberará o buffer de volta para o codec depois que ele não for mais usado/exibido.
Depois que um buffer de saída é liberado para o codec, ele NÃO DEVE ser usado até que seja recuperado posteriormente #getOutputBuffer em resposta a um #dequeueOutputBuffer valor retornado ou um Callback#onOutputBufferAvailable retorno de chamada.
Java documentação para android.media.MediaCodec.releaseOutputBuffer(int, boolean).
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.