peridot: Import media codecs and video specs to tree

Change-Id: Ic02bdaa8ad4a9c3ff3c8bc2dc4ea3e21b105c7f8
This commit is contained in:
AdarshGrewal
2025-08-16 01:04:22 +05:30
parent a89a699484
commit f20ced935a
4 changed files with 0 additions and 782 deletions

View File

@@ -1395,10 +1395,8 @@ PRODUCT_COPY_FILES += \
vendor/xiaomi/peridot/proprietary/vendor/etc/libnfc-qrd-SN100.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-qrd-SN100.conf \ vendor/xiaomi/peridot/proprietary/vendor/etc/libnfc-qrd-SN100.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-qrd-SN100.conf \
vendor/xiaomi/peridot/proprietary/vendor/etc/libnfc-qrd-SN100_38_4MHZ.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-qrd-SN100_38_4MHZ.conf \ vendor/xiaomi/peridot/proprietary/vendor/etc/libnfc-qrd-SN100_38_4MHZ.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-qrd-SN100_38_4MHZ.conf \
vendor/xiaomi/peridot/proprietary/vendor/etc/lowi.conf:$(TARGET_COPY_OUT_VENDOR)/etc/lowi.conf \ vendor/xiaomi/peridot/proprietary/vendor/etc/lowi.conf:$(TARGET_COPY_OUT_VENDOR)/etc/lowi.conf \
vendor/xiaomi/peridot/proprietary/vendor/etc/media_cliffs_v0/video_system_specs.json:$(TARGET_COPY_OUT_VENDOR)/etc/media_cliffs_v0/video_system_specs.json \
vendor/xiaomi/peridot/proprietary/vendor/etc/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \ vendor/xiaomi/peridot/proprietary/vendor/etc/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \
vendor/xiaomi/peridot/proprietary/vendor/etc/media_codecs_c2_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_c2_audio.xml \ vendor/xiaomi/peridot/proprietary/vendor/etc/media_codecs_c2_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_c2_audio.xml \
vendor/xiaomi/peridot/proprietary/vendor/etc/media_codecs_cliffs_v0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_cliffs_v0.xml \
vendor/xiaomi/peridot/proprietary/vendor/etc/media_codecs_dolby_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_dolby_audio.xml \ vendor/xiaomi/peridot/proprietary/vendor/etc/media_codecs_dolby_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_dolby_audio.xml \
vendor/xiaomi/peridot/proprietary/vendor/etc/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml \ vendor/xiaomi/peridot/proprietary/vendor/etc/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml \
vendor/xiaomi/peridot/proprietary/vendor/etc/media_codecs_google_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_c2.xml \ vendor/xiaomi/peridot/proprietary/vendor/etc/media_codecs_google_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_c2.xml \
@@ -1407,7 +1405,6 @@ PRODUCT_COPY_FILES += \
vendor/xiaomi/peridot/proprietary/vendor/etc/media_codecs_google_telephony.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_telephony.xml \ vendor/xiaomi/peridot/proprietary/vendor/etc/media_codecs_google_telephony.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_telephony.xml \
vendor/xiaomi/peridot/proprietary/vendor/etc/media_codecs_google_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video.xml \ vendor/xiaomi/peridot/proprietary/vendor/etc/media_codecs_google_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video.xml \
vendor/xiaomi/peridot/proprietary/vendor/etc/media_codecs_google_video_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video_le.xml \ vendor/xiaomi/peridot/proprietary/vendor/etc/media_codecs_google_video_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video_le.xml \
vendor/xiaomi/peridot/proprietary/vendor/etc/media_codecs_performance_cliffs_v0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance_cliffs_v0.xml \
vendor/xiaomi/peridot/proprietary/vendor/etc/media_codecs_vendor_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_vendor_audio.xml \ vendor/xiaomi/peridot/proprietary/vendor/etc/media_codecs_vendor_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_vendor_audio.xml \
vendor/xiaomi/peridot/proprietary/vendor/etc/media_profiles.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles.xml \ vendor/xiaomi/peridot/proprietary/vendor/etc/media_profiles.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles.xml \
vendor/xiaomi/peridot/proprietary/vendor/etc/media_profiles_V1_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_V1_0.xml \ vendor/xiaomi/peridot/proprietary/vendor/etc/media_profiles_V1_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_V1_0.xml \

View File

