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