Dipendenze del fornitore SoC per il gestore delle risorse multimediali

Questo documento ha lo scopo di aiutare i fornitori di sistemi su chip (SoC) a implementare correttamente il supporto per la priorità, la velocità operativa e gli hook necessari per il gestore delle risorse multimediali Android.

OMX_ErrorInsufficientResources

Il componente codec dovrebbe restituire OMX_ErrorInsufficientResources su GetHandle , Init , UseBuffer , AllocateBuffer o una transizione di stato se l'errore è dovuto a risorse insufficienti. Il codice di errore verrà utilizzato dal gestore delle risorse multimediali come indicatore per escludere potenzialmente la risorsa multimediale da altri processi con priorità inferiore.

Esiste un test Android Compatibility Test Suite (CTS) per allocare, configurare e avviare ciascun codec ripetutamente fino a catching OMX_ErrorInsufficientResources (pass) o qualsiasi altro errore (fail).

OMX_IndexConfigPriority

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

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

  • 0: priorità in tempo reale - significa che il codec deve supportare la configurazione prestazionale data (ad esempio framerate) in tempo reale. Verrà utilizzato solo dalla riproduzione multimediale, dall'acquisizione e possibilmente da scenari di comunicazione in tempo reale se le prestazioni ottimali non sono adatte.
  • 1: priorità non in tempo reale (miglior sforzo). Questo è il valore predefinito.

Si consiglia al fornitore di utilizzarlo come suggerimento per la configurazione del codec e la pianificazione delle risorse, per 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 fotogrammi operativa per il video o la frequenza di campionamento per l'audio alla quale il codec dovrà operare.

Viene utilizzato per casi come l'acquisizione di video ad alta velocità/al rallentatore, in cui il formato del codificatore video contiene la velocità di riproduzione target (ad esempio 30 fps), ma il componente deve essere in grado di gestire l'elevata velocità di acquisizione operativa (ad esempio 240 fps).

Questo tasso dovrebbe essere utilizzato per la pianificazione delle risorse e l'impostazione dei punti operativi.