1# Copyright (C) 2024 The Android Open Source Project
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#     http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14#
15# proto-file: wireless/android/mediapc_requirements/requirements.proto
16# proto-message: RequirementList
17all_mpcs: [30, 31, 33, 34, 35]
18requirements {
19  id: "5.1/H-1-1"
20  description: "- Concurrent video codec sessions"
21  specs {
22    key: 30
23    value {
24      mpc: MEDIA_PERFORMANCE_CLASS_11
25      specification: "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."
26    }
27  }
28  specs {
29    key: 31
30    value {
31      mpc: MEDIA_PERFORMANCE_CLASS_12
32      specification: "same"
33    }
34  }
35  specs {
36    key: 33
37    value {
38      mpc: MEDIA_PERFORMANCE_CLASS_13
39      specification: "same"
40    }
41  }
42  specs {
43    key: 34
44    value {
45      mpc: MEDIA_PERFORMANCE_CLASS_14
46      specification: "same"
47    }
48  }
49  specs {
50    key: 35
51    value {
52      mpc: MEDIA_PERFORMANCE_CLASS_15
53      specification: "same"
54    }
55  }
56}
57requirements {
58  id: "5.1/H-1-2"
59  description: "- Concurrent video codec sessions\n- AV1 hardware decoder"
60  specs {
61    key: 30
62    value {
63      mpc: MEDIA_PERFORMANCE_CLASS_11
64      specification: "MUST support 6 instances of hardware video decoder sessions (AVC or HEVC) in any codec combination running concurrently at 720p resolution@30 fps."
65    }
66  }
67  specs {
68    key: 31
69    value {
70      mpc: MEDIA_PERFORMANCE_CLASS_12
71      specification: "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."
72    }
73  }
74  specs {
75    key: 33
76    value {
77      mpc: MEDIA_PERFORMANCE_CLASS_13
78      specification: "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."
79    }
80  }
81  specs {
82    key: 34
83    value {
84      mpc: MEDIA_PERFORMANCE_CLASS_14
85      specification: "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. AV1 codecs are only required to support 1080p resolution, but are still required to support 6 instances at 1080p30fps."
86    }
87  }
88  specs {
89    key: 35
90    value {
91      mpc: MEDIA_PERFORMANCE_CLASS_15
92      specification: "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."
93    }
94  }
95}
96requirements {
97  id: "5.1/H-1-3"
98  description: "- Concurrent video codec sessions"
99  specs {
100    key: 30
101    value {
102      mpc: MEDIA_PERFORMANCE_CLASS_11
103      specification: "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."
104    }
105  }
106  specs {
107    key: 31
108    value {
109      mpc: MEDIA_PERFORMANCE_CLASS_12
110      specification: "same"
111    }
112  }
113  specs {
114    key: 33
115    value {
116      mpc: MEDIA_PERFORMANCE_CLASS_13
117      specification: "same"
118    }
119  }
120  specs {
121    key: 34
122    value {
123      mpc: MEDIA_PERFORMANCE_CLASS_14
124      specification: "same"
125    }
126  }
127  specs {
128    key: 35
129    value {
130      mpc: MEDIA_PERFORMANCE_CLASS_15
131      specification: "same"
132    }
133  }
134}
135requirements {
136  id: "5.1/H-1-4"
137  description: "- Concurrent video codec sessions\n- AV1 hardware decoder"
138  specs {
139    key: 30
140    value {
141      mpc: MEDIA_PERFORMANCE_CLASS_11
142      specification: "MUST support 6 instances of hardware video encoder sessions (AVC or HEVC) in any codec combination running concurrently at 720p resolution@30 fps."
143    }
144  }
145  specs {
146    key: 31
147    value {
148      mpc: MEDIA_PERFORMANCE_CLASS_12
149      specification: "MUST support 6 instances of hardware video encoder 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."
150    }
151  }
152  specs {
153    key: 33
154    value {
155      mpc: MEDIA_PERFORMANCE_CLASS_13
156      specification: "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."
157    }
158  }
159  specs {
160    key: 34
161    value {
162      mpc: MEDIA_PERFORMANCE_CLASS_14
163      specification: "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. AV1 codecs are only required to support 1080p resolution, but are still required to support 6 instances at 1080p30fps."
164    }
165  }
166  specs {
167    key: 35
168    value {
169      mpc: MEDIA_PERFORMANCE_CLASS_15
170      specification: "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."
171    }
172  }
173}
174requirements {
175  id: "5.1/H-1-5"
176  description: "- Concurrent video codec sessions"
177  specs {
178    key: 30
179    value {
180      mpc: MEDIA_PERFORMANCE_CLASS_11
181      specification: "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."
182    }
183  }
184  specs {
185    key: 31
186    value {
187      mpc: MEDIA_PERFORMANCE_CLASS_12
188      specification: "same"
189    }
190  }
191  specs {
192    key: 33
193    value {
194      mpc: MEDIA_PERFORMANCE_CLASS_13
195      specification: "same"
196    }
197  }
198  specs {
199    key: 34
200    value {
201      mpc: MEDIA_PERFORMANCE_CLASS_14
202      specification: "same"
203    }
204  }
205  specs {
206    key: 35
207    value {
208      mpc: MEDIA_PERFORMANCE_CLASS_15
209      specification: "same"
210    }
211  }
212}
213requirements {
214  id: "5.1/H-1-6"
215  description: "- Concurrent video codec sessions\n- AV1 hardware decoder"
216  specs {
217    key: 30
218    value {
219      mpc: MEDIA_PERFORMANCE_CLASS_11
220      specification: "MUST support 6 instances of hardware video decoder and hardware video encoder sessions (AVC or HEVC) in any codec combination running concurrently at 720p@30 fps resolution."
221    }
222  }
223  specs {
224    key: 31
225    value {
226      mpc: MEDIA_PERFORMANCE_CLASS_12
227      specification: "MUST support 6 instances of hardware video decoder and hardware video encoder sessions (AVC, HEVC, VP9* or later) in any codec combination running concurrently at 720p@30fps resolution. *Only 2 instances are required if VP9 codec is present."
228    }
229  }
230  specs {
231    key: 33
232    value {
233      mpc: MEDIA_PERFORMANCE_CLASS_13
234      specification: "MUST support 6 instances of hardware video decoder and hardware video encoder sessions (AVC, HEVC, VP9, AV1 or later) in any codec combination running concurrently at 1080p@30fps resolution."
235    }
236  }
237  specs {
238    key: 34
239    value {
240      mpc: MEDIA_PERFORMANCE_CLASS_14
241      specification: "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. AV1 codecs are only required to support 1080p resolution, but are still required to support 6 instances at 1080p30fps."
242    }
243  }
244  specs {
245    key: 35
246    value {
247      mpc: MEDIA_PERFORMANCE_CLASS_15
248      specification: "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."
249    }
250  }
251}
252requirements {
253  id: "5.1/H-1-7"
254  name: "Video encoder init latency"
255  description:
256    "Maximum codec initialization latency for a 1080p or smaller video "
257    "encoding session for all hardware video encoders when under load."
258
259  measurements: {
260    key: "codec_initialization_latency_ms"
261    value: {
262      description: "Codec initialization latency in milliseconds"
263      measurement_type: MEASUREMENT_TYPE_LONG
264      comparison: COMPARISON_LESS_THAN_OR_EQUAL
265    }
266  }
267  variants: {
268    key: "dolby"
269    value: {
270      description: "When the codec is Dolby Vision"
271    }
272  }
273  specs {
274    key: 30
275    value {
276      mpc: MEDIA_PERFORMANCE_CLASS_11
277      specification:
278        "MUST have a codec initialization latency of 65 ms or less for a 1080p "
279        "or smaller video encoding session for all hardware video encoders when "
280        "under load. Load here is defined as a concurrent 1080p to 720p "
281        "video-only transcoding session using hardware video codecs together "
282        "with the 1080p audio-video recording initialization."
283      required_values: {
284        key: "codec_initialization_latency_ms"
285        value {
286          long_value: 65
287        }
288      }
289      variant_specs: {
290        key: "dolby"
291        value: {
292          required_values: {
293            key: "codec_initialization_latency_ms"
294            value {
295              long_value: 65
296            }
297          }
298        }
299      }
300    }
301  }
302  specs {
303    key: 31
304    value {
305      mpc: MEDIA_PERFORMANCE_CLASS_12
306      specification:
307        "MUST have a codec initialization latency of 50 ms or less for a 1080p "
308        "or smaller video encoding session for all hardware video encoders "
309        "when under load. Load here is defined as a concurrent 1080p to 720p "
310        "video-only transcoding session using hardware video codecs together "
311        "with the 1080p audio-video recording initialization."
312      required_values: {
313        key: "codec_initialization_latency_ms"
314        value {
315          long_value: 50
316        }
317      }
318      variant_specs: {
319        key: "dolby"
320        value: {
321          required_values: {
322            key: "codec_initialization_latency_ms"
323            value {
324              long_value: 50
325            }
326          }
327        }
328      }
329    }
330  }
331  specs {
332    key: 33
333    value {
334      mpc: MEDIA_PERFORMANCE_CLASS_13
335      specification:
336        "MUST have a codec initialization latency of 40 ms or less for a 1080p "
337        "or smaller video encoding session for all hardware video encoders "
338        "when under load. Load here is defined as a concurrent 1080p to 720p "
339        "video-only transcoding session using hardware video codecs together "
340        "with the 1080p audio-video recording initialization."
341      required_values: {
342        key: "codec_initialization_latency_ms"
343        value {
344          long_value: 40
345        }
346      }
347      variant_specs: {
348        key: "dolby"
349        value: {
350          required_values: {
351            key: "codec_initialization_latency_ms"
352            value {
353              long_value: 50
354            }
355          }
356        }
357      }
358    }
359  }
360  specs {
361    key: 34
362    value {
363      mpc: MEDIA_PERFORMANCE_CLASS_14
364      specification:
365        "MUST have a codec initialization latency of 40 ms or less for a 1080p "
366        "or smaller video encoding session for all hardware video encoders "
367        "when under load. Load here is defined as a concurrent 1080p to 720p "
368        "video-only transcoding session using hardware video codecs together "
369        "with the 1080p audio-video recording initialization. For Dolby vision "
370        "codec, the codec initialization latency MUST be 50 ms or less."
371      required_values: {
372        key: "codec_initialization_latency_ms"
373        value {
374          long_value: 40
375        }
376      }
377      variant_specs: {
378        key: "dolby"
379        value: {
380          required_values: {
381            key: "codec_initialization_latency_ms"
382            value {
383              long_value: 50
384            }
385          }
386        }
387      }
388    }
389  }
390  specs {
391    key: 35
392    value {
393      mpc: MEDIA_PERFORMANCE_CLASS_15
394      specification:
395        "MUST have a codec initialization latency of 40 ms or less for a 1080p "
396        "or smaller video encoding session for all hardware video encoders "
397        "when under load. Load here is defined as a concurrent 1080p to 720p "
398        "video-only transcoding session using hardware video codecs together "
399        "with the 1080p audio-video recording initialization. For Dolby vision "
400        "codec, the codec initialization latency MUST be 50 ms or less."
401      required_values: {
402        key: "codec_initialization_latency_ms"
403        value {
404          long_value: 40
405        }
406      }
407      variant_specs: {
408        key: "dolby"
409        value: {
410          required_values: {
411            key: "codec_initialization_latency_ms"
412            value {
413              long_value: 50
414            }
415          }
416        }
417      }
418    }
419  }
420}
421requirements {
422  id: "5.1/H-1-8"
423  name: "Audio encoder init latency"
424  description: "Maximum codec initialization latency for a 128 kbps or lower bitrate audio encoding session for all audio encoders when under load."
425  measurements: {
426    key: "codec_initialization_latency_ms"
427    value: {
428      description: "Codec initialization latency in milliseconds"
429      measurement_type: MEASUREMENT_TYPE_LONG
430      comparison: COMPARISON_LESS_THAN_OR_EQUAL
431    }
432  }
433  specs: {
434    key: 30
435    value {
436      mpc: MEDIA_PERFORMANCE_CLASS_11
437      specification: "MUST have a codec initialization latency of 50 ms or less for a 128 kbps or lower bitrate audio encoding session for all audio encoders 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 recording initialization."
438      required_values: {
439        key: "codec_initialization_latency_ms"
440        value {
441          long_value: 50
442        }
443      }
444    }
445  }
446  specs: {
447    key: 31
448    value {
449      mpc: MEDIA_PERFORMANCE_CLASS_12
450      specification: "MUST have a codec initialization latency of 40 ms or less for a 128 kbps or lower bitrate audio encoding session for all audio encoders 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 recording initialization."
451      required_values: {
452        key: "codec_initialization_latency_ms"
453        value {
454          long_value: 40
455        }
456      }
457    }
458  }
459  specs: {
460    key: 33
461    value {
462      mpc: MEDIA_PERFORMANCE_CLASS_13
463      specification: "MUST have a codec initialization latency of 30 ms or less for a 128 kbps or lower bitrate audio encoding session for all audio encoders 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 recording initialization."
464      required_values: {
465        key: "codec_initialization_latency_ms"
466        value {
467          long_value: 30
468        }
469      }
470    }
471  }
472  specs: {
473    key: 34
474    value {
475      mpc: MEDIA_PERFORMANCE_CLASS_14
476      specification: "same"
477      required_values: {
478        key: "codec_initialization_latency_ms"
479        value {
480          long_value: 30
481        }
482      }
483    }
484  }
485  specs: {
486    key: 35
487    value {
488      mpc: MEDIA_PERFORMANCE_CLASS_15
489      specification: "same"
490      required_values: {
491        key: "codec_initialization_latency_ms"
492        value {
493          long_value: 30
494        }
495      }
496    }
497  }
498}
499requirements {
500  id: "5.1/H-1-9"
501  description: "- AV1 hardware decoder\n- Secure hardware decoders"
502  specs {
503    key: 33
504    value {
505      mpc: MEDIA_PERFORMANCE_CLASS_13
506      specification: "MUST support 2 instances of secure hardware video decoder sessions (AVC, HEVC, VP9, AV1 or later) in any codec combination running concurrently at 1080p resolution@30 fps."
507    }
508  }
509  specs {
510    key: 34
511    value {
512      mpc: MEDIA_PERFORMANCE_CLASS_14
513      specification: "MUST support 2 instances of secure hardware video decoder sessions (AVC, HEVC, VP9, AV1 or later) in any codec combination running concurrently at 4k resolution@30 fps (unless AV1) for both 8-bit (SDR) and 10-bit HDR content. AV1 codec sessions are only required to support 1080p resolution even when this requirement calls for 4K."
514    }
515  }
516  specs {
517    key: 35
518    value {
519      mpc: MEDIA_PERFORMANCE_CLASS_15
520      specification: "MUST support 2 instances of secure hardware video decoder sessions (AVC, HEVC, VP9, AV1, or later) in any codec combination running concurrently at 4k resolution@30 fps (unless AV1) for both 8-bit (SDR) and 10-bit HDR content. 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."
521    }
522  }
523}
524requirements {
525  id: "5.1/H-1-10"
526  description: "- AV1 hardware decoder\n- Secure hardware decoders"
527  specs {
528    key: 33
529    value {
530      mpc: MEDIA_PERFORMANCE_CLASS_13
531      specification: "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."
532    }
533  }
534  specs {
535    key: 34
536    value {
537      mpc: MEDIA_PERFORMANCE_CLASS_14
538      specification: "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 (unless AV1) which includes one secure decoder session and 1 nn-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."
539    }
540  }
541  specs {
542    key: 35
543    value {
544      mpc: MEDIA_PERFORMANCE_CLASS_15
545      specification: "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 nn-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."
546    }
547  }
548}
549requirements {
550  id: "5.1/H-1-11"
551  description: "- AV1 hardware decoder\n- Secure hardware decoders"
552  specs {
553    key: 33
554    value {
555      mpc: MEDIA_PERFORMANCE_CLASS_13
556      specification: "MUST support a secure decoder for every hardware AVC, HEVC, VP9 or AV1 decoder on the device."
557    }
558  }
559  specs {
560    key: 34
561    value {
562      mpc: MEDIA_PERFORMANCE_CLASS_14
563      specification: "same"
564    }
565  }
566  specs {
567    key: 35
568    value {
569      mpc: MEDIA_PERFORMANCE_CLASS_15
570      specification: "same"
571    }
572  }
573}
574requirements {
575  id: "5.1/H-1-12"
576  description: "- Decoder initialization latency"
577  specs {
578    key: 33
579    value {
580      mpc: MEDIA_PERFORMANCE_CLASS_13
581      specification: "MUST have a video decoder initialization latency of 40 ms or less."
582    }
583  }
584  specs {
585    key: 34
586    value {
587      mpc: MEDIA_PERFORMANCE_CLASS_14
588      specification: "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."
589    }
590  }
591  specs {
592    key: 35
593    value {
594      mpc: MEDIA_PERFORMANCE_CLASS_15
595      specification: "same"
596    }
597  }
598}
599requirements {
600  id: "5.1/H-1-13"
601  name: "Audio decoder init latency"
602  description: "Maximum codec initialization latency for a 128 kbps or lower bitrate audio decoding session for all audio decoders when under load."
603  measurements: {
604    key: "codec_initialization_latency_ms"
605    value: {
606      description: "Codec initialization latency in milliseconds"
607      measurement_type: MEASUREMENT_TYPE_LONG
608      comparison: COMPARISON_LESS_THAN_OR_EQUAL
609    }
610  }
611  specs {
612    key: 33
613    value {
614      mpc: MEDIA_PERFORMANCE_CLASS_13
615      specification: "MUST have a codec initialization latency of 30 ms or less for a 128 kbps or lower bitrate audio decoding session for all audio 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."
616      required_values: {
617        key: "codec_initialization_latency_ms"
618        value {
619          long_value: 30
620        }
621      }
622    }
623  }
624  specs {
625    key: 34
626    value {
627      mpc: MEDIA_PERFORMANCE_CLASS_14
628      specification: "MUST have a codec initialization latency of 30 ms or less for a 128 kbps or lower bitrate audio decoding session for all audio 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."
629      required_values: {
630        key: "codec_initialization_latency_ms"
631        value {
632          long_value: 30
633        }
634      }
635    }
636  }
637  specs {
638    key: 35
639    value {
640      mpc: MEDIA_PERFORMANCE_CLASS_15
641      specification: "MUST have a codec initialization latency of 30 ms or less for a 128 kbps or lower bitrate audio decoding session for all audio 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."
642      required_values: {
643        key: "codec_initialization_latency_ms"
644        value {
645          long_value: 30
646        }
647      }
648    }
649  }
650}
651requirements {
652  id: "5.1/H-1-14"
653  description: "- AV1 hardware decoder\n- Film grain effect"
654  specs {
655    key: 33
656    value {
657      mpc: MEDIA_PERFORMANCE_CLASS_13
658      specification: "MUST support AV1 hardware decoder Main 10, Level 4.1."
659    }
660  }
661  specs {
662    key: 34
663    value {
664      mpc: MEDIA_PERFORMANCE_CLASS_14
665      specification: "MUST support AV1 hardware decoder Main 10, Level 4.1 and film grain."
666    }
667  }
668  specs {
669    key: 35
670    value {
671      mpc: MEDIA_PERFORMANCE_CLASS_15
672      specification: "MUST support AV1 hardware decoder Main 10, Level 4.1 with film grain effect over GPU composition."
673    }
674  }
675}
676requirements {
677  id: "5.1/H-SR-1"
678  specs {
679    key: 33
680    value {
681      mpc: MEDIA_PERFORMANCE_CLASS_13
682      specification: "Are STRONGLY RECOMMENDED to support Film Grain for AV1 hardware decoder."
683    }
684  }
685}
686requirements {
687  id: "5.1/H-1-15"
688  description: "- Secure hardware decoders"
689  specs {
690    key: 33
691    value {
692      mpc: MEDIA_PERFORMANCE_CLASS_13
693      specification: "MUST have at least 1 hardware video decoder supporting 4K60."
694    }
695  }
696  specs {
697    key: 34
698    value {
699      mpc: MEDIA_PERFORMANCE_CLASS_14
700      specification: "same"
701    }
702  }
703  specs {
704    key: 35
705    value {
706      mpc: MEDIA_PERFORMANCE_CLASS_15
707      specification: "same"
708    }
709  }
710}
711requirements {
712  id: "5.1/H-1-16"
713  description: "- Secure hardware decoders"
714  specs {
715    key: 33
716    value {
717      mpc: MEDIA_PERFORMANCE_CLASS_13
718      specification: "MUST have at least 1 hardware video encoder supporting 4K60."
719    }
720  }
721  specs {
722    key: 34
723    value {
724      mpc: MEDIA_PERFORMANCE_CLASS_14
725      specification: "same"
726    }
727  }
728  specs {
729    key: 35
730    value {
731      mpc: MEDIA_PERFORMANCE_CLASS_15
732      specification: "same"
733    }
734  }
735}
736requirements {
737  id: "5.1/H-1-17"
738  description: "- AVIF Baseline Profile"
739  specs {
740    key: 34
741    value {
742      mpc: MEDIA_PERFORMANCE_CLASS_14
743      specification: "MUST have at least 1 hardware image decoder supporting AVIF Baseline Profile."
744    }
745  }
746  specs {
747    key: 35
748    value {
749      mpc: MEDIA_PERFORMANCE_CLASS_15
750      specification: "same"
751    }
752  }
753}
754requirements {
755  id: "5.1/H-1-18"
756  description: "- AV1 encoder"
757  specs {
758    key: 34
759    value {
760      mpc: MEDIA_PERFORMANCE_CLASS_14
761      specification: "MUST support AV1 encoder which can encode up to 480p resolution at 30fps and 1Mbps."
762    }
763  }
764  specs {
765    key: 35
766    value {
767      mpc: MEDIA_PERFORMANCE_CLASS_15
768      specification: "same"
769    }
770  }
771}
772requirements {
773  id: "5.12/H-SR"
774  specs {
775    key: 34
776    value {
777      mpc: MEDIA_PERFORMANCE_CLASS_14
778      specification: "Are Strongly Recommended to support support the Feature_HdrEditing feature for all hardware AV1 and HEVC encoders present on the device."
779    }
780  }
781  specs {
782    key: 35
783    value {
784      mpc: MEDIA_PERFORMANCE_CLASS_15
785      specification: "same"
786    }
787  }
788}
789requirements {
790  id: "5.1/H-1-19"
791  description: "- HDR video codecs"
792  specs {
793    key: 34
794    value {
795      mpc: MEDIA_PERFORMANCE_CLASS_14
796      specification: "MUST support 3 instances of 10-bit (HDR) hardware video decoder and hardware video encoder sessions (AVC, HEVC, VP9, AV1 or later) in any codec combination running concurrently at 4K@30fps resolution (unless AV1) out of which at most 1 is an encoder session, which could be configured in RGBA_1010102 input format through a GL surface. HDR metadata generation by the encoder is not required if encoding from the GL surface. AV1 codec sessions are only required to support 1080p resolution even when this requirement calls for 4K."
797    }
798  }
799  specs {
800    key: 35
801    value {
802      mpc: MEDIA_PERFORMANCE_CLASS_15
803      specification: "MUST support 2 instances of secure hardware video decoder sessions (AVC, HEVC, VP9, AV1, or later) in any codec combination running concurrently at 4k resolution@30 fps (unless AV1) for both 8-bit (SDR) and 10-bit HDR content. 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."
804    }
805  }
806}
807requirements {
808  id: "5.1/H-1-20"
809  specs {
810    key: 35
811    value {
812      mpc: MEDIA_PERFORMANCE_CLASS_15
813      specification: "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."
814    }
815  }
816}
817requirements {
818  id: "5.1/H-1-21"
819  specs {
820    key: 35
821    value {
822      mpc: MEDIA_PERFORMANCE_CLASS_15
823      specification: "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."
824    }
825  }
826}
827requirements {
828  id: "5.1/H-1-22"
829  specs {
830    key: 35
831    value {
832      mpc: MEDIA_PERFORMANCE_CLASS_15
833      specification: "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."
834    }
835  }
836}
837requirements {
838  id: "5.12/H-1-2"
839  name: "RGBA 1010102 color format"
840  description: "RGBA_1010102 color format support for hardware encoders."
841  measurements: {
842    key: "rgba_1010102_color_format"
843    value: {
844      description: "Is RGBA_1010102 supported."
845      measurement_type: MEASUREMENT_TYPE_BOOL
846      comparison: COMPARISON_EQUAL
847    }
848  }
849  specs {
850    key: 34
851    value {
852      mpc: MEDIA_PERFORMANCE_CLASS_14
853      specification: "MUST support RGBA_1010102 color format for all hardware AV1 and HEVC encoders present on the device."
854      required_values: {
855        key: "rgba_1010102_color_format"
856        value {
857          bool_value: true
858        }
859      }
860    }
861  }
862  specs {
863    key: 35
864    value {
865      mpc: MEDIA_PERFORMANCE_CLASS_15
866      specification: "MUST support RGBA_1010102 color format for all hardware AV1 and HEVC encoders present on the device."
867      required_values: {
868        key: "rgba_1010102_color_format"
869        value {
870          bool_value: true
871        }
872      }
873    }
874  }
875}
876requirements {
877  id: "5.12/H-1-3"
878  description: "- YUV texture sampling"
879  specs {
880    key: 34
881    value {
882      mpc: MEDIA_PERFORMANCE_CLASS_14
883      specification: "MUST advertise support for the EXT_YUV_target extension to sample from YUV textures in both 8 and 10-bits."
884    }
885  }
886  specs {
887    key: 35
888    value {
889      mpc: MEDIA_PERFORMANCE_CLASS_15
890      specification: "same"
891    }
892  }
893}
894requirements {
895  id: "5.2/H-2-1"
896  name: "VEQ"
897  description: "Video encoding quality (VEQ) tests."
898  measurements: {
899    key: "bdrate_vmaf"
900    value: {
901      description: "BDRATE-VMAF result"
902      measurement_type: MEASUREMENT_TYPE_DOUBLE
903      comparison: COMPARISON_LESS_THAN_OR_EQUAL
904    }
905  }
906  measurements: {
907    key: "calculated"
908    value: {
909      description:
910        "Was BDRATE-VMAF calculated. "
911        "Because 0 is a passing BDRATE-VMAF result, setting this field verifies "
912        "the calculation was done."
913      measurement_type: MEASUREMENT_TYPE_BOOL
914      comparison: COMPARISON_EQUAL
915    }
916  }
917  measurements: {
918    key: "codec_name"
919    value: {
920      description: "Codec name"
921      measurement_type: MEASUREMENT_TYPE_STRING
922      comparison: COMPARISON_INFO_ONLY
923    }
924  }
925  measurements: {
926    key: "bframes_allowed"
927    value: {
928      description: "The encoding is allowed to include b-frames."
929      measurement_type: MEASUREMENT_TYPE_BOOL
930      comparison: COMPARISON_INFO_ONLY
931    }
932  }
933  measurements: {
934    key: "resolution"
935    value: {
936      description:
937        "The resolution of the video written as height x width p "
938        "(for example 1080x1920p)."
939      measurement_type: MEASUREMENT_TYPE_BOOL
940      comparison: COMPARISON_INFO_ONLY
941    }
942  }
943  specs {
944    key: 34
945    value {
946      mpc: MEDIA_PERFORMANCE_CLASS_14
947      specification:
948        "MUST meet the minimum quality target defined by the video encoder "
949        "rate-distortion curves for hardware AVC and HEVC codecs, as defined "
950        "in Run Performance Class 14 (PC14)-Video encoding quality (VEQ) tests."
951      required_values: {
952        key: "bdrate_vmaf"
953        value {
954          double_value: 0.0
955        }
956      }
957      required_values: {
958        key: "calculated"
959        value {
960          bool_value: true
961        }
962      }
963      required_values: {
964        key: "codec_name"
965        value {
966        }
967      }
968      required_values: {
969        key: "bframes_allowed"
970        value {
971        }
972      }
973      required_values: {
974        key: "resolution"
975        value {
976        }
977      }
978    }
979  }
980  specs {
981    key: 35
982    value {
983      mpc: MEDIA_PERFORMANCE_CLASS_14
984      specification:
985        "MUST meet the minimum quality target defined by the video encoder "
986        "rate-distortion curves for hardware AVC and HEVC codecs, as defined "
987        "in Run Performance Class 14 (PC14)-Video encoding quality (VEQ) tests."
988      required_values: {
989        key: "bdrate_vmaf"
990        value {
991          double_value: 0.0
992        }
993      }
994      required_values: {
995        key: "calculated"
996        value {
997          bool_value: true
998        }
999      }
1000      required_values: {
1001        key: "codec_name"
1002        value {
1003        }
1004      }
1005      required_values: {
1006        key: "bframes_allowed"
1007        value {
1008        }
1009      }
1010      required_values: {
1011        key: "resolution"
1012        value {
1013        }
1014      }
1015    }
1016  }
1017}
1018requirements {
1019  id: "5.3/H-1-1"
1020  description: "- Decoder frame drops"
1021  specs {
1022    key: 30
1023    value {
1024      mpc: MEDIA_PERFORMANCE_CLASS_11
1025      specification: "MUST NOT drop more than 1 frame in 10 seconds (i.e less than 0.333 percent frame drop) for a 1080p 30 fps video session under load. 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."
1026    }
1027  }
1028  specs {
1029    key: 31
1030    value {
1031      mpc: MEDIA_PERFORMANCE_CLASS_12
1032      specification: "MUST NOT drop more than 2 frames in 10 seconds (i.e less than 0.333 percent frame drop) for a 1080p 60 fps video session under load. 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."
1033    }
1034  }
1035  specs {
1036    key: 33
1037    value {
1038      mpc: MEDIA_PERFORMANCE_CLASS_13
1039      specification: "MUST NOT drop more than 1 frame in 10 seconds (i.e less than 0.167 percent frame drop) for a 1080p 60 fps video session under load. 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."
1040    }
1041  }
1042  specs {
1043    key: 34
1044    value {
1045      mpc: MEDIA_PERFORMANCE_CLASS_14
1046      specification: "MUST NOT drop more than 1 frame in 10 seconds (i.e less than 0.167 percent frame drop) for a 4K 60 fps video session under load."
1047    }
1048  }
1049  specs {
1050    key: 35
1051    value {
1052      mpc: MEDIA_PERFORMANCE_CLASS_15
1053      specification: "same"
1054    }
1055  }
1056}
1057requirements {
1058  id: "5.3/H-1-2"
1059  description: "- Decoder frame drops"
1060  specs {
1061    key: 30
1062    value {
1063      mpc: MEDIA_PERFORMANCE_CLASS_11
1064      specification: "MUST NOT drop more than 1 frame in 10 seconds during a video resolution change in a 30 fps video session under load. Load is defined as a concurrent 1080p to 720p video-only transcoding session using hardware video codecs, as well as a 128Kbps AAC audio playback."
1065    }
1066  }
1067  specs {
1068    key: 31
1069    value {
1070      mpc: MEDIA_PERFORMANCE_CLASS_12
1071      specification: "MUST NOT drop more than 2 frames in 10 seconds during a video resolution change in a 60 fps video session under load. 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."
1072    }
1073  }
1074  specs {
1075    key: 33
1076    value {
1077      mpc: MEDIA_PERFORMANCE_CLASS_13
1078      specification: "MUST NOT drop more than 1 frame in 10 seconds during a video resolution change in a 60 fps video session under load. 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."
1079    }
1080  }
1081  specs {
1082    key: 34
1083    value {
1084      mpc: MEDIA_PERFORMANCE_CLASS_14
1085      specification: "MUST NOT drop more than 1 frame in 10 seconds during a video resolution change in a 60 fps video session under load for a 4K session."
1086    }
1087  }
1088  specs {
1089    key: 35
1090    value {
1091      mpc: MEDIA_PERFORMANCE_CLASS_15
1092      specification: "same"
1093    }
1094  }
1095}
1096requirements {
1097  id: "5.6/H-1-1"
1098  description: "- Round-trip audio latency"
1099  specs {
1100    key: 30
1101    value {
1102      mpc: MEDIA_PERFORMANCE_CLASS_11
1103      specification: "MUST have a tap-to-tone latency of less than 100 milliseconds using the OboeTester tap-to-tone test or CTS Verifier tap-to-tone test."
1104    }
1105  }
1106  specs {
1107    key: 31
1108    value {
1109      mpc: MEDIA_PERFORMANCE_CLASS_12
1110      specification: "same"
1111    }
1112  }
1113  specs {
1114    key: 33
1115    value {
1116      mpc: MEDIA_PERFORMANCE_CLASS_13
1117      specification: "MUST have a tap-to-tone latency of 80 milliseconds or less using the OboeTester tap-to-tone test or CTS Verifier tap-to-tone test."
1118    }
1119  }
1120  specs {
1121    key: 34
1122    value {
1123      mpc: MEDIA_PERFORMANCE_CLASS_14
1124      specification: "MUST have a tap-to-tone latency of 80 milliseconds or less using the CTS Verifier tap-to-tone test."
1125    }
1126  }
1127  specs {
1128    key: 35
1129    value {
1130      mpc: MEDIA_PERFORMANCE_CLASS_15
1131      specification: "same"
1132    }
1133  }
1134}
1135requirements {
1136  id: "5.6/H-1-2"
1137  description: "- Round-trip audio latency"
1138  specs {
1139    key: 33
1140    value {
1141      mpc: MEDIA_PERFORMANCE_CLASS_13
1142      specification: "MUST have a round-trip audio latency of 80 milliseconds or less over at least one supported data path."
1143    }
1144  }
1145  specs {
1146    key: 34
1147    value {
1148      mpc: MEDIA_PERFORMANCE_CLASS_14
1149      specification: "same"
1150    }
1151  }
1152  specs {
1153    key: 35
1154    value {
1155      mpc: MEDIA_PERFORMANCE_CLASS_15
1156      specification: "same"
1157    }
1158  }
1159}
1160requirements {
1161  id: "5.6/H-1-3"
1162  description: "- Wired headsets and USB audio devices"
1163  specs {
1164    key: 33
1165    value {
1166      mpc: MEDIA_PERFORMANCE_CLASS_13
1167      specification: "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."
1168    }
1169  }
1170  specs {
1171    key: 34
1172    value {
1173      mpc: MEDIA_PERFORMANCE_CLASS_14
1174      specification: "same"
1175    }
1176  }
1177  specs {
1178    key: 35
1179    value {
1180      mpc: MEDIA_PERFORMANCE_CLASS_15
1181      specification: "same"
1182    }
1183  }
1184}
1185requirements {
1186  id: "5.6/H-1-4"
1187  description: "- Wired headsets and USB audio devices"
1188  specs {
1189    key: 33
1190    value {
1191      mpc: MEDIA_PERFORMANCE_CLASS_13
1192      specification: "MUST support >=4 channel USB audio devices (This is used by DJ controllers for previewing songs.)"
1193    }
1194  }
1195  specs {
1196    key: 34
1197    value {
1198      mpc: MEDIA_PERFORMANCE_CLASS_14
1199      specification: "same"
1200    }
1201  }
1202  specs {
1203    key: 35
1204    value {
1205      mpc: MEDIA_PERFORMANCE_CLASS_15
1206      specification: "same"
1207    }
1208  }
1209}
1210requirements {
1211  id: "5.6/H-1-5"
1212  description: "- MIDI devices"
1213  specs {
1214    key: 33
1215    value {
1216      mpc: MEDIA_PERFORMANCE_CLASS_13
1217      specification: "MUST support class compliant MIDI devices and declare the MIDI feature flag."
1218    }
1219  }
1220  specs {
1221    key: 34
1222    value {
1223      mpc: MEDIA_PERFORMANCE_CLASS_14
1224      specification: "same"
1225    }
1226  }
1227  specs {
1228    key: 35
1229    value {
1230      mpc: MEDIA_PERFORMANCE_CLASS_15
1231      specification: "same"
1232    }
1233  }
1234}
1235requirements {
1236  id: "5.6/H-1-9"
1237  description: "- Multichannel audio mixing"
1238  specs {
1239    key: 34
1240    value {
1241      mpc: MEDIA_PERFORMANCE_CLASS_14
1242      specification: "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."
1243    }
1244  }
1245  specs {
1246    key: 35
1247    value {
1248      mpc: MEDIA_PERFORMANCE_CLASS_15
1249      specification: "same"
1250    }
1251  }
1252}
1253requirements {
1254  id: "5.6/H-SR"
1255  specs {
1256    key: 34
1257    value {
1258      mpc: MEDIA_PERFORMANCE_CLASS_14
1259      specification: "Are STRONGLY RECOMMENDED to support 24 channel mixing with at least support for 9.1.6 and 22.2 channel masks."
1260    }
1261  }
1262  specs {
1263    key: 35
1264    value {
1265      mpc: MEDIA_PERFORMANCE_CLASS_15
1266      specification: "same"
1267    }
1268  }
1269}
1270requirements {
1271  id: "5.7/H-1-2"
1272  description: "- Hardware-backed trusted execution environment"
1273  specs {
1274    key: 33
1275    value {
1276      mpc: MEDIA_PERFORMANCE_CLASS_13
1277      specification: "MUST support MediaDrm.SECURITY_LEVEL_HW_12ECURE_ALL with the below content decryption capabilities.\nMinimum Sample size        4 MiB\nMinimum Number of Subsamples - H264 or HEVC        32\nMinimum Number of Subsamples - VP9        9\nMinimum Number of Subsamples - AV1        288\nMinimum subsample buffer size        1 MiB\nMinimum Generic crypto buffer size        500 KiB\nMinimum Number of concurrent sessions        30\nMinimum Number of keys per session        20\nMinimum Total Number of Keys (all sessions)        80\nMinimum Total Number of DRM Keys (all sessions)        6\nMessage Size        16 KiB\nDecrypted Frames per Second        60 fps"
1278    }
1279  }
1280  specs {
1281    key: 34
1282    value {
1283      mpc: MEDIA_PERFORMANCE_CLASS_14
1284      specification: "same"
1285    }
1286  }
1287  specs {
1288    key: 35
1289    value {
1290      mpc: MEDIA_PERFORMANCE_CLASS_15
1291      specification: "same"
1292    }
1293  }
1294}
1295requirements {
1296  id: "7.5/H-1-1"
1297  description: "- Resolution and frame rate"
1298  specs {
1299    key: 30
1300    value {
1301      mpc: MEDIA_PERFORMANCE_CLASS_11
1302      specification: "MUST have a primary rear facing camera with a resolution of at least 12 megapixels supporting video capture at 4k@30fps. The primary rear-facing camera is the rear-facing camera with the lowest camera ID."
1303    }
1304  }
1305  specs {
1306    key: 31
1307    value {
1308      mpc: MEDIA_PERFORMANCE_CLASS_12
1309      specification: "same"
1310    }
1311  }
1312  specs {
1313    key: 33
1314    value {
1315      mpc: MEDIA_PERFORMANCE_CLASS_13
1316      specification: "same"
1317    }
1318  }
1319  specs {
1320    key: 34
1321    value {
1322      mpc: MEDIA_PERFORMANCE_CLASS_14
1323      specification: "same"
1324    }
1325  }
1326  specs {
1327    key: 35
1328    value {
1329      mpc: MEDIA_PERFORMANCE_CLASS_15
1330      specification: "MUST have a primary rear facing camera with a resolution of at least 12 megapixels supporting video capture at 4k@30fps, 1080p@60fps, and 720p@60fps. The primary rear-facing camera is the rear-facing camera with the lowest camera ID."
1331    }
1332  }
1333}
1334requirements {
1335  id: "7.5/H-1-2"
1336  description: "- Resolution and frame rate"
1337  specs {
1338    key: 30
1339    value {
1340      mpc: MEDIA_PERFORMANCE_CLASS_11
1341      specification: "MUST have a primary front facing camera with a resolution of at least 4 megapixels supporting video capture at 1080p@30fps. The primary front-facing camera is the front-facing camera with the lowest camera ID."
1342    }
1343  }
1344  specs {
1345    key: 31
1346    value {
1347      mpc: MEDIA_PERFORMANCE_CLASS_12
1348      specification: "MUST have a primary front facing camera with a resolution of at least 5 megapixels and support video capture at 1080p@30fps. The primary front-facing camera is the front-facing camera with the lowest camera ID."
1349    }
1350  }
1351  specs {
1352    key: 33
1353    value {
1354      mpc: MEDIA_PERFORMANCE_CLASS_13
1355      specification: "same"
1356    }
1357  }
1358  specs {
1359    key: 34
1360    value {
1361      mpc: MEDIA_PERFORMANCE_CLASS_14
1362      specification: "MUST have a primary front-facing camera with a resolution of at least 6 megapixels and support video capture at 1080p@30fps. The primary front-facing camera is the front-facing camera with the lowest camera ID."
1363    }
1364  }
1365  specs {
1366    key: 35
1367    value {
1368      mpc: MEDIA_PERFORMANCE_CLASS_15
1369      specification: "same"
1370    }
1371  }
1372}
1373requirements {
1374  id: "7.5/H-1-3"
1375  description: "- FULL or better hardware level"
1376  specs {
1377    key: 30
1378    value {
1379      mpc: MEDIA_PERFORMANCE_CLASS_11
1380      specification: "MUST support android.info.supportedHardwareLevel property as FULL or better for back primary and LIMITED or better for front primary camera."
1381    }
1382  }
1383  specs {
1384    key: 31
1385    value {
1386      mpc: MEDIA_PERFORMANCE_CLASS_12
1387      specification: "MUST support android.info.supportedHardwareLevel property as FULL or better for both primary cameras."
1388    }
1389  }
1390  specs {
1391    key: 33
1392    value {
1393      mpc: MEDIA_PERFORMANCE_CLASS_13
1394      specification: "same"
1395    }
1396  }
1397  specs {
1398    key: 34
1399    value {
1400      mpc: MEDIA_PERFORMANCE_CLASS_14
1401      specification: "same"
1402    }
1403  }
1404  specs {
1405    key: 35
1406    value {
1407      mpc: MEDIA_PERFORMANCE_CLASS_15
1408      specification: "same"
1409    }
1410  }
1411}
1412requirements {
1413  id: "7.5/H-1-4"
1414  description: "- Timestamp source is realtime"
1415  specs {
1416    key: 30
1417    value {
1418      mpc: MEDIA_PERFORMANCE_CLASS_11
1419      specification: "MUST support CameraMetadata.SENSOR_INFO_13IMESTAMP_12OURCE_11EALTIME for both primary cameras."
1420    }
1421  }
1422  specs {
1423    key: 31
1424    value {
1425      mpc: MEDIA_PERFORMANCE_CLASS_12
1426      specification: "same"
1427    }
1428  }
1429  specs {
1430    key: 33
1431    value {
1432      mpc: MEDIA_PERFORMANCE_CLASS_13
1433      specification: "same"
1434    }
1435  }
1436  specs {
1437    key: 34
1438    value {
1439      mpc: MEDIA_PERFORMANCE_CLASS_14
1440      specification: "same"
1441    }
1442  }
1443  specs {
1444    key: 35
1445    value {
1446      mpc: MEDIA_PERFORMANCE_CLASS_15
1447      specification: "same"
1448    }
1449  }
1450}
1451requirements {
1452  id: "7.5/H-1-5"
1453  description: "- Startup and capture latencies"
1454  specs {
1455    key: 30
1456    value {
1457      mpc: MEDIA_PERFORMANCE_CLASS_11
1458      specification: "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."
1459    }
1460  }
1461  specs {
1462    key: 31
1463    value {
1464      mpc: MEDIA_PERFORMANCE_CLASS_12
1465      specification: "same"
1466    }
1467  }
1468  specs {
1469    key: 33
1470    value {
1471      mpc: MEDIA_PERFORMANCE_CLASS_13
1472      specification: "same"
1473    }
1474  }
1475  specs {
1476    key: 34
1477    value {
1478      mpc: MEDIA_PERFORMANCE_CLASS_14
1479      specification: "same"
1480    }
1481  }
1482  specs {
1483    key: 35
1484    value {
1485      mpc: MEDIA_PERFORMANCE_CLASS_15
1486      specification: "same"
1487    }
1488  }
1489}
1490requirements {
1491  id: "7.5/H-1-6"
1492  description: "- Startup and capture latencies"
1493  specs {
1494    key: 30
1495    value {
1496      mpc: MEDIA_PERFORMANCE_CLASS_11
1497      specification: "MUST have camera2 startup latency (open camera to first preview frame) < 600 ms as measured by the CTS camera PerformanceTest under ITS lighting conditions (3000K) for both primary cameras."
1498    }
1499  }
1500  specs {
1501    key: 31
1502    value {
1503      mpc: MEDIA_PERFORMANCE_CLASS_12
1504      specification: "same"
1505    }
1506  }
1507  specs {
1508    key: 33
1509    value {
1510      mpc: MEDIA_PERFORMANCE_CLASS_13
1511      specification: "MUST have camera2 startup latency (open camera to first preview frame) < 500 ms as measured by the CTS camera PerformanceTest under ITS lighting conditions (3000K) for both primary cameras."
1512    }
1513  }
1514  specs {
1515    key: 34
1516    value {
1517      mpc: MEDIA_PERFORMANCE_CLASS_14
1518      specification: "same"
1519    }
1520  }
1521  specs {
1522    key: 35
1523    value {
1524      mpc: MEDIA_PERFORMANCE_CLASS_15
1525      specification: "same"
1526    }
1527  }
1528}
1529requirements {
1530  id: "7.5/H-1-8"
1531  description: "- RAW capability"
1532  specs {
1533    key: 31
1534    value {
1535      mpc: MEDIA_PERFORMANCE_CLASS_12
1536      specification: "MUST support CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_11AW and android.graphics.ImageFormat.RAW_12ENSOR for the primary back camera."
1537    }
1538  }
1539  specs {
1540    key: 33
1541    value {
1542      mpc: MEDIA_PERFORMANCE_CLASS_13
1543      specification: "same"
1544    }
1545  }
1546  specs {
1547    key: 34
1548    value {
1549      mpc: MEDIA_PERFORMANCE_CLASS_14
1550      specification: "same"
1551    }
1552  }
1553  specs {
1554    key: 35
1555    value {
1556      mpc: MEDIA_PERFORMANCE_CLASS_15
1557      specification: "same"
1558    }
1559  }
1560}
1561requirements {
1562  id: "7.5/H-1-9"
1563  description: "- Slow-mo recording"
1564  specs {
1565    key: 33
1566    value {
1567      mpc: MEDIA_PERFORMANCE_CLASS_13
1568      specification: "same"
1569    }
1570  }
1571  specs {
1572    key: 34
1573    value {
1574      mpc: MEDIA_PERFORMANCE_CLASS_14
1575      specification: "same"
1576    }
1577  }
1578  specs {
1579    key: 35
1580    value {
1581      mpc: MEDIA_PERFORMANCE_CLASS_15
1582      specification: "same"
1583    }
1584  }
1585}
1586requirements {
1587  id: "7.5/H-1-10"
1588  description: "- Minimum zoom ratio for ultrawide cameras"
1589  specs {
1590    key: 33
1591    value {
1592      mpc: MEDIA_PERFORMANCE_CLASS_13
1593      specification: "MUST have min ZOOM_11ATIO < 1.0 for the primary cameras if there is an ultrawide RGB camera facing the same direction."
1594    }
1595  }
1596  specs {
1597    key: 34
1598    value {
1599      mpc: MEDIA_PERFORMANCE_CLASS_14
1600      specification: "same"
1601    }
1602  }
1603  specs {
1604    key: 35
1605    value {
1606      mpc: MEDIA_PERFORMANCE_CLASS_15
1607      specification: "same"
1608    }
1609  }
1610}
1611requirements {
1612  id: "7.5/H-1-11"
1613  description: "- Concurrent camera"
1614  specs {
1615    key: 33
1616    value {
1617      mpc: MEDIA_PERFORMANCE_CLASS_13
1618      specification: "MUST implement concurrent front-back streaming on primary cameras."
1619    }
1620  }
1621  specs {
1622    key: 34
1623    value {
1624      mpc: MEDIA_PERFORMANCE_CLASS_14
1625      specification: "same"
1626    }
1627  }
1628  specs {
1629    key: 35
1630    value {
1631      mpc: MEDIA_PERFORMANCE_CLASS_15
1632      specification: "same"
1633    }
1634  }
1635}
1636requirements {
1637  id: "7.5/H-1-12"
1638  description: "- Preview stabilization"
1639  specs {
1640    key: 33
1641    value {
1642      mpc: MEDIA_PERFORMANCE_CLASS_13
1643      specification: "MUST support CONTROL_VIDEO_12TABILIZATION_MODE_PREVIEW_12TABILIZATION for both primary front and primary back camera."
1644    }
1645  }
1646  specs {
1647    key: 34
1648    value {
1649      mpc: MEDIA_PERFORMANCE_CLASS_14
1650      specification: "same"
1651    }
1652  }
1653  specs {
1654    key: 35
1655    value {
1656      mpc: MEDIA_PERFORMANCE_CLASS_15
1657      specification: "same"
1658    }
1659  }
1660}
1661requirements {
1662  id: "7.5/H-1-13"
1663  description: "- Logical multi-camera"
1664  specs {
1665    key: 33
1666    value {
1667      mpc: MEDIA_PERFORMANCE_CLASS_13
1668      specification: "MUST support LOGICAL_MULTI_CAMERA capability for the primary cameras if there are greater than 1 RGB cameras facing the same direction."
1669    }
1670  }
1671  specs {
1672    key: 34
1673    value {
1674      mpc: MEDIA_PERFORMANCE_CLASS_14
1675      specification: "same"
1676    }
1677  }
1678  specs {
1679    key: 35
1680    value {
1681      mpc: MEDIA_PERFORMANCE_CLASS_15
1682      specification: "same"
1683    }
1684  }
1685}
1686requirements {
1687  id: "7.5/H-1-14"
1688  description: "- Stream use case"
1689  specs {
1690    key: 33
1691    value {
1692      mpc: MEDIA_PERFORMANCE_CLASS_13
1693      specification: "MUST support STREAM_14SE_CASE capability for both primary front and primary back camera."
1694    }
1695  }
1696  specs {
1697    key: 34
1698    value {
1699      mpc: MEDIA_PERFORMANCE_CLASS_14
1700      specification: "same"
1701    }
1702  }
1703  specs {
1704    key: 35
1705    value {
1706      mpc: MEDIA_PERFORMANCE_CLASS_15
1707      specification: "same"
1708    }
1709  }
1710}
1711requirements {
1712  id: "7.5/H-1-15"
1713  description: "- Night mode extension"
1714  specs {
1715    key: 34
1716    value {
1717      mpc: MEDIA_PERFORMANCE_CLASS_14
1718      specification: "MUST support ~Bokeh &~ Night mode extensions via both CameraX and Camera2 extensions for primary cameras."
1719    }
1720  }
1721  specs {
1722    key: 35
1723    value {
1724      mpc: MEDIA_PERFORMANCE_CLASS_15
1725      specification: "same"
1726    }
1727  }
1728}
1729requirements {
1730  id: "7.5/H-1-16"
1731  description: "- HDR-capable primary camera"
1732  specs {
1733    key: 34
1734    value {
1735      mpc: MEDIA_PERFORMANCE_CLASS_14
1736      specification: "MUST support DYNAMIC_RANGE_TEN_BIT capability for the primary cameras."
1737    }
1738  }
1739  specs {
1740    key: 35
1741    value {
1742      mpc: MEDIA_PERFORMANCE_CLASS_15
1743      specification: "same"
1744    }
1745  }
1746}
1747requirements {
1748  id: "7.5/H-1-17"
1749  description: "- Face detection scene mode"
1750  specs {
1751    key: 34
1752    value {
1753      mpc: MEDIA_PERFORMANCE_CLASS_14
1754      specification: "MUST support CONTROL_SCENE_MODE_FACE_PRIORITY and face detection (STATISTICS_FACE_DETECT_MODE_SIMPLE or STATISTICS_FACE_DETECT_MODE_FULL) for the primary cameras."
1755    }
1756  }
1757  specs {
1758    key: 35
1759    value {
1760      mpc: MEDIA_PERFORMANCE_CLASS_15
1761      specification: "same"
1762    }
1763  }
1764}
1765requirements {
1766  id: "7.5/H-1-18"
1767  specs {
1768    key: 35
1769    value {
1770      mpc: MEDIA_PERFORMANCE_CLASS_15
1771      specification: "MUST support JPEG_R for the primary rear and primary front cameras."
1772    }
1773  }
1774}
1775requirements {
1776  id: "7.5/H-1-19"
1777  specs {
1778    key: 35
1779    value {
1780      mpc: MEDIA_PERFORMANCE_CLASS_15
1781      specification: "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."
1782    }
1783  }
1784}
1785requirements {
1786  id: "7.5/H-1-20"
1787  specs {
1788    key: 35
1789    value {
1790      mpc: MEDIA_PERFORMANCE_CLASS_15
1791      specification: "MUST by default output JPEG_R for the primary rear and primary front cameras in the native camera app."
1792    }
1793  }
1794}
1795requirements {
1796  id: "7.1.1.1/H-1-1"
1797  name: "Screen Resolution R"
1798  description: "- Screen resolution"
1799  measurements {
1800    key: "long_resolution_pixels"
1801    value: {
1802      id: "long_resolution_pixels"
1803      description: "The screen resolution width in pixels (longer of the two dimensions)."
1804      measurement_type: MEASUREMENT_TYPE_INT
1805      comparison: COMPARISON_GREATER_THAN_OR_EQUAL
1806    }
1807  }
1808  measurements {
1809    key: "short_resolution_pixels"
1810    value: {
1811      id: "short_resolution_pixels"
1812      description: "The screen resolution height in pixels (shorter of the two dimensions)."
1813      measurement_type: MEASUREMENT_TYPE_INT
1814      comparison: COMPARISON_GREATER_THAN_OR_EQUAL
1815    }
1816  }
1817  specs {
1818    key: 30
1819    value {
1820      mpc: MEDIA_PERFORMANCE_CLASS_11
1821      specification: "MUST have screen resolution of at least 1080p."
1822      required_values: {
1823        key: "long_resolution_pixels"
1824        value: {
1825          int_value: 1920
1826        }
1827      }
1828      required_values: {
1829        key: "short_resolution_pixels"
1830        value: {
1831          int_value: 1080
1832        }
1833      }
1834    }
1835  }
1836}
1837requirements {
1838  id: "7.1.1.1/H-2-1"
1839  name: "Screen Resolution"
1840  description: "- Screen resolution"
1841  measurements {
1842    key: "long_resolution_pixels"
1843    value: {
1844      id: "long_resolution_pixels"
1845      description: "The screen resolution width in pixels (longer of the two dimensions)."
1846      measurement_type: MEASUREMENT_TYPE_INT
1847      comparison: COMPARISON_GREATER_THAN_OR_EQUAL
1848    }
1849  }
1850  measurements {
1851    key: "short_resolution_pixels"
1852    value: {
1853      id: "short_resolution_pixels"
1854      description: "The screen resolution height in pixels (shorter of the two dimensions)."
1855      measurement_type: MEASUREMENT_TYPE_INT
1856      comparison: COMPARISON_GREATER_THAN_OR_EQUAL
1857    }
1858  }
1859  specs {
1860    key: 31
1861    value {
1862      mpc: MEDIA_PERFORMANCE_CLASS_12
1863      specification: "MUST have screen resolution of at least 1080p."
1864      required_values: {
1865        key: "long_resolution_pixels"
1866        value: {
1867          int_value: 1920
1868        }
1869      }
1870      required_values: {
1871        key: "short_resolution_pixels"
1872        value: {
1873          int_value: 1080
1874        }
1875      }
1876    }
1877  }
1878  specs {
1879    key: 33
1880    value {
1881      mpc: MEDIA_PERFORMANCE_CLASS_13
1882      specification: "same"
1883      required_values: {
1884        key: "long_resolution_pixels"
1885        value: {
1886          int_value: 1920
1887        }
1888      }
1889      required_values: {
1890        key: "short_resolution_pixels"
1891        value: {
1892          int_value: 1080
1893        }
1894      }
1895    }
1896  }
1897  specs {
1898    key: 34
1899    value {
1900      mpc: MEDIA_PERFORMANCE_CLASS_14
1901      specification: "same"
1902      required_values: {
1903        key: "long_resolution_pixels"
1904        value: {
1905          int_value: 1920
1906        }
1907      }
1908      required_values: {
1909        key: "short_resolution_pixels"
1910        value: {
1911          int_value: 1080
1912        }
1913      }
1914    }
1915  }
1916  specs {
1917    key: 35
1918    value {
1919      mpc: MEDIA_PERFORMANCE_CLASS_15
1920      specification: "same"
1921      required_values: {
1922        key: "long_resolution_pixels"
1923        value: {
1924          int_value: 1920
1925        }
1926      }
1927      required_values: {
1928        key: "short_resolution_pixels"
1929        value: {
1930          int_value: 1080
1931        }
1932      }
1933    }
1934  }
1935}
1936requirements {
1937  id: "7.1.1.3/H-1-1"
1938  name: "Screen Density R"
1939  description: "- Screen density"
1940  measurements {
1941    key: "display_density_dpi"
1942    value: {
1943      id: "display_density_dpi"
1944      description: "The screen display density in pixels per square inch."
1945      measurement_type: MEASUREMENT_TYPE_INT
1946      comparison: COMPARISON_GREATER_THAN_OR_EQUAL
1947    }
1948  }
1949  specs {
1950    key: 30
1951    value {
1952      mpc: MEDIA_PERFORMANCE_CLASS_11
1953      specification: "MUST have screen density of at least 400 dpi."
1954      required_values: {
1955        key: "display_density_dpi"
1956        value: {
1957          int_value: 400
1958        }
1959      }
1960    }
1961  }
1962}
1963requirements {
1964  id: "7.1.1.3/H-2-1"
1965  name: "Screen Density"
1966  description: "- Screen density"
1967  measurements {
1968    key: "display_density_dpi"
1969    value: {
1970      id: "display_density_dpi"
1971      description: "The screen display density in pixels per square inch."
1972      measurement_type: MEASUREMENT_TYPE_INT
1973      comparison: COMPARISON_GREATER_THAN_OR_EQUAL
1974    }
1975  }
1976  specs {
1977    key: 31
1978    value {
1979      mpc: MEDIA_PERFORMANCE_CLASS_12
1980      specification: "MUST have screen density of at least 400 dpi."
1981      required_values: {
1982        key: "display_density_dpi"
1983        value: {
1984          int_value: 400
1985        }
1986      }
1987    }
1988  }
1989  specs {
1990    key: 33
1991    value {
1992      mpc: MEDIA_PERFORMANCE_CLASS_13
1993      specification: "same"
1994      required_values: {
1995        key: "display_density_dpi"
1996        value: {
1997          int_value: 400
1998        }
1999      }
2000    }
2001  }
2002  specs {
2003    key: 34
2004    value {
2005      mpc: MEDIA_PERFORMANCE_CLASS_14
2006      specification: "same"
2007      required_values: {
2008        key: "display_density_dpi"
2009        value: {
2010          int_value: 400
2011        }
2012      }
2013    }
2014  }
2015  specs {
2016    key: 35
2017    value {
2018      mpc: MEDIA_PERFORMANCE_CLASS_15
2019      specification: "same"
2020      required_values: {
2021        key: "display_density_dpi"
2022        value: {
2023          int_value: 400
2024        }
2025      }
2026    }
2027  }
2028}
2029requirements {
2030  id: "7.1.1.3/H-3-1"
2031  name: "HDR display"
2032  description: "HDR display"
2033  measurements: [
2034    {
2035      key: "is_hdr"
2036      value: {
2037        id: "is_hdr"
2038        description: "Does the display support HDR"
2039        measurement_type: MEASUREMENT_TYPE_BOOL
2040        comparison: COMPARISON_EQUAL
2041      }
2042    },
2043    {
2044      key: "display_luminance_nits"
2045      value: {
2046        id: "display_luminance_nits"
2047        description: "The display luminance in nits."
2048        measurement_type: MEASUREMENT_TYPE_DOUBLE
2049        comparison: COMPARISON_GREATER_THAN_OR_EQUAL
2050      }
2051    }
2052  ]
2053  specs {
2054    key: 35
2055    value {
2056      mpc: MEDIA_PERFORMANCE_CLASS_INVALID
2057      specification: "MUST have a HDR display supporting at least 1000 nits"
2058      required_values: {
2059        key: "display_luminance_nits"
2060        value: {
2061          double_value: 1000
2062        }
2063      }
2064      required_values: {
2065        key: "is_hdr"
2066        value: {
2067          bool_value: true
2068        }
2069      }
2070    }
2071  }
2072}
2073requirements {
2074  id: "7.1.4/H1-1"
2075  description: "- Hardware overlays"
2076}
2077requirements {
2078  id: "7.6.1/H-1-1"
2079  name: "Android 11 Memory"
2080  description: "Minimum memory available to the kernel as reported by android.app.ActivityManager.MemoryInfo."
2081  measurements: {
2082    key: "physical_memory_mb"
2083    value: {
2084      description: "Physical memory in MiB as reported by android.app.ActivityManager.MemeryInfo.totalMemory."
2085      comparison: COMPARISON_GREATER_THAN_OR_EQUAL
2086      measurement_type: MEASUREMENT_TYPE_LONG
2087    }
2088  }
2089  specs {
2090    key: 30
2091    value {
2092      mpc: MEDIA_PERFORMANCE_CLASS_11
2093      specification: "MUST have at least 6 GB of physical memory."
2094      required_values: {
2095        key: "physical_memory_mb"
2096        value: {
2097          long_value: 5120
2098        }
2099      }
2100    }
2101  }
2102}
2103requirements {
2104  id: "7.6.1/H-2-1"
2105  name: "Memory"
2106  description: "Minimum memory available to the kernel as reported by android.app.ActivityManager.MemoryInfo."
2107  measurements: {
2108    key: "physical_memory_mb"
2109    value: {
2110      description: "Physical memory in MiB as reported by android.app.ActivityManager.MemeryInfo.totalMemory."
2111      comparison: COMPARISON_GREATER_THAN_OR_EQUAL
2112      measurement_type: MEASUREMENT_TYPE_LONG
2113    }
2114  }
2115  specs {
2116    key: 31
2117    value {
2118      mpc: MEDIA_PERFORMANCE_CLASS_12
2119      specification: "MUST have at least 6 GB of physical memory."
2120      required_values: {
2121        key: "physical_memory_mb"
2122        value: {
2123          long_value: 5120
2124        }
2125      }
2126    }
2127  }
2128  specs {
2129    key: 33
2130    value {
2131      mpc: MEDIA_PERFORMANCE_CLASS_13
2132      specification: "MUST have at least 8 GB of physical memory."
2133      required_values: {
2134        key: "physical_memory_mb"
2135        value: {
2136          long_value: 6800
2137        }
2138      }
2139    }
2140  }
2141  specs {
2142    key: 34
2143    value {
2144      mpc: MEDIA_PERFORMANCE_CLASS_14
2145      specification: "MUST have at least 8 GB of physical memory."
2146      required_values: {
2147        key: "physical_memory_mb"
2148        value: {
2149          long_value: 6800
2150        }
2151      }
2152    }
2153  }
2154  specs {
2155    key: 35
2156    value {
2157      mpc: MEDIA_PERFORMANCE_CLASS_15
2158      specification: "MUST have at least 8 GB of physical memory, with at least 6.64 GB available to the kernel as reported by android.app.ActivityManager.MemoryInfo."
2159      required_values: {
2160        key: "physical_memory_mb"
2161        value: {
2162          long_value: 6800
2163        }
2164      }
2165    }
2166  }
2167}
2168requirements {
2169  id: "8.2/H-1-1"
2170  name: "Sequential write"
2171  description: "Sequential write"
2172  measurements: {
2173    key: "filesystem_io_rate_mbps"
2174    value: {
2175      id: "filesystem_io_rate_mbps"
2176      description: "Sequential write performance in MB per second."
2177      measurement_type: MEASUREMENT_TYPE_DOUBLE
2178      comparison: COMPARISON_GREATER_THAN_OR_EQUAL
2179    }
2180  }
2181  specs {
2182    key: 30
2183    value {
2184      mpc: MEDIA_PERFORMANCE_CLASS_11
2185      specification: "MUST ensure a sequential write performance of at least 100 MB/s."
2186      required_values: {
2187        key: "filesystem_io_rate_mbps"
2188        value: {
2189          double_value: 100
2190        }
2191      }
2192    }
2193  }
2194  specs {
2195    key: 33
2196    value {
2197      mpc: MEDIA_PERFORMANCE_CLASS_13
2198      specification: "MUST ensure a sequential write performance of at least 125 MB/s."
2199      required_values: {
2200        key: "filesystem_io_rate_mbps"
2201        value: {
2202          double_value: 125
2203        }
2204      }
2205    }
2206  }
2207  specs {
2208    key: 34
2209    value {
2210      mpc: MEDIA_PERFORMANCE_CLASS_14
2211      specification: "MUST ensure a sequential write performance of at least 150 MB/s."
2212      required_values: {
2213        key: "filesystem_io_rate_mbps"
2214        value: {
2215          double_value: 150
2216        }
2217      }
2218    }
2219  }
2220  specs {
2221    key: 35
2222    value {
2223      mpc: MEDIA_PERFORMANCE_CLASS_15
2224      specification: "MUST ensure a sequential write performance of at least 150&nbsp;MB/s."
2225      required_values: {
2226        key: "filesystem_io_rate_mbps"
2227        value: {
2228          double_value: 150
2229        }
2230      }
2231    }
2232  }
2233}
2234requirements {
2235  id: "8.2/H-2-1"
2236  description: "- Read and write performance"
2237  specs {
2238    key: 31
2239    value {
2240      mpc: MEDIA_PERFORMANCE_CLASS_12
2241      specification: "MUST ensure a sequential write performance of at least 125 MB/s."
2242    }
2243  }
2244}
2245requirements {
2246  id: "8.2/H-1-2"
2247  description: "- Read and write performance"
2248  specs {
2249    key: 30
2250    value {
2251      mpc: MEDIA_PERFORMANCE_CLASS_11
2252      specification: "MUST ensure a random write performance of at least 10 MB/s."
2253    }
2254  }
2255  specs {
2256    key: 33
2257    value {
2258      mpc: MEDIA_PERFORMANCE_CLASS_13
2259      specification: "same"
2260    }
2261  }
2262  specs {
2263    key: 34
2264    value {
2265      mpc: MEDIA_PERFORMANCE_CLASS_14
2266      specification: "same"
2267    }
2268  }
2269  specs {
2270    key: 35
2271    value {
2272      mpc: MEDIA_PERFORMANCE_CLASS_15
2273      specification: "same"
2274    }
2275  }
2276}
2277requirements {
2278  id: "8.2/H-2-2"
2279  description: "- Read and write performance"
2280  specs {
2281    key: 31
2282    value {
2283      mpc: MEDIA_PERFORMANCE_CLASS_12
2284      specification: "same"
2285    }
2286  }
2287}
2288requirements {
2289  id: "8.2/H-1-3"
2290  description: "- Read and write performance"
2291  specs {
2292    key: 30
2293    value {
2294      mpc: MEDIA_PERFORMANCE_CLASS_11
2295      specification: "MUST ensure a sequential read performance of at least 200 MB/s."
2296    }
2297  }
2298  specs {
2299    key: 33
2300    value {
2301      mpc: MEDIA_PERFORMANCE_CLASS_13
2302      specification: "MUST ensure a sequential read performance of at least 250 MB/s."
2303    }
2304  }
2305  specs {
2306    key: 34
2307    value {
2308      mpc: MEDIA_PERFORMANCE_CLASS_14
2309      specification: "same"
2310    }
2311  }
2312  specs {
2313    key: 35
2314    value {
2315      mpc: MEDIA_PERFORMANCE_CLASS_15
2316      specification: "same"
2317    }
2318  }
2319}
2320requirements {
2321  id: "8.2/H-2-3"
2322  description: "- Read and write performance"
2323  specs {
2324    key: 31
2325    value {
2326      mpc: MEDIA_PERFORMANCE_CLASS_12
2327      specification: "MUST ensure a sequential read performance of at least 250 MB/s."
2328    }
2329  }
2330}
2331requirements {
2332  id: "8.2/H-1-4"
2333  description: "- Read and write performance"
2334  specs {
2335    key: 30
2336    value {
2337      mpc: MEDIA_PERFORMANCE_CLASS_11
2338      specification: "MUST ensure a random read performance of at least 25 MB/s."
2339    }
2340  }
2341  specs {
2342    key: 33
2343    value {
2344      mpc: MEDIA_PERFORMANCE_CLASS_13
2345      specification: "MUST ensure a random read performance of at least 40 MB/s."
2346    }
2347  }
2348  specs {
2349    key: 34
2350    value {
2351      mpc: MEDIA_PERFORMANCE_CLASS_14
2352      specification: "MUST ensure a random read performance of at least 100 MB/s."
2353    }
2354  }
2355  specs {
2356    key: 35
2357    value {
2358      mpc: MEDIA_PERFORMANCE_CLASS_15
2359      specification: "same"
2360    }
2361  }
2362}
2363requirements {
2364  id: "8.2/H-2-4"
2365  description: "- Read and write performance"
2366  specs {
2367    key: 31
2368    value {
2369      mpc: MEDIA_PERFORMANCE_CLASS_12
2370      specification: "MUST ensure a random read performance of at least 40 MB/s."
2371    }
2372  }
2373}
2374requirements {
2375  id: "8.2/H-1-5"
2376  description: "- Read and write performance"
2377}
2378requirements {
2379  id: "7.1.4.1/H-1-2"
2380  specs {
2381    key: 35
2382    value {
2383      mpc: MEDIA_PERFORMANCE_CLASS_15
2384      specification: "MUST support the EGL_IMG_context_priority and EGL_EXT_protected_content extensions."
2385    }
2386  }
2387}
2388requirements {
2389  id: "7.1.4.1/H-1-3"
2390  name: "Vulkan"
2391  description: "Must support vulkan physical device protected memory and global priority."
2392  measurements: [
2393    {
2394      key: "vk_ext_global_priority"
2395      value: {
2396        description: "Is VK_EXT_global_priority supported."
2397        measurement_type: MEASUREMENT_TYPE_BOOL
2398        comparison: COMPARISON_EQUAL
2399      }
2400    },
2401    {
2402      key: "vk_physical_device_protected_memory"
2403      value: {
2404        description: "Is VkPhysicalDeviceProtectedMemoryFeatures.protectedMemory supported."
2405        measurement_type: MEASUREMENT_TYPE_BOOL
2406        comparison: COMPARISON_EQUAL
2407      }
2408    },
2409    {
2410      key: "vk_non_cpu_device_count"
2411      value: {
2412        description: "The count of non VK_PHYSICAL_DEVICE_TYPE_CPU Vulcan Devices."
2413        measurement_type: MEASUREMENT_TYPE_INT
2414        comparison: COMPARISON_GREATER_THAN_OR_EQUAL
2415      }
2416    }
2417  ]
2418  specs {
2419    key: 35
2420    value {
2421      mpc: MEDIA_PERFORMANCE_CLASS_15
2422      specification: "MUST support VkPhysicalDeviceProtectedMemoryFeatures.protectedMemory and VK_KHR_global_priority."
2423      required_values: [
2424        {
2425          key: "vk_ext_global_priority"
2426          value: {
2427            bool_value: true
2428
2429          }
2430        },
2431        {
2432          key: "vk_physical_device_protected_memory"
2433          value: {
2434            bool_value: true
2435          }
2436        },
2437        {
2438          key: "vk_non_cpu_device_count"
2439          value: {
2440            int_value: 1
2441          }
2442        }
2443      ]
2444    }
2445  }
2446}
2447