メディア コーデック

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

Android 10 (API レベル 29) 以上 を始めとして、コーデックに関してさらに詳しい情報を明らかにする MediaCodecInfo のメソッドがあります。

isSoftwareOnly()
コーデックがソフトウェアのみで実行される場合、true を返します。ソフトウェア コーデックは、レンダリング パフォーマンスに関してはまったく保証しません。
isHardwareAccelerated()
コーデックがハードウェアによって高速化する場合、true を返します。
isVendor()
コーデックが端末ベンダーから提供されている場合は true、Android プラットフォームから提供されている場合は false を返します。
isAlias()
MediaCodecList には、代替コーデック名 (エイリアス) を使用する同じ基になるコーデックの追加エントリが含まれる場合があります。このメソッドは、このエントリのコーデックが別のコーデックのエイリアスである場合に true を返します。

さらに、MediaCodec.getCanonicalName() はエイリアスを介して作成されたコーデックの基になるコーデック名を返します。

パフォーマンス ポイント

パフォーマンス ポイントは、特定の高さ、幅、フレームレートで動画をレンダリングするコーデックの機能を表します。たとえば、UHD_60 パフォーマンス ポイントは、毎秒 60 フレームでレンダリングされた超高解像度動画 (3840x2160 ピクセル) を表します。

メソッド MediaCodecInfo.VideoCapabilities.getSupportedPerformancePoints() は、コーデックがレンダリングまたはキャプチャできる PerformancePoint エントリのリストを返します。

PerformancePoint.covers(PerformancePoint) を呼び出すことにより、特定の PerformancePoint が別のものをカバーしているかどうかを確認できます。たとえば、UHD_60.covers(UHD_50)は true を返します。

ハードウェアで高速化される全コーデックのパフォーマンス ポイントのリストが提供されます。コーデックが最も低い標準パフォーマンス ポイントさえ満たさない場合、これが空のリストになることがあります。

ベンダー イメージを更新せずに Android 10 (API レベル 29) 以上 にアップグレードされている端末には、パフォーマンス ポイント データはありません。このデータはベンダー HAL から提供されるからです。この場合、getSupportedPerformancePoints() は null を返します。