Dipendenze del fornitore SoC per Media Resource Manager

Questo documento intende aiutare i fornitori di system on chip (SoC) a implementare correttamente il supporto per la priorità, la frequenza di funzionamento e gli hook necessari per Android Media Resource Manager.

OMX_ErrorInsufficientResources

Il componente codec deve restituire OMX_ErrorInsufficientResources su GetHandle, Init, UseBuffer, AllocateBuffer o una transizione di stato se l'errore è dovuto a una risorsa insufficiente. Il codice di errore verrà utilizzato dal gestore delle risorse multimediali come indicatore per potenzialmente eseguire la preemption della risorsa multimediale da un altro processo con priorità inferiore.

Esiste un test della suite di test di compatibilità Android (CTS) per allocare, configurare e avviare ogni codec ripetutamente fino a catching OMX_ErrorInsufficientResources (superato) o a qualsiasi altro errore (non superato).

OMX_IndexConfigPriority

Questa configurazione consente all'applicazione di descrivere la priorità del codec desiderata.

Il valore associato è un numero intero. Un valore più alto indica una priorità più bassa. Al momento sono supportati solo due livelli:

  • 0: priorità in tempo reale, il che significa che il codec deve supportare la configurazione delle prestazioni specificata (ad es. la frequenza fotogrammi) in tempo reale. Verrà utilizzato solo per la riproduzione e la cattura di contenuti multimediali e, eventualmente, per scenari di comunicazione in tempo reale se il rendimento del criterio del massimo impegno non è adatto.
  • 1: priorità non in tempo reale (best effort). Questo è il valore predefinito.

Al fornitore viene suggerito di utilizzarlo come suggerimento per la configurazione del codec e la pianificazione delle risorse, in modo da comprendere i requisiti in tempo reale dell'applicazione.

Non assumere la priorità in tempo reale, a meno che non sia configurata su 0.

OMX_IndexConfigOperatingRate

Questa configurazione consente all'applicazione di descrivere la frequenza frame di funzionamento per il video o la frequenza di campionamento per l'audio a cui dovrà funzionare il codec.

Questo viene utilizzato in casi come l'acquisizione di video ad alta velocità/in slow motion, in cui il formato del codificatore video contiene la frequenza di riproduzione target (ad es. 30 fps), ma il componente deve essere in grado di gestire l'alta frequenza di acquisizione operativa (ad es. 240 fps).

Questo tasso deve essere utilizzato per la pianificazione delle risorse e l'impostazione dei punti di funzionamento.