MPC supplemental information for Android 17 CDD

Introduced in CDD 17: MPC supplemental document

This file is introduced in Android 17 CDD as a supplement to subsections under 2.2.7. Handheld media.

Due to the increased complexity of requirements in those sections, for ease of reading no content in this document is marked up with green or gray highlights as normally shown in CDD, even where individual values and details are changed, removed, or added.

This document supplements the media performance class (MPC) specification as defined in CDD section 2.2.7, providing granular values for individual parameters. These values vary depending on the value returned for android.os.Build.VERSION.MEDIA_PERFORMANCE_CLASS.

To assist readability, this page uses the following conventions:

  • android.os.Build.VERSION.MEDIA_PERFORMANCE_CLASS is abbreviated to MEDIA_PERFORMANCE_CLASS when referring to the entity. Its values are referred to as "MPC".
  • MEDIA_PERFORMANCE_CLASS values are prefixed by "MPC" in headings and key areas. This documentation convention helps differentiate them from other numeric values. The actual value is numeric and does not contain the string "MPC".

2.2.7.1 Media

Supplements for 2.2.7.1 Media.

[5.1/H-1-1] Video Decoder Instances

Handheld device implementations returning one of the following MPC values 10, 20, 30, 31, 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST advertise the maximum number of hardware video decoder sessions that can be run concurrently in any codec combination via the CodecCapabilities.getMaxSupportedInstances() and VideoCapabilities.getSupportedPerformancePoints() methods.

[5.1/H-1-2] Concurrent Video Decoder Sessions

Handheld device implementations returning one of the following MPC values 10, 20, 30 for MEDIA_PERFORMANCE_CLASS MUST meet the requirements in the following table:

Element MPC 10 MPC 20 MPC 30
fps 30 30 30
instance count 2 4 6
resolution = 720 = 720 = 720

Handheld device implementations returning one of the following MPC values 31 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support 6 instances of hardware video decoder sessions (AVC, HEVC, VP9* or later) in any codec combination running concurrently at 720p resolution@30 fps. *Only 2 instances are required if VP9 codec is present.

Handheld device implementations returning one of the following MPC values 33 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support 6 instances of hardware video decoder sessions (AVC, HEVC, VP9, AV1 or later) in any codec combination running concurrently at 1080p resolution@30 fps.

Handheld device implementations returning one of the following MPC values 34 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support 6 instances of 8-bit (SDR) hardware video decoder sessions (AVC, HEVC, VP9, AV1, or later) in any codec combination running concurrently with 3 sessions at 1080p resolution@30 fps and 3 sessions at 4K resolution@30fps. AV1 codecs are only required to support 1080p resolution, but are still required to support 6 instances at 1080p30fps.

Handheld device implementations returning one of the following MPC values 35 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support 6 instances of 8-bit (SDR) hardware video decoder sessions (AVC, HEVC, VP9, AV1, or later) in any codec combination running concurrently with 3 sessions at 1080p resolution@30 fps and 3 sessions at 4K resolution@30fps. For all sessions, there MUST NOT be more than 1 frame dropped per second. AV1 codecs are only required to support 1080p resolution, but are still required to support 6 instances at 1080p30fps.

Handheld device implementations returning one of the following MPC values 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support 6 instances of 8-bit (SDR) hardware video decoder sessions (AVC, HEVC, VP9, AV1, or later) in any codec combination running concurrently with 3 sessions at 1080p resolution@30 fps and 3 sessions at 4k resolution@30fps, unless AV1. For all sessions, there MUST NOT be more than 1 frame dropped per second. AV1 codecs are only required to support 1080p resolution, but are still required to support 6 instances at 1080p30fps.

[5.1/H-1-3] Video Encoder Instances

Handheld device implementations returning one of the following MPC values 10, 20, 30, 31, 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST advertise the maximum number of hardware video encoder sessions that can be run concurrently in any codec combination via the CodecCapabilities.getMaxSupportedInstances() and VideoCapabilities.getSupportedPerformancePoints() methods.

[5.1/H-1-4] Concurrent Video Encoder Sessions

