Android 10 (API 수준 29) 이상부터 MediaCodecInfo
에는 코덱에 관한 자세한 정보를 보여주는 메서드가 있습니다.
isSoftwareOnly()
- 코덱이 소프트웨어에서만 실행되는 경우 true를 반환합니다. 소프트웨어 코덱은 렌더링 성능을 보장하지는 않습니다.
isHardwareAccelerated()
- 코덱이 하드웨어에 의해 가속화되는 경우 true를 반환합니다.
isVendor()
- 코덱이 기기 공급업체에 의해 제공되는 경우 true를 반환하고 Android 플랫폼에 의해 제공되는 경우 false를 반환합니다.
isAlias()
MediaCodecList
에는 대체 코덱 이름 (별칭)을 사용하는 동일한 기본 코덱에 대한 추가 항목이 포함될 수 있습니다. 이 항목의 코덱이 다른 코덱의 별칭인 경우 이 메서드는 true를 반환합니다.
또한 MediaCodec.getCanonicalName()
는 별칭을 통해 만든 코덱의 기본 코덱 이름을 반환합니다.
성능점
성능 포인트는 특정 높이, 너비, 프레임 속도로 동영상을 렌더링하는 코덱의 기능을 나타냅니다. 예를 들어 UHD_60
성능 포인트는 60FPS로 렌더링되는 UHD 동영상 (3840x2160픽셀)을 나타냅니다.
MediaCodecInfo.VideoCapabilities.getSupportedPerformancePoints()
메서드는 코덱이 렌더링하거나 캡처할 수 있는 PerformancePoint
항목의 목록을 반환합니다.
PerformancePoint.covers(PerformancePoint)
를 호출하여 특정 PerformancePoint
가 다른 PerformancePoint
를 포함하는지 확인할 수 있습니다.
예를 들어 UHD_60.covers(UHD_50)
은 true를 반환합니다.
모든 하드웨어 가속 코덱에 대한 성능점 목록이 제공됩니다. 코덱이 최소 성능 포인트를 충족하지 않을 경우 빈 목록이 제공될 수 있습니다.
공급업체 이미지를 업데이트하지 않고 Android 10 (API 수준 29) 이상으로 업그레이드한 기기에는 성능 포인트 데이터가 없습니다. 이 데이터는 공급업체 HAL에서 제공되기 때문입니다. 이 경우 getSupportedPerformancePoints()
는 null을 반환합니다.