
Android, popüler medya formatları için yerleşik yazılım tabanlı kodeklere sahip yerel düzeyde bir medya oynatma motoru olan Stagefright'ı içerir.
Stagefright ses ve video oynatma özellikleri arasında OpenMAX codec bileşenleri, oturum yönetimi, zaman eşzamanlı işleme, aktarım denetimi ve DRM ile entegrasyon bulunur.
Stagefright ayrıca sizin tarafınızdan sağlanan özel donanım kodekleriyle entegrasyonu da destekler. Ortamı kodlamak ve kodunu çözmek için bir donanım yolu ayarlamak için, donanım tabanlı bir codec bileşenini bir OpenMax IL (Entegrasyon Katmanı) bileşeni olarak uygulamanız gerekir.
Not: Stagefright güncellemeleri, Android aylık güvenlik güncellemesi süreci aracılığıyla ve bir Android OS sürümünün parçası olarak gerçekleştirilebilir.
Mimari
Medya uygulamaları, aşağıdaki mimariye göre Android yerel multimedya çerçevesi ile etkileşime girer.

Ş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 kodudur.
- Bağlayıcı IPC
- Binder IPC proxy'leri, süreç sınırları üzerinden iletişimi kolaylaştırır.
frameworks/av/media/libmedia
dizinindeframeworks/av/media/libmedia
ve "I" harfiyle başlarlar. - Yerel Multimedya Çerçevesi
- Yerel düzeyde Android, ses ve video kaydı ve oynatma için Stagefright motorunu kullanan bir multimedya çerçevesi sağlar. Stagefright, desteklenen yazılım codec bileşenlerinin varsayılan bir listesiyle gelir ve OpenMax tümleştirme katmanı standardını kullanarak kendi donanım codec bileşeninizi uygulayabilirsiniz. Daha fazla uygulama detayı için,
frameworks/av/media
media'da bulunan MediaPlayer ve Stagefright bileşenlerine bakın. - OpenMAX Entegrasyon Katmanı (IL)
- OpenMAX IL, Stagefright'ın bileşenler adı verilen özel donanım tabanlı multimedya kodeklerini tanıması ve kullanması için standartlaştırılmış bir yol sağlar. Libstagefrighthw.so adlı paylaşılan kitaplık biçiminde bir OpenMAX eklentisi
libstagefrighthw.so
. Bu eklenti, Stagefright'ı OpenMAX IL bileşen standardına göre uygulanması gereken özel kodek bileşenlerinizle bağlar.
Özel codec bileşenleri uygulama
Stagefright, yaygın medya formatları için yerleşik yazılım kodekleriyle birlikte gelir, ancak kendi özel donanım kodeklerinizi de OpenMAX bileşenleri olarak ekleyebilirsiniz. Bunu yapmak için, özel kodeklerinizi Stagefright çerçevesi ile birbirine bağlayan OMX bileşenleri ve bir OMX eklentisi oluşturmanız gerekir. Örneğin bileşenler, hardware/ti/omap4xxx/domx/
bakın; Galaxy Nexus için örnek bir eklenti için, hardware/ti/omap4xx/libstagefrighthw
.
Kendi kodeklerinizi 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 bakın. - Bileşenlerinizi Stagefright hizmetine bağlayan bir OpenMAX eklentisi oluşturun. Eklentiyi oluşturmaya yönelik arabirimler için,
frameworks/native/include/media/hardware/OMXPluginBase.h
veHardwareAPI.h
başlık dosyalarına bakın. - Eklentinizi, Makefile ürününüzde
libstagefrighthw.so
adıyla paylaşılan bir kitaplık olarak oluşturun. Örneğin:
LOCAL_MODULE := libstagefrighthw
Cihazınızın Makefile dosyasında modülü bir ürün paketi olarak beyan ettiğinizden emin olun:
PRODUCT_PACKAGES += \ libstagefrighthw \ ...
Codec bileşenlerini çerçeveye açığa çıkarma
Stagefright hizmeti, cihazda desteklenen kodekleri ve profilleri android.media.MediaCodecList
ve android.media.CamcorderProfile
sınıfları aracılığıyla uygulama geliştiricilerine göstermek için system/etc/media_codecs.xml
ve system/etc/media_profiles.xml
ayrıştırır. Her iki dosyayı da device/<company>/<device>/
dizininde oluşturmalı ve bunu, cihazınızın Makefile dosyasındaki sistem görüntüsünün system/etc
dizinine kopyalamanız gerekir. Örneğin:
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
.
Not: Android 4.1'den itibaren, medya codec bileşenleri için <Quirk>
öğesi artık desteklenmemektedir.