Handheld device implementations returning one of the following MPC values 10 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support 2 instances of hardware video encoder sessions (AVC or HEVC) in any codec combination running concurrently at 720p resolution@30 fps.

Handheld device implementations returning one of the following MPC values 20 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support 4 instances of hardware video encoder sessions (AVC or HEVC) in any codec combination running concurrently at 720p resolution@30 fps.

Handheld device implementations returning one of the following MPC values 30 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support 6 instances of hardware video encoder sessions (AVC or HEVC) in any codec combination running concurrently at 720p resolution@30 fps.

Handheld device implementations returning one of the following MPC values 31 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support 6 instances of hardware video encoder sessions (AVC, HEVC, VP9* or later) in any codec combination running concurrently at 720p resolution@30fps. *Only 2 instances are required if VP9 codec is present.

Handheld device implementations returning one of the following MPC values 33 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support 6 instances of hardware video encoder sessions (AVC, HEVC, VP9, AV1 or later) in any codec combination running concurrently at 1080p resolution@30fps.

Handheld device implementations returning one of the following MPC values 34 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support 6 instances of 8-bit (SDR) hardware video encoder sessions (AVC, HEVC, VP9, AV1, or later) in any codec combination running concurrently with 4 sessions at 1080p resolution@30 fps and 2 sessions at 4K resolution@30fps. AV1 codecs are only required to support 1080p resolution, but are still required to support 6 instances at 1080p30fps.

Handheld device implementations returning one of the following MPC values 35 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support 6 instances of 8-bit (SDR) hardware video encoder sessions (AVC, HEVC, VP9, AV1, or later) in any codec combination running concurrently with 4 sessions at 1080p resolution@30 fps and 2 sessions at 4K resolution@30fps. For all sessions, there MUST NOT be more than 1 frame dropped per second. AV1 codecs are only required to support 1080p resolution, but are still required to support 6 instances at 1080p30fps.

Handheld device implementations returning one of the following MPC values 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support 6 instances of 8-bit (SDR) hardware video encoder sessions (AVC, HEVC, VP9, AV1, or later) in any codec combination running concurrently with 4 sessions at 1080p resolution@30 fps and 2 sessions at 4k resolution@30fps, unless AV1. For all sessions, there MUST NOT be more than 1 frame dropped per second. AV1 codecs are only required to support 1080p resolution, but are still required to support 6 instances at 1080p30fps.

[5.1/H-1-5] Video Transcoding Instances

Handheld device implementations returning one of the following MPC values 10, 20, 30, 31, 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST advertise the maximum number of hardware video encoder and decoder sessions that can be run concurrently in any codec combination via the CodecCapabilities.getMaxSupportedInstances() and VideoCapabilities.getSupportedPerformancePoints() methods.

[5.1/H-1-6] Concurrent Video Transcoding Sessions

Handheld device implementations returning one of the following MPC values 10, 20, 30, 31, 33 for MEDIA_PERFORMANCE_CLASS MUST meet the requirements in the following table:

Element MPC 10 MPC 20 MPC 30 MPC 31 MPC 33
instance count 2 4 6 6 6
resolution = 720 = 720 = 720 = 720 = 1080
fps 30 30 30 30 30

Handheld device implementations returning one of the following MPC values 34 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support 6 instances of 8-bit (SDR) hardware video decoder and hardware video encoder sessions (AVC, HEVC, VP9, AV1, or later) in any codec combination running concurrently with 3 sessions at 4K@30fps resolution, out of which at most 2 are encoder sessions and 3 sessions at 1080p resolution. AV1 codecs are only required to support 1080p resolution, but are still required to support 6 instances at 1080p30fps.

Handheld device implementations returning one of the following MPC values 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support 6 instances of 8-bit (SDR) hardware video decoder and hardware video encoder sessions (AVC, HEVC, VP9, AV1, or later) in any codec combination running concurrently with 3 sessions at 4K@30fps resolution (unless AV1), out of which at most 2 are encoder sessions and 3 sessions at 1080p resolution. For all sessions, there MUST NOT be more than 1 frame dropped per second. AV1 codecs are only required to support 1080p resolution, but are still required to support 6 instances at 1080p30fps.