@@ -1,109 +0,0 @@
// If you modify this file,
// 1. Push it to /vendor/etc/media_pineapple/video_system_specs.json on the device
// 2. Kill media.hwcodec to get the new changed values.
// Note: Please do not use hexadecimal values 0x in this file.
{
"Video": {
// feature list used for enable/disable
"Features": {
// This is used for encoder color space conversion with custom matrix.
// custom matrix is defined in kernel driver
// this triggers to enable CSC to 709LR with custom matrix
"enc_csc_custom_matrix": false,
// encoder csc enable
"enc_csc_enable": false
},
"Presets": {
// control to force enable linear color format for encoder
// if this is enable, then encoder will ask camera via
// consumer flag to inform usage of linear color format.
// it is used only for camera path. can't be used for non-camera producer case
// it is bitmask:
// 0: no override,
// 1: enable 8 bit: linear format. 10 bit: compressed format
// 2: 8 bit: compressed format. 10 bit: linear format
// 3: 8 bit: linear format. 10 bit: linear format
"enc_linear_color_format": 0,
// override chroma qp offset value for 8 and 10 bits:
// default: 0
// allowed override value: -12
"enc_chroma_qp_offset_10_bit": -12,
"enc_chroma_qp_offset_8_bit": 0,
// video certified version capability used for MediaCodec - MLVEC
"vt_certified_version": 0,
//encoder bitrate savings control (CAC) - content adaptive coding feature
// it is bitmask.
// 0x0: disable CAC
// 0x1: 8 bit: enable. 10 bit: disable
// 0x2: 8 bit: disable. 10 bit: enable
// 0x3: 8 bit: enable. 10 bit: enable
"enc_bitrate_savings": 3,
// max input work count, max output work done in one dump file
// if frame count in dump file is larger than max work count,
// will dump in a new file
// if set to 0, this feature is not enabled, all frames will dump
// into one file.
//This is debug feature, can slow down performance, work only for non secure case.
"max_input_work_count_for_dump": 0,
// Set max input dump count, max output work donw to limit dump file size.
// It specifies number of input or output worked dumped.
// Only keep last two dump files, remove all others.
// No IDR cut for new file. If a few frames mosaic at beginning, it is expected.
// A txt file is generated to record frame index,
// frame size and frame type for every frame.
// Name of txt file is like 20230512_142335_18.txt, 15 bytes system time, last session id.
"max_output_work_done_for_dump": 0,
// dump will begin from this timestamp, in us
// like 3004355, this means dump from 3.004355s
"timestamp_begin_to_dump": 0,
// dump location, if not set, will use default location
// dump location like /data/vendor/media/qc2/, absolute path
// max dump location length should less than 128 bytes.
"dump_location": 0
},
"ProsightModeBitrateTable": [
// 2D-array of [min_mb, max_mb, bitrate]
[3600, 8100, 120],
[8100, 8640, 160],
[8640, 32420, 245]
],
"DolbyVision": {
"profiles": [4, 5, 8],
"max_main_tier_level": 12,
"max_high_tier_level": 12
},
// list of codec plugin libraries to be loaded into codec registry
"QC2CodecPlugins": [
"libqc2vppfilter.so",
"libqcodec2_imgtxrfilter.so",
//dolby post process
"libqcodec2_dolbydecoderfilter.so",
"libqcodec2_srfilter.so"
],
"QC2PreProcessingFilters": [
"libqcodec2_imgtxrfilter.so",
"libqcodec2_cvpfilter.so",
"libqcodec2_streaminteg_filter.so"
],
"QC2PostProcessingFilters": {
"vppFilter": [
"c2.mi.filter.sr"
]
},
//
// Put below optional codecs under "OptionalCodecs" to enable it
// "c2.qti.dv.decoder",
// "c2.qti.dv.decoder.secure",
// "c2.qti.dv.encoder"
//
"OptionalCodecs": [
"c2.qti.dv.decoder",
"c2.qti.dv.decoder.secure"
]
}
}

View File

