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 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