[5.1/H-1-7] Video encoder init latency

Handheld device implementations returning one of the following MPC values 10, 20, 30, 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the requirements in the following table:

Element MPC 10 MPC 20 MPC 30 MPC 31 MPC 33 MPC 34 MPC 35 MPC 37
codec initialization latency ms ≤ 85 ≤ 65 ≤ 65 ≤ 50 ≤ 40 ≤ 40 ≤ 40 ≤ 40
Dolby codec initialization latency ms ≤ 50 ≤ 50 ≤ 50 ≤ 50

[5.1/H-1-8] Audio encoder init latency

Handheld device implementations returning one of the following MPC values 10, 20, 30, 31, 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the requirements in the following table:

Element MPC 10 MPC 20 MPC 30 MPC 31 MPC 33 MPC 34 MPC 35 MPC 37
codec initialization latency ms ≤ 55 ≤ 50 ≤ 50 ≤ 40 ≤ 30 ≤ 30 ≤ 30 ≤ 30

"Load" is defined as a concurrent 1080p to 720p video-only transcoding session, using hardware video codecs together with the 1080p audio-video recording initialization.

[5.1/H-1-9] Secure Video Decoder Sessions

Handheld device implementations returning one of the following MPC values 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the requirements in the following table:

Element MPC 33 MPC 34 MPC 35 MPC 37
fps ≥ 30 ≥ 30 ≥ 30 ≥ 30
instance count ≥ 2 ≥ 2 ≥ 2 ≥ 2
frames dropped per second ≤ 1 ≤ 1
is hdr = true = true = true

[5.1/H-1-10] Video Decoder Sessions

Handheld device implementations returning one of the following MPC values 33 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support 3 instances of non-secure hardware video decoder sessions together with 1 instance of secure hardware video decoder session (4 instances total) (AVC, HEVC, VP9, AV1 or later) in any codec combination running concurrently at 1080p resolution@30fps.

Handheld device implementations returning one of the following MPC values 34 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support 3 instances of non-secure hardware video decoder sessions together with 1 instance of secure hardware video decoder session (4 instances total) (AVC, HEVC, VP9, AV1, or later) in any codec combination running concurrently with 3 sessions at 4K resolution@30 fps which includes one secure decoder session and 1 non-secure session at 1080p resolution@30fps where at most 2 sessions can be in 10-bit HDR. AV1 codec sessions are only required to support 1080p resolution even when this requirement calls for 4K.

Handheld device implementations returning one of the following MPC values 35 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support 3 instances of non-secure hardware video decoder sessions together with 1 instance of secure hardware video decoder session (4 instances total) (AVC, HEVC, VP9, AV1, or later) in any codec combination running concurrently with 3 sessions at 4K resolution@30fps which includes one secure decoder session and 1 non-secure session at 1080p resolution@30fps where at most 2 sessions can be in 10-bit HDR. For all sessions, there MUST NOT be more than 1 frame dropped per second. AV1 codec sessions are only required to support 1080p resolution even when this requirement calls for 4K.

Handheld device implementations returning one of the following MPC values 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support 3 instances of non-secure hardware video decoder sessions together with 1 instance of secure hardware video decoder session (4 instances total) (AVC, HEVC, VP9, AV1, or later) in any codec combination running concurrently with 3 sessions at 4K resolution@30fps (unless AV1) which includes one secure decoder session and 1 non-secure session at 1080p resolution@30fps where at most 2 sessions can be in 10-bit HDR. For all sessions, there MUST NOT be more than 1 frame dropped per second. AV1 codec sessions are only required to support 1080p resolution even when this requirement calls for 4K.

[5.1/H-1-11] Secure Hardware Decoders

Handheld device implementations returning one of the following MPC values 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support a secure decoder for every hardware AVC, HEVC, VP9, or AV1 decoder on the device.

[5.1/H-1-12] Video Decoder Init Latency

Handheld device implementations returning one of the following MPC values 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST have a codec initialization latency of 40 ms or less for a 1080p or smaller video decoding session for all hardware video decoders when under load. Load here is defined as a concurrent 1080p to 720p video-only transcoding session using hardware video codecs together with the 1080p audio-video playback initialization. For Dolby vision codec, the codec initialization latency MUST be 50 ms or less.

