Media Codec

Android 10(API レベル 29)以降では、 MediaCodecInfo。 コーデックに関する詳細情報を表示します。

isSoftwareOnly()
コーデックがソフトウェアでのみ動作する場合、true を返します。ソフトウェア コーデックの レンダリング パフォーマンスを保証します。
isHardwareAccelerated()
コーデックがハードウェアによって高速化された場合、true を返します。
isVendor()
コーデックがデバイス ベンダーから提供されている場合は true、指定された場合は false を返します 開発されたものです
isAlias()
MediaCodecList には、代替コーデック名(エイリアス)を使用している場合、1 つの基盤コーデックに対して複数のエントリが含まれている可能性があります。このメソッドは true を返します。 このエントリのコーデックは、別のコーデックのエイリアスです。

また、MediaCodec.getCanonicalName() はエイリアス経由で作成されたコーデックの基盤コーデック名を返します。

パフォーマンス ポイント

「パフォーマンス ポイント」とは、特定の高さ、幅、フレームレートで動画をレンダリングするコーデックの能力を示します。たとえば、UHD_60 パフォーマンス ポイントです。 60 フレームでレンダリングされた超高画質動画(3,840 x 2,160 ピクセル)を表します 毎秒

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

特定の PerformancePoint のチャットが別のプランでカバーされているかどうかは、 PerformancePoint.covers(PerformancePoint)。 たとえば、UHD_60.covers(UHD_50) は true を返します。

パフォーマンス ポイントのリストには、すべてのハードウェア アクセラレーション コーデックが含まれています。コーデックが最も低い標準パフォーマンス ポイントでさえ満たさない場合、空のリストになることがあります。

なお、Android 10(API レベル 29)以降にアップグレードされたデバイスでは、 パフォーマンス ポイント データは失われるため、ベンダー イメージを更新しても データはベンダー HAL から取得されます。この場合は、getSupportedPerformancePoints() です。 null を返します。