<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2016 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<MediaCodecs>
    <Decoders>
        <MediaCodec name="c2.exynos.h264.decoder" type="video/avc" update="true">
            <!-- measured 90%:528-534 med:528 N=2 -->
            <Limit name="measured-frame-rate-320x240" range="528-531" /> <!-- v90%=1.0 -->
            <!-- measured 90%:550-560 med:551 N=2 -->
            <Limit name="measured-frame-rate-720x480" range="550-555" /> <!-- v90%=1.0 -->
            <!-- measured 90%:540-561 med:541 N=2 -->
            <Limit name="measured-frame-rate-1280x720" range="540-551" /> <!-- v90%=1.0 -->
            <!-- measured 90%:409-413 med:410 N=2 -->
            <Limit name="measured-frame-rate-1920x1088" range="409-411" /> <!-- v90%=1.0 -->
        </MediaCodec>
        <MediaCodec name="c2.exynos.h264.decoder.secure" type="video/avc" update="true">
            <!-- measured 90%:528-534 med:528 N=2 -->
            <Limit name="measured-frame-rate-320x240" range="528-531" /> <!-- v90%=1.0 -->
            <!-- measured 90%:550-560 med:551 N=2 -->
            <Limit name="measured-frame-rate-720x480" range="550-555" /> <!-- v90%=1.0 -->
            <!-- measured 90%:540-561 med:541 N=2 -->
            <Limit name="measured-frame-rate-1280x720" range="540-551" /> <!-- v90%=1.0 -->
            <!-- measured 90%:409-413 med:410 N=2 -->
            <Limit name="measured-frame-rate-1920x1088" range="409-411" /> <!-- v90%=1.0 -->
        </MediaCodec>
        <MediaCodec name="c2.exynos.hevc.decoder" type="video/hevc" update="true">
            <!-- measured 90%:529-530 med:529 N=2 -->
            <Limit name="measured-frame-rate-352x288" range="1150-1250" /> <!-- v90%=1.0 -->
            <!-- measured 90%:528-530 med:529 N=2 -->
            <Limit name="measured-frame-rate-640x360" range="528-529" /> <!-- v90%=1.0 -->
            <!-- measured 90%:546-549 med:546 N=2 -->
            <Limit name="measured-frame-rate-720x480" range="546-548" /> <!-- v90%=1.0 -->
            <!-- measured 90%:547-560 med:547 N=2 -->
            <Limit name="measured-frame-rate-1280x720" range="547-553" /> <!-- v90%=1.0 -->
            <!-- measured 90%:569-574 med:570 N=2 -->
            <Limit name="measured-frame-rate-1920x1080" range="569-572" /> <!-- v90%=1.0 -->
            <!-- measured 90%:159-160 med:159 N=2 -->
            <Limit name="measured-frame-rate-3840x2160" range="159-159" /> <!-- v90%=1.0 -->
        </MediaCodec>
        <MediaCodec name="c2.exynos.hevc.decoder.secure" type="video/hevc" update="true">
            <!-- measured 90%:529-530 med:529 N=2 -->
            <Limit name="measured-frame-rate-352x288" range="1150-1250" /> <!-- v90%=1.0 -->
            <!-- measured 90%:528-530 med:529 N=2 -->
            <Limit name="measured-frame-rate-640x360" range="528-529" /> <!-- v90%=1.0 -->
            <!-- measured 90%:546-549 med:546 N=2 -->
            <Limit name="measured-frame-rate-720x480" range="546-548" /> <!-- v90%=1.0 -->
            <!-- measured 90%:547-560 med:547 N=2 -->
            <Limit name="measured-frame-rate-1280x720" range="547-553" /> <!-- v90%=1.0 -->
            <!-- measured 90%:569-574 med:570 N=2 -->
            <Limit name="measured-frame-rate-1920x1080" range="569-572" /> <!-- v90%=1.0 -->
            <!-- measured 90%:159-160 med:159 N=2 -->
            <Limit name="measured-frame-rate-3840x2160" range="159-159" /> <!-- v90%=1.0 -->
        </MediaCodec>
        <MediaCodec name="c2.exynos.mpeg4.decoder" type="video/mp4v-es" update="true">
            <!-- measured 90%:527-537 med:528 N=2 -->
            <Limit name="measured-frame-rate-176x144" range="527-532" /> <!-- v90%=1.0 -->
            <!-- measured 90%:387-391 med:387 N=2 -->
            <Limit name="measured-frame-rate-480x360" range="387-389" /> <!-- v90%=1.0 -->
        </MediaCodec>
        <MediaCodec name="c2.exynos.h263.decoder" type="video/3gpp" update="true">
            <Limit name="measured-frame-rate-176x144" range="502-753" />
            <Limit name="measured-frame-rate-352x288" range="420-631" />
        </MediaCodec>
        <MediaCodec name="c2.exynos.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
            <!-- measured 90%:451-555 med:452 SLOW N=2 -->
            <Limit name="measured-frame-rate-320x180" range="451-500" /> <!-- v90%=1.1 -->
            <!-- measured 90%:486-504 med:486 N=2 -->
            <Limit name="measured-frame-rate-640x360" range="486-495" /> <!-- v90%=1.0 -->
            <!-- measured 90%:518-566 med:518 N=2 -->
            <Limit name="measured-frame-rate-1280x720" range="518-542" /> <!-- v90%=1.0 -->
            <!-- measured 90%:386-387 med:386 N=2 -->
            <Limit name="measured-frame-rate-1920x1080" range="386-386" /> <!-- v90%=1.0 -->
        </MediaCodec>
        <MediaCodec name="c2.exynos.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
            <!-- measured 90%:523-536 med:524 N=2 -->
            <Limit name="measured-frame-rate-320x180" range="523-529" /> <!-- v90%=1.0 -->
            <!-- measured 90%:503-506 med:504 N=2 -->
            <Limit name="measured-frame-rate-640x360" range="503-505" /> <!-- v90%=1.0 -->
            <!-- measured 90%:510-518 med:511 N=2 -->
            <Limit name="measured-frame-rate-1280x720" range="510-514" /> <!-- v90%=1.0 -->
            <!-- measured 90%:349-351 med:350 N=2 -->
            <Limit name="measured-frame-rate-1920x1080" range="349-350" /> <!-- v90%=1.0 -->
            <!-- measured 90%:100-101 med:100 N=2 -->
            <Limit name="measured-frame-rate-3840x2160" range="100-100" /> <!-- v90%=1.0 -->
        </MediaCodec>
        <MediaCodec name="c2.exynos.vp9.decoder.secure" type="video/x-vnd.on2.vp9" update="true">
            <!-- measured 90%:523-536 med:524 N=2 -->
            <Limit name="measured-frame-rate-320x180" range="523-529" /> <!-- v90%=1.0 -->
            <!-- measured 90%:503-506 med:504 N=2 -->
            <Limit name="measured-frame-rate-640x360" range="503-505" /> <!-- v90%=1.0 -->
            <!-- measured 90%:510-518 med:511 N=2 -->
            <Limit name="measured-frame-rate-1280x720" range="510-514" /> <!-- v90%=1.0 -->
            <!-- measured 90%:349-351 med:350 N=2 -->
            <Limit name="measured-frame-rate-1920x1080" range="349-350" /> <!-- v90%=1.0 -->
            <!-- measured 90%:100-101 med:100 N=2 -->
            <Limit name="measured-frame-rate-3840x2160" range="100-100" /> <!-- v90%=1.0 -->
        </MediaCodec>

        <MediaCodec name="c2.android.h263.decoder" type="video/3gpp" update="true">
            <Limit name="measured-frame-rate-176x144" range="849-1283" /> <!-- v90%=1.2 -->
            <Limit name="measured-frame-rate-352x288" range="766-822" /> <!-- v90%=1.1 -->
        </MediaCodec>
        <MediaCodec name="c2.android.avc.decoder" type="video/avc" update="true">
            <!-- measured 90%:342-360 med:343 N=2 -->
            <Limit name="measured-frame-rate-320x240" range="542-971" /> <!-- v90%=1.0 -->
            <!-- measured 90%:142-147 med:143 N=2 -->
            <Limit name="measured-frame-rate-720x480" range="162-301" /> <!-- v90%=1.0 -->
            <!-- measured 90%:54-56 med:55 N=2 -->
            <Limit name="measured-frame-rate-1280x720" range="54-77" /> <!-- v90%=1.0 -->
            <!-- measured 90%:25-26 med:26 N=2 -->
            <Limit name="measured-frame-rate-1920x1080" range="25-34" /> <!-- v90%=1.0 -->
        </MediaCodec>
        <MediaCodec name="c2.android.hevc.decoder" type="video/hevc" update="true">
            <Limit name="measured-frame-rate-352x288" range="583-972" /> <!-- N=20 v90%=1.0 -->
            <Limit name="measured-frame-rate-640x360" range="337-537" /> <!-- v90%=1.0 -->
            <Limit name="measured-frame-rate-720x480" range="312-470" /> <!-- v90%=1.0 -->
            <Limit name="measured-frame-rate-1280x720" range="104-165" /> <!-- v90%=1.0 -->
            <Limit name="measured-frame-rate-1920x1080" range="54-68" /> <!-- v90%=1.0 -->
        </MediaCodec>
        <MediaCodec name="c2.android.mpeg4.decoder" type="video/mp4v-es" update="true">
            <Limit name="measured-frame-rate-176x144" range="1215-1823" />
            <Limit name="measured-frame-rate-480x360" range="830-1246" />
            <Limit name="measured-frame-rate-1280x720" range="234-351" />
        </MediaCodec>
        <MediaCodec name="c2.android.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
            <Limit name="measured-frame-rate-320x180" range="873-1013" /> <!-- v90%=1.1 -->
            <Limit name="measured-frame-rate-640x360" range="394-455" /> <!-- N=20 v90%=1.0 -->
            <Limit name="measured-frame-rate-1280x720" range="105-109" /> <!-- v90%=1.0 -->
            <Limit name="measured-frame-rate-1920x1080" range="38-41" /> <!-- v90%=1.0 -->
        </MediaCodec>
        <MediaCodec name="c2.android.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
            <Limit name="measured-frame-rate-320x180" range="951-1032" />
            <Limit name="measured-frame-rate-640x360" range="324-374" />
            <Limit name="measured-frame-rate-1280x720" range="128-131" />
            <Limit name="measured-frame-rate-1920x1080" range="65-75" />
        </MediaCodec>
        <MediaCodec name="c2.google.av1.decoder" type="video/av01" update="true">
            <Limit name="measured-frame-rate-352x288" range="410-416" /> <!-- N=20 v90%=1.7 -->
            <!-- measured 90%:251-660 med:361 SLOW -->
            <Limit name="measured-frame-rate-640x360" range="361-407" /> <!-- N=20 v90%=1.6 -->
            <!-- measured 90%:250-684 med:366 SLOW -->
            <Limit name="measured-frame-rate-720x480" range="366-414" /> <!-- N=20 v90%=1.7 -->
            <Limit name="measured-frame-rate-1280x720" range="252-259" /> <!-- N=22 v90%=1.1 -->
            <Limit name="measured-frame-rate-1920x1080" range="210-213" /> <!-- N=20 v90%=1.1 -->
        </MediaCodec>
        <MediaCodec name="c2.google.av1.decoder.secure" type="video/av01" update="true">
            <!-- measured 90%:295-301 med:296 N=2 -->
            <Limit name="measured-frame-rate-352x288" range="410-416" /> <!-- v90%=1.0 -->
            <!-- measured 90%:196-207 med:196 N=2 -->
            <Limit name="measured-frame-rate-640x360" range="361-407" /> <!-- v90%=1.0 -->
            <!-- measured 90%:177-180 med:178 N=2 -->
            <Limit name="measured-frame-rate-720x480" range="366-414" /> <!-- v90%=1.0 -->
            <!-- measured 90%:81-82 med:82 N=2 -->
            <Limit name="measured-frame-rate-1280x720" range="252-259" /> <!-- v90%=1.0 -->
            <!-- measured 90%:45-47 med:46 N=2 -->
            <Limit name="measured-frame-rate-1920x1080" range="210-213" /> <!-- v90%=1.0 -->
        </MediaCodec>
        <MediaCodec name="c2.android.av1.decoder" type="video/av01" update="true">
            <Limit name="measured-frame-rate-352x288" range="353-362" />
            <Limit name="measured-frame-rate-640x360" range="178-210" />
            <Limit name="measured-frame-rate-720x480" range="101-129" />
            <Limit name="measured-frame-rate-1280x720" range="38-40" />
        </MediaCodec>
        <MediaCodec name="c2.android.av1-dav1d.decoder" type="video/av01" update="true">
            <Limit name="measured-frame-rate-352x288" range="735-974" />
            <Limit name="measured-frame-rate-640x360" range="426-627" />
            <Limit name="measured-frame-rate-720x480" range="406-434" />
            <Limit name="measured-frame-rate-1280x720" range="148-159" />
         </MediaCodec>
    </Decoders>

    <Encoders>
        <MediaCodec name="c2.exynos.h264.encoder" type="video/avc" update="true">
            <Limit name="measured-frame-rate-320x240" range="372-551" />
            <Limit name="measured-frame-rate-720x480" range="221-308" />
            <Limit name="measured-frame-rate-1280x720" range="151-190" />
            <Limit name="measured-frame-rate-1920x1080" range="58-99" />
        </MediaCodec>
        <MediaCodec name="c2.exynos.hevc.encoder" type="video/hevc" update="true">
            <Limit name="measured-frame-rate-320x240" range="371-553" />
            <Limit name="measured-frame-rate-720x480" range="214-305" />
            <Limit name="measured-frame-rate-1280x720" range="154-198" />
            <Limit name="measured-frame-rate-1920x1080" range="46-97" />
        </MediaCodec>
        <MediaCodec name="c2.exynos.mpeg4.encoder" type="video/mp4v-es" update="true">
            <Limit name="measured-frame-rate-176x144" range="280-451" /> <!-- v90%=1.1 -->
            <Limit name="measured-frame-rate-352x288" range="214-396" /> <!-- v90%=1.1 -->
            <Limit name="measured-frame-rate-640x480" range="121-159" /> <!-- v90%=1.0 -->
        </MediaCodec>
        <MediaCodec name="c2.exynos.h263.encoder" type="video/3gpp" update="true">
            <Limit name="measured-frame-rate-176x144" range="273-405" /> <!-- v90%=1.0 -->
            <Limit name="measured-frame-rate-352x288" range="250-320" /> <!-- v90%=1.0 -->
            <Limit name="measured-frame-rate-704x576" range="120-176" /> <!-- v90%=1.0 -->
        </MediaCodec>
        <MediaCodec name="c2.exynos.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
            <Limit name="measured-frame-rate-320x180" range="382-574" />
            <Limit name="measured-frame-rate-640x360" range="182-274" />
            <Limit name="measured-frame-rate-1280x720" range="89-134" />
            <Limit name="measured-frame-rate-1920x1080" range="60-91" />
        </MediaCodec>
        <MediaCodec name="c2.exynos.vp9.encoder" type="video/x-vnd.on2.vp9" update="true">
            <Limit name="measured-frame-rate-320x180" range="381-570" />
            <Limit name="measured-frame-rate-640x360" range="184-276" />
            <Limit name="measured-frame-rate-1280x720" range="91-136" />
            <Limit name="measured-frame-rate-1920x1080" range="62-93" />
        </MediaCodec>

        <MediaCodec name="c2.android.h263.encoder" type="video/3gpp" update="true">
            <Limit name="measured-frame-rate-176x144" range="841-1261" />
        </MediaCodec>
        <MediaCodec name="c2.android.avc.encoder" type="video/avc" update="true">
            <!-- measured 90%:345-350 med:345 N=2 -->
            <Limit name="measured-frame-rate-320x240" range="345-347" /> <!-- v90%=1.0 -->
            <!-- measured 90%:101-103 med:101 N=2 -->
            <Limit name="measured-frame-rate-720x480" range="101-102" /> <!-- v90%=1.0 -->
            <!-- measured 90%:54-55 med:54 N=2 -->
            <Limit name="measured-frame-rate-1280x720" range="54-54" /> <!-- v90%=1.0 -->
            <!-- measured 90%:28-30 med:29 N=2 -->
            <Limit name="measured-frame-rate-1920x1080" range="28-29" /> <!-- v90%=1.0 -->
        </MediaCodec>
        <MediaCodec name="c2.android.hevc.encoder" type="video/hevc" update="true">
            <!-- measured 90%:61-65 med:62 N=8 -->
            <Limit name="measured-frame-rate-320x240" range="62-63" /> <!-- v90%=1.0 -->
        </MediaCodec>
        <MediaCodec name="c2.android.mpeg4.encoder" type="video/mp4v-es" update="true">
            <Limit name="measured-frame-rate-176x144" range="1129-1694" />
        </MediaCodec>
        <MediaCodec name="c2.android.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
            <Limit name="measured-frame-rate-320x180" range="183-284" /> <!-- v90%=1.3 -->
            <Limit name="measured-frame-rate-640x360" range="74-134" /> <!-- v90%=1.0 -->
            <Limit name="measured-frame-rate-1280x720" range="34-38" /> <!-- v90%=1.0 -->
            <Limit name="measured-frame-rate-1920x1080" range="29-31" /> <!-- v90%=1.0 -->
        </MediaCodec>
        <MediaCodec name="c2.android.vp9.encoder" type="video/x-vnd.on2.vp9" update="true">
            <Limit name="measured-frame-rate-320x180" range="251-376" />
            <Limit name="measured-frame-rate-640x360" range="64-97" />
            <Limit name="measured-frame-rate-1280x720" range="16-24" />
        </MediaCodec>
        <MediaCodec name="c2.android.av1.encoder" type="video/av01" update="true">
            <!-- measured 90%:297-298 med:298 N=2 -->
            <Limit name="measured-frame-rate-320x240" range="297-298" /> <!-- v90%=1.0 -->
            <!-- measured 90%:65-66 med:66 N=2 -->
            <Limit name="measured-frame-rate-720x480" range="65-66" /> <!-- v90%=1.0 -->
            <!-- measured 90%:24-25 med:25 N=2 -->
            <Limit name="measured-frame-rate-1280x720" range="24-25" /> <!-- v90%=1.0 -->
        </MediaCodec>
    </Encoders>
</MediaCodecs>