[5.1/H-1-13] Audio decoder init latency

Handheld device implementations returning one of the following MPC values 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the requirements in the following table:

Element MPC 33 MPC 34 MPC 35 MPC 37
codec initialization latency ms ≤ 30 ≤ 30 ≤ 30 ≤ 30

"Load" is defined as a concurrent 1080p to 720p video-only transcoding session, using hardware video codecs together with the 1080p audio-video recording initialization.

[5.1/H-1-14] AV1 Hardware Decoder

Handheld device implementations returning one of the following MPC values 33 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support AV1 hardware decoder Main 10, Level 4.1.

Handheld device implementations returning one of the following MPC values 34 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support AV1 hardware decoder Main 10, Level 4.1 and film grain.

Handheld device implementations returning one of the following MPC values 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support AV1 hardware decoder Main 10, Level 4.1 with film grain effect over GPU composition.

[5.1/H-1-15] Hardware Decoder 4K60

Handheld device implementations returning one of the following MPC values 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the requirements in the following table:

  • MUST have at least 1 hardware video decoder supporting 4K60.

[5.1/H-1-16] Hardware Encoder 4K60

Handheld device implementations returning one of the following MPC values 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the requirements in the following table:

  • MUST have at least 1 hardware video encoder supporting 4K60.

[5.1/H-1-17] AVIF Baseline Profile

Handheld device implementations returning one of the following MPC values 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST have at least 1 hardware image decoder supporting AVIF Baseline Profile.

[5.1/H-1-18] AV1 Encoder

Handheld device implementations returning one of the following MPC values 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the requirements in the following table:

Element MPC 34 MPC 35 MPC 37
av1 encoder bitrate = 1 Mbps = 1 Mbps = 1 Mbps
av1 encoder fps ≥ 30 ≥ 30 ≥ 30
av1 encoder resolution = 480 = 480 = 480

[5.1/H-1-19] Concurrent HDR Transcoding Sessions

Handheld device implementations returning one of the following MPC values 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the requirements in the following table:

Element MPC 34 MPC 35 MPC 37
frames per sec ≥ 30 ≥ 30 ≥ 30
frame drops per sec N/A ≤ 1 ≤ 1

[5.1/H-1-20] Video Codec HDR Editing

Handheld device implementations returning one of the following MPC values 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support the Feature_HdrEditing feature for all hardware AV1 and HEVC encoders present on the device at 4K resolution or the largest Camera-supported resolution, whichever is less.

[5.1/H-1-21] Video Codec Dynamic Color Aspect

Handheld device implementations returning one of the following MPC values 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support FEATURE_DynamicColorAspect for all hardware video decoders (AVC, HEVC, VP9, AV1, or later). Note: This means applications can update the color aspects of the video content during the decoding session. Decoders that support 10-bit and 8-bit content MUST support dynamically switching between 8- and 10-bit content in Surface mode. Decoders that support HDR transfer function MUST support dynamically switching between SDR and HDR content.

[5.1/H-1-22] Video Codec Portrait Resolution

Handheld device implementations returning one of the following MPC values 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support encoding, decoding, GPU-editing and displaying video content in portrait aspect ratio regardless of the rotation metadata for the largest Camera supported resolution or 4K whichever is less. Note: this includes HDR profiles if codec supports HDR. AV1 codecs are only required to support 1080p resolution. This requirement is only for hardware codecs, GPU and the DPU.

[5.2/H-2-1] VEQ

Handheld device implementations returning one of the following MPC values 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the requirements in the following table:

Element MPC 34 MPC 35 MPC 37
bdrate vmaf ≤ 0 ≤ 0 ≤ 0

The required video encoder rate-distortion curves for hardware AVC and HEVC codecs, are defined in Run Performance Class 14 (PC14)-Video encoding quality (VEQ) tests .

[5.2/H-2-2] MMAP Speaker Path

Handheld device implementations returning one of the following MPC values 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support MMAP on the speaker path.

[5.3/H-1-1] Frame drop

Handheld device implementations returning one of the following MPC values 10, 20, 30, 31, 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the requirements in the following table:

