
Android, popüler medya biçimleri için yerleşik yazılım tabanlı codec'lere sahip yerel düzeyde bir medya oynatma motoru olan Stagefright'ı içerir.
Stagefright ses ve video oynatma özellikleri arasında OpenMAX codec'leriyle entegrasyon, oturum yönetimi, zaman senkronize edilmiş oluşturma, aktarım kontrolü ve DRM bulunur.
Stagefright, sizin tarafınızdan sağlanan özel donanım codec'leriyle entegrasyonu da destekler. Medyayı kodlamak ve kodlarını çözmek için bir donanım yolu ayarlamak istiyorsanız OpenMax IL (Entegrasyon Katmanı) bileşeni olarak donanım tabanlı bir codec'i uygulamanız gerekir.
Not: Stagefright güncellemeleri, Android aylık güvenlik güncellemesi süreci ve Android OS sürümü kapsamında yapılabilir.
Mimari
Medya uygulamaları, aşağıdaki mimariye göre Android yerel multimedya çerçevesiyle etkileşim kurar.

Şekil 1. Medya mimarisi
- Uygulama Çerçevesi
- Uygulama çerçevesi düzeyinde, multimedya donanımıyla etkileşim kurmak için android.media API'lerini kullanan uygulama kodu bulunur.
- Cilt IPC
- Binder IPC proxy'leri, işlem sınırları üzerinden iletişimi kolaylaştırır.
Bunlar
frameworks/av/media/libmedia
dizininde bulunur ve "I" harfi ile başlar. - Yerel Multimedya Çerçevesi
- Android, ses ve video kaydı ve oynatma için Stagefright motorunu kullanan bir yerel düzeyde multimedya çerçevesi sağlar. Stagefright, desteklenen yazılım codec'lerinin varsayılan bir listesini içerir. OpenMax entegrasyon katmanı standardını kullanarak kendi donanım codec'inizi de uygulayabilirsiniz. Daha fazla uygulama ayrıntısı için
frameworks/av/media
konumundaki MediaPlayer ve Stagefright bileşenlerine bakın. - OpenMAX Entegrasyon Katmanı (IL)
- OpenMAX IL, Stagefright'ın bileşen adı verilen özel donanım tabanlı multimedya codec'lerini tanıması ve kullanması için standartlaştırılmış bir yöntem sağlar.
libstagefrighthw.so
adlı bir paylaşılan kitaplık biçiminde bir OpenMAX eklentisi sağlamanız gerekir. Bu eklenti, Stagefright'ı özel codec bileşenlerinizle bağlar. Bu bileşenler, OpenMAX IL bileşen standardına göre uygulanmalıdır.
Özel codec'leri uygulama
Stagefright, yaygın medya biçimleri için yerleşik yazılım codec'leri ile birlikte gelir ancak OpenMAX bileşenleri olarak kendi özel donanım codec'lerinizi de ekleyebilirsiniz. Bunun için OMX bileşenlerini ve özel codec'lerinizi Stagefright çerçevesiyle bir araya getiren bir OMX eklentisi oluşturmanız gerekir. Örnek bileşenler için hardware/ti/omap4xxx/domx/
bölümüne, Galaxy Nexus için örnek eklenti için hardware/ti/omap4xx/libstagefrighthw
bölümüne bakın.
Kendi codec'lerinizi eklemek için:
- Bileşenlerinizi OpenMAX IL bileşen standardına göre oluşturun. Bileşen arayüzü
frameworks/native/include/media/OpenMAX/OMX_Component.h
dosyasında bulunur. OpenMAX IL spesifikasyonu hakkında daha fazla bilgi edinmek için OpenMAX web sitesine göz atın. - Bileşenlerinizi Stagefright hizmetine bağlayan bir OpenMAX eklentisi oluşturun. Eklentiyi oluşturmak için gereken arayüzler
frameworks/native/include/media/hardware/OMXPluginBase.h
veHardwareAPI.h
başlık dosyalarında verilmiştir. - Ürününüzün Makefile dosyasında eklentinizi
libstagefrighthw.so
adıyla paylaşılan kitaplık olarak derleyin. Örneğin:
LOCAL_MODULE := libstagefrighthw
Cihazınızın Makefile dosyasında modülü ürün paketi olarak tanımladığınızdan emin olun:
PRODUCT_PACKAGES += \ libstagefrighthw \ ...
Kodekleri çerçeveye gösterme
Stagefright hizmeti, cihazdaki desteklenen codec'leri ve profilleri android.media.MediaCodecList
ve android.media.CamcorderProfile
sınıfları aracılığıyla uygulama geliştiricilere göstermek için system/etc/media_codecs.xml
ve system/etc/media_profiles.xml
öğelerini ayrıştırır. Her iki dosyayı da device/<company>/<device>/
dizininde oluşturmanız ve cihazınızın Makefile dosyasında sistem görüntüsünün system/etc
dizinine kopyalamanız gerekir. Örnek:
PRODUCT_COPY_FILES += \ device/samsung/tuna/media_profiles.xml:system/etc/media_profiles.xml \ device/samsung/tuna/media_codecs.xml:system/etc/media_codecs.xml \
Tam örnekler için device/samsung/tuna/media_codecs.xml
ve device/samsung/tuna/media_profiles.xml
sayfalarına bakın .
Not: Android 4.1'den itibaren medya codec'leri için <Quirk>
öğesi artık desteklenmemektedir.