@@ -1,442 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright (c) 2023 Qualcomm Technologies, Inc.
All Rights Reserved.
Confidential and Proprietary - Qualcomm Technologies, Inc.
Not a Contribution.
Copyright (C) 2012-2018 The Linux Foundation. All rights reserved.
Copyright (C) 2012-2013 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.
-->
<!--
"performance-point"
Vendor-guaranteed performance advertised to the applications
<Limit name="performance-point-widthxheight" value="fps" />
-For each of the resolutions, the advertised fps is the max supported,
with HW-friendly color format and considering video-only.
-Performance for any intermediate resolution will be that of the
next-higher-advertised-resolution.
standard sizes: 480p/576p (SD), 720p (HD), 1080p (FHD), 2160p (UHD)
standard frame rates: 24, 25, 30, 48+, 50, 60, 100*, 120*, 200*, 240* fps
* HD+ only
+ SD only
- All supported standard performance points are listed (unless they are
covered by another listed standard performance point)
- Non-standard performance points are listed along with all the standard
performance points covered by them.
- Mbps calculation: As macro block size given is 16x16 = 256
Formula to calculate mbps: ((W*H)/256)*fps
i.e. Size 3840x2160 with frame rate 120, ((3840*2160)/256)* 120 = 3888000
-->
<!--
Non-Secure decoder capabilities
(MB is defined as 16x16)
_____________________________________________________________________
| Codec | W H fps Mbps MB/s Max MB/s|
|_____________|_____________________________________________________|
| h264 | 1920 1088 480 160 3916800 4147200 |
| | 3840 2160 120 160 3888000 |
| | 4096 2160 120 160 4147200 |
| | 7680 4320 30 160 3888000 |
| hevc | 1920 1088 480 160 3916800 4177920 |
| | 3840 2176 120 160 3888000 |
| | 4096 2176 120 160 4177920 |
| | 7680 4320 30 160 3888000 |
| vp9 | 1920 1088 200 160 1632000 4147200 |
| | 3840 2160 120 160 3888000 |
| | 4096 2160 120 160 4147200 |
| av1 | 1920 1088 480 160 3916800 4147200 |
| | 3840 2160 120 160 3888000 |
| | 4096 2160 120 160 4147200 |
| | 7680 4320 30 160 3888000 |
|_____________|_____________________________________________________|
Secure decoder capabilities
(MB is defined as 16x16)
__________________________________________________________________
| Codec | W H fps Mbps MB/s Max MB/s|
|__________|_____________________________________________________|
| h264 | 1920 1088 120 40 979200 2073600 |
| | 3840 2160 60 40 1944000 |
| | 4096 2160 60 40 2073600 |
| hevc | 1920 1088 120 40 979200 2073600 |
| | 3840 2160 60 40 1944000 |
| | 4096 2160 60 40 2073600 |
| vp9 | 1920 1088 120 40 979200 2073600 |
| | 3840 2160 60 40 1944000 |
| | 4096 2160 60 40 2073600 |
| av1 | 1920 1088 120 40 979200 2073600 |
| | 3840 2160 60 40 1944000 |
| | 4096 2160 60 40 2073600 |
|__________|_____________________________________________________|
Non-Secure encoder capabilities (Secure not supported)
(MB is defined as 16x16)
__________________________________________________________________
| Codec | W H fps Mbps MB/s Max MB/s|
|__________|_____________________________________________________|
| h264 | 1280 720 480 160 1728000 2073600 |
| | 1920 1088 240 160 1958400 |
| | 3840 2160 60 160 1944000 |
| | 4096 2160 60 160 2073600 |
| hevc | 1280 720 480 160 1728000 2088960 |
| | 1920 1088 240 160 1958400 |
| | 3840 2176 60 160 1958400 |
| | 4096 2176 60 160 2088960 |
|__________|_____________________________________________________|
-->
<MediaCodecs>
<Include href="media_codecs_google_audio.xml" />
<Include href="media_codecs_vendor_audio.xml" />
<Include href="media_codecs_google_telephony.xml" />
<Include href="media_codecs_c2_audio.xml" />
<Include href="media_codecs_dolby_audio.xml" />
<Settings>
<Setting name="max-video-encoder-input-buffers" value="11" />
</Settings>
<Decoders>
<!-- C2 decoders -->
<MediaCodec name="c2.qti.avc.decoder" type="video/avc">
<Alias name="OMX.qcom.video.decoder.avc"/>
<Limit name="size" min="96x96" max="7680x7680" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="block-count" range="36-138240" />
<Limit name="blocks-per-second" range="36-4147200" />
<Limit name="bitrate" range="1-160000000" />
<Limit name="frame-rate" range="1-480" />
<Limit name="concurrent-instances" max="16" />
<Feature name="adaptive-playback" />
<Limit name="performance-point-1920x1080" value="480" />
<Limit name="performance-point-1920x1088" value="240" />
<Limit name="performance-point-3840x2160" value="120" />
<Limit name="performance-point-4096x2160" value="120" />
<Limit name="performance-point-7680x4320" value="30" />
</MediaCodec>
<MediaCodec name="c2.qti.avc.decoder.low_latency" type="video/avc">
<Alias name="OMX.qcom.video.decoder.avc.low_latency"/>
<Limit name="size" min="96x96" max="7680x7680" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="block-count" range="36-138240" />
<Limit name="blocks-per-second" range="36-4147200" />
<Limit name="bitrate" range="1-70000000" />
<Limit name="frame-rate" range="1-480" />
<Limit name="concurrent-instances" max="16" />
<Feature name="adaptive-playback" />
<Feature name="low-latency" />
<Limit name="performance-point-1920x1080" value="480" />
<Limit name="performance-point-1920x1088" value="240" />
<Limit name="performance-point-3840x2160" value="120" />
<Limit name="performance-point-4096x2160" value="120" />
<Limit name="performance-point-7680x4320" value="30" />
</MediaCodec>
<MediaCodec name="c2.qti.avc.decoder.secure" type="video/avc" >
<Alias name="OMX.qcom.video.decoder.avc.secure"/>
<Limit name="size" min="96x96" max="4096x4096" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="block-count" range="36-34560" />
<Limit name="blocks-per-second" min="36" max="2073600" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-120" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Feature name="low-latency" />
<Limit name="concurrent-instances" max="3" />
<Limit name="performance-point-1920x1080" value="120" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-4096x2160" value="60" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.decoder" type="video/hevc" >
<Alias name="OMX.qcom.video.decoder.hevc"/>
<Limit name="size" min="96x96" max="7680x7680" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="block-count" range="36-138240" />
<Limit name="blocks-per-second" min="36" max="4177920" />
<Limit name="bitrate" range="1-160000000" />
<Limit name="frame-rate" range="1-480" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1920x1080" value="480" />
<Limit name="performance-point-1920x1088" value="240" />
<Limit name="performance-point-3840x2160" value="120" />
<Limit name="performance-point-4096x2176" value="120" />
<Limit name="performance-point-7680x4320" value="30" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.decoder.low_latency" type="video/hevc" >
<Alias name="OMX.qcom.video.decoder.hevc.low_latency"/>
<Limit name="size" min="96x96" max="7680x7680" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="block-count" range="36-138240" />
<Limit name="blocks-per-second" min="36" max="4177920" />
<Limit name="bitrate" range="1-70000000" />
<Limit name="frame-rate" range="1-480" />
<Feature name="adaptive-playback" />
<Feature name="low-latency" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1920x1080" value="480" />
<Limit name="performance-point-1920x1088" value="240" />
<Limit name="performance-point-3840x2160" value="120" />
<Limit name="performance-point-4096x2176" value="120" />
<Limit name="performance-point-7680x4320" value="30" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.decoder.secure" type="video/hevc" >
<Alias name="OMX.qcom.video.decoder.hevc.secure"/>
<Limit name="size" min="96x96" max="4096x4096" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="block-count" range="36-34560" />
<Limit name="blocks-per-second" min="36" max="2073600" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-120" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Feature name="low-latency" />
<Limit name="concurrent-instances" max="3" />
<Limit name="performance-point-1920x1080" value="120" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-4096x2160" value="60" />
</MediaCodec>
<MediaCodec name="c2.qti.dv.decoder" type="video/dolby-vision" >
<Limit name="size" min="96x96" max="7680x7680" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="block-count" range="36-138240" />
<Limit name="blocks-per-second" min="36" max="4177920" />
<Limit name="bitrate" range="1-160000000" />
<Limit name="frame-rate" range="1-480" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1920x1080" value="480" />
<Limit name="performance-point-1920x1088" value="240" />
<Limit name="performance-point-3840x2160" value="120" />
<Limit name="performance-point-4096x2176" value="120" />
<Limit name="performance-point-7680x4320" value="30" />
</MediaCodec>
<MediaCodec name="c2.qti.dv.decoder.secure" type="video/dolby-vision" >
<Limit name="size" min="96x96" max="4096x4096" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="block-count" range="36-34560" />
<Limit name="blocks-per-second" min="36" max="2073600" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-120" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Feature name="low-latency" />
<Limit name="concurrent-instances" max="3" />
<Limit name="performance-point-1920x1080" value="120" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-4096x2160" value="60" />
</MediaCodec>
<MediaCodec name="c2.qti.vp9.decoder" type="video/x-vnd.on2.vp9" >
<Alias name="OMX.qcom.video.decoder.vp9"/>
<Limit name="size" min="96x96" max="4096x4096" />
<Limit name="alignment" value="1x1" />
<Limit name="block-size" value="16x16" />
<Limit name="block-count" range="36-34560" />
<Limit name="blocks-per-second" min="36" max="4147200" />
<Limit name="bitrate" range="1-160000000" />
<Limit name="frame-rate" range="1-200" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="6" />
<Limit name="performance-point-1920x1080" value="200" />
<Limit name="performance-point-3840x2160" value="120" />
<Limit name="performance-point-4096x2160" value="120" />
</MediaCodec>
<MediaCodec name="c2.qti.vp9.decoder.low_latency" type="video/x-vnd.on2.vp9" >
<Alias name="OMX.qcom.video.decoder.vp9.low_latency"/>
<Limit name="size" min="96x96" max="4096x4096" />
<Limit name="alignment" value="1x1" />
<Limit name="block-size" value="16x16" />
<Limit name="block-count" range="36-34560" />
<Limit name="blocks-per-second" min="36" max="4147200" />
<Limit name="bitrate" range="1-70000000" />
<Limit name="frame-rate" range="1-200" />
<Feature name="adaptive-playback" />
<Feature name="low-latency" />
<Limit name="concurrent-instances" max="6" />
<Limit name="performance-point-1920x1080" value="200" />
<Limit name="performance-point-3840x2160" value="120" />
<Limit name="performance-point-4096x2160" value="120" />
</MediaCodec>
<MediaCodec name="c2.qti.vp9.decoder.secure" type="video/x-vnd.on2.vp9" >
<Alias name="OMX.qcom.video.decoder.vp9.secure"/>
<Limit name="size" min="96x96" max="4096x4096" />
<Limit name="alignment" value="1x1" />
<Limit name="block-size" value="16x16" />
<Limit name="block-count" range="36-34560" />
<Limit name="blocks-per-second" min="36" max="2073600" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-120" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Feature name="low-latency" />
<Limit name="concurrent-instances" max="3" />
<Limit name="performance-point-1920x1080" value="120" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-4096x2160" value="60" />
</MediaCodec>
<MediaCodec name="c2.qti.av1.decoder" type="video/av01" >
<Limit name="size" min="96x96" max="7680x7680" />
<Limit name="alignment" value="1x1" />
<Limit name="block-size" value="16x16" />
<Limit name="block-count" range="36-138240" />
<Limit name="blocks-per-second" min="36" max="4147200" />
<Limit name="bitrate" range="1-160000000" />
<Limit name="frame-rate" range="1-480" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1920x1080" value="480" />
<Limit name="performance-point-1920x1088" value="240" />
<Limit name="performance-point-3840x2160" value="120" />
<Limit name="performance-point-4096x2160" value="120" />
<Limit name="performance-point-7680x4320" value="30" />
</MediaCodec>
<MediaCodec name="c2.qti.av1.decoder.low_latency" type="video/av01" >
<Limit name="size" min="96x96" max="7680x7680" />
<Limit name="alignment" value="1x1" />
<Limit name="block-size" value="16x16" />
<Limit name="block-count" range="36-138240" />
<Limit name="blocks-per-second" min="36" max="4147200" />
<Limit name="bitrate" range="1-70000000" />
<Limit name="frame-rate" range="1-480" />
<Feature name="adaptive-playback" />
<Feature name="low-latency" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1920x1080" value="480" />
<Limit name="performance-point-1920x1088" value="240" />
<Limit name="performance-point-3840x2160" value="120" />
<Limit name="performance-point-4096x2160" value="120" />
<Limit name="performance-point-7680x4320" value="30" />
</MediaCodec>
<MediaCodec name="c2.qti.av1.decoder.secure" type="video/av01" >
<Limit name="size" min="96x96" max="4096x4096" />
<Limit name="alignment" value="1x1" />
<Limit name="block-size" value="16x16" />
<Limit name="block-count" range="36-34560" />
<Limit name="blocks-per-second" min="36" max="2073600" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-120" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Feature name="low-latency" />
<Limit name="concurrent-instances" max="3" />
<Limit name="performance-point-1920x1080" value="120" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-4096x2160" value="60" />
</MediaCodec>
</Decoders>
<Encoders>
<!-- C2 encoders -->
<MediaCodec name="c2.qti.avc.encoder" type="video/avc">
<Alias name="OMX.qcom.video.encoder.avc"/>
<Limit name="size" min="128x128" max="4096x4096" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="64" max="2073600" />
<Limit name="block-count" range="64-34560" />
<Limit name="bitrate" range="1-160000000" />
<Limit name="frame-rate" range="1-480" />
<Limit name="complexity" range="0-100" default="100" />
<Limit name="concurrent-instances" max="16" />
<Feature name="bitrate-modes" value="VBR,CBR" />
<Feature name="intra-refresh" />
<Feature name="encoding-statistics" />
<Feature name="video-minimum-quality" />
<Limit name="performance-point-1280x720" value="400" />
<Limit name="performance-point-1920x1080" value="240" />
<Limit name="performance-point-3840x2160" value="120" />
<Limit name="performance-point-4096x2160" value="60" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.encoder" type="video/hevc">
<Alias name="OMX.qcom.video.encoder.hevc"/>
<Limit name="size" min="96x96" max="4096x4096" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="64" max="2088960" />
<Limit name="block-count" range="36-34560" />
<Limit name="bitrate" range="1-160000000" />
<Limit name="frame-rate" range="1-480" />
<Limit name="complexity" range="0-100" default="100" />
<Limit name="concurrent-instances" max="16" />
<Feature name="bitrate-modes" value="VBR,CBR" />
<Feature name="intra-refresh" />
<Feature name="encoding-statistics" />
<Feature name="video-minimum-quality" />
<Limit name="performance-point-1280x720" value="400" />
<Limit name="performance-point-1920x1080" value="240" />
<Limit name="performance-point-3840x2160" value="120" />
<Limit name="performance-point-4096x2176" value="60" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.encoder.hdr" type="video/hevc">
<Limit name="size" min="128x128" max="4096x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="64" max="1958400" />
<Limit name="block-count" range="36-34816" />
<Limit name="bitrate" range="1-160000000" />
<Limit name="frame-rate" range="1-480" />
<Limit name="complexity" range="0-100" default="100" />
<Limit name="concurrent-instances" max="16" />
<Feature name="bitrate-modes" value="VBR,CBR" />
<Feature name="intra-refresh" />
<Feature name="hdr-editing" />
<Feature name="encoding-statistics" />
<Feature name="video-minimum-quality" />
<Limit name="performance-point-1280x720" value="400" />
<Limit name="performance-point-1920x1080" value="240" />
<Limit name="performance-point-3840x2160" value="120" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.encoder.cq" type="video/hevc">
<Alias name="OMX.qcom.video.encoder.hevc.cq"/>
<Limit name="size" min="128x128" max="512x512" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="64" max="3916800" />
<Limit name="bitrate" range="1-160000000" />
<Limit name="frame-rate" range="1-480" />
<Limit name="concurrent-instances" max="16" />
<Limit name="quality" range="0-100" default="80" />
<Feature name="bitrate-modes" value="CQ" />
<Limit name="performance-point-512x512" value="3825" />
</MediaCodec>
<MediaCodec name="c2.qti.heic.encoder" type="image/vnd.android.heic">
<Alias name="OMX.qcom.video.encoder.heic"/>
<Limit name="size" min="512x512" max="16384x16384" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="64" max="3916800" />
<Limit name="bitrate" range="1-160000000" />
<Limit name="frame-rate" range="1-20" />
<Limit name="concurrent-instances" max="16" />
<Limit name="quality" range="0-100" default="80" />
<Feature name="bitrate-modes" value="CQ" />
<Limit name="performance-point-16384x8192" value="3" />
<Limit name="performance-point-1920x1080" value="6" />
</MediaCodec>
</Encoders>
<Include href="media_codecs_google_c2.xml" />
</MediaCodecs>

