Ketergantungan Vendor SoC untuk Manajer Sumber Daya Media

Dokumen ini dimaksudkan untuk membantu vendor sistem pada chip (SoC) menerapkan dukungan untuk prioritas, tingkat operasi, dan kait yang diperlukan untuk pengelola sumber daya media Android dengan benar.

1. OMX_ErrorInsufficientResources

Komponen codec harus mengembalikan OMX_ErrorInsufficientResources pada GetHandle , Init , UseBuffer , AllocateBuffer atau transisi status jika kegagalan disebabkan oleh sumber daya yang tidak mencukupi. Kode kesalahan akan digunakan oleh pengelola sumber daya media sebagai indikator untuk berpotensi mendahului sumber daya media dari proses berprioritas lebih rendah lainnya.

Pengujian Android Compatibility Test Suite (CTS) ada untuk mengalokasikan, mengonfigurasi, dan memulai setiap codec berulang kali hingga catching OMX_ErrorInsufficientResources (lulus) atau kesalahan lainnya (gagal).

2. OMX_IndexConfigPriority

Konfigurasi ini memungkinkan aplikasi menjelaskan prioritas codec yang diinginkan.

Nilai terkait adalah bilangan bulat. Nilai yang lebih tinggi berarti prioritas yang lebih rendah. Saat ini, hanya dua level yang didukung:

  • 0: prioritas waktu nyata - artinya codec harus mendukung konfigurasi kinerja yang diberikan (misalnya kecepatan bingkai) secara waktu nyata. Ini hanya akan digunakan oleh pemutaran media, pengambilan, dan mungkin oleh skenario komunikasi waktu nyata jika kinerja upaya terbaik tidak sesuai.
  • 1: prioritas non-waktu nyata (usaha terbaik). Ini adalah nilai default.

Vendor disarankan untuk menggunakan ini sebagai petunjuk yang digunakan pada konfigurasi codec dan perencanaan sumber daya - untuk memahami persyaratan aplikasi secara realtime.

Jangan menganggap prioritas waktu nyata kecuali jika dikonfigurasi ke 0.

3. OMX_IndexConfigOperatingRate

Konfigurasi ini memungkinkan aplikasi menjelaskan laju bingkai operasi untuk video atau laju sampel untuk audio di mana codec perlu beroperasi.

Ini digunakan untuk kasus seperti pengambilan video kecepatan tinggi/gerakan lambat, di mana format encoder video berisi tingkat pemutaran target (misalnya 30fps), tetapi komponen harus mampu menangani tingkat pengambilan operasi yang tinggi (misalnya 240fps).

Tingkat ini harus digunakan untuk perencanaan sumber daya dan pengaturan titik operasi.