Element MPC 10 MPC 20 MPC 30 MPC 31 MPC 33 MPC 34 MPC 35 MPC 37
frame drops per 10 sec ≤ 1 ≤ 1 ≤ 1 ≤ 2 ≤ 1 ≤ 1 ≤ 1 ≤ 1
resolution = 1080p = 1080p = 1080p = 1080p = 1080p = 4K = 4K = 4K
frame rate = 30 = 30 = 30 = 60 = 60 = 60 = 60 = 60

"Load" is defined as a concurrent 1080p to 720p video-only transcoding session using hardware video codecs, as well as a 128 kbps AAC audio playback.

[5.3/H-1-2] Adaptive Playback Frame Drop

Handheld device implementations returning one of the following MPC values 10, 20, 30, 31, 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the requirements in the following table:

Element MPC 10 MPC 20 MPC 30 MPC 31 MPC 33 MPC 34 MPC 35 MPC 37
frame drops per 10sec ≤ 1 ≤ 1 ≤ 1 ≤ 2 ≤ 1 ≤ 1 ≤ 1 ≤ 1
resolution = 1080p = 1080p = 1080p = 1080p = 1080p = 4K = 4K = 4K
frame rate = 30 = 30 = 30 = 60 = 60 = 60 = 60 = 60

[5.6/H-1-1] Tap to Tone Latency

Handheld device implementations returning one of the following MPC values 1, 10, 20, 30, 31, 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the requirements in the following table:

Element MPC 1 MPC 10 MPC 20 MPC 30 MPC 31 MPC 33 MPC 34 MPC 35 MPC 37
Native Latency ms ≤ 110 ≤ 110 ≤ 100 ≤ 100 ≤ 100 ≤ 80 ≤ 80 ≤ 80 ≤ 65

[5.6/H-1-2] Round Trip Audio Latency

Handheld device implementations returning one of the following MPC values 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the requirements in the following table:

Element MPC 33 MPC 34 MPC 35 MPC 37
round trip audio latency ms ≤ 80 ≤ 80 ≤ 80 ≤ 65

[5.6/H-1-3] 24-Bit Audio

Handheld device implementations returning one of the following MPC values 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support >=24-bit audio for stereo output over 3.5 mm audio jacks if present and over USB audio if supported through the entire data path for low latency and streaming configurations. For the low latency configuration, AAudio should be used by the app in low-latency callback mode. For the streaming configuration, a Java AudioTrack should be used by the app. In both the low latency and streaming configurations, the HAL output sink should accept either AUDIO_FORMAT_PCM_24_BIT, AUDIO_FORMAT_PCM_24_BIT_PACKED, AUDIO_FORMAT_PCM_32_BIT or AUDIO_FORMAT_PCM_FLOAT for its target output format.

[5.6/H-1-4] 4 Channel USB Audio

Handheld device implementations returning one of the following MPC values 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support >= 4 channel USB audio devices. (This is used by DJ controllers for previewing songs.)

[5.6/H-1-5] MIDI Devices

Handheld device implementations returning one of the following MPC values 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support class compliant MIDI devices and declare the MIDI feature flag.

[5.6/H-1-9] 12 Channel Mixing

Handheld device implementations returning one of the following MPC values 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support at least 12 channel mixing. This implies the capability to open an AudioTrack with 7.1.4 channel mask and properly spatialise or downmix all channels to stereo.

[5.6/H-3-1] Audio CPU Workload

Handheld device implementations returning one of the following MPC values 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST be able to handle switching from playing 1 sine wave to 20 sine waves with no underrun of audio buffers.

[5.6/H-3-2] USB Audio Output Channels

Handheld device implementations returning one of the following MPC values 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support at least 8 output channels for USB audio devices. Channel masks up to 8 channels must be supported. This includes mono, stereo, quad, 5.1, and 7.1.

[5.6/H-3-3] USB Audio Input Channels

Handheld device implementations returning one of the following MPC values 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support at least 4 input channels for USB audio devices.

[5.6/H-SR] 24 Channel Mixing

