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 name: "Video Decoder Instances" 21 description: "Video decoder instances" 22 test_configs: { 23 key: "720p" 24 value: { 25 description: "Tests running at 720p" 26 proto_field_number: 1 27 } 28 } 29 test_configs: { 30 key: "1080p" 31 value: { 32 description: "Tests running at 1080p" 33 proto_field_number: 2 34 } 35 } 36 test_configs: { 37 key: "4k" 38 value: { 39 description: "Tests running at 4k" 40 proto_field_number: 3 41 } 42 } 43 variants: { 44 key: "VP9" 45 value: { 46 description: "When one of the codecs is VP9, variant used in 720p tests" 47 } 48 } 49 variants: { 50 key: "AV1" 51 value: { 52 description: "When one of the codecs is AV1, variant used in 720p tests" 53 } 54 } 55 measurements: { 56 key: "concurrent_sessions" 57 value: { 58 description: "The number of concurrent sessions" 59 measurement_type: MEASUREMENT_TYPE_INT 60 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 61 proto_field_number: 3 62 } 63 } 64 measurements: { 65 key: "resolution" 66 value: { 67 description: "The resolution the test was run at" 68 measurement_type: MEASUREMENT_TYPE_INT 69 comparison: COMPARISON_CONFIG 70 proto_field_number: 4 71 } 72 } 73 specs { 74 key: 30 75 value { 76 mpc: MEDIA_PERFORMANCE_CLASS_11 77 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." 78 test_config_id: "720p" 79 required_values: { 80 key: "concurrent_sessions" 81 value { 82 int_value: 6 83 } 84 } 85 required_values: { 86 key: "resolution" 87 value { 88 int_value: 720 89 } 90 } 91 variant_specs: { 92 key: "VP9" 93 value: { 94 required_values: { 95 key: "resolution" 96 value { 97 int_value: 720 98 } 99 } 100 } 101 } 102 variant_specs: { 103 key: "AV1" 104 value: { 105 required_values: { 106 key: "resolution" 107 value { 108 int_value: 720 109 } 110 } 111 } 112 } 113 } 114 } 115 specs { 116 key: 31 117 value { 118 mpc: MEDIA_PERFORMANCE_CLASS_12 119 specification: "same" 120 test_config_id: "720p" 121 required_values: { 122 key: "concurrent_sessions" 123 value { 124 int_value: 6 125 } 126 } 127 required_values: { 128 key: "resolution" 129 value { 130 int_value: 720 131 } 132 } 133 variant_specs: { 134 key: "VP9" 135 value: { 136 required_values: { 137 key: "concurrent_sessions" 138 value { 139 int_value: 2 140 } 141 } 142 required_values: { 143 key: "resolution" 144 value { 145 int_value: 720 146 } 147 } 148 } 149 } 150 variant_specs: { 151 key: "AV1" 152 value: { 153 required_values: { 154 key: "concurrent_sessions" 155 value { 156 int_value: 6 157 } 158 } 159 required_values: { 160 key: "resolution" 161 value { 162 int_value: 720 163 } 164 } 165 } 166 } 167 } 168 } 169 specs { 170 key: 33 171 value { 172 mpc: MEDIA_PERFORMANCE_CLASS_13 173 specification: "same" 174 test_config_id: "1080p" 175 required_values: { 176 key: "concurrent_sessions" 177 value { 178 int_value: 6 179 } 180 } 181 required_values: { 182 key: "resolution" 183 value { 184 int_value: 1080 185 } 186 } 187 } 188 } 189 specs { 190 key: 34 191 value { 192 mpc: MEDIA_PERFORMANCE_CLASS_14 193 specification: "same" 194 test_config_id: "4k" 195 required_values: { 196 key: "concurrent_sessions" 197 value { 198 int_value: 6 199 } 200 } 201 required_values: { 202 key: "resolution" 203 value { 204 int_value: 2160 205 } 206 } 207 } 208 } 209 specs { 210 key: 35 211 value { 212 mpc: MEDIA_PERFORMANCE_CLASS_15 213 specification: "same" 214 test_config_id: "4k" 215 required_values: { 216 key: "concurrent_sessions" 217 value { 218 int_value: 6 219 } 220 } 221 required_values: { 222 key: "resolution" 223 value { 224 int_value: 2160 225 } 226 } 227 } 228 } 229} 230requirements { 231 id: "5.1/H-1-2" 232 name: "Concurrent Video Decoder Sessions" 233 description: "Concurrent video decoder sessions" 234 test_configs: { 235 key: "720p" 236 value: { 237 description: "Tests running at 720p" 238 proto_field_number: 4 239 } 240 } 241 test_configs: { 242 key: "1080p" 243 value: { 244 description: "Tests running at 1080p" 245 proto_field_number: 5 246 } 247 } 248 test_configs: { 249 key: "4k" 250 value: { 251 description: "Tests running at 4k" 252 proto_field_number: 6 253 } 254 } 255 variants: { 256 key: "VP9" 257 value: { 258 description: "When one of the codecs is VP9, variant used in 720p tests" 259 } 260 } 261 variants: { 262 key: "AV1" 263 value: { 264 description: "When one of the codecs is AV1, variant used in 720p tests" 265 } 266 } 267 measurements: { 268 key: "concurrent_fps" 269 value: { 270 description: "The number of frames per second that can be decoded concurrently" 271 measurement_type: MEASUREMENT_TYPE_DOUBLE 272 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 273 proto_field_number: 3 274 } 275 } 276 measurements: { 277 key: "frame_drops_per_sec" 278 value: { 279 description: "The number of frames dropped per second" 280 measurement_type: MEASUREMENT_TYPE_DOUBLE 281 comparison: COMPARISON_LESS_THAN_OR_EQUAL 282 proto_field_number: 4 283 } 284 } 285 measurements: { 286 key: "resolution" 287 value: { 288 description: "The resolution the test was run at" 289 measurement_type: MEASUREMENT_TYPE_INT 290 comparison: COMPARISON_CONFIG 291 proto_field_number: 5 292 } 293 } 294 specs { 295 key: 30 296 value { 297 mpc: MEDIA_PERFORMANCE_CLASS_11 298 specification: "MUST support 6 instances of hardware video decoder sessions (AVC or HEVC) in any codec combination running concurrently at 720p resolution@30 fps." 299 test_config_id: "720p" 300 required_values: { 301 key: "concurrent_fps" 302 value { 303 double_value: 171 # 6 decoders * 30 fps * 0.95 tolerance factor 304 } 305 } 306 required_values: { 307 key: "resolution" 308 value { 309 int_value: 720 310 } 311 } 312 variant_specs: { 313 key: "VP9" 314 value: { 315 required_values: { 316 key: "resolution" 317 value { 318 int_value: 720 319 } 320 } 321 } 322 } 323 variant_specs: { 324 key: "AV1" 325 value: { 326 required_values: { 327 key: "resolution" 328 value { 329 int_value: 720 330 } 331 } 332 } 333 } 334 } 335 } 336 specs { 337 key: 31 338 value { 339 mpc: MEDIA_PERFORMANCE_CLASS_12 340 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." 341 test_config_id: "720p" 342 required_values: { 343 key: "concurrent_fps" 344 value { 345 double_value: 171 # 6 decoders * 30 fps * 0.95 tolerance factor 346 } 347 } 348 required_values: { 349 key: "resolution" 350 value { 351 int_value: 720 352 } 353 } 354 variant_specs: { 355 key: "VP9" 356 value: { 357 required_values: { 358 key: "concurrent_fps" 359 value { 360 double_value: 57 # 2 decoders * 30 fps * 0.95 tolerance factor 361 } 362 } 363 required_values: { 364 key: "resolution" 365 value { 366 int_value: 720 367 } 368 } 369 } 370 } 371 variant_specs: { 372 key: "AV1" 373 value: { 374 required_values: { 375 key: "concurrent_fps" 376 value { 377 double_value: 171 # 6 decoders * 30 fps * 0.95 tolerance factor 378 } 379 } 380 required_values: { 381 key: "resolution" 382 value { 383 int_value: 720 384 } 385 } 386 } 387 } 388 } 389 } 390 specs { 391 key: 33 392 value { 393 mpc: MEDIA_PERFORMANCE_CLASS_13 394 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." 395 test_config_id: "1080p" 396 required_values: { 397 key: "concurrent_fps" 398 value { 399 double_value: 171 # 6 decoders * 30 fps * 0.95 tolerance factor 400 } 401 } 402 required_values: { 403 key: "resolution" 404 value { 405 int_value: 1080 406 } 407 } 408 } 409 } 410 specs { 411 key: 34 412 value { 413 mpc: MEDIA_PERFORMANCE_CLASS_14 414 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." 415 test_config_id: "4k" 416 required_values: { 417 key: "concurrent_fps" 418 value { 419 double_value: 171 # 6 decoders * 30 fps * 0.95 tolerance factor 420 } 421 } 422 required_values: { 423 key: "resolution" 424 value { 425 int_value: 2160 426 } 427 } 428 } 429 } 430 specs { 431 key: 35 432 value { 433 mpc: MEDIA_PERFORMANCE_CLASS_15 434 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." 435 test_config_id: "4k" 436 required_values: { 437 key: "concurrent_fps" 438 value { 439 double_value: 171 # 6 decoders * 30 fps * 0.95 tolerance factor 440 } 441 } 442 required_values: { 443 key: "frame_drops_per_sec" 444 value { 445 double_value: 1 446 } 447 } 448 required_values: { 449 key: "resolution" 450 value { 451 int_value: 2160 452 } 453 } 454 } 455 } 456} 457requirements { 458 id: "5.1/H-1-3" 459 name: "Video Encoder Instances" 460 description: "Video encoder instances" 461 test_configs: { 462 key: "720p" 463 value: { 464 description: "Tests running at 720p" 465 proto_field_number: 7 466 } 467 } 468 test_configs: { 469 key: "1080p" 470 value: { 471 description: "Tests running at 1080p" 472 proto_field_number: 8 473 } 474 } 475 test_configs: { 476 key: "4k" 477 value: { 478 description: "Tests running at 4k" 479 proto_field_number: 9 480 } 481 } 482 variants: { 483 key: "VP9" 484 value: { 485 description: "When one of the codecs is VP9, variant used in 720p tests" 486 } 487 } 488 variants: { 489 key: "AV1" 490 value: { 491 description: "When one of the codecs is AV1, variant used in 720p tests" 492 } 493 } 494 measurements: { 495 key: "concurrent_sessions" 496 value: { 497 description: "The number of concurrent sessions" 498 measurement_type: MEASUREMENT_TYPE_INT 499 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 500 proto_field_number: 3 501 } 502 } 503 measurements: { 504 key: "resolution" 505 value: { 506 description: "The resolution the test was run at" 507 measurement_type: MEASUREMENT_TYPE_INT 508 comparison: COMPARISON_CONFIG 509 proto_field_number: 4 510 } 511 } 512 specs { 513 key: 30 514 value { 515 mpc: MEDIA_PERFORMANCE_CLASS_11 516 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." 517 test_config_id: "720p" 518 required_values: { 519 key: "concurrent_sessions" 520 value { 521 int_value: 6 522 } 523 } 524 required_values: { 525 key: "resolution" 526 value { 527 int_value: 720 528 } 529 } 530 variant_specs: { 531 key: "VP9" 532 value: { 533 required_values: { 534 key: "resolution" 535 value { 536 int_value: 720 537 } 538 } 539 } 540 } 541 variant_specs: { 542 key: "AV1" 543 value: { 544 required_values: { 545 key: "resolution" 546 value { 547 int_value: 720 548 } 549 } 550 } 551 } 552 } 553 } 554 specs { 555 key: 31 556 value { 557 mpc: MEDIA_PERFORMANCE_CLASS_12 558 specification: "same" 559 test_config_id: "720p" 560 required_values: { 561 key: "concurrent_sessions" 562 value { 563 int_value: 6 564 } 565 } 566 required_values: { 567 key: "resolution" 568 value { 569 int_value: 720 570 } 571 } 572 variant_specs: { 573 key: "VP9" 574 value: { 575 required_values: { 576 key: "concurrent_sessions" 577 value { 578 int_value: 2 579 } 580 } 581 required_values: { 582 key: "resolution" 583 value { 584 int_value: 720 585 } 586 } 587 } 588 } 589 variant_specs: { 590 key: "AV1" 591 value: { 592 required_values: { 593 key: "concurrent_sessions" 594 value { 595 int_value: 6 596 } 597 } 598 required_values: { 599 key: "resolution" 600 value { 601 int_value: 720 602 } 603 } 604 } 605 } 606 } 607 } 608 specs { 609 key: 33 610 value { 611 mpc: MEDIA_PERFORMANCE_CLASS_13 612 specification: "same" 613 test_config_id: "1080p" 614 required_values: { 615 key: "concurrent_sessions" 616 value { 617 int_value: 6 618 } 619 } 620 required_values: { 621 key: "resolution" 622 value { 623 int_value: 1080 624 } 625 } 626 } 627 } 628 specs { 629 key: 34 630 value { 631 mpc: MEDIA_PERFORMANCE_CLASS_14 632 specification: "same" 633 test_config_id: "4k" 634 required_values: { 635 key: "concurrent_sessions" 636 value { 637 int_value: 6 638 } 639 } 640 required_values: { 641 key: "resolution" 642 value { 643 int_value: 2160 644 } 645 } 646 } 647 } 648 specs { 649 key: 35 650 value { 651 mpc: MEDIA_PERFORMANCE_CLASS_15 652 specification: "same" 653 test_config_id: "4k" 654 required_values: { 655 key: "concurrent_sessions" 656 value { 657 int_value: 6 658 } 659 } 660 required_values: { 661 key: "resolution" 662 value { 663 int_value: 2160 664 } 665 } 666 } 667 } 668} 669requirements { 670 id: "5.1/H-1-4" 671 name: "Concurrent Video Encoder Sessions" 672 description: "Concurrent video encoder sessions" 673 test_configs: { 674 key: "720p" 675 value: { 676 description: "Tests running at 720p" 677 proto_field_number: 10 678 } 679 } 680 test_configs: { 681 key: "1080p" 682 value: { 683 description: "Tests running at 1080p" 684 proto_field_number: 11 685 } 686 } 687 test_configs: { 688 key: "4k" 689 value: { 690 description: "Tests running at 4k" 691 proto_field_number: 12 692 } 693 } 694 variants: { 695 key: "byte_buffer_mode" 696 value: { 697 description: "When the test is run in byte buffer mode" 698 } 699 } 700 measurements: { 701 key: "concurrent_fps" 702 value: { 703 description: "The number of frames per second that can be decoded concurrently" 704 measurement_type: MEASUREMENT_TYPE_DOUBLE 705 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 706 proto_field_number: 3 707 } 708 } 709 measurements: { 710 key: "frame_drops_per_sec" 711 value: { 712 description: "The number of frames dropped per second" 713 measurement_type: MEASUREMENT_TYPE_DOUBLE 714 comparison: COMPARISON_LESS_THAN_OR_EQUAL 715 proto_field_number: 4 716 } 717 } 718 measurements: { 719 key: "resolution" 720 value: { 721 description: "The resolution the test was run at" 722 measurement_type: MEASUREMENT_TYPE_INT 723 comparison: COMPARISON_CONFIG 724 proto_field_number: 5 725 } 726 } 727 specs { 728 key: 30 729 value { 730 mpc: MEDIA_PERFORMANCE_CLASS_11 731 specification: "MUST support 6 instances of hardware video encoder sessions (AVC or HEVC) in any codec combination running concurrently at 720p resolution@30 fps." 732 test_config_id: "720p" 733 required_values: { 734 key: "concurrent_fps" 735 value { 736 double_value: 171 # 6 encoders * 30 fps * 0.95 tolerance factor 737 } 738 } 739 required_values: { 740 key: "resolution" 741 value { 742 int_value: 720 743 } 744 } 745 variant_specs: { 746 key: "byte_buffer_mode" 747 value: { 748 required_values: { 749 key: "concurrent_fps" 750 value { 751 double_value: 0 # Requirement not asserted in byte buffer mode 752 } 753 } 754 required_values: { 755 key: "resolution" 756 value { 757 int_value: 720 758 } 759 } 760 } 761 } 762 } 763 } 764 specs { 765 key: 31 766 value { 767 mpc: MEDIA_PERFORMANCE_CLASS_12 768 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." 769 test_config_id: "720p" 770 required_values: { 771 key: "concurrent_fps" 772 value { 773 double_value: 171 # 6 encoders * 30 fps * 0.95 tolerance factor 774 } 775 } 776 required_values: { 777 key: "resolution" 778 value { 779 int_value: 720 780 } 781 } 782 variant_specs: { 783 key: "byte_buffer_mode" 784 value: { 785 required_values: { 786 key: "concurrent_fps" 787 value { 788 double_value: 0 # Requirement not asserted in byte buffer mode 789 } 790 } 791 required_values: { 792 key: "resolution" 793 value { 794 int_value: 720 795 } 796 } 797 } 798 } 799 } 800 } 801 specs { 802 key: 33 803 value { 804 mpc: MEDIA_PERFORMANCE_CLASS_13 805 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." 806 test_config_id: "1080p" 807 required_values: { 808 key: "concurrent_fps" 809 value { 810 double_value: 171 # 6 encoders * 30 fps * 0.95 tolerance factor 811 } 812 } 813 required_values: { 814 key: "resolution" 815 value { 816 int_value: 1080 817 } 818 } 819 variant_specs: { 820 key: "byte_buffer_mode" 821 value: { 822 required_values: { 823 key: "concurrent_fps" 824 value { 825 double_value: 0 # Requirement not asserted in byte buffer mode 826 } 827 } 828 required_values: { 829 key: "resolution" 830 value { 831 int_value: 1080 832 } 833 } 834 } 835 } 836 } 837 } 838 specs { 839 key: 34 840 value { 841 mpc: MEDIA_PERFORMANCE_CLASS_14 842 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." 843 test_config_id: "4k" 844 required_values: { 845 key: "concurrent_fps" 846 value { 847 double_value: 171 # 6 encoders * 30 fps * 0.95 tolerance factor 848 } 849 } 850 required_values: { 851 key: "resolution" 852 value { 853 int_value: 2160 854 } 855 } 856 variant_specs: { 857 key: "byte_buffer_mode" 858 value: { 859 required_values: { 860 key: "concurrent_fps" 861 value { 862 double_value: 0 # Requirement not asserted in byte buffer mode 863 } 864 } 865 required_values: { 866 key: "resolution" 867 value { 868 int_value: 2160 869 } 870 } 871 } 872 } 873 } 874 } 875 specs { 876 key: 35 877 value { 878 mpc: MEDIA_PERFORMANCE_CLASS_15 879 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." 880 test_config_id: "4k" 881 required_values: { 882 key: "concurrent_fps" 883 value { 884 double_value: 171 # 6 encoders * 30 fps * 0.95 tolerance factor 885 } 886 } 887 required_values: { 888 key: "frame_drops_per_sec" 889 value { 890 double_value: 1 891 } 892 } 893 required_values: { 894 key: "resolution" 895 value { 896 int_value: 2160 897 } 898 } 899 variant_specs: { 900 key: "byte_buffer_mode" 901 value: { 902 required_values: { 903 key: "concurrent_fps" 904 value { 905 double_value: 0 # Requirement not asserted in byte buffer mode 906 } 907 } 908 required_values: { 909 key: "frame_drops_per_sec" 910 value { 911 double_value: 1 912 } 913 } 914 required_values: { 915 key: "resolution" 916 value: { 917 int_value: 2160 918 } 919 } 920 } 921 } 922 } 923 } 924} 925requirements { 926 id: "5.1/H-1-5" 927 name: "Video Transcoding Instances" 928 description: "Video transcoding instances" 929 test_configs: { 930 key: "720p" 931 value: { 932 description: "Tests running at 720p" 933 proto_field_number: 13 934 } 935 } 936 test_configs: { 937 key: "1080p" 938 value: { 939 description: "Tests running at 1080p" 940 proto_field_number: 14 941 } 942 } 943 test_configs: { 944 key: "4k" 945 value: { 946 description: "Tests running at 4k" 947 proto_field_number: 15 948 } 949 } 950 variants: { 951 key: "VP9" 952 value: { 953 description: "When one of the codecs is VP9, variant used in 720p tests" 954 } 955 } 956 variants: { 957 key: "AV1" 958 value: { 959 description: "When one of the codecs is AV1, variant used in 720p tests" 960 } 961 } 962 measurements: { 963 key: "concurrent_sessions" 964 value: { 965 description: "The number of concurrent sessions" 966 measurement_type: MEASUREMENT_TYPE_INT 967 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 968 proto_field_number: 3 969 } 970 } 971 measurements: { 972 key: "resolution" 973 value: { 974 description: "The resolution the test was run at" 975 measurement_type: MEASUREMENT_TYPE_INT 976 comparison: COMPARISON_CONFIG 977 proto_field_number: 4 978 } 979 } 980 specs { 981 key: 30 982 value { 983 mpc: MEDIA_PERFORMANCE_CLASS_11 984 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." 985 test_config_id: "720p" 986 required_values: { 987 key: "concurrent_sessions" 988 value { 989 int_value: 6 990 } 991 } 992 required_values: { 993 key: "resolution" 994 value { 995 int_value: 720 996 } 997 } 998 variant_specs: { 999 key: "VP9" 1000 value: { 1001 required_values: { 1002 key: "resolution" 1003 value { 1004 int_value: 720 1005 } 1006 } 1007 } 1008 } 1009 variant_specs: { 1010 key: "AV1" 1011 value: { 1012 required_values: { 1013 key: "resolution" 1014 value { 1015 int_value: 720 1016 } 1017 } 1018 } 1019 } 1020 } 1021 } 1022 specs { 1023 key: 31 1024 value { 1025 mpc: MEDIA_PERFORMANCE_CLASS_12 1026 specification: "same" 1027 test_config_id: "720p" 1028 required_values: { 1029 key: "concurrent_sessions" 1030 value { 1031 int_value: 6 1032 } 1033 } 1034 required_values: { 1035 key: "resolution" 1036 value { 1037 int_value: 720 1038 } 1039 } 1040 variant_specs: { 1041 key: "VP9" 1042 value: { 1043 required_values: { 1044 key: "concurrent_sessions" 1045 value { 1046 int_value: 2 1047 } 1048 } 1049 required_values: { 1050 key: "resolution" 1051 value { 1052 int_value: 720 1053 } 1054 } 1055 } 1056 } 1057 variant_specs: { 1058 key: "AV1" 1059 value: { 1060 required_values: { 1061 key: "concurrent_sessions" 1062 value { 1063 int_value: 6 1064 } 1065 } 1066 required_values: { 1067 key: "resolution" 1068 value { 1069 int_value: 720 1070 } 1071 } 1072 } 1073 } 1074 } 1075 } 1076 specs { 1077 key: 33 1078 value { 1079 mpc: MEDIA_PERFORMANCE_CLASS_13 1080 specification: "same" 1081 test_config_id: "1080p" 1082 required_values: { 1083 key: "concurrent_sessions" 1084 value { 1085 int_value: 6 1086 } 1087 } 1088 required_values: { 1089 key: "resolution" 1090 value { 1091 int_value: 1080 1092 } 1093 } 1094 } 1095 } 1096 specs { 1097 key: 34 1098 value { 1099 mpc: MEDIA_PERFORMANCE_CLASS_14 1100 specification: "same" 1101 test_config_id: "4k" 1102 required_values: { 1103 key: "concurrent_sessions" 1104 value { 1105 int_value: 6 1106 } 1107 } 1108 required_values: { 1109 key: "resolution" 1110 value { 1111 int_value: 2160 1112 } 1113 } 1114 } 1115 } 1116 specs { 1117 key: 35 1118 value { 1119 mpc: MEDIA_PERFORMANCE_CLASS_15 1120 specification: "same" 1121 test_config_id: "4k" 1122 required_values: { 1123 key: "concurrent_sessions" 1124 value { 1125 int_value: 6 1126 } 1127 } 1128 required_values: { 1129 key: "resolution" 1130 value { 1131 int_value: 2160 1132 } 1133 } 1134 } 1135 } 1136} 1137requirements { 1138 id: "5.1/H-1-6" 1139 name: "Concurrent Video Transcoding Sessions" 1140 description: "Concurrent video transcoding sessions" 1141 test_configs: { 1142 key: "720p" 1143 value: { 1144 description: "Tests running at 720p" 1145 proto_field_number: 16 1146 } 1147 } 1148 test_configs: { 1149 key: "1080p" 1150 value: { 1151 description: "Tests running at 1080p" 1152 proto_field_number: 17 1153 } 1154 } 1155 test_configs: { 1156 key: "4k" 1157 value: { 1158 description: "Tests running at 4k" 1159 proto_field_number: 18 1160 } 1161 } 1162 variants: { 1163 key: "VP9" 1164 value: { 1165 description: "When one of the codecs is VP9, variant used in 720p tests" 1166 } 1167 } 1168 variants: { 1169 key: "AV1" 1170 value: { 1171 description: "When one of the codecs is AV1, variant used in 720p tests" 1172 } 1173 } 1174 measurements: { 1175 key: "concurrent_fps" 1176 value: { 1177 description: "The number of frames per second that can be decoded concurrently" 1178 measurement_type: MEASUREMENT_TYPE_DOUBLE 1179 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 1180 proto_field_number: 3 1181 } 1182 } 1183 measurements: { 1184 key: "frame_drops_per_sec" 1185 value: { 1186 description: "The number of frames dropped per second" 1187 measurement_type: MEASUREMENT_TYPE_DOUBLE 1188 comparison: COMPARISON_LESS_THAN_OR_EQUAL 1189 proto_field_number: 4 1190 } 1191 } 1192 measurements: { 1193 key: "resolution" 1194 value: { 1195 description: "The resolution the test was run at" 1196 measurement_type: MEASUREMENT_TYPE_INT 1197 comparison: COMPARISON_CONFIG 1198 proto_field_number: 5 1199 } 1200 } 1201 specs { 1202 key: 30 1203 value { 1204 mpc: MEDIA_PERFORMANCE_CLASS_11 1205 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." 1206 test_config_id: "720p" 1207 required_values: { 1208 key: "concurrent_fps" 1209 value { 1210 double_value: 85.5 # 6 codecs * 30 fps * 0.95 tolerance factor / 2 1211 } 1212 } 1213 required_values: { 1214 key: "resolution" 1215 value { 1216 int_value: 720 1217 } 1218 } 1219 variant_specs: { 1220 key: "VP9" 1221 value: { 1222 required_values: { 1223 key: "resolution" 1224 value { 1225 int_value: 720 1226 } 1227 } 1228 } 1229 } 1230 variant_specs: { 1231 key: "AV1" 1232 value: { 1233 required_values: { 1234 key: "resolution" 1235 value { 1236 int_value: 720 1237 } 1238 } 1239 } 1240 } 1241 } 1242 } 1243 specs { 1244 key: 31 1245 value { 1246 mpc: MEDIA_PERFORMANCE_CLASS_12 1247 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." 1248 test_config_id: "720p" 1249 required_values: { 1250 key: "concurrent_fps" 1251 value { 1252 double_value: 85.5 # 6 codecs * 30 fps * 0.95 tolerance factor / 2 1253 } 1254 } 1255 required_values: { 1256 key: "resolution" 1257 value { 1258 int_value: 720 1259 } 1260 } 1261 variant_specs: { 1262 key: "VP9" 1263 value: { 1264 required_values: { 1265 key: "concurrent_fps" 1266 value { 1267 double_value: 28.5 # 2 codecs * 30 fps * 0.95 tolerance factor / 2 1268 } 1269 } 1270 required_values: { 1271 key: "resolution" 1272 value { 1273 int_value: 720 1274 } 1275 } 1276 } 1277 } 1278 variant_specs: { 1279 key: "AV1" 1280 value: { 1281 required_values: { 1282 key: "concurrent_fps" 1283 value { 1284 double_value: 85.5 # 6 codecs * 30 fps * 0.95 tolerance factor / 2 1285 } 1286 } 1287 required_values: { 1288 key: "resolution" 1289 value { 1290 int_value: 720 1291 } 1292 } 1293 } 1294 } 1295 } 1296 } 1297 specs { 1298 key: 33 1299 value { 1300 mpc: MEDIA_PERFORMANCE_CLASS_13 1301 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." 1302 test_config_id: "1080p" 1303 required_values: { 1304 key: "concurrent_fps" 1305 value { 1306 double_value: 85.5 # 6 codecs * 30 fps * 0.95 tolerance factor / 2 1307 } 1308 } 1309 required_values: { 1310 key: "resolution" 1311 value { 1312 int_value: 1080 1313 } 1314 } 1315 } 1316 } 1317 specs { 1318 key: 34 1319 value { 1320 mpc: MEDIA_PERFORMANCE_CLASS_14 1321 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." 1322 test_config_id: "4k" 1323 required_values: { 1324 key: "concurrent_fps" 1325 value { 1326 double_value: 85.5 # 6 codecs * 30 fps * 0.95 tolerance factor / 2 1327 } 1328 } 1329 required_values: { 1330 key: "resolution" 1331 value { 1332 int_value: 2160 1333 } 1334 } 1335 } 1336 } 1337 specs { 1338 key: 35 1339 value { 1340 mpc: MEDIA_PERFORMANCE_CLASS_15 1341 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." 1342 test_config_id: "4k" 1343 required_values: { 1344 key: "concurrent_fps" 1345 value { 1346 double_value: 85.5 # 6 codecs * 30 fps * 0.95 tolerance factor / 2 1347 } 1348 } 1349 required_values: { 1350 key: "frame_drops_per_sec" 1351 value { 1352 double_value: 1 1353 } 1354 } 1355 required_values: { 1356 key: "resolution" 1357 value { 1358 int_value: 2160 1359 } 1360 } 1361 } 1362 } 1363} 1364requirements { 1365 id: "5.1/H-1-7" 1366 name: "Video encoder init latency" 1367 description: 1368 "Maximum codec initialization latency for a 1080p or smaller video " 1369 "encoding session for all hardware video encoders when under load." 1370 test_configs: { 1371 key: "" 1372 value: { 1373 proto_field_number: 19 1374 } 1375 } 1376 measurements: { 1377 key: "codec_initialization_latency_ms" 1378 value: { 1379 description: "Codec initialization latency in milliseconds" 1380 measurement_type: MEASUREMENT_TYPE_LONG 1381 comparison: COMPARISON_LESS_THAN_OR_EQUAL 1382 proto_field_number: 3 1383 } 1384 } 1385 variants: { 1386 key: "dolby" 1387 value: { 1388 description: "When the codec is Dolby Vision" 1389 } 1390 } 1391 specs { 1392 key: 30 1393 value { 1394 mpc: MEDIA_PERFORMANCE_CLASS_11 1395 specification: 1396 "MUST have a codec initialization latency of 65 ms or less for a 1080p " 1397 "or smaller video encoding session for all hardware video encoders when " 1398 "under load. Load here is defined as a concurrent 1080p to 720p " 1399 "video-only transcoding session using hardware video codecs together " 1400 "with the 1080p audio-video recording initialization." 1401 required_values: { 1402 key: "codec_initialization_latency_ms" 1403 value { 1404 long_value: 65 1405 } 1406 } 1407 variant_specs: { 1408 key: "dolby" 1409 value: { 1410 required_values: { 1411 key: "codec_initialization_latency_ms" 1412 value { 1413 long_value: 65 1414 } 1415 } 1416 } 1417 } 1418 } 1419 } 1420 specs { 1421 key: 31 1422 value { 1423 mpc: MEDIA_PERFORMANCE_CLASS_12 1424 specification: 1425 "MUST have a codec initialization latency of 50 ms or less for a 1080p " 1426 "or smaller video encoding session for all hardware video encoders " 1427 "when under load. Load here is defined as a concurrent 1080p to 720p " 1428 "video-only transcoding session using hardware video codecs together " 1429 "with the 1080p audio-video recording initialization." 1430 required_values: { 1431 key: "codec_initialization_latency_ms" 1432 value { 1433 long_value: 50 1434 } 1435 } 1436 variant_specs: { 1437 key: "dolby" 1438 value: { 1439 required_values: { 1440 key: "codec_initialization_latency_ms" 1441 value { 1442 long_value: 50 1443 } 1444 } 1445 } 1446 } 1447 } 1448 } 1449 specs { 1450 key: 33 1451 value { 1452 mpc: MEDIA_PERFORMANCE_CLASS_13 1453 specification: 1454 "MUST have a codec initialization latency of 40 ms or less for a 1080p " 1455 "or smaller video encoding session for all hardware video encoders " 1456 "when under load. Load here is defined as a concurrent 1080p to 720p " 1457 "video-only transcoding session using hardware video codecs together " 1458 "with the 1080p audio-video recording initialization." 1459 required_values: { 1460 key: "codec_initialization_latency_ms" 1461 value { 1462 long_value: 40 1463 } 1464 } 1465 variant_specs: { 1466 key: "dolby" 1467 value: { 1468 required_values: { 1469 key: "codec_initialization_latency_ms" 1470 value { 1471 long_value: 50 1472 } 1473 } 1474 } 1475 } 1476 } 1477 } 1478 specs { 1479 key: 34 1480 value { 1481 mpc: MEDIA_PERFORMANCE_CLASS_14 1482 specification: 1483 "MUST have a codec initialization latency of 40 ms or less for a 1080p " 1484 "or smaller video encoding session for all hardware video encoders " 1485 "when under load. Load here is defined as a concurrent 1080p to 720p " 1486 "video-only transcoding session using hardware video codecs together " 1487 "with the 1080p audio-video recording initialization. For Dolby vision " 1488 "codec, the codec initialization latency MUST be 50 ms or less." 1489 required_values: { 1490 key: "codec_initialization_latency_ms" 1491 value { 1492 long_value: 40 1493 } 1494 } 1495 variant_specs: { 1496 key: "dolby" 1497 value: { 1498 required_values: { 1499 key: "codec_initialization_latency_ms" 1500 value { 1501 long_value: 50 1502 } 1503 } 1504 } 1505 } 1506 } 1507 } 1508 specs { 1509 key: 35 1510 value { 1511 mpc: MEDIA_PERFORMANCE_CLASS_15 1512 specification: 1513 "MUST have a codec initialization latency of 40 ms or less for a 1080p " 1514 "or smaller video encoding session for all hardware video encoders " 1515 "when under load. Load here is defined as a concurrent 1080p to 720p " 1516 "video-only transcoding session using hardware video codecs together " 1517 "with the 1080p audio-video recording initialization. For Dolby vision " 1518 "codec, the codec initialization latency MUST be 50 ms or less." 1519 required_values: { 1520 key: "codec_initialization_latency_ms" 1521 value { 1522 long_value: 40 1523 } 1524 } 1525 variant_specs: { 1526 key: "dolby" 1527 value: { 1528 required_values: { 1529 key: "codec_initialization_latency_ms" 1530 value { 1531 long_value: 50 1532 } 1533 } 1534 } 1535 } 1536 } 1537 } 1538} 1539requirements { 1540 id: "5.1/H-1-8" 1541 name: "Audio encoder init latency" 1542 description: "Maximum codec initialization latency for a 128 kbps or lower bitrate audio encoding session for all audio encoders when under load." 1543 test_configs: { 1544 key: "" 1545 value: { 1546 proto_field_number: 20 1547 } 1548 } 1549 measurements: { 1550 key: "codec_initialization_latency_ms" 1551 value: { 1552 description: "Codec initialization latency in milliseconds" 1553 measurement_type: MEASUREMENT_TYPE_LONG 1554 comparison: COMPARISON_LESS_THAN_OR_EQUAL 1555 proto_field_number: 3 1556 } 1557 } 1558 specs: { 1559 key: 30 1560 value { 1561 mpc: MEDIA_PERFORMANCE_CLASS_11 1562 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." 1563 required_values: { 1564 key: "codec_initialization_latency_ms" 1565 value { 1566 long_value: 50 1567 } 1568 } 1569 } 1570 } 1571 specs: { 1572 key: 31 1573 value { 1574 mpc: MEDIA_PERFORMANCE_CLASS_12 1575 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." 1576 required_values: { 1577 key: "codec_initialization_latency_ms" 1578 value { 1579 long_value: 40 1580 } 1581 } 1582 } 1583 } 1584 specs: { 1585 key: 33 1586 value { 1587 mpc: MEDIA_PERFORMANCE_CLASS_13 1588 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." 1589 required_values: { 1590 key: "codec_initialization_latency_ms" 1591 value { 1592 long_value: 30 1593 } 1594 } 1595 } 1596 } 1597 specs: { 1598 key: 34 1599 value { 1600 mpc: MEDIA_PERFORMANCE_CLASS_14 1601 specification: "same" 1602 required_values: { 1603 key: "codec_initialization_latency_ms" 1604 value { 1605 long_value: 30 1606 } 1607 } 1608 } 1609 } 1610 specs: { 1611 key: 35 1612 value { 1613 mpc: MEDIA_PERFORMANCE_CLASS_15 1614 specification: "same" 1615 required_values: { 1616 key: "codec_initialization_latency_ms" 1617 value { 1618 long_value: 30 1619 } 1620 } 1621 } 1622 } 1623} 1624requirements { 1625 id: "5.1/H-1-9" 1626 name: "Secure Video Decoder Sessions" 1627 description: "Secure hardware decoders" 1628 test_configs: { 1629 key: "" 1630 value: { 1631 description: "Default test config" 1632 proto_field_number: 21 1633 } 1634 } 1635 test_configs: { 1636 key: "HDR" 1637 value: { 1638 description: "Test config for hdr tests" 1639 proto_field_number: 22 1640 } 1641 } 1642 measurements: { 1643 key: "concurrent_fps" 1644 value: { 1645 description: "Achieved FPS" 1646 measurement_type: MEASUREMENT_TYPE_DOUBLE 1647 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 1648 proto_field_number: 3 1649 } 1650 } 1651 measurements: { 1652 key: "frame_drops_per_sec" 1653 value: { 1654 description: "Number of frame drops per second" 1655 measurement_type: MEASUREMENT_TYPE_DOUBLE 1656 comparison: COMPARISON_LESS_THAN_OR_EQUAL 1657 proto_field_number: 4 1658 } 1659 } 1660 measurements: { 1661 key: "is_hdr" 1662 value: { 1663 description: "Whether the test is HDR or not" 1664 measurement_type: MEASUREMENT_TYPE_BOOL 1665 comparison: COMPARISON_CONFIG 1666 proto_field_number: 5 1667 } 1668 } 1669 specs { 1670 key: 33 1671 value { 1672 mpc: MEDIA_PERFORMANCE_CLASS_13 1673 specification: 1674 "MUST support 2 instances of secure hardware video decoder sessions " 1675 "(AVC, HEVC, VP9, AV1 or later) in any codec combination running " 1676 "concurrently at 1080p resolution@30 fps." 1677 required_values: { 1678 key: "concurrent_fps" 1679 value { 1680 double_value: 57 # 2 decoders * 30 fps * 0.95 tolerance factor 1681 } 1682 } 1683 required_values: { 1684 key: "is_hdr" 1685 value { 1686 bool_value: false 1687 } 1688 } 1689 } 1690 } 1691 specs { 1692 key: 34 1693 value { 1694 mpc: MEDIA_PERFORMANCE_CLASS_14 1695 specification: 1696 "MUST support 2 instances of secure hardware video decoder sessions " 1697 "(AVC, HEVC, VP9, AV1 or later) in any codec combination running " 1698 "concurrently at 1080p resolution@30 fps for both 8-bit " 1699 "(SDR) and 10-bit HDR content." 1700 test_config_id: "HDR" 1701 required_values: { 1702 key: "concurrent_fps" 1703 value { 1704 double_value: 57 # 2 decoders * 30 fps * 0.95 tolerance factor 1705 } 1706 } 1707 required_values: { 1708 key: "is_hdr" 1709 value { 1710 bool_value: true 1711 } 1712 } 1713 } 1714 } 1715 specs { 1716 key: 35 1717 value { 1718 mpc: MEDIA_PERFORMANCE_CLASS_15 1719 specification: 1720 "MUST support 2 instances of secure hardware video decoder sessions " 1721 "(AVC, HEVC, VP9, AV1, or later) in any codec combination running " 1722 "concurrently at 1080p resolution@30 fps for both 8-bit " 1723 "(SDR) and 10-bit HDR content. For all sessions, there MUST NOT be " 1724 "more than 1 frame dropped per second." 1725 test_config_id: "HDR" 1726 required_values: { 1727 key: "concurrent_fps" 1728 value { 1729 double_value: 57 # 2 decoders * 30 fps * 0.95 tolerance factor 1730 } 1731 } 1732 required_values: { 1733 key: "frame_drops_per_sec" 1734 value { 1735 double_value: 1 1736 } 1737 } 1738 required_values: { 1739 key: "is_hdr" 1740 value { 1741 bool_value: true 1742 } 1743 } 1744 } 1745 } 1746} 1747requirements { 1748 id: "5.1/H-1-10" 1749 name: "Video Decoder Sessions" 1750 description: "hardware decoders, secure with non-secure hardware decoders" 1751 test_configs: { 1752 key: "1080p" 1753 value: { 1754 description: "Test config for 1080p" 1755 proto_field_number: 23 1756 } 1757 } 1758 test_configs: { 1759 key: "4k" 1760 value: { 1761 description: "Test config for 4k" 1762 proto_field_number: 24 1763 } 1764 } 1765 measurements: { 1766 key: "concurrent_fps" 1767 value: { 1768 description: "Achieved FPS" 1769 measurement_type: MEASUREMENT_TYPE_DOUBLE 1770 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 1771 proto_field_number: 3 1772 } 1773 } 1774 measurements: { 1775 key: "frame_drops_per_sec" 1776 value: { 1777 description: "Number of frame drops per second" 1778 measurement_type: MEASUREMENT_TYPE_DOUBLE 1779 comparison: COMPARISON_LESS_THAN_OR_EQUAL 1780 proto_field_number: 4 1781 } 1782 } 1783 measurements: { 1784 key: "resolution" 1785 value: { 1786 description: "The resolution the test was run at" 1787 measurement_type: MEASUREMENT_TYPE_INT 1788 comparison: COMPARISON_CONFIG 1789 proto_field_number: 5 1790 } 1791 } 1792 specs { 1793 key: 33 1794 value { 1795 mpc: MEDIA_PERFORMANCE_CLASS_13 1796 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." 1797 test_config_id: "1080p" 1798 required_values: { 1799 key: "concurrent_fps" 1800 value { 1801 double_value: 114 # 4 decoders * 30 fps * 0.95 tolerance factor 1802 } 1803 } 1804 required_values: { 1805 key: "resolution" 1806 value { 1807 int_value: 1080 1808 } 1809 } 1810 } 1811 } 1812 specs { 1813 key: 34 1814 value { 1815 mpc: MEDIA_PERFORMANCE_CLASS_14 1816 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." 1817 test_config_id: "4k" 1818 required_values: { 1819 key: "concurrent_fps" 1820 value { 1821 double_value: 114 # 4 decoders * 30 fps * 0.95 tolerance factor 1822 } 1823 } 1824 required_values: { 1825 key: "resolution" 1826 value { 1827 int_value: 2160 1828 } 1829 } 1830 } 1831 } 1832 specs { 1833 key: 35 1834 value { 1835 mpc: MEDIA_PERFORMANCE_CLASS_15 1836 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." 1837 test_config_id: "4k" 1838 required_values: { 1839 key: "concurrent_fps" 1840 value { 1841 double_value: 114 # 4 decoders * 30 fps * 0.95 tolerance factor 1842 } 1843 } 1844 required_values: { 1845 key: "frame_drops_per_sec" 1846 value { 1847 double_value: 1 1848 } 1849 } 1850 required_values: { 1851 key: "resolution" 1852 value { 1853 int_value: 2160 1854 } 1855 } 1856 } 1857 } 1858} 1859requirements { 1860 id: "5.1/H-1-11" 1861 name: "Secure Hardware Decoders" 1862 description: "Supports various secure hardware decoders" 1863 test_configs: { 1864 key: "" 1865 value: { 1866 description: "Default test config" 1867 proto_field_number: 25 1868 } 1869 } 1870 measurements: { 1871 key: "secure_requirement_satisfied_boolean" 1872 value: { 1873 description: "Are secure hardware decoders supported" 1874 measurement_type: MEASUREMENT_TYPE_BOOL 1875 comparison: COMPARISON_EQUAL 1876 proto_field_number: 3 1877 } 1878 } 1879 specs { 1880 key: 33 1881 value { 1882 mpc: MEDIA_PERFORMANCE_CLASS_13 1883 specification: "MUST support a secure decoder for every hardware AVC, HEVC, VP9 or AV1 decoder on the device." 1884 required_values: { 1885 key: "secure_requirement_satisfied_boolean" 1886 value { 1887 bool_value: true 1888 } 1889 } 1890 } 1891 } 1892 specs { 1893 key: 34 1894 value { 1895 mpc: MEDIA_PERFORMANCE_CLASS_14 1896 specification: "same" 1897 required_values: { 1898 key: "secure_requirement_satisfied_boolean" 1899 value { 1900 bool_value: true 1901 } 1902 } 1903 } 1904 } 1905 specs { 1906 key: 35 1907 value { 1908 mpc: MEDIA_PERFORMANCE_CLASS_15 1909 specification: "same" 1910 required_values: { 1911 key: "secure_requirement_satisfied_boolean" 1912 value { 1913 bool_value: true 1914 } 1915 } 1916 } 1917 } 1918} 1919requirements { 1920 id: "5.1/H-1-12" 1921 name: "Video Decoder Init Latency" 1922 description: "Video decoder initialization latency" 1923 test_configs: { 1924 key: "" 1925 value: { 1926 description: "Default test config" 1927 proto_field_number: 26 1928 } 1929 } 1930 variants: { 1931 key: "dolby" 1932 value: { 1933 description: "When the codec is Dolby Vision" 1934 } 1935 } 1936 measurements: { 1937 key: "codec_initialization_latency_ms" 1938 value: { 1939 description: "Codec initialization latency in milliseconds" 1940 measurement_type: MEASUREMENT_TYPE_LONG 1941 comparison: COMPARISON_LESS_THAN_OR_EQUAL 1942 proto_field_number: 3 1943 } 1944 } 1945 specs { 1946 key: 33 1947 value { 1948 mpc: MEDIA_PERFORMANCE_CLASS_13 1949 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." 1950 required_values: { 1951 key: "codec_initialization_latency_ms" 1952 value { 1953 long_value: 40 1954 } 1955 } 1956 variant_specs: { 1957 key: "dolby" 1958 value: { 1959 required_values: { 1960 key: "codec_initialization_latency_ms" 1961 value { 1962 long_value: 50 1963 } 1964 } 1965 } 1966 } 1967 } 1968 } 1969 specs { 1970 key: 34 1971 value { 1972 mpc: MEDIA_PERFORMANCE_CLASS_14 1973 specification: "same" 1974 required_values: { 1975 key: "codec_initialization_latency_ms" 1976 value { 1977 long_value: 40 1978 } 1979 } 1980 variant_specs: { 1981 key: "dolby" 1982 value: { 1983 required_values: { 1984 key: "codec_initialization_latency_ms" 1985 value { 1986 long_value: 50 1987 } 1988 } 1989 } 1990 } 1991 } 1992 } 1993 specs { 1994 key: 35 1995 value { 1996 mpc: MEDIA_PERFORMANCE_CLASS_15 1997 specification: "same" 1998 required_values: { 1999 key: "codec_initialization_latency_ms" 2000 value { 2001 long_value: 40 2002 } 2003 } 2004 variant_specs: { 2005 key: "dolby" 2006 value: { 2007 required_values: { 2008 key: "codec_initialization_latency_ms" 2009 value { 2010 long_value: 50 2011 } 2012 } 2013 } 2014 } 2015 } 2016 } 2017} 2018requirements { 2019 id: "5.1/H-1-13" 2020 name: "Audio decoder init latency" 2021 description: "Maximum codec initialization latency for a 128 kbps or lower bitrate audio decoding session for all audio decoders when under load." 2022 test_configs: { 2023 key: "" 2024 value: { 2025 proto_field_number: 27 2026 } 2027 } 2028 measurements: { 2029 key: "codec_initialization_latency_ms" 2030 value: { 2031 description: "Codec initialization latency in milliseconds" 2032 measurement_type: MEASUREMENT_TYPE_LONG 2033 comparison: COMPARISON_LESS_THAN_OR_EQUAL 2034 proto_field_number: 3 2035 } 2036 } 2037 specs { 2038 key: 33 2039 value { 2040 mpc: MEDIA_PERFORMANCE_CLASS_13 2041 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." 2042 required_values: { 2043 key: "codec_initialization_latency_ms" 2044 value { 2045 long_value: 30 2046 } 2047 } 2048 } 2049 } 2050 specs { 2051 key: 34 2052 value { 2053 mpc: MEDIA_PERFORMANCE_CLASS_14 2054 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." 2055 required_values: { 2056 key: "codec_initialization_latency_ms" 2057 value { 2058 long_value: 30 2059 } 2060 } 2061 } 2062 } 2063 specs { 2064 key: 35 2065 value { 2066 mpc: MEDIA_PERFORMANCE_CLASS_15 2067 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." 2068 required_values: { 2069 key: "codec_initialization_latency_ms" 2070 value { 2071 long_value: 30 2072 } 2073 } 2074 } 2075 } 2076} 2077requirements { 2078 id: "5.1/H-1-14" 2079 name: "AV1 Hardware Decoder" 2080 description: "AV1 hardware decoder\n- Film grain effect" 2081 test_configs: { 2082 key: "" 2083 value: { 2084 description: "Default test config" 2085 proto_field_number: 28 2086 } 2087 } 2088 measurements: { 2089 key: "av1_decoder_requirement_boolean" 2090 value: { 2091 description: "Is AV1 hardware decoder supported." 2092 measurement_type: MEASUREMENT_TYPE_BOOL 2093 comparison: COMPARISON_EQUAL 2094 proto_field_number: 3 2095 } 2096 } 2097 measurements: { 2098 key: "av1_frames_without_film_grain" 2099 value: { 2100 description: "Number of frames without film grain effect." 2101 measurement_type: MEASUREMENT_TYPE_INT 2102 comparison: COMPARISON_EQUAL 2103 proto_field_number: 4 2104 } 2105 } 2106 specs { 2107 key: 33 2108 value { 2109 mpc: MEDIA_PERFORMANCE_CLASS_13 2110 specification: "MUST support AV1 hardware decoder Main 10, Level 4.1." 2111 required_values: { 2112 key: "av1_decoder_requirement_boolean" 2113 value { 2114 bool_value: true 2115 } 2116 } 2117 } 2118 } 2119 specs { 2120 key: 34 2121 value { 2122 mpc: MEDIA_PERFORMANCE_CLASS_14 2123 specification: "MUST support AV1 hardware decoder Main 10, Level 4.1 and film grain." 2124 required_values: { 2125 key: "av1_decoder_requirement_boolean" 2126 value { 2127 bool_value: true 2128 } 2129 } 2130 } 2131 } 2132 specs { 2133 key: 35 2134 value { 2135 mpc: MEDIA_PERFORMANCE_CLASS_15 2136 specification: "MUST support AV1 hardware decoder Main 10, Level 4.1 with film grain effect over GPU composition." 2137 required_values: { 2138 key: "av1_decoder_requirement_boolean" 2139 value { 2140 bool_value: true 2141 } 2142 } 2143 required_values: { 2144 key: "av1_frames_without_film_grain" 2145 value { 2146 int_value: 0 2147 } 2148 } 2149 } 2150 } 2151} 2152requirements { 2153 id: "5.1/H-SR-1" 2154 specs { 2155 key: 33 2156 value { 2157 mpc: MEDIA_PERFORMANCE_CLASS_13 2158 specification: "Are STRONGLY RECOMMENDED to support Film Grain for AV1 hardware decoder." 2159 } 2160 } 2161} 2162requirements { 2163 id: "5.1/H-1-15" 2164 name: "Hardware Decoder 4K60" 2165 description: "4K60 hardware decoder" 2166 test_configs: { 2167 key: "" 2168 value: { 2169 description: "Default test config" 2170 proto_field_number: 29 2171 } 2172 } 2173 measurements: { 2174 key: "number_4k_hw_decoders" 2175 value: { 2176 description: "Number of 4K60 hardware decoders." 2177 measurement_type: MEASUREMENT_TYPE_INT 2178 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 2179 proto_field_number: 3 2180 } 2181 } 2182 specs { 2183 key: 33 2184 value { 2185 mpc: MEDIA_PERFORMANCE_CLASS_13 2186 specification: "MUST have at least 1 hardware video decoder supporting 4K60." 2187 required_values: { 2188 key: "number_4k_hw_decoders" 2189 value { 2190 int_value: 1 2191 } 2192 } 2193 } 2194 } 2195 specs { 2196 key: 34 2197 value { 2198 mpc: MEDIA_PERFORMANCE_CLASS_14 2199 specification: "same" 2200 required_values: { 2201 key: "number_4k_hw_decoders" 2202 value { 2203 int_value: 1 2204 } 2205 } 2206 } 2207 } 2208 specs { 2209 key: 35 2210 value { 2211 mpc: MEDIA_PERFORMANCE_CLASS_15 2212 specification: "same" 2213 required_values: { 2214 key: "number_4k_hw_decoders" 2215 value { 2216 int_value: 1 2217 } 2218 } 2219 } 2220 } 2221} 2222requirements { 2223 id: "5.1/H-1-16" 2224 name: "Hardware Encoder 4K60" 2225 description: "4K60 hardware encoder" 2226 test_configs: { 2227 key: "" 2228 value: { 2229 description: "Default test config" 2230 proto_field_number: 30 2231 } 2232 } 2233 measurements: { 2234 key: "number_4k_hw_encoders" 2235 value: { 2236 description: "Number of 4K60 hardware encoders." 2237 measurement_type: MEASUREMENT_TYPE_INT 2238 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 2239 proto_field_number: 3 2240 } 2241 } 2242 specs { 2243 key: 33 2244 value { 2245 mpc: MEDIA_PERFORMANCE_CLASS_13 2246 specification: "MUST have at least 1 hardware video encoder supporting 4K60." 2247 required_values: { 2248 key: "number_4k_hw_encoders" 2249 value { 2250 int_value: 1 2251 } 2252 } 2253 } 2254 } 2255 specs { 2256 key: 34 2257 value { 2258 mpc: MEDIA_PERFORMANCE_CLASS_14 2259 specification: "same" 2260 required_values: { 2261 key: "number_4k_hw_encoders" 2262 value { 2263 int_value: 1 2264 } 2265 } 2266 } 2267 } 2268 specs { 2269 key: 35 2270 value { 2271 mpc: MEDIA_PERFORMANCE_CLASS_15 2272 specification: "same" 2273 required_values: { 2274 key: "number_4k_hw_encoders" 2275 value { 2276 int_value: 1 2277 } 2278 } 2279 } 2280 } 2281} 2282requirements { 2283 id: "5.1/H-1-17" 2284 name: "AVIF Baseline Profile" 2285 description: "AVIF Baseline Profile" 2286 test_configs: { 2287 key: "" 2288 value: { 2289 description: "Default test config" 2290 proto_field_number: 31 2291 } 2292 } 2293 measurements: { 2294 key: "avif_image_decoder_boolean" 2295 value: { 2296 description: "has decoder supporting AVIF Baseline Profile supported." 2297 measurement_type: MEASUREMENT_TYPE_BOOL 2298 comparison: COMPARISON_EQUAL 2299 proto_field_number: 3 2300 } 2301 } 2302 specs { 2303 key: 34 2304 value { 2305 mpc: MEDIA_PERFORMANCE_CLASS_14 2306 specification: "MUST have at least 1 hardware image decoder supporting AVIF Baseline Profile." 2307 required_values: { 2308 key: "avif_image_decoder_boolean" 2309 value { 2310 bool_value: true 2311 } 2312 } 2313 } 2314 } 2315 specs { 2316 key: 35 2317 value { 2318 mpc: MEDIA_PERFORMANCE_CLASS_15 2319 specification: "same" 2320 required_values: { 2321 key: "avif_image_decoder_boolean" 2322 value { 2323 bool_value: true 2324 } 2325 } 2326 } 2327 } 2328} 2329requirements { 2330 id: "5.1/H-1-18" 2331 name: "AV1 Encoder" 2332 description: "AV1 encoder" 2333 test_configs: { 2334 key: "" 2335 value: { 2336 description: "Default test config" 2337 proto_field_number: 32 2338 } 2339 } 2340 measurements: { 2341 key: "av1_encoder_resolution" 2342 value: { 2343 description: "Resolution of the test." 2344 measurement_type: MEASUREMENT_TYPE_INT 2345 comparison: COMPARISON_CONFIG 2346 proto_field_number: 3 2347 } 2348 } 2349 measurements: { 2350 key: "av1_encoder_fps" 2351 value: { 2352 description: "Achieved FPS." 2353 measurement_type: MEASUREMENT_TYPE_DOUBLE 2354 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 2355 proto_field_number: 4 2356 } 2357 } 2358 measurements: { 2359 key: "av1_encoder_bitrate" 2360 value: { 2361 description: "Bitrate of the test." 2362 measurement_type: MEASUREMENT_TYPE_INT 2363 comparison: COMPARISON_CONFIG 2364 proto_field_number: 5 2365 } 2366 } 2367 specs { 2368 key: 34 2369 value { 2370 mpc: MEDIA_PERFORMANCE_CLASS_14 2371 specification: "MUST support AV1 encoder which can encode up to 480p resolution at 30fps and 1Mbps." 2372 required_values: { 2373 key: "av1_encoder_resolution" 2374 value { 2375 int_value: 480 2376 } 2377 } 2378 required_values: { 2379 key: "av1_encoder_fps" 2380 value { 2381 double_value: 30.0 2382 } 2383 } 2384 required_values: { 2385 key: "av1_encoder_bitrate" 2386 value { 2387 int_value: 1 2388 } 2389 } 2390 } 2391 } 2392 specs { 2393 key: 35 2394 value { 2395 mpc: MEDIA_PERFORMANCE_CLASS_15 2396 specification: "same" 2397 required_values: { 2398 key: "av1_encoder_resolution" 2399 value { 2400 int_value: 480 2401 } 2402 } 2403 required_values: { 2404 key: "av1_encoder_fps" 2405 value { 2406 double_value: 30.0 2407 } 2408 } 2409 required_values: { 2410 key: "av1_encoder_bitrate" 2411 value { 2412 int_value: 1 2413 } 2414 } 2415 } 2416 } 2417} 2418requirements { 2419 id: "5.12/H-SR" 2420 specs { 2421 key: 34 2422 value { 2423 mpc: MEDIA_PERFORMANCE_CLASS_14 2424 specification: "Are Strongly Recommended to support support the Feature_HdrEditing feature for all hardware AV1 and HEVC encoders present on the device." 2425 } 2426 } 2427 specs { 2428 key: 35 2429 value { 2430 mpc: MEDIA_PERFORMANCE_CLASS_15 2431 specification: "same" 2432 } 2433 } 2434} 2435requirements { 2436 id: "5.1/H-1-19" 2437 name: "Concurrent HDR Transcoding Sessions" 2438 description: "Concurrent HDR transcoding sessions" 2439 test_configs: { 2440 key: "" 2441 value: { 2442 description: "Default test config" 2443 proto_field_number: 33 2444 } 2445 } 2446 measurements: { 2447 key: "concurrent_fps" 2448 value: { 2449 description: "The number of frames per second that can be decoded concurrently" 2450 measurement_type: MEASUREMENT_TYPE_DOUBLE 2451 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 2452 proto_field_number: 3 2453 } 2454 } 2455 measurements: { 2456 key: "frame_drops_per_sec" 2457 value: { 2458 description: "The number of frames dropped per second" 2459 measurement_type: MEASUREMENT_TYPE_DOUBLE 2460 comparison: COMPARISON_LESS_THAN_OR_EQUAL 2461 proto_field_number: 4 2462 } 2463 } 2464 measurements: { 2465 key: "resolution" 2466 value: { 2467 description: "The resolution the test was run at" 2468 measurement_type: MEASUREMENT_TYPE_INT 2469 comparison: COMPARISON_CONFIG 2470 proto_field_number: 5 2471 } 2472 } 2473 specs { 2474 key: 34 2475 value { 2476 mpc: MEDIA_PERFORMANCE_CLASS_14 2477 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." 2478 required_values: { 2479 key: "concurrent_fps" 2480 value { 2481 double_value: 42.75 # 3 codecs * 30 fps * 0.95 tolerance factor / 2 2482 } 2483 } 2484 required_values: { 2485 key: "resolution" 2486 value { 2487 int_value: 2160 2488 } 2489 } 2490 } 2491 } 2492 specs { 2493 key: 35 2494 value { 2495 mpc: MEDIA_PERFORMANCE_CLASS_15 2496 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." 2497 required_values: { 2498 key: "concurrent_fps" 2499 value { 2500 double_value: 42.75 # 3 codecs * 30 fps * 0.95 tolerance factor / 2 2501 } 2502 } 2503 required_values: { 2504 key: "frame_drops_per_sec" 2505 value { 2506 double_value: 1 2507 } 2508 } 2509 required_values: { 2510 key: "resolution" 2511 value { 2512 int_value: 2160 2513 } 2514 } 2515 } 2516 } 2517} 2518requirements { 2519 id: "5.1/H-1-20" 2520 name: "Video Codec Hlg Editing" 2521 description: "Video codec Hlg Editing" 2522 test_configs: { 2523 key: "" 2524 value: { 2525 description: "Default test config" 2526 proto_field_number: 34 2527 } 2528 } 2529 measurements: { 2530 key: "hlg_editing" 2531 value: { 2532 description: "Is hdr Editing supported." 2533 measurement_type: MEASUREMENT_TYPE_BOOL 2534 comparison: COMPARISON_EQUAL 2535 proto_field_number: 3 2536 } 2537 } 2538 specs { 2539 key: 35 2540 value { 2541 mpc: MEDIA_PERFORMANCE_CLASS_15 2542 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." 2543 required_values: { 2544 key: "hlg_editing" 2545 value { 2546 bool_value: true 2547 } 2548 } 2549 } 2550 } 2551} 2552requirements { 2553 id: "5.1/H-1-21" 2554 name: "Video Codec Dynamic Color Aspect" 2555 description: "Video codec dynamic color aspect" 2556 test_configs: { 2557 key: "" 2558 value: { 2559 description: "Default test config" 2560 proto_field_number: 35 2561 } 2562 } 2563 measurements: { 2564 key: "dynamic_color_aspects" 2565 value: { 2566 description: "Is Dynamic Color Aspect supported." 2567 measurement_type: MEASUREMENT_TYPE_BOOL 2568 comparison: COMPARISON_EQUAL 2569 proto_field_number: 3 2570 } 2571 } 2572 specs { 2573 key: 35 2574 value { 2575 mpc: MEDIA_PERFORMANCE_CLASS_15 2576 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." 2577 required_values: { 2578 key: "dynamic_color_aspects" 2579 value { 2580 bool_value: true 2581 } 2582 } 2583 } 2584 } 2585} 2586requirements { 2587 id: "5.1/H-1-22" 2588 name: "Video Codec Portrait Resolution" 2589 description: "Video codec portrait resolution" 2590 test_configs: { 2591 key: "" 2592 value: { 2593 description: "Default test config" 2594 proto_field_number: 36 2595 } 2596 } 2597 measurements: { 2598 key: "portrait_resolution" 2599 value: { 2600 description: "Is Portrait Resolution supported." 2601 measurement_type: MEASUREMENT_TYPE_BOOL 2602 comparison: COMPARISON_EQUAL 2603 proto_field_number: 3 2604 } 2605 } 2606 specs { 2607 key: 35 2608 value { 2609 mpc: MEDIA_PERFORMANCE_CLASS_15 2610 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." 2611 required_values: { 2612 key: "portrait_resolution" 2613 value { 2614 bool_value: true 2615 } 2616 } 2617 } 2618 } 2619} 2620requirements { 2621 id: "5.12/H-1-2" 2622 name: "RGBA 1010102 color format" 2623 description: "RGBA_1010102 color format support for hardware encoders." 2624 test_configs: { 2625 key: "" 2626 value: { 2627 description: "Default test config" 2628 proto_field_number: 37 2629 } 2630 } 2631 measurements: { 2632 key: "rgba_1010102_color_format" 2633 value: { 2634 description: "Is RGBA_1010102 supported." 2635 measurement_type: MEASUREMENT_TYPE_BOOL 2636 comparison: COMPARISON_EQUAL 2637 proto_field_number: 3 2638 } 2639 } 2640 specs { 2641 key: 34 2642 value { 2643 mpc: MEDIA_PERFORMANCE_CLASS_14 2644 specification: "MUST support RGBA_1010102 color format for all hardware AV1 and HEVC encoders present on the device." 2645 required_values: { 2646 key: "rgba_1010102_color_format" 2647 value { 2648 bool_value: true 2649 } 2650 } 2651 } 2652 } 2653 specs { 2654 key: 35 2655 value { 2656 mpc: MEDIA_PERFORMANCE_CLASS_15 2657 specification: "MUST support RGBA_1010102 color format for all hardware AV1 and HEVC encoders present on the device." 2658 required_values: { 2659 key: "rgba_1010102_color_format" 2660 value { 2661 bool_value: true 2662 } 2663 } 2664 } 2665 } 2666} 2667requirements { 2668 id: "5.12/H-1-3" 2669 name: "Ext Yuv Target" 2670 description: "YUV texture sampling" 2671 test_configs: { 2672 key: "" 2673 value: { 2674 description: "Default test config" 2675 proto_field_number: 38 2676 } 2677 } 2678 measurements: { 2679 key: "ext_yuv_target_supported" 2680 value: { 2681 description: "Is EXT_YUV_target supported." 2682 measurement_type: MEASUREMENT_TYPE_BOOL 2683 comparison: COMPARISON_EQUAL 2684 proto_field_number: 3 2685 } 2686 } 2687 specs { 2688 key: 34 2689 value { 2690 mpc: MEDIA_PERFORMANCE_CLASS_14 2691 specification: "MUST advertise support for the EXT_YUV_target extension to sample from YUV textures in both 8 and 10-bits." 2692 required_values: { 2693 key: "ext_yuv_target_supported" 2694 value { 2695 bool_value: true 2696 } 2697 } 2698 } 2699 } 2700 specs { 2701 key: 35 2702 value { 2703 mpc: MEDIA_PERFORMANCE_CLASS_15 2704 specification: "same" 2705 required_values: { 2706 key: "ext_yuv_target_supported" 2707 value { 2708 bool_value: true 2709 } 2710 } 2711 } 2712 } 2713} 2714requirements { 2715 id: "5.2/H-2-1" 2716 name: "VEQ" 2717 description: "Video encoding quality (VEQ) tests." 2718 test_configs: { 2719 key: "" 2720 value: { 2721 description: "Default test config" 2722 proto_field_number: 39 2723 } 2724 } 2725 measurements: { 2726 key: "bdrate_vmaf" 2727 value: { 2728 description: "BDRATE-VMAF result" 2729 measurement_type: MEASUREMENT_TYPE_DOUBLE 2730 comparison: COMPARISON_LESS_THAN_OR_EQUAL 2731 proto_field_number: 3 2732 } 2733 } 2734 measurements: { 2735 key: "calculated" 2736 value: { 2737 description: 2738 "Was BDRATE-VMAF calculated. " 2739 "Because 0 is a passing BDRATE-VMAF result, setting this field verifies " 2740 "the calculation was done." 2741 measurement_type: MEASUREMENT_TYPE_BOOL 2742 comparison: COMPARISON_EQUAL 2743 proto_field_number: 4 2744 } 2745 } 2746 measurements: { 2747 key: "codec_name" 2748 value: { 2749 description: "Codec name" 2750 measurement_type: MEASUREMENT_TYPE_STRING 2751 comparison: COMPARISON_INFO_ONLY 2752 proto_field_number: 5 2753 } 2754 } 2755 measurements: { 2756 key: "bframes_allowed" 2757 value: { 2758 description: "The encoding is allowed to include b-frames." 2759 measurement_type: MEASUREMENT_TYPE_BOOL 2760 comparison: COMPARISON_INFO_ONLY 2761 proto_field_number: 6 2762 } 2763 } 2764 measurements: { 2765 key: "resolution" 2766 value: { 2767 description: 2768 "The resolution of the video written as height x width p " 2769 "(for example 1080x1920p)." 2770 measurement_type: MEASUREMENT_TYPE_BOOL 2771 comparison: COMPARISON_INFO_ONLY 2772 proto_field_number: 7 2773 } 2774 } 2775 specs { 2776 key: 34 2777 value { 2778 mpc: MEDIA_PERFORMANCE_CLASS_14 2779 specification: 2780 "MUST meet the minimum quality target defined by the video encoder " 2781 "rate-distortion curves for hardware AVC and HEVC codecs, as defined " 2782 "in Run Performance Class 14 (PC14)-Video encoding quality (VEQ) tests." 2783 required_values: { 2784 key: "bdrate_vmaf" 2785 value { 2786 double_value: 0.0 2787 } 2788 } 2789 required_values: { 2790 key: "calculated" 2791 value { 2792 bool_value: true 2793 } 2794 } 2795 required_values: { 2796 key: "codec_name" 2797 value { 2798 } 2799 } 2800 required_values: { 2801 key: "bframes_allowed" 2802 value { 2803 } 2804 } 2805 required_values: { 2806 key: "resolution" 2807 value { 2808 } 2809 } 2810 } 2811 } 2812 specs { 2813 key: 35 2814 value { 2815 mpc: MEDIA_PERFORMANCE_CLASS_14 2816 specification: 2817 "MUST meet the minimum quality target defined by the video encoder " 2818 "rate-distortion curves for hardware AVC and HEVC codecs, as defined " 2819 "in Run Performance Class 14 (PC14)-Video encoding quality (VEQ) tests." 2820 required_values: { 2821 key: "bdrate_vmaf" 2822 value { 2823 double_value: 0.0 2824 } 2825 } 2826 required_values: { 2827 key: "calculated" 2828 value { 2829 bool_value: true 2830 } 2831 } 2832 required_values: { 2833 key: "codec_name" 2834 value { 2835 } 2836 } 2837 required_values: { 2838 key: "bframes_allowed" 2839 value { 2840 } 2841 } 2842 required_values: { 2843 key: "resolution" 2844 value { 2845 } 2846 } 2847 } 2848 } 2849} 2850requirements { 2851 id: "5.3/H-1-1" 2852 name: "Frame drop" 2853 description: "- Decoder frame drops" 2854 test_configs: { 2855 key: "1080p_30fps" 2856 value: { 2857 description: "Tests frame drop at 1080p resolution and 30fps" 2858 proto_field_number: 40 2859 } 2860 } 2861 test_configs: { 2862 key: "1080p_60fps" 2863 value: { 2864 description: "Tests frame drop at 1080p resolution and 60fps" 2865 proto_field_number: 41 2866 } 2867 } 2868 test_configs: { 2869 key: "4k_60fps" 2870 value: { 2871 description: "Tests frame drop at 4k resolution and 60fps" 2872 proto_field_number: 42 2873 } 2874 } 2875 measurements: { 2876 key: "frame_drops_per_30sec" 2877 value: { 2878 id: "frame_drops_per_30sec" 2879 description: "Frame dropped in 30 seconds" 2880 measurement_type: MEASUREMENT_TYPE_INT 2881 comparison: COMPARISON_LESS_THAN_OR_EQUAL 2882 proto_field_number: 3 2883 } 2884 } 2885 measurements: { 2886 key: "frame_rate" 2887 value: { 2888 id: "frame_rate" 2889 description: "Frame rate the test was ran at." 2890 measurement_type: MEASUREMENT_TYPE_DOUBLE 2891 comparison: COMPARISON_CONFIG 2892 proto_field_number: 4 2893 } 2894 } 2895 measurements: { 2896 key: "resolution" 2897 value: { 2898 id: "resolution" 2899 description: "Resolution the test was ran at." 2900 measurement_type: MEASUREMENT_TYPE_INT 2901 comparison: COMPARISON_CONFIG 2902 proto_field_number: 5 2903 } 2904 } 2905 specs { 2906 key: 30 2907 value { 2908 mpc: MEDIA_PERFORMANCE_CLASS_11 2909 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." 2910 test_config_id: "1080p_30fps" 2911 required_values { 2912 key: "frame_drops_per_30sec" 2913 value { 2914 int_value: 3 2915 } 2916 } 2917 required_values { 2918 key: "frame_rate" 2919 value { 2920 double_value: 30.0 2921 } 2922 } 2923 required_values { 2924 key: "resolution" 2925 value { 2926 int_value: 1080 2927 } 2928 } 2929 } 2930 } 2931 specs { 2932 key: 31 2933 value { 2934 mpc: MEDIA_PERFORMANCE_CLASS_12 2935 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." 2936 test_config_id: "1080p_60fps" 2937 required_values { 2938 key: "frame_drops_per_30sec" 2939 value { 2940 int_value: 6 2941 } 2942 } 2943 required_values { 2944 key: "frame_rate" 2945 value { 2946 double_value: 60.0 2947 } 2948 } 2949 required_values { 2950 key: "resolution" 2951 value { 2952 int_value: 1080 2953 } 2954 } 2955 } 2956 } 2957 specs { 2958 key: 33 2959 value { 2960 mpc: MEDIA_PERFORMANCE_CLASS_13 2961 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." 2962 test_config_id: "1080p_60fps" 2963 required_values { 2964 key: "frame_drops_per_30sec" 2965 value { 2966 int_value: 3 2967 } 2968 } 2969 required_values { 2970 key: "frame_rate" 2971 value { 2972 double_value: 60.0 2973 } 2974 } 2975 required_values { 2976 key: "resolution" 2977 value { 2978 int_value: 1080 2979 } 2980 } 2981 } 2982 } 2983 specs { 2984 key: 34 2985 value { 2986 mpc: MEDIA_PERFORMANCE_CLASS_14 2987 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." 2988 test_config_id: "4k_60fps" 2989 required_values { 2990 key: "frame_drops_per_30sec" 2991 value { 2992 int_value: 3 2993 } 2994 } 2995 required_values { 2996 key: "frame_rate" 2997 value { 2998 double_value: 60.0 2999 } 3000 } 3001 required_values { 3002 key: "resolution" 3003 value { 3004 int_value: 2160 3005 } 3006 } 3007 } 3008 } 3009 specs { 3010 key: 35 3011 value { 3012 mpc: MEDIA_PERFORMANCE_CLASS_15 3013 specification: "same" 3014 test_config_id: "4k_60fps" 3015 required_values { 3016 key: "frame_drops_per_30sec" 3017 value { 3018 int_value: 3 3019 } 3020 } 3021 required_values { 3022 key: "frame_rate" 3023 value { 3024 double_value: 60.0 3025 } 3026 } 3027 required_values { 3028 key: "resolution" 3029 value { 3030 int_value: 2160 3031 } 3032 } 3033 } 3034 } 3035} 3036requirements { 3037 id: "5.3/H-1-2" 3038 name: "Adaptive Playback Frame Drop" 3039 description: "Adaptive playback frame drop" 3040 test_configs: { 3041 key: "1080p_30fps" 3042 value: { 3043 description: "Tests adaptive playback at 1080p resolution and 30fps" 3044 proto_field_number: 43 3045 } 3046 } 3047 test_configs: { 3048 key: "1080p_60fps" 3049 value: { 3050 description: "Tests adaptive playback at 1080p resolution and 60fps" 3051 proto_field_number: 44 3052 } 3053 } 3054 test_configs: { 3055 key: "4k_60fps" 3056 value: { 3057 description: "Tests adaptive playback at 4k resolution and 60fps" 3058 proto_field_number: 45 3059 } 3060 } 3061 measurements: { 3062 key: "frame_drops_per_30sec" 3063 value: { 3064 description: "Frame dropped in 30 seconds" 3065 measurement_type: MEASUREMENT_TYPE_INT 3066 comparison: COMPARISON_LESS_THAN_OR_EQUAL 3067 proto_field_number: 3 3068 } 3069 } 3070 measurements: { 3071 key: "frame_rate" 3072 value: { 3073 description: "Frame rate the test was ran at." 3074 measurement_type: MEASUREMENT_TYPE_DOUBLE 3075 comparison: COMPARISON_CONFIG 3076 proto_field_number: 4 3077 } 3078 } 3079 measurements: { 3080 key: "resolution" 3081 value: { 3082 description: "Resolution the test was ran at." 3083 measurement_type: MEASUREMENT_TYPE_INT 3084 comparison: COMPARISON_CONFIG 3085 proto_field_number: 5 3086 } 3087 } 3088 specs { 3089 key: 30 3090 value { 3091 mpc: MEDIA_PERFORMANCE_CLASS_11 3092 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." 3093 test_config_id: "1080p_30fps" 3094 required_values { 3095 key: "frame_drops_per_30sec" 3096 value { 3097 int_value: 3 3098 } 3099 } 3100 required_values { 3101 key: "frame_rate" 3102 value { 3103 double_value: 30.0 3104 } 3105 } 3106 required_values { 3107 key: "resolution" 3108 value { 3109 int_value: 1080 3110 } 3111 } 3112 } 3113 } 3114 specs { 3115 key: 31 3116 value { 3117 mpc: MEDIA_PERFORMANCE_CLASS_12 3118 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." 3119 test_config_id: "1080p_60fps" 3120 required_values { 3121 key: "frame_drops_per_30sec" 3122 value { 3123 int_value: 6 3124 } 3125 } 3126 required_values { 3127 key: "frame_rate" 3128 value { 3129 double_value: 60.0 3130 } 3131 } 3132 required_values { 3133 key: "resolution" 3134 value { 3135 int_value: 1080 3136 } 3137 } 3138 } 3139 } 3140 specs { 3141 key: 33 3142 value { 3143 mpc: MEDIA_PERFORMANCE_CLASS_13 3144 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." 3145 test_config_id: "1080p_60fps" 3146 required_values { 3147 key: "frame_drops_per_30sec" 3148 value { 3149 int_value: 3 3150 } 3151 } 3152 required_values { 3153 key: "frame_rate" 3154 value { 3155 double_value: 60.0 3156 } 3157 } 3158 required_values { 3159 key: "resolution" 3160 value { 3161 int_value: 1080 3162 } 3163 } 3164 } 3165 } 3166 specs { 3167 key: 34 3168 value { 3169 mpc: MEDIA_PERFORMANCE_CLASS_14 3170 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." 3171 test_config_id: "4k_60fps" 3172 required_values { 3173 key: "frame_drops_per_30sec" 3174 value { 3175 int_value: 3 3176 } 3177 } 3178 required_values { 3179 key: "frame_rate" 3180 value { 3181 double_value: 60.0 3182 } 3183 } 3184 required_values { 3185 key: "resolution" 3186 value { 3187 int_value: 2160 3188 } 3189 } 3190 } 3191 } 3192 specs { 3193 key: 35 3194 value { 3195 mpc: MEDIA_PERFORMANCE_CLASS_15 3196 specification: "same" 3197 test_config_id: "4k_60fps" 3198 required_values { 3199 key: "frame_drops_per_30sec" 3200 value { 3201 int_value: 3 3202 } 3203 } 3204 required_values { 3205 key: "frame_rate" 3206 value { 3207 double_value: 60.0 3208 } 3209 } 3210 required_values { 3211 key: "resolution" 3212 value { 3213 int_value: 2160 3214 } 3215 } 3216 } 3217 } 3218} 3219requirements { 3220 id: "5.6/H-1-1" 3221 name: "Tap to Tone Latency" 3222 description: "Tap to tone latency" 3223 is_non_cts_test: true 3224 test_configs: { 3225 key: "" 3226 value: { 3227 description: "Default test config" 3228 proto_field_number: 46 3229 } 3230 } 3231 measurements: { 3232 key: "native_latency_ms" 3233 value: { 3234 description: "Native latency in milliseconds" 3235 measurement_type: MEASUREMENT_TYPE_DOUBLE 3236 comparison: COMPARISON_LESS_THAN_OR_EQUAL 3237 proto_field_number: 3 3238 } 3239 } 3240 measurements: { 3241 key: "java_latency_ms" 3242 value: { 3243 description: "Java latency in milliseconds" 3244 measurement_type: MEASUREMENT_TYPE_DOUBLE 3245 comparison: COMPARISON_LESS_THAN_OR_EQUAL 3246 proto_field_number: 4 3247 } 3248 } 3249 specs { 3250 key: 30 3251 value { 3252 mpc: MEDIA_PERFORMANCE_CLASS_11 3253 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." 3254 required_values { 3255 key: "native_latency_ms" 3256 value { 3257 double_value: 100.0 3258 } 3259 } 3260 required_values { 3261 key: "java_latency_ms" 3262 value { 3263 double_value: 100.0 3264 } 3265 } 3266 } 3267 } 3268 specs { 3269 key: 31 3270 value { 3271 mpc: MEDIA_PERFORMANCE_CLASS_12 3272 specification: "same" 3273 required_values { 3274 key: "native_latency_ms" 3275 value { 3276 double_value: 100.0 3277 } 3278 } 3279 required_values { 3280 key: "java_latency_ms" 3281 value { 3282 double_value: 100.0 3283 } 3284 } 3285 } 3286 } 3287 specs { 3288 key: 33 3289 value { 3290 mpc: MEDIA_PERFORMANCE_CLASS_13 3291 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." 3292 required_values { 3293 key: "native_latency_ms" 3294 value { 3295 double_value: 80.0 3296 } 3297 } 3298 required_values { 3299 key: "java_latency_ms" 3300 value { 3301 double_value: 80.0 3302 } 3303 } 3304 } 3305 } 3306 specs { 3307 key: 34 3308 value { 3309 mpc: MEDIA_PERFORMANCE_CLASS_14 3310 specification: "MUST have a tap-to-tone latency of 80 milliseconds or less using the CTS Verifier tap-to-tone test." 3311 required_values { 3312 key: "native_latency_ms" 3313 value { 3314 double_value: 80.0 3315 } 3316 } 3317 required_values { 3318 key: "java_latency_ms" 3319 value { 3320 double_value: 80.0 3321 } 3322 } 3323 } 3324 } 3325 specs { 3326 key: 35 3327 value { 3328 mpc: MEDIA_PERFORMANCE_CLASS_15 3329 specification: "same" 3330 required_values { 3331 key: "native_latency_ms" 3332 value { 3333 double_value: 80.0 3334 } 3335 } 3336 required_values { 3337 key: "java_latency_ms" 3338 value { 3339 double_value: 80.0 3340 } 3341 } 3342 } 3343 } 3344} 3345requirements { 3346 id: "5.6/H-1-2" 3347 name: "Round Trip Audio Latency" 3348 description: "Round-trip audio latency" 3349 is_non_cts_test: true 3350 test_configs: { 3351 key: "" 3352 value: { 3353 description: "Default test config" 3354 proto_field_number: 47 3355 } 3356 } 3357 measurements: { 3358 key: "round_trip_audio_latency_ms" 3359 value: { 3360 description: "Round-trip audio latency in milliseconds" 3361 measurement_type: MEASUREMENT_TYPE_DOUBLE 3362 comparison: COMPARISON_LESS_THAN_OR_EQUAL 3363 proto_field_number: 3 3364 } 3365 } 3366 specs { 3367 key: 33 3368 value { 3369 mpc: MEDIA_PERFORMANCE_CLASS_13 3370 specification: "MUST have a round-trip audio latency of 80 milliseconds or less over at least one supported data path." 3371 required_values { 3372 key: "round_trip_audio_latency_ms" 3373 value { 3374 double_value: 80.0 3375 } 3376 } 3377 } 3378 } 3379 specs { 3380 key: 34 3381 value { 3382 mpc: MEDIA_PERFORMANCE_CLASS_14 3383 specification: "same" 3384 required_values { 3385 key: "round_trip_audio_latency_ms" 3386 value { 3387 double_value: 80.0 3388 } 3389 } 3390 } 3391 } 3392 specs { 3393 key: 35 3394 value { 3395 mpc: MEDIA_PERFORMANCE_CLASS_15 3396 specification: "same" 3397 required_values { 3398 key: "round_trip_audio_latency_ms" 3399 value { 3400 double_value: 80.0 3401 } 3402 } 3403 } 3404 } 3405} 3406requirements { 3407 id: "5.6/H-1-3" 3408 name: "Twenty Four Bit Audio" 3409 description: "Wired headsets and USB audio devices support 24-bit audio" 3410 is_non_cts_test: true 3411 test_configs: { 3412 key: "" 3413 value: { 3414 description: "Default test config" 3415 proto_field_number: 48 3416 } 3417 } 3418 measurements: { 3419 key: "twenty_four_bit_audio_supported" 3420 value: { 3421 description: "Is 24-bit audio supported" 3422 measurement_type: MEASUREMENT_TYPE_BOOL 3423 comparison: COMPARISON_EQUAL 3424 proto_field_number: 3 3425 } 3426 } 3427 specs { 3428 key: 33 3429 value { 3430 mpc: MEDIA_PERFORMANCE_CLASS_13 3431 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." 3432 required_values { 3433 key: "twenty_four_bit_audio_supported" 3434 value { 3435 bool_value: true 3436 } 3437 } 3438 } 3439 } 3440 specs { 3441 key: 34 3442 value { 3443 mpc: MEDIA_PERFORMANCE_CLASS_14 3444 specification: "same" 3445 required_values { 3446 key: "twenty_four_bit_audio_supported" 3447 value { 3448 bool_value: true 3449 } 3450 } 3451 } 3452 } 3453 specs { 3454 key: 35 3455 value { 3456 mpc: MEDIA_PERFORMANCE_CLASS_15 3457 specification: "same" 3458 required_values { 3459 key: "twenty_four_bit_audio_supported" 3460 value { 3461 bool_value: true 3462 } 3463 } 3464 } 3465 } 3466} 3467requirements { 3468 id: "5.6/H-1-4" 3469 description: "- Wired headsets and USB audio devices" 3470 specs { 3471 key: 33 3472 value { 3473 mpc: MEDIA_PERFORMANCE_CLASS_13 3474 specification: "MUST support >=4 channel USB audio devices (This is used by DJ controllers for previewing songs.)" 3475 } 3476 } 3477 specs { 3478 key: 34 3479 value { 3480 mpc: MEDIA_PERFORMANCE_CLASS_14 3481 specification: "same" 3482 } 3483 } 3484 specs { 3485 key: 35 3486 value { 3487 mpc: MEDIA_PERFORMANCE_CLASS_15 3488 specification: "same" 3489 } 3490 } 3491} 3492requirements { 3493 id: "5.6/H-1-5" 3494 description: "- MIDI devices" 3495 specs { 3496 key: 33 3497 value { 3498 mpc: MEDIA_PERFORMANCE_CLASS_13 3499 specification: "MUST support class compliant MIDI devices and declare the MIDI feature flag." 3500 } 3501 } 3502 specs { 3503 key: 34 3504 value { 3505 mpc: MEDIA_PERFORMANCE_CLASS_14 3506 specification: "same" 3507 } 3508 } 3509 specs { 3510 key: 35 3511 value { 3512 mpc: MEDIA_PERFORMANCE_CLASS_15 3513 specification: "same" 3514 } 3515 } 3516} 3517requirements { 3518 id: "5.6/H-1-9" 3519 description: "- Multichannel audio mixing" 3520 specs { 3521 key: 34 3522 value { 3523 mpc: MEDIA_PERFORMANCE_CLASS_14 3524 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." 3525 } 3526 } 3527 specs { 3528 key: 35 3529 value { 3530 mpc: MEDIA_PERFORMANCE_CLASS_15 3531 specification: "same" 3532 } 3533 } 3534} 3535requirements { 3536 id: "5.6/H-SR" 3537 specs { 3538 key: 34 3539 value { 3540 mpc: MEDIA_PERFORMANCE_CLASS_14 3541 specification: "Are STRONGLY RECOMMENDED to support 24 channel mixing with at least support for 9.1.6 and 22.2 channel masks." 3542 } 3543 } 3544 specs { 3545 key: 35 3546 value { 3547 mpc: MEDIA_PERFORMANCE_CLASS_15 3548 specification: "same" 3549 } 3550 } 3551} 3552requirements { 3553 id: "5.7/H-1-2" 3554 name: "Media Drm Security Level Hardware Secure All" 3555 description: "Hardware-backed trusted execution environment" 3556 test_configs: { 3557 key: "" 3558 value: { 3559 description: "Default test config" 3560 proto_field_number: 49 3561 } 3562 } 3563 measurements: { 3564 key: "number_crypto_hw_secure_all_support" 3565 value: { 3566 description: "Number of crypto hw secure all supported." 3567 measurement_type: MEASUREMENT_TYPE_INT 3568 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 3569 proto_field_number: 3 3570 } 3571 } 3572 specs { 3573 key: 33 3574 value { 3575 mpc: MEDIA_PERFORMANCE_CLASS_13 3576 specification: 3577 "MUST support MediaDrm.SECURITY_LEVEL_HW_SECURE_ALL with the below " 3578 "content decryption capabilities.\n" 3579 "Minimum Sample size 4 MiB\n" 3580 "Minimum Number of Subsamples - H264 or HEVC 32\n" 3581 "Minimum Number of Subsamples - VP9 9\n" 3582 "Minimum Number of Subsamples - AV1 288\n" 3583 "Minimum subsample buffer size 1 MiB\n" 3584 "Minimum Generic crypto buffer size 500 KiB\n" 3585 "Minimum Number of concurrent sessions 30\n" 3586 "Minimum Number of keys per session 20\n" 3587 "Minimum Total Number of Keys (all sessions) 80\n" 3588 "Minimum Total Number of DRM Keys (all sessions) 6\n" 3589 "Message Size 16 KiB\n" 3590 "Decrypted Frames per Second 60 fps" 3591 required_values { 3592 key: "number_crypto_hw_secure_all_support" 3593 value { 3594 int_value: 1 3595 } 3596 } 3597 } 3598 } 3599 specs { 3600 key: 34 3601 value { 3602 mpc: MEDIA_PERFORMANCE_CLASS_14 3603 specification: "same" 3604 required_values { 3605 key: "number_crypto_hw_secure_all_support" 3606 value { 3607 int_value: 1 3608 } 3609 } 3610 } 3611 } 3612 specs { 3613 key: 35 3614 value { 3615 mpc: MEDIA_PERFORMANCE_CLASS_15 3616 specification: "same" 3617 required_values { 3618 key: "number_crypto_hw_secure_all_support" 3619 value { 3620 int_value: 1 3621 } 3622 } 3623 } 3624 } 3625} 3626requirements { 3627 id: "7.5/H-1-1" 3628 name: "Primary Rear Camera Resolution and Frame Rate" 3629 description: "Primary rear camera resolution and frame rate" 3630 test_configs: { 3631 key: "" 3632 value: { 3633 description: "Default test config" 3634 proto_field_number: 50 3635 } 3636 } 3637 measurements: { 3638 key: "primary_camera_available" 3639 value: { 3640 description: "Is the primary camera available" 3641 measurement_type: MEASUREMENT_TYPE_BOOL 3642 comparison: COMPARISON_EQUAL 3643 proto_field_number: 3 3644 } 3645 } 3646 measurements: { 3647 key: "primary_camera_resolution" 3648 value: { 3649 description: "Resolution of the primary camera" 3650 measurement_type: MEASUREMENT_TYPE_LONG 3651 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 3652 proto_field_number: 4 3653 } 3654 } 3655 measurements: { 3656 key: "primary_camera_video_size_req_satisfied" 3657 value: { 3658 description: "Video size requirement satisfied at 4k" 3659 measurement_type: MEASUREMENT_TYPE_BOOL 3660 comparison: COMPARISON_EQUAL 3661 proto_field_number: 5 3662 } 3663 } 3664 measurements: { 3665 key: "primary_camera_1080p_video_size_req_satisfied" 3666 value: { 3667 description: "Video size requirement satisfied at 1080p" 3668 measurement_type: MEASUREMENT_TYPE_BOOL 3669 comparison: COMPARISON_EQUAL 3670 proto_field_number: 6 3671 } 3672 } 3673 measurements: { 3674 key: "primary_camera_720p_video_size_req_satisfied" 3675 value: { 3676 description: "Video size requirement satisfied at 720p" 3677 measurement_type: MEASUREMENT_TYPE_BOOL 3678 comparison: COMPARISON_EQUAL 3679 proto_field_number: 7 3680 } 3681 } 3682 measurements: { 3683 key: "primary_camera_video_fps" 3684 value: { 3685 description: "Video fps at 4k" 3686 measurement_type: MEASUREMENT_TYPE_DOUBLE 3687 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 3688 proto_field_number: 8 3689 } 3690 } 3691 measurements: { 3692 key: "primary_camera_1080p_video_fps" 3693 value: { 3694 description: "Video fps at 1080p" 3695 measurement_type: MEASUREMENT_TYPE_DOUBLE 3696 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 3697 proto_field_number: 9 3698 } 3699 } 3700 measurements: { 3701 key: "primary_camera_720p_video_fps" 3702 value: { 3703 description: "Video fps at 720p" 3704 measurement_type: MEASUREMENT_TYPE_DOUBLE 3705 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 3706 proto_field_number: 10 3707 } 3708 } 3709 specs { 3710 key: 30 3711 value { 3712 mpc: MEDIA_PERFORMANCE_CLASS_11 3713 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." 3714 required_values { 3715 key: "primary_camera_available" 3716 value { 3717 bool_value: true 3718 } 3719 } 3720 required_values { 3721 key: "primary_camera_resolution" 3722 value { 3723 long_value: 12000000 3724 } 3725 } 3726 required_values { 3727 key: "primary_camera_video_size_req_satisfied" 3728 value { 3729 bool_value: true 3730 } 3731 } 3732 required_values { 3733 key: "primary_camera_video_fps" 3734 value { 3735 double_value: 29.9 3736 } 3737 } 3738 } 3739 } 3740 specs { 3741 key: 31 3742 value { 3743 mpc: MEDIA_PERFORMANCE_CLASS_12 3744 specification: "same" 3745 required_values { 3746 key: "primary_camera_available" 3747 value { 3748 bool_value: true 3749 } 3750 } 3751 required_values { 3752 key: "primary_camera_resolution" 3753 value { 3754 long_value: 12000000 3755 } 3756 } 3757 required_values { 3758 key: "primary_camera_video_size_req_satisfied" 3759 value { 3760 bool_value: true 3761 } 3762 } 3763 required_values { 3764 key: "primary_camera_video_fps" 3765 value { 3766 double_value: 29.9 3767 } 3768 } 3769 } 3770 } 3771 specs { 3772 key: 33 3773 value { 3774 mpc: MEDIA_PERFORMANCE_CLASS_13 3775 specification: "same" 3776 required_values { 3777 key: "primary_camera_available" 3778 value { 3779 bool_value: true 3780 } 3781 } 3782 required_values { 3783 key: "primary_camera_resolution" 3784 value { 3785 long_value: 12000000 3786 } 3787 } 3788 required_values { 3789 key: "primary_camera_video_size_req_satisfied" 3790 value { 3791 bool_value: true 3792 } 3793 } 3794 required_values { 3795 key: "primary_camera_video_fps" 3796 value { 3797 double_value: 29.9 3798 } 3799 } 3800 } 3801 } 3802 specs { 3803 key: 34 3804 value { 3805 mpc: MEDIA_PERFORMANCE_CLASS_14 3806 specification: "same" 3807 required_values { 3808 key: "primary_camera_available" 3809 value { 3810 bool_value: true 3811 } 3812 } 3813 required_values { 3814 key: "primary_camera_resolution" 3815 value { 3816 long_value: 12000000 3817 } 3818 } 3819 required_values { 3820 key: "primary_camera_video_size_req_satisfied" 3821 value { 3822 bool_value: true 3823 } 3824 } 3825 required_values { 3826 key: "primary_camera_video_fps" 3827 value { 3828 double_value: 29.9 3829 } 3830 } 3831 } 3832 } 3833 specs { 3834 key: 35 3835 value { 3836 mpc: MEDIA_PERFORMANCE_CLASS_15 3837 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." 3838 required_values { 3839 key: "primary_camera_available" 3840 value { 3841 bool_value: true 3842 } 3843 } 3844 required_values { 3845 key: "primary_camera_resolution" 3846 value { 3847 long_value: 12000000 3848 } 3849 } 3850 required_values { 3851 key: "primary_camera_video_size_req_satisfied" 3852 value { 3853 bool_value: true 3854 } 3855 } 3856 required_values { 3857 key: "primary_camera_1080p_video_size_req_satisfied" 3858 value { 3859 bool_value: true 3860 } 3861 } 3862 required_values { 3863 key: "primary_camera_720p_video_size_req_satisfied" 3864 value { 3865 bool_value: true 3866 } 3867 } 3868 required_values { 3869 key: "primary_camera_video_fps" 3870 value { 3871 double_value: 29.9 3872 } 3873 } 3874 required_values { 3875 key: "primary_camera_1080p_video_fps" 3876 value { 3877 double_value: 59.9 3878 } 3879 } 3880 required_values { 3881 key: "primary_camera_720p_video_fps" 3882 value { 3883 double_value: 59.9 3884 } 3885 } 3886 } 3887 } 3888} 3889requirements { 3890 id: "7.5/H-1-2" 3891 name: "Primary Front Camera Resolution and Frame Rate" 3892 description: "Primary front camera resolution and frame rate" 3893 test_configs: { 3894 key: "" 3895 value: { 3896 description: "Default test config" 3897 proto_field_number: 51 3898 } 3899 } 3900 measurements: { 3901 key: "primary_camera_available" 3902 value: { 3903 description: "Is the primary camera available" 3904 measurement_type: MEASUREMENT_TYPE_BOOL 3905 comparison: COMPARISON_EQUAL 3906 proto_field_number: 3 3907 } 3908 } 3909 measurements: { 3910 key: "primary_camera_resolution" 3911 value: { 3912 description: "Resolution of the primary camera" 3913 measurement_type: MEASUREMENT_TYPE_LONG 3914 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 3915 proto_field_number: 4 3916 } 3917 } 3918 measurements: { 3919 key: "primary_camera_video_size_req_satisfied" 3920 value: { 3921 description: "Video size requirement satisfied" 3922 measurement_type: MEASUREMENT_TYPE_BOOL 3923 comparison: COMPARISON_EQUAL 3924 proto_field_number: 5 3925 } 3926 } 3927 measurements: { 3928 key: "primary_camera_video_fps" 3929 value: { 3930 description: "Video fps" 3931 measurement_type: MEASUREMENT_TYPE_DOUBLE 3932 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 3933 proto_field_number: 6 3934 } 3935 } 3936 specs { 3937 key: 30 3938 value { 3939 mpc: MEDIA_PERFORMANCE_CLASS_11 3940 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." 3941 required_values { 3942 key: "primary_camera_available" 3943 value { 3944 bool_value: true 3945 } 3946 } 3947 required_values { 3948 key: "primary_camera_resolution" 3949 value { 3950 long_value: 4000000 3951 } 3952 } 3953 required_values { 3954 key: "primary_camera_video_size_req_satisfied" 3955 value { 3956 bool_value: true 3957 } 3958 } 3959 required_values { 3960 key: "primary_camera_video_fps" 3961 value { 3962 double_value: 29.9 3963 } 3964 } 3965 } 3966 } 3967 specs { 3968 key: 31 3969 value { 3970 mpc: MEDIA_PERFORMANCE_CLASS_12 3971 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." 3972 required_values { 3973 key: "primary_camera_available" 3974 value { 3975 bool_value: true 3976 } 3977 } 3978 required_values { 3979 key: "primary_camera_resolution" 3980 value { 3981 long_value: 5000000 3982 } 3983 } 3984 required_values { 3985 key: "primary_camera_video_size_req_satisfied" 3986 value { 3987 bool_value: true 3988 } 3989 } 3990 required_values { 3991 key: "primary_camera_video_fps" 3992 value { 3993 double_value: 29.9 3994 } 3995 } 3996 } 3997 } 3998 specs { 3999 key: 33 4000 value { 4001 mpc: MEDIA_PERFORMANCE_CLASS_13 4002 specification: "same" 4003 required_values { 4004 key: "primary_camera_available" 4005 value { 4006 bool_value: true 4007 } 4008 } 4009 required_values { 4010 key: "primary_camera_resolution" 4011 value { 4012 long_value: 5000000 4013 } 4014 } 4015 required_values { 4016 key: "primary_camera_video_size_req_satisfied" 4017 value { 4018 bool_value: true 4019 } 4020 } 4021 required_values { 4022 key: "primary_camera_video_fps" 4023 value { 4024 double_value: 29.9 4025 } 4026 } 4027 } 4028 } 4029 specs { 4030 key: 34 4031 value { 4032 mpc: MEDIA_PERFORMANCE_CLASS_14 4033 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." 4034 required_values { 4035 key: "primary_camera_available" 4036 value { 4037 bool_value: true 4038 } 4039 } 4040 required_values { 4041 key: "primary_camera_resolution" 4042 value { 4043 long_value: 5000000 4044 } 4045 } 4046 required_values { 4047 key: "primary_camera_video_size_req_satisfied" 4048 value { 4049 bool_value: true 4050 } 4051 } 4052 required_values { 4053 key: "primary_camera_video_fps" 4054 value { 4055 double_value: 29.9 4056 } 4057 } 4058 } 4059 } 4060 specs { 4061 key: 35 4062 value { 4063 mpc: MEDIA_PERFORMANCE_CLASS_15 4064 specification: "same" 4065 required_values { 4066 key: "primary_camera_available" 4067 value { 4068 bool_value: true 4069 } 4070 } 4071 required_values { 4072 key: "primary_camera_resolution" 4073 value { 4074 long_value: 5000000 4075 } 4076 } 4077 required_values { 4078 key: "primary_camera_video_size_req_satisfied" 4079 value { 4080 bool_value: true 4081 } 4082 } 4083 required_values { 4084 key: "primary_camera_video_fps" 4085 value { 4086 double_value: 29.9 4087 } 4088 } 4089 } 4090 } 4091} 4092requirements { 4093 id: "7.5/H-1-3" 4094 name: "Camera Hardware Level" 4095 description: "Camera hardware level is FULL or better hardware level" 4096 test_configs: { 4097 key: "" 4098 value: { 4099 description: "Default test config" 4100 proto_field_number: 52 4101 } 4102 } 4103 measurements: { 4104 key: "rear_primary_camera_hwl_level" 4105 value: { 4106 description: "Hardware level of the primary camera" 4107 measurement_type: MEASUREMENT_TYPE_INT 4108 comparison: COMPARISON_CAMERA_HARDWARE_LEVEL_GREATER_THAN_OR_EQUAL 4109 proto_field_number: 3 4110 } 4111 } 4112 measurements: { 4113 key: "front_primary_camera_hwl_level" 4114 value: { 4115 description: "Hardware level of the secondary camera" 4116 measurement_type: MEASUREMENT_TYPE_INT 4117 comparison: COMPARISON_CAMERA_HARDWARE_LEVEL_GREATER_THAN_OR_EQUAL 4118 proto_field_number: 4 4119 } 4120 } 4121 specs { 4122 key: 30 4123 value { 4124 mpc: MEDIA_PERFORMANCE_CLASS_11 4125 specification: "MUST support android.info.supportedHardwareLevel property as FULL or better for back primary and LIMITED or better for front primary camera." 4126 required_values { 4127 key: "rear_primary_camera_hwl_level" 4128 value { 4129 int_value: 1 4130 } 4131 } 4132 required_values { 4133 key: "front_primary_camera_hwl_level" 4134 value { 4135 int_value: 0 4136 } 4137 } 4138 } 4139 } 4140 specs { 4141 key: 31 4142 value { 4143 mpc: MEDIA_PERFORMANCE_CLASS_12 4144 specification: "MUST support android.info.supportedHardwareLevel property as FULL or better for both primary cameras." 4145 required_values { 4146 key: "rear_primary_camera_hwl_level" 4147 value { 4148 int_value: 1 4149 } 4150 } 4151 required_values { 4152 key: "front_primary_camera_hwl_level" 4153 value { 4154 int_value: 1 4155 } 4156 } 4157 } 4158 } 4159 specs { 4160 key: 33 4161 value { 4162 mpc: MEDIA_PERFORMANCE_CLASS_13 4163 specification: "same" 4164 required_values { 4165 key: "rear_primary_camera_hwl_level" 4166 value { 4167 int_value: 1 4168 } 4169 } 4170 required_values { 4171 key: "front_primary_camera_hwl_level" 4172 value { 4173 int_value: 1 4174 } 4175 } 4176 } 4177 } 4178 specs { 4179 key: 34 4180 value { 4181 mpc: MEDIA_PERFORMANCE_CLASS_14 4182 specification: "same" 4183 required_values { 4184 key: "rear_primary_camera_hwl_level" 4185 value { 4186 int_value: 1 4187 } 4188 } 4189 required_values { 4190 key: "front_primary_camera_hwl_level" 4191 value { 4192 int_value: 1 4193 } 4194 } 4195 } 4196 } 4197 specs { 4198 key: 35 4199 value { 4200 mpc: MEDIA_PERFORMANCE_CLASS_15 4201 specification: "same" 4202 required_values { 4203 key: "rear_primary_camera_hwl_level" 4204 value { 4205 int_value: 1 4206 } 4207 } 4208 required_values { 4209 key: "front_primary_camera_hwl_level" 4210 value { 4211 int_value: 1 4212 } 4213 } 4214 } 4215 } 4216} 4217requirements { 4218 id: "7.5/H-1-4" 4219 name: "Timestamp Source Realtime" 4220 description: "Timestamp source is realtime" 4221 test_configs: { 4222 key: "" 4223 value: { 4224 description: "Default test config" 4225 proto_field_number: 53 4226 } 4227 } 4228 measurements: { 4229 key: "rear_primary_camera_timestamp_source" 4230 value: { 4231 description: "Is the rear primary camera timestamp source realtime" 4232 measurement_type: MEASUREMENT_TYPE_INT 4233 comparison: COMPARISON_EQUAL 4234 proto_field_number: 3 4235 } 4236 } 4237 measurements: { 4238 key: "front_primary_camera_timestamp_source" 4239 value: { 4240 description: "Is the front primary camera timestamp source realtime" 4241 measurement_type: MEASUREMENT_TYPE_INT 4242 comparison: COMPARISON_EQUAL 4243 proto_field_number: 4 4244 } 4245 } 4246 specs { 4247 key: 30 4248 value { 4249 mpc: MEDIA_PERFORMANCE_CLASS_11 4250 specification: "MUST support CameraMetadata.SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME for both primary cameras." 4251 required_values { 4252 key: "rear_primary_camera_timestamp_source" 4253 value { 4254 int_value: 1 4255 } 4256 } 4257 required_values { 4258 key: "front_primary_camera_timestamp_source" 4259 value { 4260 int_value: 1 4261 } 4262 } 4263 } 4264 } 4265 specs { 4266 key: 31 4267 value { 4268 mpc: MEDIA_PERFORMANCE_CLASS_12 4269 specification: "same" 4270 required_values { 4271 key: "rear_primary_camera_timestamp_source" 4272 value { 4273 int_value: 1 4274 } 4275 } 4276 required_values { 4277 key: "front_primary_camera_timestamp_source" 4278 value { 4279 int_value: 1 4280 } 4281 } 4282 } 4283 } 4284 specs { 4285 key: 33 4286 value { 4287 mpc: MEDIA_PERFORMANCE_CLASS_13 4288 specification: "same" 4289 required_values { 4290 key: "rear_primary_camera_timestamp_source" 4291 value { 4292 int_value: 1 4293 } 4294 } 4295 required_values { 4296 key: "front_primary_camera_timestamp_source" 4297 value { 4298 int_value: 1 4299 } 4300 } 4301 } 4302 } 4303 specs { 4304 key: 34 4305 value { 4306 mpc: MEDIA_PERFORMANCE_CLASS_14 4307 specification: "same" 4308 required_values { 4309 key: "rear_primary_camera_timestamp_source" 4310 value { 4311 int_value: 1 4312 } 4313 } 4314 required_values { 4315 key: "front_primary_camera_timestamp_source" 4316 value { 4317 int_value: 1 4318 } 4319 } 4320 } 4321 } 4322 specs { 4323 key: 35 4324 value { 4325 mpc: MEDIA_PERFORMANCE_CLASS_15 4326 specification: "same" 4327 required_values { 4328 key: "rear_primary_camera_timestamp_source" 4329 value { 4330 int_value: 1 4331 } 4332 } 4333 required_values { 4334 key: "front_primary_camera_timestamp_source" 4335 value { 4336 int_value: 1 4337 } 4338 } 4339 } 4340 } 4341} 4342requirements { 4343 id: "7.5/H-1-5" 4344 name: "Camera Capture Latency" 4345 description: "Capture latencies" 4346 is_non_cts_test: true 4347 test_configs: { 4348 key: "" 4349 value: { 4350 description: "Default test config" 4351 proto_field_number: 54 4352 } 4353 } 4354 measurements: { 4355 key: "rear_camera_latency" 4356 value: { 4357 description: "Capture latency in ms for the rear primary camera" 4358 measurement_type: MEASUREMENT_TYPE_FLOAT 4359 comparison: COMPARISON_LESS_THAN_OR_EQUAL 4360 proto_field_number: 3 4361 } 4362 } 4363 measurements: { 4364 key: "front_camera_latency" 4365 value: { 4366 description: "Capture latency in ms for the front primary camera" 4367 measurement_type: MEASUREMENT_TYPE_FLOAT 4368 comparison: COMPARISON_LESS_THAN_OR_EQUAL 4369 proto_field_number: 4 4370 } 4371 } 4372 specs { 4373 key: 30 4374 value { 4375 mpc: MEDIA_PERFORMANCE_CLASS_11 4376 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." 4377 required_values { 4378 key: "rear_camera_latency" 4379 value { 4380 float_value: 1000 4381 } 4382 } 4383 required_values { 4384 key: "front_camera_latency" 4385 value { 4386 float_value: 1000 4387 } 4388 } 4389 } 4390 } 4391 specs { 4392 key: 31 4393 value { 4394 mpc: MEDIA_PERFORMANCE_CLASS_12 4395 specification: "same" 4396 required_values { 4397 key: "rear_camera_latency" 4398 value { 4399 float_value: 1000 4400 } 4401 } 4402 required_values { 4403 key: "front_camera_latency" 4404 value { 4405 float_value: 1000 4406 } 4407 } 4408 } 4409 } 4410 specs { 4411 key: 33 4412 value { 4413 mpc: MEDIA_PERFORMANCE_CLASS_13 4414 specification: "same" 4415 required_values { 4416 key: "rear_camera_latency" 4417 value { 4418 float_value: 1000 4419 } 4420 } 4421 required_values { 4422 key: "front_camera_latency" 4423 value { 4424 float_value: 1000 4425 } 4426 } 4427 } 4428 } 4429 specs { 4430 key: 34 4431 value { 4432 mpc: MEDIA_PERFORMANCE_CLASS_14 4433 specification: "same" 4434 required_values { 4435 key: "rear_camera_latency" 4436 value { 4437 float_value: 1000 4438 } 4439 } 4440 required_values { 4441 key: "front_camera_latency" 4442 value { 4443 float_value: 1000 4444 } 4445 } 4446 } 4447 } 4448 specs { 4449 key: 35 4450 value { 4451 mpc: MEDIA_PERFORMANCE_CLASS_15 4452 specification: "same" 4453 required_values { 4454 key: "rear_camera_latency" 4455 value { 4456 float_value: 1000 4457 } 4458 } 4459 required_values { 4460 key: "front_camera_latency" 4461 value { 4462 float_value: 1000 4463 } 4464 } 4465 } 4466 } 4467} 4468requirements { 4469 id: "7.5/H-1-6" 4470 name: "Camera Startup Latency" 4471 description: "Startup latencies" 4472 is_non_cts_test: true 4473 test_configs: { 4474 key: "" 4475 value: { 4476 description: "Default test config" 4477 proto_field_number: 55 4478 } 4479 } 4480 measurements: { 4481 key: "rear_camera_latency" 4482 value: { 4483 description: "Startup latency in ms for the rear primary camera" 4484 measurement_type: MEASUREMENT_TYPE_FLOAT 4485 comparison: COMPARISON_LESS_THAN_OR_EQUAL 4486 proto_field_number: 3 4487 } 4488 } 4489 measurements: { 4490 key: "front_camera_latency" 4491 value: { 4492 description: "Startup latency in ms for the front primary camera" 4493 measurement_type: MEASUREMENT_TYPE_FLOAT 4494 comparison: COMPARISON_LESS_THAN_OR_EQUAL 4495 proto_field_number: 4 4496 } 4497 } 4498 specs { 4499 key: 30 4500 value { 4501 mpc: MEDIA_PERFORMANCE_CLASS_11 4502 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." 4503 required_values { 4504 key: "rear_camera_latency" 4505 value { 4506 float_value: 600 4507 } 4508 } 4509 required_values { 4510 key: "front_camera_latency" 4511 value { 4512 float_value: 600 4513 } 4514 } 4515 } 4516 } 4517 specs { 4518 key: 31 4519 value { 4520 mpc: MEDIA_PERFORMANCE_CLASS_12 4521 specification: "same" 4522 required_values { 4523 key: "rear_camera_latency" 4524 value { 4525 float_value: 600 4526 } 4527 } 4528 required_values { 4529 key: "front_camera_latency" 4530 value { 4531 float_value: 600 4532 } 4533 } 4534 } 4535 } 4536 specs { 4537 key: 33 4538 value { 4539 mpc: MEDIA_PERFORMANCE_CLASS_13 4540 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." 4541 required_values { 4542 key: "rear_camera_latency" 4543 value { 4544 float_value: 500 4545 } 4546 } 4547 required_values { 4548 key: "front_camera_latency" 4549 value { 4550 float_value: 500 4551 } 4552 } 4553 } 4554 } 4555 specs { 4556 key: 34 4557 value { 4558 mpc: MEDIA_PERFORMANCE_CLASS_14 4559 specification: "same" 4560 required_values { 4561 key: "rear_camera_latency" 4562 value { 4563 float_value: 500 4564 } 4565 } 4566 required_values { 4567 key: "front_camera_latency" 4568 value { 4569 float_value: 500 4570 } 4571 } 4572 } 4573 } 4574 specs { 4575 key: 35 4576 value { 4577 mpc: MEDIA_PERFORMANCE_CLASS_15 4578 specification: "same" 4579 required_values { 4580 key: "rear_camera_latency" 4581 value { 4582 float_value: 500 4583 } 4584 } 4585 required_values { 4586 key: "front_camera_latency" 4587 value { 4588 float_value: 500 4589 } 4590 } 4591 } 4592 } 4593} 4594requirements { 4595 id: "7.5/H-1-8" 4596 name: "Camera RAW capability" 4597 description: "RAW capabilities" 4598 test_configs: { 4599 key: "" 4600 value: { 4601 description: "Default test config" 4602 proto_field_number: 56 4603 } 4604 } 4605 measurements: { 4606 key: "rear_camera_raw_supported" 4607 value: { 4608 description: "Is the rear primary camera RAW capability supported" 4609 measurement_type: MEASUREMENT_TYPE_BOOL 4610 comparison: COMPARISON_EQUAL 4611 proto_field_number: 3 4612 } 4613 } 4614 specs { 4615 key: 31 4616 value { 4617 mpc: MEDIA_PERFORMANCE_CLASS_12 4618 specification: "MUST support CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_RAW and android.graphics.ImageFormat.RAW_SENSOR for the primary back camera." 4619 required_values { 4620 key: "rear_camera_raw_supported" 4621 value { 4622 bool_value: true 4623 } 4624 } 4625 } 4626 } 4627 specs { 4628 key: 33 4629 value { 4630 mpc: MEDIA_PERFORMANCE_CLASS_13 4631 specification: "same" 4632 required_values { 4633 key: "rear_camera_raw_supported" 4634 value { 4635 bool_value: true 4636 } 4637 } 4638 } 4639 } 4640 specs { 4641 key: 34 4642 value { 4643 mpc: MEDIA_PERFORMANCE_CLASS_14 4644 specification: "same" 4645 required_values { 4646 key: "rear_camera_raw_supported" 4647 value { 4648 bool_value: true 4649 } 4650 } 4651 } 4652 } 4653 specs { 4654 key: 35 4655 value { 4656 mpc: MEDIA_PERFORMANCE_CLASS_15 4657 specification: "same" 4658 required_values { 4659 key: "rear_camera_raw_supported" 4660 value { 4661 bool_value: true 4662 } 4663 } 4664 } 4665 } 4666} 4667requirements { 4668 id: "7.5/H-1-9" 4669 name: "Camera Slow Motion" 4670 description: "Slow-mo recording" 4671 test_configs: { 4672 key: "" 4673 value: { 4674 description: "Default test config" 4675 proto_field_number: 57 4676 } 4677 } 4678 measurements: { 4679 key: "rear_camera_240fps_supported" 4680 value: { 4681 description: "Is the rear primary camera slow motion supported" 4682 measurement_type: MEASUREMENT_TYPE_BOOL 4683 comparison: COMPARISON_EQUAL 4684 proto_field_number: 3 4685 } 4686 } 4687 specs { 4688 key: 33 4689 value { 4690 mpc: MEDIA_PERFORMANCE_CLASS_13 4691 specification: "MUST have a rear-facing primary camera supporting 720p or 1080p @ 240fps." 4692 required_values { 4693 key: "rear_camera_240fps_supported" 4694 value { 4695 bool_value: true 4696 } 4697 } 4698 } 4699 } 4700 specs { 4701 key: 34 4702 value { 4703 mpc: MEDIA_PERFORMANCE_CLASS_14 4704 specification: "same" 4705 required_values { 4706 key: "rear_camera_240fps_supported" 4707 value { 4708 bool_value: true 4709 } 4710 } 4711 } 4712 } 4713 specs { 4714 key: 35 4715 value { 4716 mpc: MEDIA_PERFORMANCE_CLASS_15 4717 specification: "same" 4718 required_values { 4719 key: "rear_camera_240fps_supported" 4720 value { 4721 bool_value: true 4722 } 4723 } 4724 } 4725 } 4726} 4727requirements { 4728 id: "7.5/H-1-10" 4729 name: "Camera Ultrawide Zoom Ratio" 4730 description: "Minimum zoom ratio for ultrawide cameras" 4731 test_configs: { 4732 key: "" 4733 value: { 4734 description: "Default test config" 4735 proto_field_number: 58 4736 } 4737 } 4738 measurements: { 4739 key: "rear_camera_ultrawide_zoom_req_met" 4740 value: { 4741 description: "Zoom ratio for rear primary camera is met" 4742 measurement_type: MEASUREMENT_TYPE_BOOL 4743 comparison: COMPARISON_EQUAL 4744 proto_field_number: 3 4745 } 4746 } 4747 measurements: { 4748 key: "front_camera_ultrawide_zoom_req_met" 4749 value: { 4750 description: "Zoom ratio for front primary camera is met" 4751 measurement_type: MEASUREMENT_TYPE_BOOL 4752 comparison: COMPARISON_EQUAL 4753 proto_field_number: 4 4754 } 4755 } 4756 specs { 4757 key: 33 4758 value { 4759 mpc: MEDIA_PERFORMANCE_CLASS_13 4760 specification: "MUST have min ZOOM_RATIO < 1.0 for the primary cameras if there is an ultrawide RGB camera facing the same direction." 4761 required_values { 4762 key: "rear_camera_ultrawide_zoom_req_met" 4763 value { 4764 bool_value: true 4765 } 4766 } 4767 required_values { 4768 key: "front_camera_ultrawide_zoom_req_met" 4769 value { 4770 bool_value: true 4771 } 4772 } 4773 } 4774 } 4775 specs { 4776 key: 34 4777 value { 4778 mpc: MEDIA_PERFORMANCE_CLASS_14 4779 specification: "same" 4780 required_values { 4781 key: "rear_camera_ultrawide_zoom_req_met" 4782 value { 4783 bool_value: true 4784 } 4785 } 4786 required_values { 4787 key: "front_camera_ultrawide_zoom_req_met" 4788 value { 4789 bool_value: true 4790 } 4791 } 4792 } 4793 } 4794 specs { 4795 key: 35 4796 value { 4797 mpc: MEDIA_PERFORMANCE_CLASS_15 4798 specification: "same" 4799 required_values { 4800 key: "rear_camera_ultrawide_zoom_req_met" 4801 value { 4802 bool_value: true 4803 } 4804 } 4805 required_values { 4806 key: "front_camera_ultrawide_zoom_req_met" 4807 value { 4808 bool_value: true 4809 } 4810 } 4811 } 4812 } 4813} 4814requirements { 4815 id: "7.5/H-1-11" 4816 name: "Camera Concurrent Rear Front Streaming" 4817 description: "Concurrent camera front-back streaming" 4818 test_configs: { 4819 key: "" 4820 value: { 4821 description: "Default test config" 4822 proto_field_number: 59 4823 } 4824 } 4825 measurements: { 4826 key: "rear_front_concurrent_camera" 4827 value: { 4828 description: "Is the rear primary camera concurrent front-back streaming supported" 4829 measurement_type: MEASUREMENT_TYPE_BOOL 4830 comparison: COMPARISON_EQUAL 4831 proto_field_number: 3 4832 } 4833 } 4834 specs { 4835 key: 33 4836 value { 4837 mpc: MEDIA_PERFORMANCE_CLASS_13 4838 specification: "MUST implement concurrent front-back streaming on primary cameras." 4839 required_values { 4840 key: "rear_front_concurrent_camera" 4841 value { 4842 bool_value: true 4843 } 4844 } 4845 } 4846 } 4847 specs { 4848 key: 34 4849 value { 4850 mpc: MEDIA_PERFORMANCE_CLASS_14 4851 specification: "same" 4852 required_values { 4853 key: "rear_front_concurrent_camera" 4854 value { 4855 bool_value: true 4856 } 4857 } 4858 } 4859 } 4860 specs { 4861 key: 35 4862 value { 4863 mpc: MEDIA_PERFORMANCE_CLASS_15 4864 specification: "same" 4865 required_values { 4866 key: "rear_front_concurrent_camera" 4867 value { 4868 bool_value: true 4869 } 4870 } 4871 } 4872 } 4873} 4874requirements { 4875 id: "7.5/H-1-12" 4876 name: "Camera Preview Stabilization" 4877 description: "Preview stabilization for primary rear camera" 4878 test_configs: { 4879 key: "" 4880 value: { 4881 description: "Default test config" 4882 proto_field_number: 60 4883 } 4884 } 4885 measurements: { 4886 key: "rear_camera_preview_stabilization_supported" 4887 value: { 4888 description: "Is the rear primary camera preview stabilization supported" 4889 measurement_type: MEASUREMENT_TYPE_BOOL 4890 comparison: COMPARISON_EQUAL 4891 proto_field_number: 3 4892 } 4893 } 4894 specs { 4895 key: 33 4896 value { 4897 mpc: MEDIA_PERFORMANCE_CLASS_13 4898 specification: "MUST support CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION for the primary back camera." 4899 required_values { 4900 key: "rear_camera_preview_stabilization_supported" 4901 value { 4902 bool_value: true 4903 } 4904 } 4905 } 4906 } 4907 specs { 4908 key: 34 4909 value { 4910 mpc: MEDIA_PERFORMANCE_CLASS_14 4911 specification: "same" 4912 required_values { 4913 key: "rear_camera_preview_stabilization_supported" 4914 value { 4915 bool_value: true 4916 } 4917 } 4918 } 4919 } 4920 specs { 4921 key: 35 4922 value { 4923 mpc: MEDIA_PERFORMANCE_CLASS_15 4924 specification: "same" 4925 required_values { 4926 key: "rear_camera_preview_stabilization_supported" 4927 value { 4928 bool_value: true 4929 } 4930 } 4931 } 4932 } 4933} 4934requirements { 4935 id: "7.5/H-1-13" 4936 name: "Camera Logical Multi Camera" 4937 description: "Logical multi-camera" 4938 test_configs: { 4939 key: "" 4940 value: { 4941 description: "Default test config" 4942 proto_field_number: 61 4943 } 4944 } 4945 measurements: { 4946 key: "rear_camera_logical_multi_camera_req_met" 4947 value: { 4948 description: "Is the rear primary camera logical multi-camera supported" 4949 measurement_type: MEASUREMENT_TYPE_BOOL 4950 comparison: COMPARISON_EQUAL 4951 proto_field_number: 3 4952 } 4953 } 4954 specs { 4955 key: 33 4956 value { 4957 mpc: MEDIA_PERFORMANCE_CLASS_13 4958 specification: "MUST support LOGICAL_MULTI_CAMERA capability for the primary rear-facing camera if there are greater than 1 RGB rear-facing cameras." 4959 required_values { 4960 key: "rear_camera_logical_multi_camera_req_met" 4961 value { 4962 bool_value: true 4963 } 4964 } 4965 } 4966 } 4967 specs { 4968 key: 34 4969 value { 4970 mpc: MEDIA_PERFORMANCE_CLASS_14 4971 specification: "same" 4972 required_values { 4973 key: "rear_camera_logical_multi_camera_req_met" 4974 value { 4975 bool_value: true 4976 } 4977 } 4978 } 4979 } 4980 specs { 4981 key: 35 4982 value { 4983 mpc: MEDIA_PERFORMANCE_CLASS_15 4984 specification: "same" 4985 required_values { 4986 key: "rear_camera_logical_multi_camera_req_met" 4987 value { 4988 bool_value: true 4989 } 4990 } 4991 } 4992 } 4993} 4994requirements { 4995 id: "7.5/H-1-14" 4996 name: "Camera Stream Use Case" 4997 description: "Stream use case for primary cameras" 4998 test_configs: { 4999 key: "" 5000 value: { 5001 description: "Default test config" 5002 proto_field_number: 62 5003 } 5004 } 5005 measurements: { 5006 key: "rear_camera_stream_usecase_supported" 5007 value: { 5008 description: "Is the rear primary camera stream use case supported" 5009 measurement_type: MEASUREMENT_TYPE_BOOL 5010 comparison: COMPARISON_EQUAL 5011 proto_field_number: 3 5012 } 5013 } 5014 measurements: { 5015 key: "front_camera_stream_usecase_supported" 5016 value: { 5017 description: "Is the front primary camera stream use case supported" 5018 measurement_type: MEASUREMENT_TYPE_BOOL 5019 comparison: COMPARISON_EQUAL 5020 proto_field_number: 4 5021 } 5022 } 5023 specs { 5024 key: 33 5025 value { 5026 mpc: MEDIA_PERFORMANCE_CLASS_13 5027 specification: "MUST support STREAM_USE_CASE capability for both primary front and primary back camera." 5028 required_values { 5029 key: "rear_camera_stream_usecase_supported" 5030 value { 5031 bool_value: true 5032 } 5033 } 5034 required_values { 5035 key: "front_camera_stream_usecase_supported" 5036 value { 5037 bool_value: true 5038 } 5039 } 5040 } 5041 } 5042 specs { 5043 key: 34 5044 value { 5045 mpc: MEDIA_PERFORMANCE_CLASS_14 5046 specification: "same" 5047 required_values { 5048 key: "rear_camera_stream_usecase_supported" 5049 value { 5050 bool_value: true 5051 } 5052 } 5053 required_values { 5054 key: "front_camera_stream_usecase_supported" 5055 value { 5056 bool_value: true 5057 } 5058 } 5059 } 5060 } 5061 specs { 5062 key: 35 5063 value { 5064 mpc: MEDIA_PERFORMANCE_CLASS_15 5065 specification: "same" 5066 required_values { 5067 key: "rear_camera_stream_usecase_supported" 5068 value { 5069 bool_value: true 5070 } 5071 } 5072 required_values { 5073 key: "front_camera_stream_usecase_supported" 5074 value { 5075 bool_value: true 5076 } 5077 } 5078 } 5079 } 5080} 5081requirements { 5082 id: "7.5/H-1-15" 5083 name: "Camera Night Mode Extension" 5084 description: "Night mode extension" 5085 test_configs: { 5086 key: "" 5087 value: { 5088 description: "Default test config" 5089 proto_field_number: 63 5090 } 5091 } 5092 measurements: { 5093 key: "rear_camera2_extension_night_supported" 5094 value: { 5095 description: "Is the rear Camera2 night mode extension supported" 5096 measurement_type: MEASUREMENT_TYPE_BOOL 5097 comparison: COMPARISON_EQUAL 5098 proto_field_number: 3 5099 } 5100 } 5101 measurements: { 5102 key: "front_camera2_extension_night_supported" 5103 value: { 5104 description: "Is the front Camera2 night mode extension supported" 5105 measurement_type: MEASUREMENT_TYPE_BOOL 5106 comparison: COMPARISON_EQUAL 5107 proto_field_number: 4 5108 } 5109 } 5110 measurements: { 5111 key: "rear_camerax_extension_night_supported" 5112 value: { 5113 description: "Is the rear CameraX night mode extension supported" 5114 measurement_type: MEASUREMENT_TYPE_BOOL 5115 comparison: COMPARISON_EQUAL 5116 proto_field_number: 5 5117 } 5118 } 5119 measurements: { 5120 key: "front_camerax_extension_night_supported" 5121 value: { 5122 description: "Is the front CameraX night mode extension supported" 5123 measurement_type: MEASUREMENT_TYPE_BOOL 5124 comparison: COMPARISON_EQUAL 5125 proto_field_number: 6 5126 } 5127 } 5128 specs { 5129 key: 34 5130 value { 5131 mpc: MEDIA_PERFORMANCE_CLASS_14 5132 specification: "MUST support Night mode extensions via both CameraX and Camera2 extensions for primary cameras." 5133 required_values { 5134 key: "rear_camera2_extension_night_supported" 5135 value { 5136 bool_value: true 5137 } 5138 } 5139 required_values { 5140 key: "front_camera2_extension_night_supported" 5141 value { 5142 bool_value: true 5143 } 5144 } 5145 required_values { 5146 key: "rear_camerax_extension_night_supported" 5147 value { 5148 bool_value: true 5149 } 5150 } 5151 required_values { 5152 key: "front_camerax_extension_night_supported" 5153 value { 5154 bool_value: true 5155 } 5156 } 5157 } 5158 } 5159 specs { 5160 key: 35 5161 value { 5162 mpc: MEDIA_PERFORMANCE_CLASS_15 5163 specification: "same" 5164 required_values { 5165 key: "rear_camera2_extension_night_supported" 5166 value { 5167 bool_value: true 5168 } 5169 } 5170 required_values { 5171 key: "front_camera2_extension_night_supported" 5172 value { 5173 bool_value: true 5174 } 5175 } 5176 required_values { 5177 key: "rear_camerax_extension_night_supported" 5178 value { 5179 bool_value: true 5180 } 5181 } 5182 required_values { 5183 key: "front_camerax_extension_night_supported" 5184 value { 5185 bool_value: true 5186 } 5187 } 5188 } 5189 } 5190} 5191requirements { 5192 id: "7.5/H-1-16" 5193 name: "Camera Dynamic Range 10 Bit" 5194 description: "Support for 10 bit dynamic range for primary cameras" 5195 test_configs: { 5196 key: "" 5197 value: { 5198 description: "Default test config" 5199 proto_field_number: 64 5200 } 5201 } 5202 measurements: { 5203 key: "rear_camera_dynamic_tenbits_supported" 5204 value: { 5205 description: "Is the rear primary camera 10 bit dynamic range supported" 5206 measurement_type: MEASUREMENT_TYPE_BOOL 5207 comparison: COMPARISON_EQUAL 5208 proto_field_number: 3 5209 } 5210 } 5211 measurements: { 5212 key: "front_camera_dynamic_tenbits_supported" 5213 value: { 5214 description: "Is the front primary camera 10 bit dynamic range supported" 5215 measurement_type: MEASUREMENT_TYPE_BOOL 5216 comparison: COMPARISON_EQUAL 5217 proto_field_number: 4 5218 } 5219 } 5220 specs { 5221 key: 34 5222 value { 5223 mpc: MEDIA_PERFORMANCE_CLASS_14 5224 specification: "MUST support DYNAMIC_RANGE_TEN_BIT capability for the primary cameras." 5225 required_values { 5226 key: "rear_camera_dynamic_tenbits_supported" 5227 value { 5228 bool_value: true 5229 } 5230 } 5231 required_values { 5232 key: "front_camera_dynamic_tenbits_supported" 5233 value { 5234 bool_value: true 5235 } 5236 } 5237 } 5238 } 5239 specs { 5240 key: 35 5241 value { 5242 mpc: MEDIA_PERFORMANCE_CLASS_15 5243 specification: "same" 5244 required_values { 5245 key: "rear_camera_dynamic_tenbits_supported" 5246 value { 5247 bool_value: true 5248 } 5249 } 5250 required_values { 5251 key: "front_camera_dynamic_tenbits_supported" 5252 value { 5253 bool_value: true 5254 } 5255 } 5256 } 5257 } 5258} 5259requirements { 5260 id: "7.5/H-1-17" 5261 name: "Camera Face Detection" 5262 description: "Face detection scene mode" 5263 test_configs: { 5264 key: "" 5265 value: { 5266 description: "Default test config" 5267 proto_field_number: 65 5268 } 5269 } 5270 measurements: { 5271 key: "rear_camera_face_detection_supported" 5272 value: { 5273 description: "Is the rear primary camera face detection supported" 5274 measurement_type: MEASUREMENT_TYPE_BOOL 5275 comparison: COMPARISON_EQUAL 5276 proto_field_number: 3 5277 } 5278 } 5279 measurements: { 5280 key: "front_camera_face_detection_supported" 5281 value: { 5282 description: "Is the front primary camera face detection supported" 5283 measurement_type: MEASUREMENT_TYPE_BOOL 5284 comparison: COMPARISON_EQUAL 5285 proto_field_number: 4 5286 } 5287 } 5288 specs { 5289 key: 34 5290 value { 5291 mpc: MEDIA_PERFORMANCE_CLASS_14 5292 specification: "MUST support face detection capability (STATISTICS_FACE_DETECT_MODE_SIMPLE or STATISTICS_FACE_DETECT_MODE_FULL) for the primary cameras." 5293 required_values { 5294 key: "rear_camera_face_detection_supported" 5295 value { 5296 bool_value: true 5297 } 5298 } 5299 required_values { 5300 key: "front_camera_face_detection_supported" 5301 value { 5302 bool_value: true 5303 } 5304 } 5305 } 5306 } 5307 specs { 5308 key: 35 5309 value { 5310 mpc: MEDIA_PERFORMANCE_CLASS_15 5311 specification: "same" 5312 required_values { 5313 key: "rear_camera_face_detection_supported" 5314 value { 5315 bool_value: true 5316 } 5317 } 5318 required_values { 5319 key: "front_camera_face_detection_supported" 5320 value { 5321 bool_value: true 5322 } 5323 } 5324 } 5325 } 5326} 5327requirements { 5328 id: "7.5/H-1-18" 5329 name: "Camera JPEG R" 5330 description: "JPEG R support for primary cameras" 5331 test_configs: { 5332 key: "" 5333 value: { 5334 description: "Default test config" 5335 proto_field_number: 66 5336 } 5337 } 5338 measurements: { 5339 key: "primary_rear_camera_jpeg_r_supported" 5340 value: { 5341 description: "Is the rear primary camera JPEG R supported" 5342 measurement_type: MEASUREMENT_TYPE_BOOL 5343 comparison: COMPARISON_EQUAL 5344 proto_field_number: 3 5345 } 5346 } 5347 measurements: { 5348 key: "primary_front_camera_jpeg_r_supported" 5349 value: { 5350 description: "Is the front primary camera JPEG R supported" 5351 measurement_type: MEASUREMENT_TYPE_BOOL 5352 comparison: COMPARISON_EQUAL 5353 proto_field_number: 4 5354 } 5355 } 5356 specs { 5357 key: 35 5358 value { 5359 mpc: MEDIA_PERFORMANCE_CLASS_15 5360 specification: "MUST support JPEG_R for the primary rear and primary front cameras." 5361 required_values { 5362 key: "primary_rear_camera_jpeg_r_supported" 5363 value { 5364 bool_value: true 5365 } 5366 } 5367 required_values { 5368 key: "primary_front_camera_jpeg_r_supported" 5369 value { 5370 bool_value: true 5371 } 5372 } 5373 } 5374 } 5375} 5376requirements { 5377 id: "7.5/H-1-19" 5378 name: "Camera Video Preview Stabilization" 5379 description: "Support for video preview stabilization for primary cameras" 5380 test_configs: { 5381 key: "" 5382 value: { 5383 description: "Default test config" 5384 proto_field_number: 67 5385 } 5386 } 5387 measurements: { 5388 key: "primary_camera_hlg_combination_supported" 5389 value: { 5390 description: "Is the rear primary camera stabilization supported" 5391 measurement_type: MEASUREMENT_TYPE_BOOL 5392 comparison: COMPARISON_EQUAL 5393 proto_field_number: 3 5394 } 5395 } 5396 specs { 5397 key: 35 5398 value { 5399 mpc: MEDIA_PERFORMANCE_CLASS_15 5400 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." 5401 required_values { 5402 key: "primary_camera_hlg_combination_supported" 5403 value { 5404 bool_value: true 5405 } 5406 } 5407 } 5408 } 5409} 5410requirements { 5411 id: "7.5/H-1-20" 5412 name: "Camera Ultra HDR" 5413 description: "Ultra HDR support for primary camera" 5414 is_non_cts_test: true 5415 test_configs: { 5416 key: "" 5417 value: { 5418 description: "Default test config" 5419 proto_field_number: 68 5420 } 5421 } 5422 measurements: { 5423 key: "rear_camera_ultra_hdr_supported" 5424 value: { 5425 description: "Is the rear primary camera Ultra HDR supported" 5426 measurement_type: MEASUREMENT_TYPE_BOOL 5427 comparison: COMPARISON_EQUAL 5428 proto_field_number: 3 5429 } 5430 } 5431 measurements: { 5432 key: "front_camera_ultra_hdr_supported" 5433 value: { 5434 description: "Is the front primary camera Ultra HDR supported" 5435 measurement_type: MEASUREMENT_TYPE_BOOL 5436 comparison: COMPARISON_EQUAL 5437 proto_field_number: 4 5438 } 5439 } 5440 specs { 5441 key: 35 5442 value { 5443 mpc: MEDIA_PERFORMANCE_CLASS_15 5444 specification: "MUST by default output JPEG_R for the primary rear and primary front cameras in the native camera app." 5445 required_values { 5446 key: "rear_camera_ultra_hdr_supported" 5447 value { 5448 bool_value: true 5449 } 5450 } 5451 required_values { 5452 key: "front_camera_ultra_hdr_supported" 5453 value { 5454 bool_value: true 5455 } 5456 } 5457 } 5458 } 5459} 5460requirements { 5461 id: "7.1.1.1/H-1-1" 5462 name: "Screen Resolution R" 5463 description: "- Screen resolution" 5464 test_configs: { 5465 key: "" 5466 value: { 5467 description: "Default test config" 5468 proto_field_number: 69 5469 } 5470 } 5471 measurements { 5472 key: "long_resolution_pixels" 5473 value: { 5474 id: "long_resolution_pixels" 5475 description: "The screen resolution width in pixels (longer of the two dimensions)." 5476 measurement_type: MEASUREMENT_TYPE_INT 5477 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 5478 proto_field_number: 3 5479 } 5480 } 5481 measurements { 5482 key: "short_resolution_pixels" 5483 value: { 5484 id: "short_resolution_pixels" 5485 description: "The screen resolution height in pixels (shorter of the two dimensions)." 5486 measurement_type: MEASUREMENT_TYPE_INT 5487 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 5488 proto_field_number: 4 5489 } 5490 } 5491 specs { 5492 key: 30 5493 value { 5494 mpc: MEDIA_PERFORMANCE_CLASS_11 5495 specification: "MUST have screen resolution of at least 1080p." 5496 required_values: { 5497 key: "long_resolution_pixels" 5498 value: { 5499 int_value: 1920 5500 } 5501 } 5502 required_values: { 5503 key: "short_resolution_pixels" 5504 value: { 5505 int_value: 1080 5506 } 5507 } 5508 } 5509 } 5510} 5511requirements { 5512 id: "7.1.1.1/H-2-1" 5513 name: "Screen Resolution" 5514 description: "- Screen resolution" 5515 test_configs: { 5516 key: "" 5517 value: { 5518 description: "Default test config" 5519 proto_field_number: 70 5520 } 5521 } 5522 measurements { 5523 key: "long_resolution_pixels" 5524 value: { 5525 id: "long_resolution_pixels" 5526 description: "The screen resolution width in pixels (longer of the two dimensions)." 5527 measurement_type: MEASUREMENT_TYPE_INT 5528 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 5529 proto_field_number: 3 5530 } 5531 } 5532 measurements { 5533 key: "short_resolution_pixels" 5534 value: { 5535 id: "short_resolution_pixels" 5536 description: "The screen resolution height in pixels (shorter of the two dimensions)." 5537 measurement_type: MEASUREMENT_TYPE_INT 5538 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 5539 proto_field_number: 4 5540 } 5541 } 5542 specs { 5543 key: 31 5544 value { 5545 mpc: MEDIA_PERFORMANCE_CLASS_12 5546 specification: "MUST have screen resolution of at least 1080p." 5547 required_values: { 5548 key: "long_resolution_pixels" 5549 value: { 5550 int_value: 1920 5551 } 5552 } 5553 required_values: { 5554 key: "short_resolution_pixels" 5555 value: { 5556 int_value: 1080 5557 } 5558 } 5559 } 5560 } 5561 specs { 5562 key: 33 5563 value { 5564 mpc: MEDIA_PERFORMANCE_CLASS_13 5565 specification: "same" 5566 required_values: { 5567 key: "long_resolution_pixels" 5568 value: { 5569 int_value: 1920 5570 } 5571 } 5572 required_values: { 5573 key: "short_resolution_pixels" 5574 value: { 5575 int_value: 1080 5576 } 5577 } 5578 } 5579 } 5580 specs { 5581 key: 34 5582 value { 5583 mpc: MEDIA_PERFORMANCE_CLASS_14 5584 specification: "same" 5585 required_values: { 5586 key: "long_resolution_pixels" 5587 value: { 5588 int_value: 1920 5589 } 5590 } 5591 required_values: { 5592 key: "short_resolution_pixels" 5593 value: { 5594 int_value: 1080 5595 } 5596 } 5597 } 5598 } 5599 specs { 5600 key: 35 5601 value { 5602 mpc: MEDIA_PERFORMANCE_CLASS_15 5603 specification: "same" 5604 required_values: { 5605 key: "long_resolution_pixels" 5606 value: { 5607 int_value: 1920 5608 } 5609 } 5610 required_values: { 5611 key: "short_resolution_pixels" 5612 value: { 5613 int_value: 1080 5614 } 5615 } 5616 } 5617 } 5618} 5619requirements { 5620 id: "7.1.1.3/H-1-1" 5621 name: "Screen Density R" 5622 description: "- Screen density" 5623 test_configs: { 5624 key: "" 5625 value: { 5626 description: "Default test config" 5627 proto_field_number: 71 5628 } 5629 } 5630 measurements { 5631 key: "display_density_dpi" 5632 value: { 5633 id: "display_density_dpi" 5634 description: "The screen display density in pixels per square inch." 5635 measurement_type: MEASUREMENT_TYPE_INT 5636 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 5637 proto_field_number: 3 5638 } 5639 } 5640 specs { 5641 key: 30 5642 value { 5643 mpc: MEDIA_PERFORMANCE_CLASS_11 5644 specification: "MUST have screen density of at least 400 dpi." 5645 required_values: { 5646 key: "display_density_dpi" 5647 value: { 5648 int_value: 400 5649 } 5650 } 5651 } 5652 } 5653} 5654requirements { 5655 id: "7.1.1.3/H-2-1" 5656 name: "Screen Density" 5657 description: "- Screen density" 5658 test_configs: { 5659 key: "" 5660 value: { 5661 description: "Default test config" 5662 proto_field_number: 72 5663 } 5664 } 5665 measurements { 5666 key: "display_density_dpi" 5667 value: { 5668 id: "display_density_dpi" 5669 description: "The screen display density in pixels per square inch." 5670 measurement_type: MEASUREMENT_TYPE_INT 5671 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 5672 proto_field_number: 3 5673 } 5674 } 5675 specs { 5676 key: 31 5677 value { 5678 mpc: MEDIA_PERFORMANCE_CLASS_12 5679 specification: "MUST have screen density of at least 400 dpi." 5680 required_values: { 5681 key: "display_density_dpi" 5682 value: { 5683 int_value: 400 5684 } 5685 } 5686 } 5687 } 5688 specs { 5689 key: 33 5690 value { 5691 mpc: MEDIA_PERFORMANCE_CLASS_13 5692 specification: "same" 5693 required_values: { 5694 key: "display_density_dpi" 5695 value: { 5696 int_value: 400 5697 } 5698 } 5699 } 5700 } 5701 specs { 5702 key: 34 5703 value { 5704 mpc: MEDIA_PERFORMANCE_CLASS_14 5705 specification: "same" 5706 required_values: { 5707 key: "display_density_dpi" 5708 value: { 5709 int_value: 400 5710 } 5711 } 5712 } 5713 } 5714 specs { 5715 key: 35 5716 value { 5717 mpc: MEDIA_PERFORMANCE_CLASS_15 5718 specification: "same" 5719 required_values: { 5720 key: "display_density_dpi" 5721 value: { 5722 int_value: 400 5723 } 5724 } 5725 } 5726 } 5727} 5728requirements { 5729 id: "7.1.1.3/H-3-1" 5730 name: "HDR display" 5731 description: "HDR display" 5732 test_configs: { 5733 key: "" 5734 value: { 5735 description: "Default test config" 5736 proto_field_number: 73 5737 } 5738 } 5739 measurements: { 5740 key: "is_hdr" 5741 value: { 5742 id: "is_hdr" 5743 description: "Does the display support HDR" 5744 measurement_type: MEASUREMENT_TYPE_BOOL 5745 comparison: COMPARISON_EQUAL 5746 proto_field_number: 3 5747 } 5748 } 5749 measurements: { 5750 key: "display_luminance_nits" 5751 value: { 5752 id: "display_luminance_nits" 5753 description: "The display luminance in nits." 5754 measurement_type: MEASUREMENT_TYPE_DOUBLE 5755 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 5756 proto_field_number: 4 5757 } 5758 } 5759 specs { 5760 key: 35 5761 value { 5762 mpc: MEDIA_PERFORMANCE_CLASS_INVALID 5763 specification: "MUST have a HDR display supporting at least 1000 nits" 5764 required_values: { 5765 key: "display_luminance_nits" 5766 value: { 5767 double_value: 1000 5768 } 5769 } 5770 required_values: { 5771 key: "is_hdr" 5772 value: { 5773 bool_value: true 5774 } 5775 } 5776 } 5777 } 5778} 5779requirements { 5780 id: "7.1.4/H-1-1" 5781 description: "- Hardware overlays" 5782} 5783requirements { 5784 id: "7.6.1/H-1-1" 5785 name: "Android 11 Memory" 5786 description: "Minimum memory available to the kernel as reported by ActivityManager.MemoryInfo.totalMemory" 5787 test_configs: { 5788 key: "" 5789 value: { 5790 description: "Default test config" 5791 proto_field_number: 74 5792 } 5793 } 5794 measurements: { 5795 key: "physical_memory_mb" 5796 value: { 5797 description: "Physical memory in MiB as reported by ActivityManager.MemeryInfo.totalMemory." 5798 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 5799 measurement_type: MEASUREMENT_TYPE_LONG 5800 proto_field_number: 3 5801 } 5802 } 5803 specs { 5804 key: 30 5805 value { 5806 mpc: MEDIA_PERFORMANCE_CLASS_11 5807 specification: "MUST have at least 6 GB of physical memory." 5808 required_values: { 5809 key: "physical_memory_mb" 5810 value: { 5811 long_value: 5120 5812 } 5813 } 5814 } 5815 } 5816} 5817requirements { 5818 id: "7.6.1/H-2-1" 5819 name: "Memory" 5820 description: "Minimum memory available to the kernel as reported by ActivityManager.MemoryInfo.totalMemory" 5821 test_configs: { 5822 key: "" 5823 value: { 5824 description: "Default test config" 5825 proto_field_number: 75 5826 } 5827 } 5828 measurements: { 5829 key: "physical_memory_mb" 5830 value: { 5831 description: "Physical memory in MiB as reported by ActivityManager.MemoryInfo.totalMemory." 5832 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 5833 measurement_type: MEASUREMENT_TYPE_LONG 5834 proto_field_number: 3 5835 } 5836 } 5837 specs { 5838 key: 31 5839 value { 5840 mpc: MEDIA_PERFORMANCE_CLASS_12 5841 specification: "MUST have at least 6 GB of physical memory." 5842 required_values: { 5843 key: "physical_memory_mb" 5844 value: { 5845 long_value: 5120 5846 } 5847 } 5848 } 5849 } 5850 specs { 5851 key: 33 5852 value { 5853 mpc: MEDIA_PERFORMANCE_CLASS_13 5854 specification: "MUST have at least 8 GB of physical memory." 5855 required_values: { 5856 key: "physical_memory_mb" 5857 value: { 5858 long_value: 6800 5859 } 5860 } 5861 } 5862 } 5863 specs { 5864 key: 34 5865 value { 5866 mpc: MEDIA_PERFORMANCE_CLASS_14 5867 specification: "MUST have at least 8 GB of physical memory." 5868 required_values: { 5869 key: "physical_memory_mb" 5870 value: { 5871 long_value: 6800 5872 } 5873 } 5874 } 5875 } 5876 specs { 5877 key: 35 5878 value { 5879 mpc: MEDIA_PERFORMANCE_CLASS_15 5880 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." 5881 required_values: { 5882 key: "physical_memory_mb" 5883 value: { 5884 long_value: 6800 5885 } 5886 } 5887 } 5888 } 5889} 5890requirements { 5891 id: "8.2/H-1-1" 5892 name: "Sequential write" 5893 description: "Sequential write" 5894 test_configs: { 5895 key: "" 5896 value: { 5897 description: "Default test config" 5898 proto_field_number: 76 5899 } 5900 } 5901 measurements: { 5902 key: "filesystem_io_rate_mbps" 5903 value: { 5904 id: "filesystem_io_rate_mbps" 5905 description: "Sequential write performance in MB per second." 5906 measurement_type: MEASUREMENT_TYPE_DOUBLE 5907 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 5908 proto_field_number: 3 5909 } 5910 } 5911 specs { 5912 key: 30 5913 value { 5914 mpc: MEDIA_PERFORMANCE_CLASS_11 5915 specification: "MUST ensure a sequential write performance of at least 100 MB/s." 5916 required_values: { 5917 key: "filesystem_io_rate_mbps" 5918 value: { 5919 double_value: 100 5920 } 5921 } 5922 } 5923 } 5924 specs { 5925 key: 33 5926 value { 5927 mpc: MEDIA_PERFORMANCE_CLASS_13 5928 specification: "MUST ensure a sequential write performance of at least 125 MB/s." 5929 required_values: { 5930 key: "filesystem_io_rate_mbps" 5931 value: { 5932 double_value: 125 5933 } 5934 } 5935 } 5936 } 5937 specs { 5938 key: 34 5939 value { 5940 mpc: MEDIA_PERFORMANCE_CLASS_14 5941 specification: "MUST ensure a sequential write performance of at least 150 MB/s." 5942 required_values: { 5943 key: "filesystem_io_rate_mbps" 5944 value: { 5945 double_value: 150 5946 } 5947 } 5948 } 5949 } 5950 specs { 5951 key: 35 5952 value { 5953 mpc: MEDIA_PERFORMANCE_CLASS_15 5954 specification: "MUST ensure a sequential write performance of at least 150 MB/s." 5955 required_values: { 5956 key: "filesystem_io_rate_mbps" 5957 value: { 5958 double_value: 150 5959 } 5960 } 5961 } 5962 } 5963} 5964requirements { 5965 id: "8.2/H-2-1" 5966 name: "Sequential write S" 5967 description: "Sequential write" 5968 test_configs: { 5969 key: "" 5970 value: { 5971 description: "Default test config" 5972 proto_field_number: 77 5973 } 5974 } 5975 measurements: { 5976 key: "filesystem_io_rate_mbps" 5977 value: { 5978 id: "filesystem_io_rate_mbps" 5979 description: "Sequential write performance in MB per second." 5980 measurement_type: MEASUREMENT_TYPE_DOUBLE 5981 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 5982 proto_field_number: 3 5983 } 5984 } 5985 specs { 5986 key: 31 5987 value { 5988 mpc: MEDIA_PERFORMANCE_CLASS_12 5989 specification: "MUST ensure a sequential write performance of at least 125 MB/s." 5990 required_values: { 5991 key: "filesystem_io_rate_mbps" 5992 value: { 5993 double_value: 125 5994 } 5995 } 5996 } 5997 } 5998} 5999requirements { 6000 id: "8.2/H-1-2" 6001 name: "Random Write" 6002 description: "- Random write" 6003 test_configs: { 6004 key: "" 6005 value: { 6006 description: "Default test config" 6007 proto_field_number: 78 6008 } 6009 } 6010 measurements: { 6011 key: "filesystem_io_rate_mbps" 6012 value: { 6013 id: "filesystem_io_rate_mbps" 6014 description: "Random write performance in MB per second." 6015 measurement_type: MEASUREMENT_TYPE_DOUBLE 6016 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 6017 proto_field_number: 3 6018 } 6019 } 6020 specs { 6021 key: 30 6022 value { 6023 mpc: MEDIA_PERFORMANCE_CLASS_11 6024 specification: "MUST ensure a random write performance of at least 10 MB/s." 6025 required_values: { 6026 key: "filesystem_io_rate_mbps" 6027 value: { 6028 double_value: 10 6029 } 6030 } 6031 } 6032 } 6033 specs { 6034 key: 33 6035 value { 6036 mpc: MEDIA_PERFORMANCE_CLASS_13 6037 specification: "same" 6038 required_values: { 6039 key: "filesystem_io_rate_mbps" 6040 value: { 6041 double_value: 10 6042 } 6043 } 6044 } 6045 } 6046 specs { 6047 key: 34 6048 value { 6049 mpc: MEDIA_PERFORMANCE_CLASS_14 6050 specification: "same" 6051 required_values: { 6052 key: "filesystem_io_rate_mbps" 6053 value: { 6054 double_value: 10 6055 } 6056 } 6057 } 6058 } 6059 specs { 6060 key: 35 6061 value { 6062 mpc: MEDIA_PERFORMANCE_CLASS_15 6063 specification: "same" 6064 required_values: { 6065 key: "filesystem_io_rate_mbps" 6066 value: { 6067 double_value: 10 6068 } 6069 } 6070 } 6071 } 6072} 6073requirements { 6074 id: "8.2/H-2-2" 6075 name: "Random Write S" 6076 description: "- Random write" 6077 test_configs: { 6078 key: "" 6079 value: { 6080 description: "Default test config" 6081 proto_field_number: 79 6082 } 6083 } 6084 measurements: { 6085 key: "filesystem_io_rate_mbps" 6086 value: { 6087 id: "filesystem_io_rate_mbps" 6088 description: "Random write performance in MB per second." 6089 measurement_type: MEASUREMENT_TYPE_DOUBLE 6090 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 6091 proto_field_number: 3 6092 } 6093 } 6094 specs { 6095 key: 31 6096 value { 6097 mpc: MEDIA_PERFORMANCE_CLASS_12 6098 specification: "MUST ensure a random write performance of at least 10 MB/s." 6099 required_values: { 6100 key: "filesystem_io_rate_mbps" 6101 value: { 6102 double_value: 10 6103 } 6104 } 6105 } 6106 } 6107} 6108requirements { 6109 id: "8.2/H-1-3" 6110 name: "Sequential Read" 6111 description: "- Sequential read" 6112 test_configs: { 6113 key: "" 6114 value: { 6115 description: "Default test config" 6116 proto_field_number: 80 6117 } 6118 } 6119 measurements: { 6120 key: "filesystem_io_rate_mbps" 6121 value: { 6122 id: "filesystem_io_rate_mbps" 6123 description: "Sequential read performance in MB per second." 6124 measurement_type: MEASUREMENT_TYPE_DOUBLE 6125 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 6126 proto_field_number: 3 6127 } 6128 } 6129 specs { 6130 key: 30 6131 value { 6132 mpc: MEDIA_PERFORMANCE_CLASS_11 6133 specification: "MUST ensure a sequential read performance of at least 200 MB/s." 6134 required_values: { 6135 key: "filesystem_io_rate_mbps" 6136 value: { 6137 double_value: 200 6138 } 6139 } 6140 } 6141 } 6142 specs { 6143 key: 33 6144 value { 6145 mpc: MEDIA_PERFORMANCE_CLASS_13 6146 specification: "MUST ensure a sequential read performance of at least 250 MB/s." 6147 required_values: { 6148 key: "filesystem_io_rate_mbps" 6149 value: { 6150 double_value: 250 6151 } 6152 } 6153 } 6154 } 6155 specs { 6156 key: 34 6157 value { 6158 mpc: MEDIA_PERFORMANCE_CLASS_14 6159 specification: "same" 6160 required_values: { 6161 key: "filesystem_io_rate_mbps" 6162 value: { 6163 double_value: 250 6164 } 6165 } 6166 } 6167 } 6168 specs { 6169 key: 35 6170 value { 6171 mpc: MEDIA_PERFORMANCE_CLASS_15 6172 specification: "same" 6173 required_values: { 6174 key: "filesystem_io_rate_mbps" 6175 value: { 6176 double_value: 250 6177 } 6178 } 6179 } 6180 } 6181} 6182requirements { 6183 id: "8.2/H-2-3" 6184 name: "Sequential Read S" 6185 description: "- Sequential read" 6186 test_configs: { 6187 key: "" 6188 value: { 6189 description: "Default test config" 6190 proto_field_number: 81 6191 } 6192 } 6193 measurements: { 6194 key: "filesystem_io_rate_mbps" 6195 value: { 6196 id: "filesystem_io_rate_mbps" 6197 description: "Sequential read performance in MB per second." 6198 measurement_type: MEASUREMENT_TYPE_DOUBLE 6199 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 6200 proto_field_number: 3 6201 } 6202 } 6203 specs { 6204 key: 31 6205 value { 6206 mpc: MEDIA_PERFORMANCE_CLASS_12 6207 specification: "MUST ensure a sequential read performance of at least 250 MB/s." 6208 required_values: { 6209 key: "filesystem_io_rate_mbps" 6210 value: { 6211 double_value: 250 6212 } 6213 } 6214 } 6215 } 6216} 6217requirements { 6218 id: "8.2/H-1-4" 6219 name: "Random Read" 6220 description: "- Random read" 6221 test_configs: { 6222 key: "" 6223 value: { 6224 description: "Default test config" 6225 proto_field_number: 82 6226 } 6227 } 6228 measurements: { 6229 key: "filesystem_io_rate_mbps" 6230 value: { 6231 id: "filesystem_io_rate_mbps" 6232 description: "Random read performance in MB per second." 6233 measurement_type: MEASUREMENT_TYPE_DOUBLE 6234 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 6235 proto_field_number: 3 6236 } 6237 } 6238 specs { 6239 key: 30 6240 value { 6241 mpc: MEDIA_PERFORMANCE_CLASS_11 6242 specification: "MUST ensure a random read performance of at least 25 MB/s." 6243 required_values: { 6244 key: "filesystem_io_rate_mbps" 6245 value: { 6246 double_value: 25 6247 } 6248 } 6249 } 6250 } 6251 specs { 6252 key: 33 6253 value { 6254 mpc: MEDIA_PERFORMANCE_CLASS_13 6255 specification: "MUST ensure a random read performance of at least 40 MB/s." 6256 required_values: { 6257 key: "filesystem_io_rate_mbps" 6258 value: { 6259 double_value: 40 6260 } 6261 } 6262 } 6263 } 6264 specs { 6265 key: 34 6266 value { 6267 mpc: MEDIA_PERFORMANCE_CLASS_14 6268 specification: "MUST ensure a random read performance of at least 100 MB/s." 6269 required_values: { 6270 key: "filesystem_io_rate_mbps" 6271 value: { 6272 double_value: 100 6273 } 6274 } 6275 } 6276 } 6277 specs { 6278 key: 35 6279 value { 6280 mpc: MEDIA_PERFORMANCE_CLASS_15 6281 specification: "same" 6282 required_values: { 6283 key: "filesystem_io_rate_mbps" 6284 value: { 6285 double_value: 100 6286 } 6287 } 6288 } 6289 } 6290} 6291requirements { 6292 id: "8.2/H-2-4" 6293 name: "Random Read S" 6294 description: "- Random read" 6295 test_configs: { 6296 key: "" 6297 value: { 6298 description: "Default test config" 6299 proto_field_number: 83 6300 } 6301 } 6302 measurements: { 6303 key: "filesystem_io_rate_mbps" 6304 value: { 6305 id: "filesystem_io_rate_mbps" 6306 description: "Random read performance in MB per second." 6307 measurement_type: MEASUREMENT_TYPE_DOUBLE 6308 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 6309 proto_field_number: 3 6310 } 6311 } 6312 specs { 6313 key: 31 6314 value { 6315 mpc: MEDIA_PERFORMANCE_CLASS_12 6316 specification: "MUST ensure a random read performance of at least 40 MB/s." 6317 required_values: { 6318 key: "filesystem_io_rate_mbps" 6319 value: { 6320 double_value: 40 6321 } 6322 } 6323 } 6324 } 6325} 6326requirements { 6327 id: "8.2/H-1-5" 6328 description: "- Read and write performance" 6329} 6330requirements { 6331 id: "7.1.4.1/H-1-2" 6332 name: "EGL" 6333 description: "Supports EGL_IMG_context_priority and EGL_EXT_protected_content extensions." 6334 test_configs: { 6335 key: "" 6336 value: { 6337 description: "Default test config" 6338 proto_field_number: 84 6339 } 6340 } 6341 measurements: { 6342 key: "egl_img_context_priority" 6343 value: { 6344 id: "egl_img_context_priority" 6345 description: "Is EGL_IMG_context_priority supported." 6346 measurement_type: MEASUREMENT_TYPE_BOOL 6347 comparison: COMPARISON_EQUAL 6348 proto_field_number: 3 6349 } 6350 } 6351 measurements: { 6352 key: "egl_ext_protected_content" 6353 value: { 6354 id: "egl_ext_protected_content" 6355 description: "Is EGL_EXT_protected_content supported." 6356 measurement_type: MEASUREMENT_TYPE_BOOL 6357 comparison: COMPARISON_EQUAL 6358 proto_field_number: 4 6359 } 6360 } 6361 specs { 6362 key: 35 6363 value { 6364 mpc: MEDIA_PERFORMANCE_CLASS_15 6365 specification: "MUST support the EGL_IMG_context_priority and EGL_EXT_protected_content extensions." 6366 required_values: { 6367 key: "egl_img_context_priority" 6368 value: { 6369 bool_value: true 6370 } 6371 } 6372 required_values: { 6373 key: "egl_ext_protected_content" 6374 value: { 6375 bool_value: true 6376 } 6377 } 6378 } 6379 } 6380} 6381requirements { 6382 id: "7.1.4.1/H-1-3" 6383 name: "Vulkan" 6384 description: "Must support vulkan physical device protected memory and global priority." 6385 test_configs: { 6386 key: "" 6387 value: { 6388 description: "Default test config" 6389 proto_field_number: 85 6390 } 6391 } 6392 measurements: { 6393 key: "vk_ext_global_priority" 6394 value: { 6395 description: "Is VK_EXT_global_priority supported." 6396 measurement_type: MEASUREMENT_TYPE_BOOL 6397 comparison: COMPARISON_EQUAL 6398 proto_field_number: 3 6399 } 6400 } 6401 measurements: { 6402 key: "vk_physical_device_protected_memory" 6403 value: { 6404 description: "Is VkPhysicalDeviceProtectedMemoryFeatures.protectedMemory supported." 6405 measurement_type: MEASUREMENT_TYPE_BOOL 6406 comparison: COMPARISON_EQUAL 6407 proto_field_number: 4 6408 } 6409 } 6410 measurements: { 6411 key: "vk_non_cpu_device_count" 6412 value: { 6413 description: "The count of non VK_PHYSICAL_DEVICE_TYPE_CPU Vulcan Devices." 6414 measurement_type: MEASUREMENT_TYPE_INT 6415 comparison: COMPARISON_GREATER_THAN_OR_EQUAL 6416 proto_field_number: 5 6417 } 6418 } 6419 specs { 6420 key: 35 6421 value { 6422 mpc: MEDIA_PERFORMANCE_CLASS_15 6423 specification: "MUST support VkPhysicalDeviceProtectedMemoryFeatures.protectedMemory and VK_KHR_global_priority." 6424 required_values: [ 6425 { 6426 key: "vk_ext_global_priority" 6427 value: { 6428 bool_value: true 6429 6430 } 6431 }, 6432 { 6433 key: "vk_physical_device_protected_memory" 6434 value: { 6435 bool_value: true 6436 } 6437 }, 6438 { 6439 key: "vk_non_cpu_device_count" 6440 value: { 6441 int_value: 1 6442 } 6443 } 6444 ] 6445 } 6446 } 6447} 6448