Jak utworzyć wtyczkę stagefright

Mam zadanie, które polega na integracji dekodera wideo z Stagefright (framework multimedialny Androida). Szukałem i znalazłem następujące informacje o tworzeniu nowego pluginu dla Stagefright:

Aby dodać obsługę nowego formatu, musisz:

  • Opracowanie nowej klasy ekstraktora, jeśli kontener nie jest jeszcze obsługiwany.

  • Stworzenie nowej klasy dekodera, która implementuje interfejs potrzebny rdzeń StageFright do odczytu data.

  • Połącz typ MIME plików do odczytu z nowym dekoderem w pliku OMXCodec.cpp, w tablicy kDecoderInfo.

    static const CodecInfo kDecoderInfo[] = {  
        {MEDIA_MIMETYPE_AUDIO_AAC, "OMX.TI.AAC.decode"},
        {MEDIA_MIMETYPE_AUDIO_AAC, "AACDecoder"},
    };

Powyższe dane to wszystko, co udało mi się znaleźć w sieci. W tej chwili mam prostą aplikację, która weźmie plik jako wejście i renderuje go na ekranie za pomocą natywnego API w Androidzie. Czy ktoś może mi powiedzieć, jak postępować dalej? A skąd się biorą te wszystkie OMXCodec.cpp i inne i który Katalog mojego projektu powinienem mieć weszli. Proszę podać rozwiązania dotyczące tego samego. Z góry dzięki.

Author: Ganesh, 2013-03-12

1 answers

Z twojego pytania wynika, że patrzysz na rekomendację, która jest specyficzna dla Ice-Cream Sandwich lub wcześniejszych wersji Androida. Pierwszą rzeczą, o której powinieneś być jasny, jest wersja Androida tj. {[0] } lub przed lub JellyBean i po. Integracja kodeków jest inna w różnych wersjach Androida.

Skomentowałem już twoje inne pytanie, które jest specyficzne dla JellyBeani Później (Referencja: Android: jak zintegrować dekoder do multimedia framework )

Jeśli chcesz zintegrować kodek w Ice-Cream Sandwich lub wcześniej, kroki są już dostępne w twoim pytaniu. Oprócz dodania dekodera do listy kDecoderInfo, możesz ustawić pewne dziwactwa, jak pokazano tutaj .

Do pytania na OMXCodec.cpp, można znaleźć ten plik na {[7] } W przypadku Ice-Cream Sandwich i frameworks/av/media/libstagefright/ w przypadku JellyBean.

Jeśli wykonałeś wszystkie kroki, aby zintegrować Dekoder wideo z frameworkiem Stagefright, to najprostszym testem byłoby wykonanie następujących czynności:

  1. Skopiuj plik multimedialny na kartę SD

  2. W OMXCodec.cpp włącz logi, usuwając komentarz w tej instrukcji //#define LOG_NDEBUG 0 i uruchom mm w katalogu. Skopiuj przebudowany libstagefright.so do /system/lib na urządzeniu.

  3. Włącz logcat i rozpocznij przechwytywanie dzienników.

  4. Przejdź do galerii, Wybierz swój plik i pozwól standardowemu odtwarzaczowi odtworzyć Twój plik.

  5. Sprawdź swój dziennik plik, jeśli gracz wybrał Twój komponent OMX, wyszukując jego nazwę. Jeśli zostanie znaleziony, integracja kodeka z Stagefright zakończy się sukcesem. W przeciwnym razie będziesz musiał debugować i dowiedzieć się, na czym polega problem.

Postscriptum:

  1. Bazując na Twoich zapytaniach, zakładam, że nie znasz źródeł Androida. Zapoznaj się z dystrybucją androidxref.

  2. Chyba, że jesteś planując obsługę nowego formatu plików multimedialnych, nie będziesz musiał obsługiwać klasy Extractor. MediaExtractor abstrakcja parsera formatu pliku i pomaga de-multipleksować różne ścieżki w pliku multimedialnym.

Mam nadzieję, że dzięki tej informacji, powinieneś być w stanie uzyskać kodek zintegrowany i funkcjonalny w Androidzie.

 10
Author: Ganesh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:53:08