Handheld device implementations returning one of the following MPC values 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • Are STRONGLY RECOMMENDED to support 24 channel mixing with at least support for 9.1.6 and 22.2 channel masks.

[5.7/H-1-2] Media DRM Security Level Hardware

Handheld device implementations returning one of the following MPC values 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support MediaDrm.SECURITY_LEVEL_HW_SECURE_ALL with the following content decryption capabilities.

    Minimum Sample size 4 MiB
    Minimum Number of Subsamples - H264 or HEVC 32
    Minimum Number of Subsamples - VP9 9
    Minimum Number of Subsamples - AV1 288
    Minimum subsample buffer size 1 MiB
    Minimum Generic crypto buffer size 500 KiB
    Minimum Number of concurrent sessions 30
    Minimum Total Number of Keys (all sessions) 80
    Minimum Total Number of DRM Keys (all sessions) 6
    Message Size 16 KiB
    Decrypted Frames per Second 60 fps

[5.12/H-1-2] RGBA color format

Handheld device implementations returning one of the following MPC values 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support RGBA_1010102 color format for all hardware AV1 and HEVC encoders present on the device.

[5.12/H-1-3] Ext Yuv Target

Handheld device implementations returning one of the following MPC values 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST advertise support for the EXT_YUV_target extension to sample from YUV textures in both 8 and 10-bits.

[7.1.4/H-1-1] Display Processing Unit Overlays

Handheld device implementations returning one of the following MPC values 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST have at least 6 hardware overlays in the Display processing unit (DPU), with at least 2 of them capable of displaying 10-bit video content.

2.2.7.2 Camera

Supplements for 2.2.7.2 Camera.

[7.5/H-1-1] Primary Rear Camera Resolution and Frame Rate

Handheld device implementations returning one of the following MPC values 10, 20, 30, 31, 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the requirements in the following table:

Element MPC 10 MPC 20 MPC 30 MPC 31 MPC 33 MPC 34 MPC 35 MPC 37
Primary Camera Resolution MP ≥ 5 ≥ 5 ≥ 12 ≥ 12 ≥ 12 ≥ 12 ≥ 12 ≥ 12
Supported Video Formats 720p@30fps 720p@30fps 4k@30fps 4k@30fps 4k@30fps 4k@30fps 4k@30fps, 1080p@60fps, and 720p@60fps 4k@30fps, 1080p@60fps, and 720p@60fps

[7.5/H-1-2] Primary Front Camera Resolution and Frame Rate

Handheld device implementations returning one of the following MPC values 10, 20 for MEDIA_PERFORMANCE_CLASS MUST meet the requirements in the following table:

Element MPC 10 MPC 20
primary camera resolution ≥ 2000000 ≥ 2000000
primary camera resolution mp 2 2
primary camera video fps ≥ 30 ≥ 30
video resolution 720p 720p

Handheld device implementations returning one of the following MPC values 30, 31, 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the requirements in the following table:

Element MPC 30 MPC 31 MPC 33 MPC 34 MPC 35 MPC 37
primary camera resolution ≥ 4000000 ≥ 4915200 ≥ 4915200 ≥ 6000000 ≥ 6000000 ≥ 7990000
primary camera resolution mp ≥ 4 ≥ 4.9152 ≥ 4.9152 ≥ 6 ≥ 6 ≥ 7.99
primary camera video fps ≥ 30 ≥ 30 ≥ 30 ≥ 30 ≥ 30 ≥ 30
video resolution 1080p 1080p 1080p 1080p 1080p 1080p

[7.5/H-1-3] Camera Hardware Level

Handheld device implementations returning one of the following MPC values 30, 31, 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support android.info.supportedHardwareLevel property as FULL or better for back primary and LIMITED or better for front primary camera.

[7.5/H-1-4] Timestamp Source Realtime

Handheld device implementations returning one of the following MPC values 30, 31, 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support CameraMetadata.SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME for both primary cameras.

[7.5/H-1-5] Camera Capture Latency

Handheld device implementations returning one of the following MPC values 10, 20, 30, 31, 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST have camera2 JPEG capture latency < 1000 ms for 1080p resolution as measured by the CTS camera PerformanceTest under ITS lighting conditions (3000K) for both primary cameras.

