Zależności dostawcy SoC dla menedżera zasobów multimediów

Ten dokument ma na celu pomóc producentom układów scalonych (SoC) w prawidłowym wdrożeniu obsługi priorytetów, szybkości działania i zaczepów potrzebnych dla menedżera zasobów multimedialnych systemu Android.

OMX_ErrorInsufficientResources

Komponent kodeka powinien zwrócić OMX_ErrorInsufficientResources na GetHandle , Init , UseBuffer , AllocateBuffer lub zmianę stanu, jeśli awaria wynika z niewystarczających zasobów. Kod błędu zostanie wykorzystany przez menedżera zasobów multimedialnych jako wskaźnik potencjalnego wywłaszczenia zasobu multimedialnego z innego procesu o niższym priorytecie.

Istnieje zestaw testów zgodności systemu Android (CTS), który umożliwia wielokrotne przydzielanie, konfigurowanie i uruchamianie każdego kodeka, aż do catching OMX_ErrorInsufficientResources (powodzenie) lub innego błędu (niepowodzenie).

Priorytet OMX_IndexConfig

Ta konfiguracja pozwala aplikacji opisać żądany priorytet kodeka.

Powiązana wartość jest liczbą całkowitą. Wyższa wartość oznacza niższy priorytet. Obecnie obsługiwane są tylko dwa poziomy:

  • 0: priorytet czasu rzeczywistego - oznacza, że ​​kodek będzie obsługiwał daną konfigurację wydajności (np. liczbę klatek na sekundę) w czasie rzeczywistym. Będzie to wykorzystywane tylko podczas odtwarzania multimediów, przechwytywania i ewentualnie komunikacji w czasie rzeczywistym, jeśli wydajność przy maksymalnym wysiłku nie jest odpowiednia.
  • 1: priorytet inny niż w czasie rzeczywistym (najlepszy wysiłek). Jest to wartość domyślna.

Sugeruje się, aby sprzedawca wykorzystał to jako wskazówkę przy konfiguracji kodeka i planowaniu zasobów, aby zrozumieć wymagania aplikacji w czasie rzeczywistym.

Nie zakładaj priorytetu w czasie rzeczywistym, chyba że jest skonfigurowany na 0.

OMX_IndexConfigOperatingRate

Ta konfiguracja pozwala aplikacji opisać roboczą liczbę klatek na sekundę dla wideo lub częstotliwość próbkowania dla audio, z jaką kodek będzie musiał działać.

Jest to używane w przypadkach takich jak przechwytywanie wideo w dużej prędkości/w zwolnionym tempie, gdzie format kodera wideo zawiera docelową szybkość odtwarzania (np. 30 klatek na sekundę), ale komponent musi być w stanie obsłużyć dużą roboczą szybkość przechwytywania (np. 240 klatek na sekundę).

Szybkość tę należy stosować do planowania zasobów i ustalania punktów operacyjnych.