Modul media

Android 10 atau lebih tinggi menyertakan beberapa komponen media yang dapat diperbarui yang memungkinkan pembaruan komponen kerangka kerja melalui infrastruktur Google Play Store atau melalui mekanisme over-the-air (OTA) yang disediakan mitra. Komponen media dikemas bersama dalam modul yang memungkinkan penyediaan pembaruan keamanan dan pembaruan fitur tanpa memerlukan pembaruan citra sistem penuh.

Komponen media yang dapat diperbarui ada dalam modul berikut.

Untuk detail tentang menambahkan ekstraktor dan dekoder khusus, lihat Menyesuaikan Komponen Media .

Ekstraktor media

Di Android 9 dan yang lebih rendah, ekstraktor dikompilasi menjadi satu file libstagefright.so . Di Android 10 atau lebih tinggi, ekstraktor media adalah komponen terpisah. Setiap ekstraktor memiliki file .so sendiri dengan titik masuk yang menyediakan fungsi sniffer untuk menentukan apakah ekstraktor dapat menangani file media tertentu, dan fungsi pabrik yang membuat instance ekstraktor untuk file media tertentu. Setiap ekstraktor diberi nama (untuk membantu proses debug) dan diberi versi untuk menunjukkan ekstraktor mana yang terbaru.

Kerangka kerja media secara otomatis memuat semua file .so ekstraktor yang tersedia, sehingga Anda dapat membuat ekstraktor Anda sendiri dengan menambahkan file .so baru tanpa perlu memodifikasi libstagefright atau pustaka kerangka media lainnya. Anda juga dapat memastikan bahwa ekstraktor khusus lebih disukai daripada ekstraktor yang disediakan Google.

API MediaSesi2

API MediaSession2 memungkinkan aplikasi media mengekspos kontrol transportasi dan memutar informasi ke proses lain seperti kerangka Android dan aplikasi lainnya. Komponen ini tidak dapat dikustomisasi.

API MediaParser

API MediaParser memungkinkan ExoPlayer memanfaatkan parser wadah media kerangka kerja secara efisien untuk mengekstrak sampel media dari wadah media. MediaParser menyertakan perubahan berikut pada batasan kode sumber:

  • frameworks/base/apex/media/framework/java/android/media/MediaParser.java . Implementasi API dan lapisan tipis.

  • external/exoplayer/ . Sumber kata demi kata Exoplayer yang menjadi dasar pembuatan MediaParser.

MediaParser API tidak dapat dikustomisasi. Untuk menguji MediaParser, gunakan pengujian di cts/tests/tests/mediaparser/ .

Codec media

Modul Media Codecs mencakup komponen perangkat lunak Codec2 yang dapat diperbarui. Dukungan untuk penyesuaian berbeda antar rilis:

  • Di Android 11 atau lebih tinggi (khususnya Pembaruan Sistem Google Play v292100200 ), Anda dapat menyesuaikan parameter alokasi memori ION (lihat detailnya di bawah).

  • Di Android 9 atau lebih rendah, API codec OMX tidak dapat diperbarui, namun Anda masih dapat menggunakannya di partisi vendor.

Alokasi memori ION

Di Android 11 atau lebih tinggi dan Pembaruan Sistem Google Play v292100200 atau lebih tinggi, Anda dapat menyesuaikan parameter berikut untuk alokasi memori ION.

Parameter Nilai bawaan Keterangan
heapMask 0xFFFFFFFF Semua jenis tumpukan diperbolehkan.
allocFlags 0 Tidak ada bendera yang disetel.
minAlignment 0 Tidak ada keselarasan.

Untuk mengganti parameter:

  1. Daftarkan layanan android.hardware.media.c2 default dan berikan parameter penggunaan ION khusus.

  2. Tambahkan kode berikut ke perangkat manifest.xml .

    <hal format="hidl">
        <name>android.hardware.media.c2</name>
        <transport>hwbinder</transport>
        <version>1.0</version>
        <interface>
            <name>IComponentStore</name>
            <instance>default</instance>
        </interface>
    </hal>
    

Format dan ketergantungan

Modul Media ( com.android.media ) dan modul Media Codec ( com.android.media.swcodec ) dalam format APEX . Komponen media yang disertakan hanya mengandalkan API NDK.

Pembaruan

Selama pembaruan, komponen kerangka kerja pada perangkat memuat paket APEX yang berisi Java dan kode asli.

Pembaruan Media

Gambar 1. Alur pembaruan komponen media

Setelah kerangka kerja menginstal paket APEX, perangkat melakukan boot ulang dan memasang image disk dan proses sistem media ( media.extractor dan media.codec ) memuat modul yang diperbarui dari titik pemasangan.