미디어 코덱

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을 반환합니다.