Dépendances du fournisseur SoC pour le gestionnaire de ressources multimédias

Ce document est destiné à aider les fournisseurs de systèmes sur puce (SoC) à mettre en œuvre correctement la prise en charge de la priorité, du taux de fonctionnement et des hooks nécessaires au gestionnaire de ressources multimédias Android.

OMX_ErrorInsufficientResources

Le composant codec doit renvoyer OMX_ErrorInsufficientResources sur GetHandle , Init , UseBuffer , AllocateBuffer ou une transition d'état si l'échec est dû à une ressource insuffisante. Le code d'erreur sera utilisé par le gestionnaire de ressources multimédias comme indicateur pour potentiellement préempter les ressources multimédias d'autres processus de priorité inférieure.

Un test CTS (Android Compatibility Test Suite) existe pour allouer, configurer et démarrer chaque codec à plusieurs reprises jusqu'à catching OMX_ErrorInsufficientResources (réussite) ou toute autre erreur (échec).

OMX_IndexConfigPriority

Cette configuration permet à l'application de décrire la priorité du codec souhaitée.

La valeur associée est un entier. Une valeur plus élevée signifie une priorité plus faible. Actuellement, seuls deux niveaux sont pris en charge :

  • 0 : priorité en temps réel - ce qui signifie que le codec doit prendre en charge la configuration de performances donnée (par exemple la fréquence d'images) en temps réel. Cela ne sera utilisé que par la lecture multimédia, la capture et éventuellement par des scénarios de communication en temps réel si les performances au mieux ne sont pas adaptées.
  • 1 : priorité non temps réel (meilleur effort). Ceci est la valeur par défault.

Il est suggéré au fournisseur de l'utiliser comme indice lors de la configuration du codec et de la planification des ressources - pour comprendre les exigences en temps réel de l'application.

N'assumez pas la priorité en temps réel à moins qu'elle ne soit configurée sur 0.

OMX_IndexConfigOperatingRate

Cette configuration permet à l'application de décrire la fréquence d'images de fonctionnement pour la vidéo ou la fréquence d'échantillonnage pour l'audio à laquelle le codec devra fonctionner.

Ceci est utilisé dans des cas tels que la capture vidéo à grande vitesse/au ralenti, où le format de l'encodeur vidéo contient le taux de lecture cible (par exemple 30 ips), mais le composant doit être capable de gérer le taux de capture de fonctionnement élevé (par exemple 240 ips).

Ce taux doit être utilisé pour la planification des ressources et la définition des points de fonctionnement.