How the Ooyala Player Selects HEVC Streams
The Ooyala Player (both Web and SDKs) determines at runtime whether HEVC playback can be supported. It does this in different ways:
Ooyala Web Player
This parameter enables a run-time process during the player initialization where it runs a test to determine whether HEVC playback is supported. To do this, it will try to play two very small HEV1 and HVC1 files. If either is successful, the player will add to the SAS API a response of codecPriority=hev|hvc. If these both fail, it will post to SAS codecPriority=avc.
Any iOS device with the A10 chipset has native HEVC support. iOS 11 is also required. Therefore, the Ooyala iOS SDK player checks at initialization the OS and hardware of the device to determine whether HEVC can be successfully played back.
Devices above Android 5+ support HEVC decoding. However they might not have same decoder. Some phones have a software decoder provided by Google. If the OEM has added a hardware encoder as well, the device will have both decoders. If the device has a hardware decoder, that usually takes precedence over a software decoder. Therefore, we check the device to see if either a hardware or software HEVC decoder is available, prior to making the SAS call.