Najszybszy sposób na narysowanie na ekranie ramki wideo zdekodowanej za pomocą MediaCodec?

Szukam najszybszego sposobu na pobranie ramki obrazu otrzymanej z dekodera MediaCodec i narysowanie jej na ekranie urządzenia z systemem Android. Ważnymi ograniczeniami i wyjaśnieniami są:

Nie można użyć MediaPlayer. Brak dozwolonej aplikacji pośredniej.

Należy jak najszybciej wyciągnąć ramki wyjściowe z dekodera MediaCodec na ekran (zminimalizować opóźnienie).

Dostępne są następujące formaty wyjściowe dekodera:
ColorFormat [0] 0x00000013 COLOR_FormatYUV420Planar
ColorFormat [1] 0x00000015 COLOR_FormatYUV420SemiPlanar
ColorFormat [2] 0x7F000001 OMX_SEC_COLOR_FormatNV12TPhysicalAddress
ColorFormat [3] 0x7FC00002 OMX_SEC_COLOR_FormatNV12Tiled

Rozdzielczość wideo, a tym samym rozdzielczość każdej ramki wyjściowej, wynosi 960x720.

Platformą docelową jest Galaxy Note II, a podejście może być specyficzne dla tej platformy (np. Wykorzystać dostępną funkcjonalność sprzętową). Nie musi to działać na innych platformach ani być rozwiązaniem ogólnym.

Podejście, które zajmuje mniej niż 66 ms, byłoby dobre. Mniej niż 33 ms byłoby świetne. Moje obecne podejście trwa 80-90ms, co jest do bani. (Nie będę się tym przejmował, ponieważ nie chcę przekręcać odpowiedzi w żadnym konkretnym kierunku).

questionAnswers(1)

yourAnswerToTheQuestion