MediaCodec.QueueInputBuffer Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Après avoir rempli une plage de la mémoire tampon d’entrée à l’index spécifié, envoyez-la au composant.
[Android.Runtime.Register("queueInputBuffer", "(IIIJI)V", "")]
public void QueueInputBuffer(int index, int offset, int size, long presentationTimeUs, Android.Media.MediaCodecBufferFlags flags);
[<Android.Runtime.Register("queueInputBuffer", "(IIIJI)V", "")>]
member this.QueueInputBuffer : int * int * int * int64 * Android.Media.MediaCodecBufferFlags -> unit
Paramètres
- index
- Int32
Index d’une mémoire tampon d’entrée appartenant au client précédemment retournée dans un appel à #dequeueInputBuffer.
- offset
- Int32
Décalage d’octet dans la mémoire tampon d’entrée au démarrage des données.
- size
- Int32
Nombre d’octets de données d’entrée valides.
- presentationTimeUs
- Int64
Horodatage de présentation en microsecondes pour cette mémoire tampon. Il s’agit normalement du temps multimédia auquel cette mémoire tampon doit être présentée (rendu). Lors de l’utilisation d’une surface de sortie, celle-ci est propagée comme image SurfaceTexture#getTimestamp timestamp (après la conversion en nanosecondes).
- flags
- MediaCodecBufferFlags
Masque de bits des indicateurs #BUFFER_FLAG_CODEC_CONFIG et #BUFFER_FLAG_END_OF_STREAM.
Bien qu’il ne soit pas interdit, la plupart des codecs n’utilisent pas l’indicateur #BUFFER_FLAG_KEY_FRAME pour les mémoires tampons d’entrée.
- Attributs
Exceptions
si ce n’est pas dans l’état en cours d’exécution.
en cas d’erreur de codec.
si un objet de chiffrement a été spécifié dans M :Android.Media.MediaCodec.Configure(Android.Media.MediaFormat,Android.Views.Surface,Android.Views.Surface,Android.Views.Surface)
Remarques
Après avoir rempli une plage de la mémoire tampon d’entrée à l’index spécifié, envoyez-la au composant. Une fois qu’une mémoire tampon d’entrée est mise en file d’attente vers le codec, elle NE DOIT PAS être utilisée tant qu’elle n’est pas récupérée #getInputBuffer ultérieurement en réponse à une #dequeueInputBuffer valeur de retour ou à un Callback#onInputBufferAvailable rappel.
De nombreux décodeurs nécessitent que le flux de données compressé réel soit précédé de « données spécifiques au codec », c’est-à-dire des données d’installation utilisées pour initialiser le codec tel que PPS/SPS dans le cas de tables vidéo OU de code AVC dans le cas d’audio vorbis. La classe android.media.MediaExtractor fournit des données spécifiques de codec dans le cadre du format de piste retourné dans les entrées nommées « csd-0 », « csd-1 » ...
Ces mémoires tampons peuvent être envoyées directement après #start ou #flush en spécifiant l’indicateur #BUFFER_FLAG_CODEC_CONFIG. Toutefois, si vous configurez le codec avec une MediaFormat clé contenant ces clés, ils sont automatiquement envoyés par MediaCodec directement après le démarrage. Par conséquent, l’utilisation de l’indicateur #BUFFER_FLAG_CODEC_CONFIG est déconseillée et est recommandée uniquement pour les utilisateurs avancés.
Pour indiquer qu’il s’agit de la dernière partie des données d’entrée (ou plutôt qu’aucune donnée d’entrée ne suit, sauf si le décodeur est ensuite vidé) spécifiez l’indicateur #BUFFER_FLAG_END_OF_STREAM.
<strong>Remarque :</strong> Avant android.os.Build.VERSION_CODES#M, presentationTimeUs n’a pas été propagé à l’horodatage d’images (rendu) de (rendu) Surface tampons de sortie, et l’horodatage d’image résultant n’a pas été défini. Permet #releaseOutputBuffer(int, long) de vérifier qu’un horodatage d’image spécifique est défini. De même, étant donné que les horodatages d’images peuvent être utilisés par l’aire de destination pour la synchronisation du rendu, <vous devez prendre des précautions fortes>pour normaliser presentationTimeUs afin de ne pas être trompés pour une heure système. (Voir #releaseOutputBuffer(int, long) Spécificités surfaceView).</strong>
Java documentation pour android.media.MediaCodec.queueInputBuffer(int, int, int, long, int).
Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.