View File

@@ -1,228 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright (c) 2023 Qualcomm Technologies, Inc.
All Rights Reserved.
Confidential and Proprietary - Qualcomm Technologies, Inc.
Not a Contribution.
Copyright (C) 2012-2017 The Linux Foundation. All rights reserved.
Copyright (C) 2012-2013 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>
<!-- C2 HW decoders -->
<MediaCodec name="c2.qti.avc.decoder" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="720-2500" />
<Limit name="measured-frame-rate-720x480" range="450-1700" />
<Limit name="measured-frame-rate-1280x720" range="250-950" />
<Limit name="measured-frame-rate-1920x1088" range="120-500" />
</MediaCodec>
<MediaCodec name="c2.qti.avc.decoder.low_latency" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="580-2000" />
<Limit name="measured-frame-rate-720x480" range="380-2000" />
<Limit name="measured-frame-rate-1280x720" range="253-950" />
<Limit name="measured-frame-rate-1920x1080" range="120-410" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.decoder" type="video/hevc" update="true">
<Limit name="measured-frame-rate-352x288" range="625-1900" />
<Limit name="measured-frame-rate-720x480" range="370-1550" />
<Limit name="measured-frame-rate-1280x720" range="270-2600" />
<Limit name="measured-frame-rate-1920x1080" range="260-1200" />
<Limit name="measured-frame-rate-3840x2160" range="67-505" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.decoder.low_latency" type="video/hevc" update="true">
<Limit name="measured-frame-rate-352x288" range="625-1850" />
<Limit name="measured-frame-rate-720x480" range="380-1700" />
<Limit name="measured-frame-rate-1280x720" range="315-1920" />
<Limit name="measured-frame-rate-1920x1080" range="220-800" />
<Limit name="measured-frame-rate-3840x2160" range="67-240" />
</MediaCodec>
<MediaCodec name="c2.qti.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
<Limit name="measured-frame-rate-320x180" range="575-1700" />
<Limit name="measured-frame-rate-640x360" range="475-1600" />
<Limit name="measured-frame-rate-1280x720" range="260-570" />
<Limit name="measured-frame-rate-1920x1080" range="200-450" />
<Limit name="measured-frame-rate-3840x2160" range="70-255" />
</MediaCodec>
<MediaCodec name="c2.qti.vp9.decoder.low_latency" type="video/x-vnd.on2.vp9" update="true">
<Limit name="measured-frame-rate-320x180" range="575-1700" />
<Limit name="measured-frame-rate-640x360" range="475-1600" />
<Limit name="measured-frame-rate-1280x720" range="260-570" />
<Limit name="measured-frame-rate-1920x1080" range="200-450" />
<Limit name="measured-frame-rate-3840x2160" range="70-255" />
</MediaCodec>
<MediaCodec name="c2.qti.av1.decoder" type="video/av01" update="true">
<Limit name="measured-frame-rate-352x288" range="465-1900" />
<Limit name="measured-frame-rate-720x480" range="370-1550" />
<Limit name="measured-frame-rate-1280x720" range="270-2600" />
<Limit name="measured-frame-rate-1920x1080" range="260-1200" />
<Limit name="measured-frame-rate-3840x2160" range="67-505" />
</MediaCodec>
<MediaCodec name="c2.qti.av1.decoder.low_latency" type="video/av01" update="true">
<Limit name="measured-frame-rate-352x288" range="390-1850" />
<Limit name="measured-frame-rate-720x480" range="380-1700" />
<Limit name="measured-frame-rate-1280x720" range="315-1920" />
<Limit name="measured-frame-rate-1920x1080" range="220-800" />
<Limit name="measured-frame-rate-3840x2160" range="67-240" />
</MediaCodec>
<MediaCodec name="c2.qti.dv.decoder" type="video/dolby-vision" update="true">
<Limit name="measured-frame-rate-352x288" range="465-1900" />
<Limit name="measured-frame-rate-720x480" range="370-1550" />
<Limit name="measured-frame-rate-1280x720" range="270-2600" />
<Limit name="measured-frame-rate-1920x1080" range="260-1200" />
<Limit name="measured-frame-rate-3840x2160" range="67-505" />
</MediaCodec>
<!-- C2 SW codecs -->
<MediaCodec name="c2.android.avc.decoder" type="video/avc" update="true">
<!-- measured 98%:153-414 med:193/192 FLAKY(mn=61.7 < 96 - 414 < mx=423.7) -->
<Limit name="measured-frame-rate-320x240" range="211-600" /> <!-- N=266 v98%=1.6 -->
<Limit name="measured-frame-rate-720x480" range="57-405" /> <!-- N=266 v98%=1.5 -->
<Limit name="measured-frame-rate-1280x720" range="42-191" />
<Limit name="measured-frame-rate-1920x1080" range="14-32" /> <!-- N=272 v98%=1.4 -->
</MediaCodec>
<MediaCodec name="c2.android.hevc.decoder" type="video/hevc" update="true">
<Limit name="measured-frame-rate-352x288" range="220-950" /> <!-- N=270 v98%=1.6 -->
<!-- measured 98%:77-220 med:165/169 FLAKY(mn=74.9 < 75 - 338) -->
<Limit name="measured-frame-rate-640x360" range="120-830" /> <!-- TWEAKED N=269 v98%=1.7 -->
<!-- measured 98%:85-223 med:194/186 FLAKY(mn=80.8 < 85 - 372) -->
<Limit name="measured-frame-rate-720x480" range="129-563" /> <!-- TWEAKED N=270 v98%=1.6 -->
<Limit name="measured-frame-rate-1280x720" range="41-200" /> <!-- N=270 v98%=1.4 -->
<Limit name="measured-frame-rate-1920x1080" range="25-100" /> <!-- N=230 v98%=1.2 (-PD1A.180706.000) -->
</MediaCodec>
<MediaCodec name="c2.android.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
<!-- measured 98%:191-657 med:617/613 FLAKY(mn=183.9 < 191 - 1226) -->
<Limit name="measured-frame-rate-320x180" range="550-1850" /> <!-- TWEAKED N=270 v98%=1.9 (-PD1A.180717.001) -->
<Limit name="measured-frame-rate-640x360" range="250-800" /> <!-- N=230 v98%=1.3 -->
<!-- measured 98%:35-54 med:36/36 N=64 -->
<Limit name="measured-frame-rate-1280x720" range="59-360" /> <!-- v98%=1.2 (PD1A.180706.000-) -->
<Limit name="measured-frame-rate-1920x1080" range="55-113" /> <!-- N=270 v98%=1.3 (-PD1A.180717.001) -->
</MediaCodec>
<MediaCodec name="c2.android.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
<!-- measured 98%:173-698 med:670/668 FLAKY(mn=161.4 < 162 - 1336) variance:2.0 -->
<Limit name="measured-frame-rate-320x180" range="488-1500" /> <!-- TWEAKED N=228 -->
<Limit name="measured-frame-rate-640x360" range="265-900" /> <!-- N=272 v98%=1.9 (-PD1A.180717.001) -->
<Limit name="measured-frame-rate-1280x720" range="185-400" /> <!-- N=270 v98%=1.3 (-PD1A.180717.001) -->
<Limit name="measured-frame-rate-1920x1080" range="98-215" /> <!-- N=230 v98%=1.2 -->
</MediaCodec>
<MediaCodec name="c2.android.av1.decoder" type="video/av01" update="true">
<Limit name="measured-frame-rate-352x288" range="186-426" />
<Limit name="measured-frame-rate-640x360" range="129-297" />
<Limit name="measured-frame-rate-720x480" range="102-228" />
<Limit name="measured-frame-rate-1280x720" range="52-116" />
</MediaCodec>
<MediaCodec name="c2.android.av1-dav1d.decoder" type="video/av01" update="true">
<Limit name="measured-frame-rate-352x288" range="467-1028" />
<Limit name="measured-frame-rate-640x360" range="371-817" />
<Limit name="measured-frame-rate-720x480" range="305-671" />
<Limit name="measured-frame-rate-1280x720" range="164-361" />
</MediaCodec>
<MediaCodec name="c2.android.h263.decoder" type="video/3gpp" update="true">
<!-- measured 98%:151-1143 med:437/432 FLAKY(111 - 972 < mx=1146.8) variance:2.8 -->
<Limit name="measured-frame-rate-176x144" range="800-2600" /> <!-- N=270 -->
<Limit name="measured-frame-rate-352x288" range="620-1900" /> <!-- N=270 -->
</MediaCodec>
<MediaCodec name="c2.android.mpeg4.decoder" type="video/mp4v-es" update="true">
<!-- measured 90%:149-1332 med:379/360 FLAKY(109 - 958 < mx=1400.6) RG.VARIANCE:2.1 -->
<Limit name="measured-frame-rate-176x144" range="865-2800" /> <!-- N=272 v90%=3.0 -->
<Limit name="measured-frame-rate-480x360" range="728-1564" />
<Limit name="measured-frame-rate-1280x720" range="319-714" />
</MediaCodec>
</Decoders>
<Encoders>
<!-- C2 HW encoders -->
<MediaCodec name="c2.qti.avc.encoder" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="200-600" />
<Limit name="measured-frame-rate-720x480" range="64-140" />
<Limit name="measured-frame-rate-1280x720" range="126-183" />
<Limit name="measured-frame-rate-1920x1080" range="75-113" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.encoder" type="video/hevc" update="true">
<Limit name="measured-frame-rate-320x240" range="480-535" />
<Limit name="measured-frame-rate-720x480" range="165-210" />
<Limit name="measured-frame-rate-1280x720" range="133-184" />
<Limit name="measured-frame-rate-1920x1080" range="84-131" />
<Limit name="measured-frame-rate-3840x2160" range="31-44" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.encoder.hdr" type="video/hevc" update="true">
<Limit name="measured-frame-rate-320x240" range="480-535" />
<Limit name="measured-frame-rate-720x480" range="165-210" />
<Limit name="measured-frame-rate-1280x720" range="133-184" />
<Limit name="measured-frame-rate-1920x1080" range="84-131" />
<Limit name="measured-frame-rate-3840x2160" range="31-44" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.encoder.cq" type="video/hevc" update="true">
<Limit name="measured-frame-rate-320x240" range="340-400" />
</MediaCodec>
<!--
<MediaCodec name="c2.qti.dv.encoder" type="video/dolby-vision" update="true">
<Limit name="measured-frame-rate-320x240" range="480-535" />
<Limit name="measured-frame-rate-720x480" range="165-210" />
<Limit name="measured-frame-rate-1280x720" range="133-184" />
<Limit name="measured-frame-rate-1920x1080" range="84-131" />
<Limit name="measured-frame-rate-3840x2160" range="31-44" />
</MediaCodec>
-->
<!-- C2 SW encoders -->
<MediaCodec name="c2.android.h263.encoder" type="video/3gpp" update="true">
<!-- measured 95%:144-637 med:343/343 FLAKY(mn=40.8 < 144 - 808 < mx=916.6) variance:2.1 -->
<Limit name="measured-frame-rate-176x144" range="287-459" /> <!-- TWEAKED N=224 -->
</MediaCodec>
<MediaCodec name="c2.android.avc.encoder" type="video/avc" update="true">
<!-- measured 90%:42-420 med:146/160 FLAKY(mn=39.0 < 42 - 368 < mx=569.5) RG.VARIANCE:2.2 -->
<Limit name="measured-frame-rate-320x240" range="140-980" /> <!-- SHOULDN'T HAVE TWEAKED N=266 v90%=3.2 -->
<!-- measured 98%:29-166 med:66/63 FLAKY(24 - 166 < mx=166.5) variance:2.4 -->
<Limit name="measured-frame-rate-720x480" range="47-83" /> <!-- N=262 -->
<!-- measured 98%:11-68 med:30/30 FLAKY(mn=10.5 < 11 - 68 < mx=82.1) variance:2.5 -->
<Limit name="measured-frame-rate-1280x720" range="30-200" /> <!-- TWEAKED N=236 -->
<!-- measured 98%:10-38 med:18/18 FLAKY(mn=5.2 < 9 - 38 < mx=38.8) -->
<Limit name="measured-frame-rate-1920x1080" range="20-80" /> <!-- N=288 v98%=2.0 -->
</MediaCodec>
<MediaCodec name="c2.android.mpeg4.encoder" type="video/mp4v-es" update="true">
<!-- measured 90%:29-451 med:208/206 FLAKY(mn=19.2 < 47 - 412 < mx=888.9) RG.VARIANCE:2.5 -->
<Limit name="measured-frame-rate-176x144" range="203-445" /> <!-- SHOULDN'T HAVE TWEAKED N=220 v90%=4.0 -->
</MediaCodec>
<MediaCodec name="c2.android.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
<!-- measured 90%:6-36 med:30/29 FLAKY(mn=0.0 < 7 - 58) variance:2.5 -->
<Limit name="measured-frame-rate-320x180" range="299-429" /> <!-- SHOULDN'T HAVE TWEAKED N=214 -->
<!-- measured 98%:3-24 med:12/12 FLAKY(mn=2.8 < 3 - 24 < mx=26.6) variance:2.8 -->
<Limit name="measured-frame-rate-640x360" range="75-350" /> <!-- N=220 -->
<!-- measured 98%:3-11 med:6/6 FLAKY(mn=0.0 < 3 - 12) -->
<Limit name="measured-frame-rate-1280x720" range="24-85" /> <!-- N=202 v98%=2.0 -->
<!-- measured 98%:3-7 med:5/5 FLAKY(mn=0.0 < 2 - 10 < mx=11.2) -->
<Limit name="measured-frame-rate-1920x1080" range="10-115" /> <!-- N=212 v98%=1.5 -->
</MediaCodec>
<MediaCodec name="c2.android.vp9.encoder" type="video/x-vnd.on2.vp9" update="true">
<!-- measured 93%:99-156 med:109/109 N=24 -->
<Limit name="measured-frame-rate-320x180" range="175-390" /> <!-- v93%=1.3 -->
<!-- measured 95%:54-67 med:61/61 N=36 -->
<Limit name="measured-frame-rate-640x360" range="60-130" /> <!-- v95%=1.1 -->
<!-- measured 95%:16-26 med:20/20 N=32 -->
<Limit name="measured-frame-rate-1280x720" range="20-35" /> <!-- v95%=1.3 -->
</MediaCodec>
<MediaCodec name="c2.android.av1.encoder" type="video/av01" update="true">
<Limit name="measured-frame-rate-320x240" range="121-286" />
<Limit name="measured-frame-rate-720x480" range="49-110" />
<Limit name="measured-frame-rate-1280x720" range="19-41" />
</MediaCodec>
<MediaCodec name="c2.android.hevc.encoder" type="video/hevc" update="true">
<Limit name="measured-frame-rate-320x240" range="38-47" />
<Limit name="measured-frame-rate-720x480" range="8-15" />
</MediaCodec>
</Encoders>
</MediaCodecs>