AV1 not only supported on iPhone 15 Pro, but it is available without special entitlement.
Used this code to check
func listVideoDecoders() {
let codecTypes: [CMVideoCodecType: String] = [
kCMVideoCodecType_H264: "H.264",
kCMVideoCodecType_HEVC: "H.265",
kCMVideoCodecType_HEVCWithAlpha: "H.265 alpha",
kCMVideoCodecType_DolbyVisionHEVC: "H.265 dolby vision",
kCMVideoCodecType_AV1: "AV1",
kCMVideoCodecType_VP9: "VP9",
]
for (codecType, codecName) in codecTypes {
let isSupported = VTIsHardwareDecodeSupported(codecType)
if isSupported {
print("Hardware decoder available for codec: \(codecName)")
} else {
print("Hardware decoder not available for codec: \(codecName)")
}
}
}
Result:
Hardware decoder available for codec: H.265 alpha
Hardware decoder available for codec: H.265 dolby vision
Hardware decoder available for codec: AV1
Hardware decoder available for codec: H.265
Hardware decoder available for codec: H.264
Hardware decoder not available for codec: VP9
But it's a bummer that you still need a special entitlement to use VP9