メディア リソース マネージャーに対する SoC ベンダーの依存関係

このドキュメントは、システム オン チップ(SoC)ベンダーが Android メディア リソース マネージャーに必要な優先度、稼働率、フックのサポートを適切に実装できるようにすることを目的としています。

1. OMX_ErrorInsufficientResources

コーデック コンポーネントは、GetHandleInitUseBufferAllocateBufferOMX_ErrorInsufficientResources を返すようにします。リソース不足のために失敗した場合は、遷移状態を返すようにします。エラーコードは、メディア リソースを他の低優先度プロセスからプリエンプトするためのインジケーターとして、メディア リソース マネージャーによって使用されます。

Android 互換性テストスイート(Android Compatibility Test Suite、CTS)では、各コーデックの割り当て、設定、開始を、catching OMX_ErrorInsufficientResources(合格)またはその他のエラー(失敗)になるまで繰り返しテストします。

2. OMX_IndexConfigPriority

この設定では、アプリで目的のコーデック優先度を記述できます。

関連する値は整数です。値が大きいほど優先度が低くなります。 現在、サポートされているレベルは次の 2 つだけです。

  • 0: リアルタイムの優先度。コーデックがリアルタイムで指定されたパフォーマンス設定(フレームレートなど)をサポートすることを意味します。メディアの再生とキャプチャでのみで使用されるほか、ベスト エフォート型のパフォーマンスが適切でない場合は、リアルタイム コミュニケーションのシナリオで使用される場合もあります。
  • 1: 非リアルタイムの優先度(ベスト エフォート)。これがデフォルト値です。

アプリのリアルタイム要件を理解するために、ベンダーはコーデックの設定やリソースの計画におけるヒントとしてこれを使用するようにします。

0 に設定されていない場合は、リアルタイムの優先度は想定しないでください。

3. OMX_IndexConfigOperatingRate

この設定により、アプリは稼働中の動画のフレームレートまたは音声のサンプルレートを、コーデックが処理する必要のあるレートで描写できます。

ビデオ エンコーダのフォーマットが目標再生レート(30 fps など)を含む高速または低速のビデオ キャプチャなどの場合に使用されますが、コンポーネントが高いキャプチャ レート(240 fps など)を処理できる必要があります。

このレートは、リソースの計画や動作点の設定に使用します。