| <?xml version="1.0" encoding="utf-8" ?> |
| <!-- Copyright 2020 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> |
| <Encoders> |
| <MediaCodec name="c2.vea.avc.encoder" type="video/avc" update="true"> |
| <Limit name="measured-frame-rate-320x240" range="599-599" /> |
| <Limit name="measured-frame-rate-720x480" range="317-323" /> |
| <!-- Set wider ranges to cover SKU variance: b/154660894 --> |
| <Limit name="measured-frame-rate-1280x720" range="122-270" /> |
| <Limit name="measured-frame-rate-1920x1080" range="56-123" /> |
| </MediaCodec> |
| |
| <MediaCodec name="c2.android.h263.encoder" type="video/3gpp" update="true"> |
| <Limit name="measured-frame-rate-176x144" range="437-437" /> <!-- N=48 v95%=1.1 --> |
| </MediaCodec> |
| <MediaCodec name="c2.android.avc.encoder" type="video/avc" update="true"> |
| <Limit name="measured-frame-rate-320x240" range="289-294" /> <!-- N=48 v95%=1.1 --> |
| <!-- measured 95%:103-139 med:109 SLOW --> |
| <Limit name="measured-frame-rate-720x480" range="108-120" /> <!-- N=48 v95%=1.2 --> |
| <!-- measured 95%:51-81 med:52 SLOW --> |
| <Limit name="measured-frame-rate-1280x720" range="52-64" /> <!-- N=48 v95%=1.3 --> |
| <!-- measured 95%:25-41 med:25 SLOW --> |
| <Limit name="measured-frame-rate-1920x1080" range="25-32" /> <!-- N=48 v95%=1.3 --> |
| </MediaCodec> |
| <MediaCodec name="c2.android.hevc.encoder" type="video/hevc" update="true"> |
| <Limit name="measured-frame-rate-320x240" range="36-36" /> <!-- N=48 v95%=1.0 --> |
| </MediaCodec> |
| <MediaCodec name="c2.android.mpeg4.encoder" type="video/mp4v-es" update="true"> |
| <Limit name="measured-frame-rate-176x144" range="441-442" /> <!-- N=48 v95%=1.1 --> |
| </MediaCodec> |
| <MediaCodec name="c2.android.vp8.encoder" type="video/x-vnd.on2.vp8" update="true"> |
| <Limit name="measured-frame-rate-320x180" range="178-181" /> <!-- N=48 v95%=1.1 --> |
| <Limit name="measured-frame-rate-640x360" range="104-104" /> <!-- N=48 v95%=1.0 --> |
| <Limit name="measured-frame-rate-1280x720" range="35-35" /> <!-- N=48 v95%=1.0 --> |
| <Limit name="measured-frame-rate-1920x1080" range="25-25" /> <!-- N=48 v95%=1.0 --> |
| </MediaCodec> |
| </Encoders> |
| <Decoders> |
| <MediaCodec name="c2.vda.avc.decoder" type="video/avc" update="true"> |
| <!-- b/155707252: Enlarge range for small resolution, geometric mean: 1604 --> |
| <Limit name="measured-frame-rate-320x240" range="1082-2380" /> |
| <Limit name="measured-frame-rate-720x480" range="1082-1920" /> |
| <Limit name="measured-frame-rate-1280x720" range="1082-1253" /> |
| <Limit name="measured-frame-rate-1920x1088" range="710-710" /> |
| </MediaCodec> |
| <MediaCodec name="c2.vda.vp8.decoder" type="video/x-vnd.on2.vp8" update="true"> |
| <!-- b/155707252: Enlarge range for small resolution, geometric mean: 1639 --> |
| <Limit name="measured-frame-rate-320x180" range="1105-2432" /> |
| <Limit name="measured-frame-rate-640x360" range="1105-2268" /> |
| <Limit name="measured-frame-rate-1280x720" range="1105-1302" /> |
| <Limit name="measured-frame-rate-1920x1080" range="659-659" /> |
| </MediaCodec> |
| <MediaCodec name="c2.vda.vp9.decoder" type="video/x-vnd.on2.vp9" update="true"> |
| <!-- (b/153827927): FPS at small resolution differ a lot in different SKUs. |
| FPS of Kohaku is about 2600 and FPS of Kindred is about 1038. |
| We calculate the geometric mean of 1038 and 2600 as "value", |
| and enlarge the range to value/(2.2)^0.5 to value*(2.2)^0.5. |
| Then the real range becomes value/(2.2)^1.5 to value*(2.2)^1.5. |
| (i.e. 503-5360) --> |
| <Limit name="measured-frame-rate-320x180" range="1108-2437" /> |
| <Limit name="measured-frame-rate-640x360" range="1108-2437" /> |
| <Limit name="measured-frame-rate-1280x720" range="1272-1280" /> |
| <Limit name="measured-frame-rate-1920x1080" range="836-854" /> |
| <Limit name="measured-frame-rate-3840x2160" range="203-203" /> |
| </MediaCodec> |
| |
| <MediaCodec name="c2.v4l2.avc.decoder" type="video/avc" update="true"> |
| <!-- b/155707252: Enlarge range for small resolution, geometric mean: 1604 --> |
| <Limit name="measured-frame-rate-320x240" range="1082-2380" /> |
| <Limit name="measured-frame-rate-720x480" range="1082-1920" /> |
| <Limit name="measured-frame-rate-1280x720" range="1082-1253" /> |
| <Limit name="measured-frame-rate-1920x1088" range="710-710" /> |
| </MediaCodec> |
| <MediaCodec name="c2.v4l2.vp8.decoder" type="video/x-vnd.on2.vp8" update="true"> |
| <!-- b/155707252: Enlarge range for small resolution, geometric mean: 1639 --> |
| <Limit name="measured-frame-rate-320x180" range="1105-2432" /> |
| <Limit name="measured-frame-rate-640x360" range="1105-2268" /> |
| <Limit name="measured-frame-rate-1280x720" range="1105-1302" /> |
| <Limit name="measured-frame-rate-1920x1080" range="659-659" /> |
| </MediaCodec> |
| <MediaCodec name="c2.v4l2.vp9.decoder" type="video/x-vnd.on2.vp9" update="true"> |
| <!-- (b/153827927): FPS at small resolution differ a lot in different SKUs. |
| FPS of Kohaku is about 2600 and FPS of Kindred is about 1038. |
| We calculate the geometric mean of 1038 and 2600 as "value", |
| and enlarge the range to value/(2.2)^0.5 to value*(2.2)^0.5. |
| Then the real range becomes value/(2.2)^1.5 to value*(2.2)^1.5. |
| (i.e. 503-5360) --> |
| <Limit name="measured-frame-rate-320x180" range="1108-2437" /> |
| <Limit name="measured-frame-rate-640x360" range="1108-2437" /> |
| <Limit name="measured-frame-rate-1280x720" range="1272-1280" /> |
| <Limit name="measured-frame-rate-1920x1080" range="836-854" /> |
| <Limit name="measured-frame-rate-3840x2160" range="203-203" /> |
| </MediaCodec> |
| |
| <MediaCodec name="c2.android.h263.decoder" type="video/3gpp" update="true"> |
| <!-- measured 95%:441-801 med:476 SLOW --> |
| <Limit name="measured-frame-rate-176x144" range="476-594" /> <!-- N=40 v95%=1.3 --> |
| <!-- measured 95%:391-670 med:428 SLOW --> |
| <Limit name="measured-frame-rate-352x288" range="428-512" /> <!-- N=40 v95%=1.3 --> |
| </MediaCodec> |
| <MediaCodec name="c2.android.avc.decoder" type="video/avc" update="true"> |
| <!-- measured 95%:240-489 med:294 SLOW FLAKY(mn=56.6 < 147 - 686) --> |
| <Limit name="measured-frame-rate-320x240" range="294-343" /> <!-- N=41 v95%=1.4 --> |
| <!-- measured 90%:150-210 med:156 SLOW FLAKY(mn=48.6 < 78 - 356) --> |
| <Limit name="measured-frame-rate-720x480" range="156-178" /> <!-- N=42 v90%=1.2 --> |
| <!-- measured 95%:59-81 med:62 SLOW --> |
| <Limit name="measured-frame-rate-1280x720" range="61-69" /> <!-- N=40 v95%=1.2 --> |
| <!-- measured 95%:27-37 med:29 SLOW --> |
| <Limit name="measured-frame-rate-1920x1080" range="28-32" /> <!-- N=41 v95%=1.1 --> |
| </MediaCodec> |
| <MediaCodec name="c2.android.hevc.decoder" type="video/hevc" update="true"> |
| <Limit name="measured-frame-rate-352x288" range="340-340" /> <!-- N=40 v95%=1.1 --> |
| <Limit name="measured-frame-rate-640x360" range="211-211" /> <!-- N=40 v95%=1.1 --> |
| <Limit name="measured-frame-rate-720x480" range="176-176" /> <!-- N=40 v95%=1.2 --> |
| <Limit name="measured-frame-rate-1280x720" range="96-100" /> <!-- N=40 v95%=1.1 --> |
| <Limit name="measured-frame-rate-1920x1080" range="57-63" /> <!-- N=40 v93%=1.1 --> |
| </MediaCodec> |
| <MediaCodec name="c2.android.mpeg4.decoder" type="video/mp4v-es" update="true"> |
| <!-- measured 95%:401-821 med:429 SLOW --> |
| <Limit name="measured-frame-rate-176x144" range="428-574" /> <!-- N=40 v95%=1.4 --> |
| </MediaCodec> |
| <MediaCodec name="c2.android.vp8.decoder" type="video/x-vnd.on2.vp8" update="true"> |
| <!-- measured 95%:357-603 med:376 SLOW --> |
| <Limit name="measured-frame-rate-320x180" range="375-464" /> <!-- N=40 v95%=1.3 --> |
| <!-- measured 95%:216-356 med:234 SLOW --> |
| <Limit name="measured-frame-rate-640x360" range="234-277" /> <!-- N=40 v95%=1.3 --> |
| <!-- measured 95%:32-54 med:33 SLOW --> |
| <Limit name="measured-frame-rate-1920x1080" range="33-42" /> <!-- N=40 v95%=1.3 --> |
| </MediaCodec> |
| <MediaCodec name="c2.android.vp9.decoder" type="video/x-vnd.on2.vp9" update="true"> |
| <Limit name="measured-frame-rate-320x180" range="341-375" /> <!-- N=40 v95%=1.4 --> |
| <!-- measured 95%:187-320 med:219 SLOW --> |
| <Limit name="measured-frame-rate-640x360" range="218-245" /> <!-- N=40 v95%=1.3 --> |
| <!-- measured 95%:94-153 med:96 SLOW --> |
| <Limit name="measured-frame-rate-1280x720" range="96-120" /> <!-- N=40 v95%=1.3 --> |
| <!-- measured 95%:61-98 med:62 SLOW --> |
| <Limit name="measured-frame-rate-1920x1080" range="62-77" /> <!-- N=40 v95%=1.3 --> |
| </MediaCodec> |
| </Decoders> |
| </MediaCodecs> |