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.