[7.5/H-1-6] Camera Startup Latency

Handheld device implementations returning one of the following MPC values 10, 20, 30, 31, 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the requirements in the following table:

Element MPC 10 MPC 20 MPC 30 MPC 31 MPC 33 MPC 34 MPC 35 MPC 37
camera latency ≤ 700 ≤ 600 ≤ 600 ≤ 600 ≤ 500 ≤ 500 ≤ 500 ≤ 500

[7.5/H-1-8] Camera RAW capability

Handheld device implementations returning one of the following MPC values 31, 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_RAW and android.graphics.ImageFormat.RAW_SENSOR for the primary back camera.

[7.5/H-1-9] Camera Slow Motion

Handheld device implementations returning one of the following MPC values 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST have a rear-facing primary camera supporting 720p or 1080p @ 240fps.

[7.5/H-1-10] Camera Ultrawide Zoom Ratio

Handheld device implementations returning one of the following MPC values 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST have min ZOOM_RATIO < 1.0 for the primary cameras if there is an ultrawide RGB camera facing the same direction.

[7.5/H-1-11] Camera Concurrent Rear Front Streaming

Handheld device implementations returning one of the following MPC values 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST implement concurrent front-back streaming on primary cameras.

[7.5/H-1-12] Camera Preview Stabilization

Handheld device implementations returning one of the following MPC values 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION for the primary back camera.

[7.5/H-1-13] Camera Logical Multi Camera

Handheld device implementations returning one of the following MPC values 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support LOGICAL_MULTI_CAMERA capability for the primary rear-facing camera if there are more than 1 RGB rear-facing cameras.

[7.5/H-1-14] Camera Stream Use Case

Handheld device implementations returning one of the following MPC values 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support STREAM_USE_CASE capability for both primary front and primary back camera.

[7.5/H-1-15] Camera Night Mode Extension

Handheld device implementations returning one of the following MPC values 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support Night mode extensions via both CameraX and Camera2 extensions for primary cameras.

[7.5/H-1-16] Camera Dynamic Range 10 Bit

Handheld device implementations returning one of the following MPC values 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support DYNAMIC_RANGE_TEN_BIT capability for the primary cameras.

[7.5/H-1-17] Camera Face Detection

Handheld device implementations returning one of the following MPC values 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support face detection capability (STATISTICS_FACE_DETECT_MODE_SIMPLE or STATISTICS_FACE_DETECT_MODE_FULL) for the primary cameras.

[7.5/H-1-18] Camera JPEG R

Handheld device implementations returning one of the following MPC values 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support JPEG_R for the primary rear and primary front cameras.

[7.5/H-1-19] Camera Video Preview Stabilization

Handheld device implementations returning one of the following MPC values 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION for 1080p HLG10 preview with maximum-size 16:9 aspect ratio JPEG, and for 720p HLG10 preview with maximum-size 16:9 aspect ratio JPEG stream combinations for the primary rear camera.

[7.5/H-1-20] Camera Ultra HDR

Handheld device implementations returning one of the following MPC values 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST by default output JPEG_R for the primary rear and primary front cameras in the native camera app.

[7.5/H-1-21] At least one camera

Handheld device implementations returning one of the following MPC values 10, 20 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST have at least one front facing camera or rear facing camera.

2.2.7.3 Hardware

Supplements for 2.2.7.3 Hardware.

[7.1.1.1/H-2-1] Screen Resolution

Handheld device implementations returning one of the following MPC values 1, 10, 20, 30, 31, 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the requirements in the following table:

Element MPC 1 MPC 10 MPC 20 MPC 30 MPC 31 MPC 33 MPC 34 MPC 35 MPC 37
long resolution pixels ≥ 320 ≥ 1280 ≥ 1920 ≥ 1920 ≥ 1920 ≥ 1920 ≥ 1920 ≥ 1920 ≥ 1920
short resolution pixels ≥ 240 ≥ 720 ≥ 1080 ≥ 1080 ≥ 1080 ≥ 1080 ≥ 1080 ≥ 1080 ≥ 1080

[7.1.1.3/H-2-1] Screen Density

