Backport stagefright i NuPlayer do Androida 2.2

Moim wymaganiem jest możliwość odtwarzania strumienia wideo na żywo w mojej aplikacji na Androida. Strumień będzie przesyłany przez RTSP / RTP. Nie mam kontroli nad źródłem; wygląda na to, że ładunek RTP nie spełnia wymagań opisanych w Przewodniku programistówZalecenia dotyczące kodowania wideo. W szczególności następujące źródło wydaje się być naruszone przez źródło wideo:

W przypadku kontenerów 3GPP i MPEG-4 atom moov musi poprzedzać atomy mdat, ale musi zastąpić atom ftypu

Zasadniczo wygląda na to, że otrzymujemy surowe dane H264 (nie zawinięte w pojemniku).

Teraz,

Nie mogłem odtworzyć tego strumienia za pomocąMediaPlayer klasa na Android 2.2 Samsung Galaxy Tab.Udało mi się jednak zagrać na Android 2.3 Samsung Galaxy S.Niektóre aplikacje innych firm (MX Player) były w stanie odtwarzać ten sam strumień także na karcie Galaxy 2.2.

W obu przypadkach 2 i 3 powyżej dzienniki DDMS wskazywały na fakt, że framework Stage Fright był używany wewnętrznie, podczas gdy w przypadku 1 wykorzystywano PVP (tj. OpenCore). Wszystko to prowadzi mnie do wniosku, że:

Mój strumień nie może być odtwarzany przez framework OpenCore.Mój strumień można odtwarzać za pomocą Stagefright - nawet na Androidzie 2.2

Co prowadzi mnie do mojego pytania:

Na czym polega przenoszenie stagefright do Androida 2.2?

Ponadto zauważyłem w źródle AOSP, że nowszeNuPlayer jest teraz odpowiedzialny za odtwarzanie strumieni RTSP. Pytanie:

Czy w ogóle można portowaćNuPlayer powrót do starszych wersji Androida (2.2 lub 2.3)?Jeśli tak, co muszę zrobić, aby móc z niego korzystać w mojej aplikacji?

Wiem, że mogę sprawdzić źródła i używać NDK do budowania stagefright i NuPlayer (choć nigdy nie pracowałem na poziomie NDK). Nie wiem jednak, w jaki sposób moja aplikacja może używać tego NuPlayera.

questionAnswers(1)

yourAnswerToTheQuestion