Dependensi vendor SoC untuk pengelola resource media

Dokumen ini ditujukan untuk membantu vendor sistem di chip (SoC) menerapkan dukungan untuk prioritas, kecepatan operasi, dan hook yang diperlukan untuk pengelola resource media Android dengan benar.

OMX_ErrorInsufficientResources

Komponen codec harus menampilkan OMX_ErrorInsufficientResources di GetHandle, Init, UseBuffer, AllocateBuffer, atau transisi status jika kegagalan disebabkan oleh resource yang tidak memadai. Kode error akan digunakan oleh pengelola resource media sebagai indikator untuk berpotensi mengganti resource media dari proses prioritas 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 error lainnya (gagal).

OMX_IndexConfigPriority

Konfigurasi ini memungkinkan aplikasi mendeskripsikan 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 real-time - yang berarti codec akan mendukung konfigurasi performa tertentu (misalnya kecepatan frame) secara real-time. Hal ini hanya akan digunakan oleh pemutaran media, perekaman, dan mungkin oleh skenario komunikasi real-time jika performa upaya terbaik tidak sesuai.
  • 1: prioritas non-real-time (upaya terbaik). Nilai ini merupakan default.

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

Jangan mengasumsikan prioritas realtime kecuali jika dikonfigurasi ke 0.

OMX_IndexConfigOperatingRate

Konfigurasi ini memungkinkan aplikasi menjelaskan kecepatan frame operasi untuk video atau frekuensi sampel untuk audio tempat codec harus beroperasi.

Ini digunakan untuk kasus seperti perekaman video berkecepatan tinggi/gerakan lambat, dengan format encoder video yang berisi kecepatan pemutaran target (misalnya 30 fps), tetapi komponen harus dapat menangani kecepatan pengambilan operasi yang tinggi (misalnya 240 fps).

Rasio ini harus digunakan untuk perencanaan resource dan menetapkan titik operasi.