Handheld device implementations returning one of the following MPC values 1, 10, 20, 30, 31, 33, 34 for MEDIA_PERFORMANCE_CLASS MUST meet the requirements in the following table:

Element MPC 1 MPC 10 MPC 20 MPC 30 MPC 31 MPC 33 MPC 34
display density dpi ≥ 100 ≥ 240 ≥ 400 ≥ 400 ≥ 400 ≥ 400 ≥ 400

Handheld device implementations returning one of the following MPC values 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST have screen density of at least 400 dpi if the device's screen width is < 600 dp.

[7.1.1.3/H-3-1] HDR display

Handheld device implementations returning one of the following MPC values 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the requirements in the following table:

Element MPC 34 MPC 35 MPC 37
display luminance nits ≥ 1000 ≥ 1000 ≥ 1000

[7.6.1/H-2-1] Memory

Handheld device implementations returning one of the following MPC values 1, 10, 20, 31, 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the requirements in the following table:

Element MPC 1 MPC 10 MPC 20 MPC 30 MPC 31 MPC 33 MPC 34 MPC 35 MPC 37
Available Memory GiB 1.37 3.05 5 5 5 6.64 6.64 6.64 8

2.2.7.4 Performance

Supplements for 2.2.7.4 Performance.

[8.2/H-1-1] Sequential write

Handheld device implementations returning one of the following MPC values 1, 10, 20, 30, 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the requirements in the following table:

Element MPC 1 MPC 10 MPC 20 MPC 30 MPC 31 MPC 33 MPC 34 MPC 35 MPC 37
File system IO Rate mbps ≥ 35 ≥ 50 ≥ 100 ≥ 100 ≥ 125 ≥ 125 ≥ 150 ≥ 150 ≥ 250

[8.2/H-1-2] Random Write

Handheld device implementations returning one of the following MPC values 1, 10, 20, 30, 31, 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the requirements in the following table:

Element MPC 1 MPC 10 MPC 20 MPC 30 MPC 31 MPC 33 MPC 34 MPC 35 MPC 37
File system IO Rate mbps ≥ 4 ≥ 5 ≥ 10 ≥ 10 ≥ 10 ≥ 10 ≥ 10 ≥ 10 ≥ 30

[8.2/H-1-3] Sequential Read

Handheld device implementations returning one of the following MPC values 1, 10, 20, 30, 31, 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the requirements in the following table:

Element MPC 1 MPC 10 MPC 20 MPC 30 MPC 31 MPC 33 MPC 34 MPC 35 MPC 37
File system IO Rate mbps ≥ 125 ≥ 200 ≥ 200 ≥ 200 ≥ 250 ≥ 250 ≥ 250 ≥ 250 ≥ 700

[8.2/H-1-4] Random Read

Handheld device implementations returning one of the following MPC values 1, 10, 20, 30, 33, 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the requirements in the following table:

Element MPC 1 MPC 10 MPC 20 MPC 30 MPC 31 MPC 33 MPC 34 MPC 35 MPC 37
File system IO Rate mbps ≥ 15 ≥ 25 ≥ 25 ≥ 25 ≥ 40 ≥ 40 ≥ 100 ≥ 100 ≥ 200

[8.2/H-1-5] Parallel Sequential Read and Write Performance

Handheld device implementations returning one of the following MPC values 34, 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST ensure a parallel sequential read and write performance with 2x read and 1x write performance of at least 50 MB/s.

2.2.7.5 Graphics

Supplements for 2.2.7.5 Graphics.

[7.1.4.1/H-1-2] EGL

Handheld device implementations returning one of the following MPC values 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the requirements in the following table:

Element MPC 35 MPC 37
egl ext protected content = EGL_EXT_protected_content = EGL_EXT_protected_content
egl img context priority = EGL_IMG_context_priority = EGL_IMG_context_priority

[7.1.4.1/H-1-3] Vulkan

Handheld device implementations returning one of the following MPC values 35, 37 for MEDIA_PERFORMANCE_CLASS MUST meet the following requirements:

  • MUST support VkPhysicalDeviceProtectedMemoryFeatures.protectedMemory and VK_KHR_global_priority.