MediaCodec.ReleaseOutputBuffer Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Overload
| Nome | Descrizione |
|---|---|
| ReleaseOutputBuffer(Int32, Int64) |
Se hai finito con un buffer, usa questa chiamata per aggiornare il timestamp di superficie e restituirlo al codec per eseguirne il rendering nell'area di output. |
| ReleaseOutputBuffer(Int32, Boolean) |
Se hai finito con un buffer, usa questa chiamata per restituire il buffer al codec o per eseguirne il rendering nell'area di output. |
ReleaseOutputBuffer(Int32, Int64)
Se hai finito con un buffer, usa questa chiamata per aggiornare il timestamp di superficie e restituirlo al codec per eseguirne il rendering nell'area di output.
[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
Parametri
- index
- Int32
Indice di un buffer di output di proprietà del client restituito in precedenza da una chiamata a #dequeueOutputBuffer.
- renderTimestampNs
- Int64
Timestamp da associare a questo buffer quando viene inviato al Surface.
- Attributi
Eccezioni
se non è nello stato Esecuzione.
in caso di errore del codec.
Commenti
Se hai finito con un buffer, usa questa chiamata per aggiornare il timestamp di superficie e restituirlo al codec per eseguirne il rendering nell'area di output. Se non è stata specificata una superficie di output durante la configurazione di questo codec video, questa chiamata restituirà semplicemente il buffer al codec.
Il timestamp può avere un significato speciale a seconda della superficie di destinazione.
<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).>><< Per il funzionamento, il timestamp deve essere ragionevolmente vicino all'oggetto corrente System#nanoTime. Attualmente, viene impostato come entro un (1) secondo. Alcune note:
<ul><li>il buffer non verrà restituito al codec finché il timestamp non viene passato e il buffer non viene più usato da android.view.Surface.
<I buffer li>vengono elaborati in sequenza, pertanto è possibile bloccare i buffer successivi da visualizzare in android.view.Surface. Questo è importante se si vuole reagire all'azione dell'utente, ad esempio arrestare il video o cercare.
<li>se più buffer vengono inviati all'oggetto android.view.Surface di cui eseguire il rendering nello stesso VSYNC, verrà visualizzato l'ultimo e gli altri verranno eliminati.
<li>se il timestamp è <em>not</em> "ragionevolmente vicino" all'ora di sistema corrente, ignorerà android.view.Surface il timestamp e visualizzerà il buffer al più presto possibile. In questa modalità non rilascia fotogrammi.
<li>per ottenere prestazioni e qualità ottimali, chiamare questo metodo quando si tratta di circa due VSYNCs prima del tempo di rendering desiderato. Per i display a 60Hz, si tratta di circa 33 msec.
</ul></td></tr></table>
Una volta rilasciato un buffer di output al codec, non deve essere usato finché non viene recuperato in seguito da #getOutputBuffer in risposta a un #dequeueOutputBuffer valore restituito o a un Callback#onOutputBufferAvailable callback.
per android.media.MediaCodec.releaseOutputBuffer(int, long).
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.
Si applica a
ReleaseOutputBuffer(Int32, Boolean)
Se hai finito con un buffer, usa questa chiamata per restituire il buffer al codec o per eseguirne il rendering nell'area di output.
[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
Parametri
- index
- Int32
Indice di un buffer di output di proprietà del client restituito in precedenza da una chiamata a #dequeueOutputBuffer.
- render
- Boolean
Se durante la configurazione del codec è stata specificata una superficie valida, il passaggio di true esegue il rendering del buffer di output sulla superficie.
- Attributi
Eccezioni
se non è nello stato Esecuzione.
in caso di errore del codec.
Commenti
Se hai finito con un buffer, usa questa chiamata per restituire il buffer al codec o per eseguirne il rendering nell'area di output. Se il codec è stato configurato con una superficie di output, l'impostazione render su true invierà prima il buffer a tale superficie di output. La superficie rilascerà il buffer al codec una volta che non viene più usato/visualizzato.
Una volta rilasciato un buffer di output al codec, non deve essere usato finché non viene recuperato in seguito da #getOutputBuffer in risposta a un #dequeueOutputBuffer valore restituito o a un Callback#onOutputBufferAvailable callback.
per android.media.MediaCodec.releaseOutputBuffer(int, boolean).
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.