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_CLASSis abbreviated toMEDIA_PERFORMANCE_CLASSwhen referring to the entity. Its values are referred to as "MPC".MEDIA_PERFORMANCE_CLASSvalues 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()andVideoCapabilities.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()andVideoCapabilities.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()andVideoCapabilities.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_HdrEditingfeature 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_DynamicColorAspectfor 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_BITorAUDIO_FORMAT_PCM_FLOATfor 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_ALLwith 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.supportedHardwareLevelproperty asFULLor better for back primary andLIMITEDor 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_REALTIMEfor 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_RAWandandroid.graphics.ImageFormat.RAW_SENSORfor 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_STABILIZATIONfor 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_CAMERAcapability 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_CASEcapability 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.