diff options
author | Cyan_Hsieh <cyanhsieh@google.com> | 2020-02-03 14:55:14 +0800 |
---|---|---|
committer | Cyan_Hsieh <cyanhsieh@google.com> | 2020-02-04 21:48:00 +0800 |
commit | e9dcd99842590d1c91ce3ed8853576c62f6e8322 (patch) | |
tree | 91a05e12f1f179cf74c73bac2489fab07bed119b | |
parent | 0ecf07e8340246bcacc6e5c4c3fdc86b8af08831 (diff) | |
parent | b331f121eb6eb709cc23b7656e860ebd45bb15fb (diff) | |
download | media-e9dcd99842590d1c91ce3ed8853576c62f6e8322.tar.gz |
Merge remote-tracking branch 'goog/qcom/release/LA.UM.8.1.C9.09.00.00.518.406' into qt-qpr1-dev
Conflicts:
product.mk
Bug: 148752159
Change-Id: If80adce1029bebac88aa440b6b08613e3a5b535c
-rw-r--r-- | conf_files/atoll/media_codecs_performance.xml | 2 | ||||
-rw-r--r-- | conf_files/msmnile/media_profiles.xml | 41 | ||||
-rw-r--r-- | conf_files/sdmshrike/c2_manifest.xml | 39 | ||||
-rw-r--r-- | conf_files/sdmshrike/c2_manifest_vendor.xml | 40 | ||||
-rw-r--r-- | conf_files/sdmshrike/codec2.vendor.ext.policy | 36 | ||||
-rw-r--r-- | conf_files/sdmshrike/media_codecs.xml | 481 | ||||
-rw-r--r-- | conf_files/sdmshrike/media_codecs_performance.xml | 217 | ||||
-rw-r--r-- | conf_files/sdmshrike/media_codecs_vendor.xml | 509 | ||||
-rw-r--r-- | conf_files/sdmshrike/media_codecs_vendor_audio.xml | 26 | ||||
-rw-r--r-- | conf_files/sdmshrike/media_profiles.xml | 1756 | ||||
-rw-r--r-- | conf_files/sdmshrike/mediacodec-seccomp.policy | 47 | ||||
-rw-r--r-- | conf_files/sdmshrike/sdmshrike.mk | 27 | ||||
-rw-r--r-- | conf_files/sdmshrike/system_properties.xml | 45 | ||||
-rw-r--r-- | conf_files/sm6150/sm6150.mk | 4 | ||||
-rw-r--r-- | mm-video-v4l2/vidc/vdec/src/omx_swvdec.cpp | 3 | ||||
-rw-r--r-- | mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp | 10 | ||||
-rw-r--r-- | product.mk | 2 |
17 files changed, 3228 insertions, 57 deletions
diff --git a/conf_files/atoll/media_codecs_performance.xml b/conf_files/atoll/media_codecs_performance.xml index bd31f08c..071ff926 100644 --- a/conf_files/atoll/media_codecs_performance.xml +++ b/conf_files/atoll/media_codecs_performance.xml @@ -97,7 +97,7 @@ limitations under the License. <Limit name="measured-frame-rate-1920x1088" range="93-146" /> </MediaCodec> <MediaCodec name="OMX.qcom.video.decoder.hevc" type="video/hevc" update="true"> - <Limit name="measured-frame-rate-352x288" range="222-222" /> + <Limit name="measured-frame-rate-352x288" range="279-401" /> <Limit name="measured-frame-rate-720x480" range="268-360" /> <Limit name="measured-frame-rate-1280x720" range="191-268" /> <Limit name="measured-frame-rate-1920x1080" range="94-147" /> diff --git a/conf_files/msmnile/media_profiles.xml b/conf_files/msmnile/media_profiles.xml index 795995bd..8afb30be 100644 --- a/conf_files/msmnile/media_profiles.xml +++ b/conf_files/msmnile/media_profiles.xml @@ -445,47 +445,6 @@ channels="2" /> </EncoderProfile> - <EncoderProfile quality="highspeedhigh" fileFormat="mp4" duration="30"> - <Video codec="h264" - bitRate="36000000" - width="1280" - height="720" - frameRate="120" /> - - <!-- audio setting is ignored --> - <Audio codec="aac" - bitRate="96000" - sampleRate="48000" - channels="1" /> - </EncoderProfile> - - <EncoderProfile quality="highspeed720p" fileFormat="mp4" duration="30"> - <Video codec="h264" - bitRate="36000000" - width="1280" - height="720" - frameRate="120" /> - - <!-- audio setting is ignored --> - <Audio codec="aac" - bitRate="96000" - sampleRate="48000" - channels="1" /> - </EncoderProfile> - - <EncoderProfile quality="highspeed480p" fileFormat="mp4" duration="30"> - <Video codec="h264" - bitRate="12000000" - width="640" - height="480" - frameRate="120" /> - - <Audio codec="aac" - bitRate="156000" - sampleRate="48000" - channels="2" /> - </EncoderProfile> - <ImageEncoding quality="95" /> <ImageEncoding quality="80" /> <ImageEncoding quality="70" /> diff --git a/conf_files/sdmshrike/c2_manifest.xml b/conf_files/sdmshrike/c2_manifest.xml new file mode 100644 index 00000000..34730f3e --- /dev/null +++ b/conf_files/sdmshrike/c2_manifest.xml @@ -0,0 +1,39 @@ +<!-- Copyright (c) 2018, The Linux Foundation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of The Linux Foundation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +--> +<manifest version="1.0" type="device" target-level="4"> + <!-- Codec2 HAl service --> + <hal format="hidl"> + <name>android.hardware.media.c2</name> + <transport>hwbinder</transport> + <version>1.0</version> + <interface> + <name>IComponentStore</name> + <instance>default</instance> + </interface> + </hal> +</manifest> diff --git a/conf_files/sdmshrike/c2_manifest_vendor.xml b/conf_files/sdmshrike/c2_manifest_vendor.xml new file mode 100644 index 00000000..db550cd9 --- /dev/null +++ b/conf_files/sdmshrike/c2_manifest_vendor.xml @@ -0,0 +1,40 @@ +<!-- Copyright (c) 2018, The Linux Foundation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of The Linux Foundation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +--> +<manifest version="1.0" type="device" target-level="4"> + <!-- Codec2 HAl service --> + <hal format="hidl"> + <name>android.hardware.media.c2</name> + <transport>hwbinder</transport> + <version>1.0</version> + <interface> + <name>IComponentStore</name> + <instance>default</instance> + <instance>software</instance> + </interface> + </hal> +</manifest> diff --git a/conf_files/sdmshrike/codec2.vendor.ext.policy b/conf_files/sdmshrike/codec2.vendor.ext.policy new file mode 100644 index 00000000..4f424973 --- /dev/null +++ b/conf_files/sdmshrike/codec2.vendor.ext.policy @@ -0,0 +1,36 @@ +# Copyright (c) 2019, The Linux Foundation. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of The Linux Foundation nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS +# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# device specific syscalls +pselect6: 1 +eventfd2: 1 +sendto: 1 +recvfrom: 1 +_llseek: 1 +sysinfo: 1 +getcwd: 1 +getdents64: 1 diff --git a/conf_files/sdmshrike/media_codecs.xml b/conf_files/sdmshrike/media_codecs.xml new file mode 100644 index 00000000..50ded3a4 --- /dev/null +++ b/conf_files/sdmshrike/media_codecs.xml @@ -0,0 +1,481 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2012-2019 The Linux Foundation. All rights reserved. + Not a contribution. + 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. +--> + +<!-- +<!DOCTYPE MediaCodecs [ +<!ELEMENT Include EMPTY> +<!ATTLIST Include href CDATA #REQUIRED> +<!ELEMENT MediaCodecs (Decoders|Encoders|Include)*> +<!ELEMENT Decoders (MediaCodec|Include)*> +<!ELEMENT Encoders (MediaCodec|Include)*> +<!ELEMENT MediaCodec (Type|Quirk|Include)*> +<!ATTLIST MediaCodec name CDATA #REQUIRED> +<!ATTLIST MediaCodec type CDATA> +<!ELEMENT Type EMPTY> +<!ATTLIST Type name CDATA #REQUIRED> +<!ELEMENT Quirk EMPTY> +<!ATTLIST Quirk name CDATA #REQUIRED> +]> + +There's a simple and a complex syntax to declare the availability of a +media codec: + +A codec that properly follows the OpenMax spec and therefore doesn't have any +quirks and that only supports a single content type can be declared like so: + + <MediaCodec name="OMX.foo.bar" type="something/interesting" /> + +If a codec has quirks OR supports multiple content types, the following syntax +can be used: + + <MediaCodec name="OMX.foo.bar" > + <Type name="something/interesting" /> + <Type name="something/else" /> + ... + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Quirk name="output-buffers-are-unreadable" /> + </MediaCodec> + +Only the three quirks included above are recognized at this point: + +"requires-allocate-on-input-ports" + must be advertised if the component does not properly support specification + of input buffers using the OMX_UseBuffer(...) API but instead requires + OMX_AllocateBuffer to be used. + +"requires-allocate-on-output-ports" + must be advertised if the component does not properly support specification + of output buffers using the OMX_UseBuffer(...) API but instead requires + OMX_AllocateBuffer to be used. + +"output-buffers-are-unreadable" + must be advertised if the emitted output buffers of a decoder component + are not readable, i.e. use a custom format even though abusing one of + the official OMX colorspace constants. + Clients of such decoders will not be able to access the decoded data, + naturally making the component much less useful. The only use for + a component with this quirk is to render the output to the screen. + Audio decoders MUST NOT advertise this quirk. + Video decoders that advertise this quirk must be accompanied by a + corresponding color space converter for thumbnail extraction, + matching surfaceflinger support that can render the custom format to + a texture and possibly other code, so just DON'T USE THIS QUIRK. + + +--> + +<!-- + Non-Secure decoder capabilities + (MB is defined as 16x16) + _____________________________________________________________________ + | Codec | W H fps Mbps MB/s Max MB/s| + |_____________|_____________________________________________________| + | h264 | 1920 1088 480 220 3916800 3916800 | + | | 3820 2160 120 220 3888000 | + | | 4096 2160 96 220 3317760 | + | | 4096 2304 60 220 2211840 | + | | 7680 4320 30 220 3888000 | + | | 8192 4320 24 220 3317760 | + | hevc | 1920 1088 480 220 3916800 3916800 | + | | 3820 2160 120 220 3888000 | + | | 4096 2160 96 220 3317760 | + | | 4096 2304 60 220 2211840 | + | | 7680 4320 30 220 3888000 | + | | 8192 4320 24 220 3317760 | + | mpeg4-sw | 1920 1088 30 40 244800 244800 | + | vp8 | 1280 720 240 100 864000 1036800 | + | | 1920 1088 120 100 979200 | + | | 3840 2160 30 100 972000 | + | | 4096 2160 30 100 1036800 | + | | 4096 2304 24 100 884736 | + | vp9 | 1920 1088 480 220 3916800 3916800 | + | | 3820 2160 120 220 3888000 | + | | 4096 2160 96 220 3317760 | + | | 4096 2304 60 220 2211840 | + | | 7680 4320 30 220 3888000 | + | | 8192 4320 24 220 3317760 | + | vc1 | 1920 1088 30 20 244800 244800 | + | div4/5/6-sw | 1920 1088 30 10 244800 244800 | + | h263-sw | 864 480 30 16 48600 48600 | + | mpeg2 | 1920 1088 30 40 244800 244800 | + |_____________|_____________________________________________________| + + Secure decoder capabilities + (MB is defined as 16x16) + __________________________________________________________________ + | Codec | W H fps Mbps MB/s Max MB/s| + |__________|_____________________________________________________| + | h264 | 1280 720 60 40 216000 2073600 | + | | 1920 1088 60 40 489600 | + | | 3840 2160 60 40 1944000 | + | | 4096 2160 60 40 2073600 | + | | 4096 2304 30 40 1105920 | + | hevc | 1280 720 60 40 216000 2073600 | + | | 1920 1088 60 40 489600 | + | | 3840 2160 60 40 1944000 | + | | 4096 2160 60 40 2073600 | + | | 4096 2304 30 40 1105920 | + | vp9 | 1280 720 60 40 216000 2073600 | + | | 1920 1088 60 40 489600 | + | | 3840 2160 60 40 1944000 | + | | 4096 2160 60 40 2073600 | + | | 4096 2304 30 40 1105920 | + | mpeg2 | 1920 1088 30 40 244800 244800 | + |__________|_____________________________________________________| + + 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 1958400 | + | | 1920 1088 240 160 1958400 | + | | 3840 2160 60 160 1944000 | + | | 4096 2160 48 160 1658880 | + | | 4096 2304 30 160 1105920 | + | hevc | 1280 720 480 160 1728000 1958400 | + | | 1920 1088 240 160 1958400 | + | | 3840 2160 60 160 1944000 | + | | 4096 2160 48 160 1658880 | + | | 4096 2304 30 160 1105920 | + | mpeg4-sw | 1280 720 30 4 108000 108000 | + | vp8 | 1280 720 240 40 864000 1036800 | + | | 1920 1088 120 40 979200 | + | | 3840 2160 30 40 972000 | + | | 4096 2160 30 40 1036800 | + | | 4096 2304 24 40 884736 | + | h263-sw | 864 480 30 2 48600 48600 | + |__________|_____________________________________________________| +--> + +<MediaCodecs> + <Include href="media_codecs_google_audio.xml" /> + <Include href="media_codecs_google_telephony.xml" /> + <Settings> + <Setting name="max-video-encoder-input-buffers" value="11" /> + </Settings> + <Encoders> + <!-- Video Hardware --> + <MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Quirk name="requires-loaded-to-idle-after-allocation" /> + <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="1958400" /> + <Limit name="bitrate" range="1-160000000" /> + <Limit name="frame-rate" range="1-480" /> + <Limit name="concurrent-instances" max="16" /> + <Limit name="performance-point-4096x2304" value="56" /> + <Limit name="performance-point-4096x2160" value="60" /> + <Limit name="performance-point-3840x2160" value="60" /> + <Limit name="performance-point-1920x1080" value="240" /> + <Limit name="performance-point-1280x720" value="480" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.encoder.vp8" type="video/x-vnd.on2.vp8" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Quirk name="requires-loaded-to-idle-after-allocation" /> + <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="1036800" /> + <Limit name="bitrate" range="1-40000000" /> + <Limit name="frame-rate" range="1-240" /> + <Limit name="concurrent-instances" max="16" /> + <Limit name="performance-point-4096x2304" value="24" /> + <Limit name="performance-point-4096x2160" value="30" /> + <Limit name="performance-point-3840x2160" value="30" /> + <Limit name="performance-point-1920x1080" value="120" /> + <Limit name="performance-point-1280x720" value="240" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.encoder.hevc" type="video/hevc" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Quirk name="requires-loaded-to-idle-after-allocation" /> + <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="1958400" /> + <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" /> + <Limit name="performance-point-4096x2304" value="56" /> + <Limit name="performance-point-4096x2160" value="60" /> + <Limit name="performance-point-3840x2160" value="60" /> + <Limit name="performance-point-1920x1080" value="240" /> + <Limit name="performance-point-1280x720" value="480" /> + <Feature name="bitrate-modes" value="VBR,CBR" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.encoder.hevc.cq" type="video/hevc" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Quirk name="requires-loaded-to-idle-after-allocation" /> + <Limit name="size" min="96x96" max="512x512" /> + <Limit name="frame-rate" range="1-20" /> + <Limit name="concurrent-instances" max="16" /> + <Limit name="quality" range="0-100" default="80" /> + <Limit name="performance-point-512x512" value="480" /> + <Feature name="bitrate-modes" value="CQ" /> + </MediaCodec> + <!-- Video Software --> + <MediaCodec name="OMX.qcom.video.encoder.h263sw" type="video/3gpp" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Quirk name="requires-loaded-to-idle-after-allocation" /> + <Limit name="size" min="96x96" max="864x480" /> + <Limit name="alignment" value="4x4" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="48600" /> + <Limit name="bitrate" range="1-2000000" /> + <Limit name="frame-rate" range="1-30" /> + <Limit name="concurrent-instances" max="16" /> + <Limit name="performance-point-720x480" value="30" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.encoder.mpeg4sw" type="video/mp4v-es" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Quirk name="requires-loaded-to-idle-after-allocation" /> + <Limit name="size" min="96x96" max="1280x720" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="108000" /> + <Limit name="bitrate" range="1-4000000" /> + <Limit name="frame-rate" range="1-30" /> + <Limit name="concurrent-instances" max="16" /> + <Limit name="performance-point-1280x720" value="30" /> + </MediaCodec> + </Encoders> + <Decoders> + <!-- Video Hardware --> + <MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="size" min="96x96" max="8192x4320" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="3916800" /> + <Limit name="bitrate" range="1-220000000" /> + <Limit name="frame-rate" range="1-480" /> + <Feature name="adaptive-playback" /> + <Limit name="concurrent-instances" max="16" /> + <Limit name="performance-point-4096x2304" value="60" /> + <Limit name="performance-point-4096x2160" value="96" /> + <Limit name="performance-point-3840x2160" value="120" /> + <Limit name="performance-point-1920x1088" range="480" /> + <Limit name="performance-point-1920x1088" range="240" /> + <Limit name="performance-point-1280x720" value="480" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.decoder.avc.secure" type="video/avc" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="2073600" /> + <Limit name="bitrate" range="1-40000000" /> + <Limit name="frame-rate" range="1-60" /> + <Feature name="adaptive-playback" /> + <Feature name="secure-playback" required="true" /> + <Limit name="concurrent-instances" max="3" /> + <Limit name="performance-point-4096x2304" value="30" /> + <Limit name="performance-point-4096x2160" value="60" /> + <Limit name="performance-point-3840x2160" value="60" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.decoder.mpeg2" type="video/mpeg2" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="size" min="96x96" max="1920x1088" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="244800" /> + <Limit name="bitrate" range="1-40000000" /> + <Limit name="frame-rate" range="1-30" /> + <Feature name="adaptive-playback" /> + <Limit name="concurrent-instances" max="16" /> + <Limit name="performance-point-1920x1080" value="30" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.decoder.mpeg2.secure" type="video/mpeg2" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="size" min="96x96" max="1920x1088" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="244800" /> + <Limit name="bitrate" range="1-40000000" /> + <Limit name="frame-rate" range="1-30" /> + <Feature name="adaptive-playback" /> + <Feature name="secure-playback" required="true" /> + <Limit name="concurrent-instances" max="3" /> + <Limit name="performance-point-1920x1080" value="30" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.decoder.vp8" type="video/x-vnd.on2.vp8" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="1036800" /> + <Limit name="bitrate" range="1-100000000" /> + <Limit name="frame-rate" range="1-240" /> + <Feature name="adaptive-playback" /> + <Limit name="concurrent-instances" max="16" /> + <Limit name="performance-point-4096x2304" value="24" /> + <Limit name="performance-point-4096x2160" value="30" /> + <Limit name="performance-point-3840x2160" value="30" /> + <Limit name="performance-point-1920x1080" value="120" /> + <Limit name="performance-point-1280x720" value="240" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.decoder.vp9" type="video/x-vnd.on2.vp9" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="size" min="96x96" max="8192x4320" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="3916800" /> + <Limit name="bitrate" range="1-220000000" /> + <Limit name="frame-rate" range="1-480" /> + <Feature name="adaptive-playback" /> + <Limit name="concurrent-instances" max="6" /> + <Limit name="performance-point-4096x2304" value="60" /> + <Limit name="performance-point-4096x2160" value="96" /> + <Limit name="performance-point-3840x2160" value="120" /> + <Limit name="performance-point-1920x1088" range="480" /> + <Limit name="performance-point-1920x1088" range="240" /> + <Limit name="performance-point-1280x720" value="480" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.decoder.vp9.secure" type="video/x-vnd.on2.vp9" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="2073600" /> + <Limit name="bitrate" range="1-40000000" /> + <Limit name="frame-rate" range="1-60" /> + <Feature name="adaptive-playback" /> + <Feature name="secure-playback" required="true" /> + <Limit name="concurrent-instances" max="3" /> + <Limit name="performance-point-4096x2304" value="30" /> + <Limit name="performance-point-4096x2160" value="60" /> + <Limit name="performance-point-3840x2160" value="60" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.decoder.hevc" type="video/hevc" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="size" min="96x96" max="8192x4320" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="3916800" /> + <Limit name="bitrate" range="1-220000000" /> + <Limit name="frame-rate" range="1-480" /> + <Feature name="adaptive-playback" /> + <Limit name="concurrent-instances" max="16" /> + <Limit name="performance-point-4096x2304" value="60" /> + <Limit name="performance-point-4096x2160" value="96" /> + <Limit name="performance-point-3840x2160" value="120" /> + <Limit name="performance-point-1920x1088" range="480" /> + <Limit name="performance-point-1920x1088" range="240" /> + <Limit name="performance-point-1280x720" value="480" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.decoder.hevc.secure" type="video/hevc" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="2073600" /> + <Limit name="bitrate" range="1-40000000" /> + <Limit name="frame-rate" range="1-60" /> + <Feature name="adaptive-playback" /> + <Feature name="secure-playback" required="true" /> + <Limit name="concurrent-instances" max="3" /> + <Limit name="performance-point-4096x2304" value="30" /> + <Limit name="performance-point-4096x2160" value="60" /> + <Limit name="performance-point-3840x2160" value="60" /> + </MediaCodec> + <!-- Video Software --> + <MediaCodec name="OMX.qti.video.decoder.h263sw" type="video/3gpp" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="size" min="96x96" max="864x480" /> + <Limit name="alignment" value="4x4" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="48600" /> + <Limit name="bitrate" range="1-16000000" /> + <Limit name="frame-rate" range="1-30" /> + <Feature name="adaptive-playback" /> + <Limit name="concurrent-instances" max="16" /> + <Limit name="performance-point-720x480" value="30" /> + </MediaCodec> + <MediaCodec name="OMX.qti.video.decoder.mpeg4sw" type="video/mp4v-es"> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="size" min="96x96" max="1920x1088" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="244800" /> + <Limit name="bitrate" range="1-40000000" /> + <Limit name="frame-rate" range="1-30" /> + <Limit name="concurrent-instances" max="16" /> + <Limit name="performance-point-1920x1080" value="30" /> + </MediaCodec> + <MediaCodec name="OMX.qti.video.decoder.divxsw" type="video/divx" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="size" min="96x96" max="1920x1088" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="244800" /> + <Limit name="frame-rate" range="1-30" /> + <Limit name="bitrate" range="1-10000000" /> + <Limit name="concurrent-instances" max="16" /> + <Limit name="performance-point-1920x1080" value="30" /> + </MediaCodec> + <MediaCodec name="OMX.qti.video.decoder.divx4sw" type="video/divx4" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="size" min="96x96" max="1920x1088" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="244800" /> + <Limit name="frame-rate" range="1-30" /> + <Limit name="bitrate" range="1-10000000" /> + <Limit name="concurrent-instances" max="16" /> + <Limit name="performance-point-1920x1080" value="30" /> + </MediaCodec> + <MediaCodec name="OMX.qti.video.decoder.vc1sw" type="video/x-ms-wmv" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="size" min="96x96" max="1920x1088" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="244800" /> + <Limit name="bitrate" range="1-20000000" /> + <Limit name="frame-rate" range="1-30" /> + <Feature name="adaptive-playback" /> + <Limit name="concurrent-instances" max="16" /> + <Limit name="performance-point-1920x1080" value="30" /> + </MediaCodec> + <MediaCodec name="OMX.google.opus.decoder" type="audio/opus" update="true" rank="100"/> + </Decoders> + <Include href="media_codecs_google_video.xml" /> +</MediaCodecs> diff --git a/conf_files/sdmshrike/media_codecs_performance.xml b/conf_files/sdmshrike/media_codecs_performance.xml new file mode 100644 index 00000000..240486fc --- /dev/null +++ b/conf_files/sdmshrike/media_codecs_performance.xml @@ -0,0 +1,217 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!-- +Copyright (c) 2015-2017, The Linux Foundation. All rights reserved. + +Not a Contribution. + +Copyright 2015 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. +u 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="OMX.qcom.video.encoder.avc" type="video/avc" update="true"> + <Limit name="measured-frame-rate-320x240" range="238-238" /> + <Limit name="measured-frame-rate-720x480" range="277-287" /> + <Limit name="measured-frame-rate-1280x720" range="200-204" /> + <Limit name="measured-frame-rate-1920x1080" range="116-118" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.encoder.hevc" type="video/hevc" update="true"> + <Limit name="measured-frame-rate-320x240" range="226-226" /> + <Limit name="measured-frame-rate-720x480" range="336-339" /> + <Limit name="measured-frame-rate-1280x720" range="183-194" /> + <Limit name="measured-frame-rate-1920x1080" range="91-104" /> + <Limit name="measured-frame-rate-3840x2160" range="37-40" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.encoder.hevc.cq" type="video/hevc" update="true"> + <Limit name="measured-frame-rate-320x240" range="340-400" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.encoder.h263sw" type="video/3gpp" update="true"> + <Limit name="measured-frame-rate-176x144" range="303-303" /> + <Limit name="measured-frame-rate-352x288" range="259-259" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.encoder.mpeg4sw" type="video/mp4v-es" update="true"> + <Limit name="measured-frame-rate-176x144" range="299-299" /> + <Limit name="measured-frame-rate-352x288" range="245-245" /> + <Limit name="measured-frame-rate-640x480" range="148-148" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.encoder.vp8" type="video/x-vnd.on2.vp8" update="true"> + <Limit name="measured-frame-rate-320x180" range="363-484" /> + <Limit name="measured-frame-rate-640x360" range="250-280" /> + <Limit name="measured-frame-rate-1280x720" range="123-125" /> + <Limit name="measured-frame-rate-1920x1080" range="16-40" /> + </MediaCodec> + <MediaCodec name="c2.qti.avc.encoder" type="video/avc" update="true"> + <Limit name="measured-frame-rate-320x240" range="106-234" /> + <Limit name="measured-frame-rate-720x480" range="64-140" /> + <Limit name="measured-frame-rate-1280x720" range="26-56" /> + <Limit name="measured-frame-rate-1920x1080" range="20-44" /> + </MediaCodec> + <MediaCodec name="OMX.google.h264.encoder" type="video/avc" update="true"> + <Limit name="measured-frame-rate-320x240" range="215-215" /> + <Limit name="measured-frame-rate-720x480" range="100-100" /> + <Limit name="measured-frame-rate-1280x720" range="56-56" /> + <Limit name="measured-frame-rate-1920x1080" range="30-30" /> + </MediaCodec> + <MediaCodec name="OMX.google.h263.encoder" type="video/3gpp" update="true"> + <Limit name="measured-frame-rate-176x144" range="310-410" /> + </MediaCodec> + <MediaCodec name="OMX.google.mpeg4.encoder" type="video/mp4v-es" update="true"> + <Limit name="measured-frame-rate-176x144" range="390-480" /> + </MediaCodec> + <MediaCodec name="OMX.google.vp8.encoder" type="video/x-vnd.on2.vp8" update="true"> + <Limit name="measured-frame-rate-320x180" range="93-94" /> + <Limit name="measured-frame-rate-640x360" range="32-32" /> + <Limit name="measured-frame-rate-1280x720" range="17-24" /> + <Limit name="measured-frame-rate-1920x1080" range="16-20" /> + </MediaCodec> + <MediaCodec name="c2.android.hevc.encoder" type="video/hevc" update="true"> + <Limit name="measured-frame-rate-320x240" range="22-35" /> + </MediaCodec> + <MediaCodec name="c2.android.h263.encoder" type="video/3gpp" update="true"> + <Limit name="measured-frame-rate-176x144" range="287-459" /> + </MediaCodec> + <MediaCodec name="c2.android.avc.encoder" type="video/avc" update="true"> + <Limit name="measured-frame-rate-320x240" range="151-208" /> + <Limit name="measured-frame-rate-720x480" range="61-84" /> + <Limit name="measured-frame-rate-1280x720" range="41-57" /> + <Limit name="measured-frame-rate-1920x1080" range="28-39" /> + </MediaCodec> + <MediaCodec name="c2.android.mpeg4.encoder" type="video/mp4v-es" update="true"> + <Limit name="measured-frame-rate-176x144" range="251-350" /> + </MediaCodec> + <MediaCodec name="c2.android.vp8.encoder" type="video/x-vnd.on2.vp8" update="true"> + <Limit name="measured-frame-rate-320x180" range="228-318" /> + <Limit name="measured-frame-rate-640x360" range="150-233" /> + <Limit name="measured-frame-rate-1280x720" range="43-61" /> + <Limit name="measured-frame-rate-1920x1080" range="19-27" /> + </MediaCodec> + <MediaCodec name="c2.android.vp9.encoder" type="video/x-vnd.on2.vp9" update="true"> + <Limit name="measured-frame-rate-320x180" range="109-109" /> + <Limit name="measured-frame-rate-640x360" range="61-61" /> + <Limit name="measured-frame-rate-1280x720" range="20-20" /> + </MediaCodec> + </Encoders> + <Decoders> + <MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" update="true"> + <Limit name="measured-frame-rate-320x240" range="960-1268" /> + <Limit name="measured-frame-rate-720x480" range="857-1104" /> + <Limit name="measured-frame-rate-1280x720" range="312-316" /> + <Limit name="measured-frame-rate-1920x1088" range="246-250" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.decoder.hevc" type="video/hevc" update="true"> + <Limit name="measured-frame-rate-352x288" range="784-1700" /> + <Limit name="measured-frame-rate-720x480" range="1046-1157" /> + <Limit name="measured-frame-rate-1280x720" range="290-641" /> + <Limit name="measured-frame-rate-1920x1080" range="316-318" /> + <Limit name="measured-frame-rate-3840x2160" range="148-149" /> + </MediaCodec> + <MediaCodec name="OMX.qti.video.decoder.h263sw" type="video/3gpp" update="true"> + <Limit name="measured-frame-rate-176x144" range="268-418" /> + <Limit name="measured-frame-rate-352x288" range="273-561" /> + </MediaCodec> + <MediaCodec name="OMX.qti.video.decoder.mpeg4sw" type="video/mp4v-es" update="true"> + <Limit name="measured-frame-rate-176x144" range="409-410" /> + <Limit name="measured-frame-rate-480x360" range="436-524" /> + <Limit name="measured-frame-rate-1280x720" range="240-292" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.decoder.vp8" type="video/x-vnd.on2.vp8" update="true"> + <Limit name="measured-frame-rate-320x240" range="337-337" /> + <Limit name="measured-frame-rate-640x360" range="330-750" /> + <Limit name="measured-frame-rate-1280x720" range="337-337" /> + <Limit name="measured-frame-rate-1920x1080" range="248-248" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.decoder.vp9" type="video/x-vnd.on2.vp9" update="true"> + <Limit name="measured-frame-rate-320x240" range="1103-1262" /> + <Limit name="measured-frame-rate-640x360" range="347-783" /> + <Limit name="measured-frame-rate-1280x720" range="579-594" /> + <Limit name="measured-frame-rate-1920x1080" range="496-518" /> + <Limit name="measured-frame-rate-3840x2160" range="139-139" /> + </MediaCodec> + <MediaCodec name="c2.qti.avc.decoder" type="video/avc" update="true"> + <Limit name="measured-frame-rate-320x240" range="220-630" /> + <Limit name="measured-frame-rate-720x480" range="250-513" /> + <Limit name="measured-frame-rate-1280x720" range="200-420" /> + <Limit name="measured-frame-rate-1920x1088" range="189-301" /> + </MediaCodec> + <MediaCodec name="OMX.google.h264.decoder" type="video/avc" update="true"> + <Limit name="measured-frame-rate-320x240" range="122-370" /> + <Limit name="measured-frame-rate-720x480" range="135-310" /> + <Limit name="measured-frame-rate-1280x720" range="32-32" /> + <Limit name="measured-frame-rate-1920x1080" range="24-26" /> + </MediaCodec> + <MediaCodec name="OMX.google.h263.decoder" type="video/3gpp" update="true"> + <Limit name="measured-frame-rate-176x144" range="104-279" /> + <Limit name="measured-frame-rate-352x288" range="200-200" /> + </MediaCodec> + <MediaCodec name="OMX.google.hevc.decoder" type="video/hevc" update="true"> + <Limit name="measured-frame-rate-352x288" range="502-550" /> + <Limit name="measured-frame-rate-640x360" range="267-271" /> + <Limit name="measured-frame-rate-720x480" range="254-257" /> + <Limit name="measured-frame-rate-1280x720" range="94-95" /> + <Limit name="measured-frame-rate-1920x1080" range="47-49" /> + </MediaCodec> + <MediaCodec name="OMX.google.mpeg4.decoder" update="true"> + <Type name="video/mp4v-es"> + <Limit name="measured-frame-rate-176x144" range="430-450" /> + </Type> + </MediaCodec> + <MediaCodec name="OMX.google.vp8.decoder" type="video/x-vnd.on2.vp8" update="true"> + <Limit name="measured-frame-rate-320x180" range="1103-1170" /> + <Limit name="measured-frame-rate-320x240" range="330-381" /> + <Limit name="measured-frame-rate-640x360" range="487-490" /> + <Limit name="measured-frame-rate-1280x720" range="22-38" /> + <Limit name="measured-frame-rate-1920x1080" range="39-40" /> + </MediaCodec> + <MediaCodec name="OMX.google.vp9.decoder" type="video/x-vnd.on2.vp9" update="true"> + <Limit name="measured-frame-rate-320x180" range="861-909" /> + <Limit name="measured-frame-rate-320x240" range="200-230" /> + <Limit name="measured-frame-rate-640x360" range="265-268" /> + <Limit name="measured-frame-rate-1280x720" range="83-190" /> + <Limit name="measured-frame-rate-1920x1080" range="48-140" /> + </MediaCodec> + <MediaCodec name="c2.android.avc.decoder" type="video/avc" update="true"> + <Limit name="measured-frame-rate-320x240" range="196-269" /> + <Limit name="measured-frame-rate-720x480" range="56-77" /> + <Limit name="measured-frame-rate-1280x720" range="21-33" /> + <Limit name="measured-frame-rate-1920x1080" range="12-17" /> + </MediaCodec> + <MediaCodec name="c2.android.hevc.decoder" type="video/hevc" update="true"> + <Limit name="measured-frame-rate-352x288" range="179-245" /> + <Limit name="measured-frame-rate-640x360" range="120-164" /> + <Limit name="measured-frame-rate-720x480" range="111-152" /> + <Limit name="measured-frame-rate-1280x720" range="61-83" /> + <Limit name="measured-frame-rate-1920x1080" range="36-49" /> + </MediaCodec> + <MediaCodec name="c2.android.vp8.decoder" type="video/x-vnd.on2.vp8" update="true"> + <Limit name="measured-frame-rate-320x180" range="460-626" /> + <Limit name="measured-frame-rate-640x360" range="222-302" /> + <Limit name="measured-frame-rate-1280x720" range="107-145" /> + <Limit name="measured-frame-rate-1920x1080" range="31-43" /> + </MediaCodec> + <MediaCodec name="c2.android.vp9.decoder" type="video/x-vnd.on2.vp9" update="true"> + <Limit name="measured-frame-rate-320x180" range="415-575" /> + <Limit name="measured-frame-rate-640x360" range="200-450" /> + <Limit name="measured-frame-rate-1280x720" range="44-60" /> + <Limit name="measured-frame-rate-1920x1080" range="28-38" /> + </MediaCodec> + <MediaCodec name="c2.android.h263.decoder" type="video/3gpp" update="true"> + <Limit name="measured-frame-rate-176x144" range="483-663" /> + <Limit name="measured-frame-rate-352x288" range="324-769" /> + </MediaCodec> + <MediaCodec name="c2.android.mpeg4.decoder" type="video/mp4v-es" update="true"> + <Limit name="measured-frame-rate-176x144" range="401-545" /> + </MediaCodec> + </Decoders> +</MediaCodecs> diff --git a/conf_files/sdmshrike/media_codecs_vendor.xml b/conf_files/sdmshrike/media_codecs_vendor.xml new file mode 100644 index 00000000..dd16580a --- /dev/null +++ b/conf_files/sdmshrike/media_codecs_vendor.xml @@ -0,0 +1,509 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2012-2019 The Linux Foundation. All rights reserved. + Not a contribution. + 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. +--> + +<!-- +<!DOCTYPE MediaCodecs [ +<!ELEMENT Include EMPTY> +<!ATTLIST Include href CDATA #REQUIRED> +<!ELEMENT MediaCodecs (Decoders|Encoders|Include)*> +<!ELEMENT Decoders (MediaCodec|Include)*> +<!ELEMENT Encoders (MediaCodec|Include)*> +<!ELEMENT MediaCodec (Type|Quirk|Include)*> +<!ATTLIST MediaCodec name CDATA #REQUIRED> +<!ATTLIST MediaCodec type CDATA> +<!ELEMENT Type EMPTY> +<!ATTLIST Type name CDATA #REQUIRED> +<!ELEMENT Quirk EMPTY> +<!ATTLIST Quirk name CDATA #REQUIRED> +]> + +There's a simple and a complex syntax to declare the availability of a +media codec: + +A codec that properly follows the OpenMax spec and therefore doesn't have any +quirks and that only supports a single content type can be declared like so: + + <MediaCodec name="OMX.foo.bar" type="something/interesting" /> + +If a codec has quirks OR supports multiple content types, the following syntax +can be used: + + <MediaCodec name="OMX.foo.bar" > + <Type name="something/interesting" /> + <Type name="something/else" /> + ... + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Quirk name="output-buffers-are-unreadable" /> + </MediaCodec> + +Only the three quirks included above are recognized at this point: + +"requires-allocate-on-input-ports" + must be advertised if the component does not properly support specification + of input buffers using the OMX_UseBuffer(...) API but instead requires + OMX_AllocateBuffer to be used. + +"requires-allocate-on-output-ports" + must be advertised if the component does not properly support specification + of output buffers using the OMX_UseBuffer(...) API but instead requires + OMX_AllocateBuffer to be used. + +"output-buffers-are-unreadable" + must be advertised if the emitted output buffers of a decoder component + are not readable, i.e. use a custom format even though abusing one of + the official OMX colorspace constants. + Clients of such decoders will not be able to access the decoded data, + naturally making the component much less useful. The only use for + a component with this quirk is to render the output to the screen. + Audio decoders MUST NOT advertise this quirk. + Video decoders that advertise this quirk must be accompanied by a + corresponding color space converter for thumbnail extraction, + matching surfaceflinger support that can render the custom format to + a texture and possibly other code, so just DON'T USE THIS QUIRK. + + +--> + +<!-- + Non-Secure decoder capabilities + (MB is defined as 16x16) + _____________________________________________________________________ + | Codec | W H fps Mbps MB/s Max MB/s| + |_____________|_____________________________________________________| + | h264 | 1920 1088 480 220 3916800 3916800 | + | | 3820 2160 120 220 3888000 | + | | 4096 2160 96 220 3317760 | + | | 4096 2304 60 220 2211840 | + | | 7680 4320 30 220 3888000 | + | | 8192 4320 24 220 3317760 | + | hevc | 1920 1088 480 220 3916800 3916800 | + | | 3820 2160 120 220 3888000 | + | | 4096 2160 96 220 3317760 | + | | 4096 2304 60 220 2211840 | + | | 7680 4320 30 220 3888000 | + | | 8192 4320 24 220 3317760 | + | mpeg4-sw | 1920 1088 30 40 244800 244800 | + | vp8 | 1280 720 240 100 864000 1036800 | + | | 1920 1088 120 100 979200 | + | | 3840 2160 30 100 972000 | + | | 4096 2160 30 100 1036800 | + | | 4096 2304 24 100 884736 | + | vp9 | 1920 1088 480 220 3916800 3916800 | + | | 3820 2160 120 220 3888000 | + | | 4096 2160 96 220 3317760 | + | | 4096 2304 60 220 2211840 | + | | 7680 4320 30 220 3888000 | + | | 8192 4320 24 220 3317760 | + | vc1 | 1920 1088 30 20 244800 244800 | + | div4/5/6-sw | 1920 1088 30 10 244800 244800 | + | h263-sw | 864 480 30 16 48600 48600 | + | mpeg2 | 1920 1088 30 40 244800 244800 | + |_____________|_____________________________________________________| + + Secure decoder capabilities + (MB is defined as 16x16) + __________________________________________________________________ + | Codec | W H fps Mbps MB/s Max MB/s| + |__________|_____________________________________________________| + | h264 | 1280 720 60 40 216000 2073600 | + | | 1920 1088 60 40 489600 | + | | 3840 2160 60 40 1944000 | + | | 4096 2160 60 40 2073600 | + | | 4096 2304 30 40 1105920 | + | hevc | 1280 720 60 40 216000 2073600 | + | | 1920 1088 60 40 489600 | + | | 3840 2160 60 40 1944000 | + | | 4096 2160 60 40 2073600 | + | | 4096 2304 30 40 1105920 | + | vp9 | 1280 720 60 40 216000 2073600 | + | | 1920 1088 60 40 489600 | + | | 3840 2160 60 40 1944000 | + | | 4096 2160 60 40 2073600 | + | | 4096 2304 30 40 1105920 | + | mpeg2 | 1920 1088 30 40 244800 244800 | + |__________|_____________________________________________________| + + 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 1958400 | + | | 1920 1088 240 160 1958400 | + | | 3840 2160 60 160 1944000 | + | | 4096 2160 48 160 1658880 | + | | 4096 2304 30 160 1105920 | + | hevc | 1280 720 480 160 1728000 1958400 | + | | 1920 1088 240 160 1958400 | + | | 3840 2160 60 160 1944000 | + | | 4096 2160 48 160 1658880 | + | | 4096 2304 30 160 1105920 | + | mpeg4-sw | 1280 720 30 4 108000 108000 | + | vp8 | 1280 720 240 40 864000 1036800 | + | | 1920 1088 120 40 979200 | + | | 3840 2160 30 40 972000 | + | | 4096 2160 30 40 1036800 | + | | 4096 2304 24 40 884736 | + | h263-sw | 864 480 30 2 48600 48600 | + |__________|_____________________________________________________| +--> + +<MediaCodecs> + <Include href="media_codecs_google_audio.xml" /> + <Include href="media_codecs_vendor_audio.xml" /> + <Include href="media_codecs_google_telephony.xml" /> + <Settings> + <Setting name="max-video-encoder-input-buffers" value="11" /> + </Settings> + <Encoders> + <!-- Video Hardware --> + <MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Quirk name="requires-loaded-to-idle-after-allocation" /> + <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="1958400" /> + <Limit name="bitrate" range="1-160000000" /> + <Limit name="frame-rate" range="1-480" /> + <Limit name="concurrent-instances" max="16" /> + <Limit name="performance-point-4096x2304" value="56" /> + <Limit name="performance-point-4096x2160" value="60" /> + <Limit name="performance-point-3840x2160" value="60" /> + <Limit name="performance-point-1920x1080" value="240" /> + <Limit name="performance-point-1280x720" value="480" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.encoder.vp8" type="video/x-vnd.on2.vp8" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Quirk name="requires-loaded-to-idle-after-allocation" /> + <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="1036800" /> + <Limit name="bitrate" range="1-40000000" /> + <Limit name="frame-rate" range="1-240" /> + <Limit name="concurrent-instances" max="16" /> + <Limit name="performance-point-4096x2304" value="24" /> + <Limit name="performance-point-4096x2160" value="30" /> + <Limit name="performance-point-3840x2160" value="30" /> + <Limit name="performance-point-1920x1080" value="120" /> + <Limit name="performance-point-1280x720" value="240" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.encoder.hevc" type="video/hevc" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Quirk name="requires-loaded-to-idle-after-allocation" /> + <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="1958400" /> + <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" /> + <Limit name="performance-point-4096x2304" value="56" /> + <Limit name="performance-point-4096x2160" value="60" /> + <Limit name="performance-point-3840x2160" value="60" /> + <Limit name="performance-point-1920x1080" value="240" /> + <Limit name="performance-point-1280x720" value="480" /> + <Feature name="bitrate-modes" value="VBR,CBR" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.encoder.hevc.cq" type="video/hevc" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Quirk name="requires-loaded-to-idle-after-allocation" /> + <Limit name="size" min="96x96" max="512x512" /> + <Limit name="frame-rate" range="1-20" /> + <Limit name="concurrent-instances" max="16" /> + <Limit name="quality" range="0-100" default="80" /> + <Limit name="performance-point-512x512" value="480" /> + <Feature name="bitrate-modes" value="CQ" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.encoder.heic" type="image/vnd.android.heic" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Quirk name="requires-loaded-to-idle-after-allocation" /> + <Limit name="size" min="512x512" max="8192x8192" /> + <Limit name="frame-rate" range="1-20" /> + <Limit name="concurrent-instances" max="6" /> + <Limit name="quality" range="0-100" default="80" /> + <Limit name="performance-point-8192x4320" value="3" /> + <Limit name="performance-point-4096x2304" value="12" /> + <Limit name="performance-point-1920x1080" value="40" /> + <Limit name="performance-point-1920x1080" value="30" /> + <Limit name="performance-point-1280x720" value="80" /> + <Limit name="performance-point-1280x720" value="60" /> + <Feature name="bitrate-modes" value="CQ" /> + </MediaCodec> + <!-- Video Software --> + <MediaCodec name="OMX.qcom.video.encoder.h263sw" type="video/3gpp" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Quirk name="requires-loaded-to-idle-after-allocation" /> + <Limit name="size" min="96x96" max="864x480" /> + <Limit name="alignment" value="4x4" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="48600" /> + <Limit name="bitrate" range="1-2000000" /> + <Limit name="frame-rate" range="1-30" /> + <Limit name="concurrent-instances" max="16" /> + <Limit name="performance-point-720x480" value="30" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.encoder.mpeg4sw" type="video/mp4v-es" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Quirk name="requires-loaded-to-idle-after-allocation" /> + <Limit name="size" min="96x96" max="1280x720" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="108000" /> + <Limit name="bitrate" range="1-4000000" /> + <Limit name="frame-rate" range="1-30" /> + <Limit name="concurrent-instances" max="16" /> + <Limit name="performance-point-1280x720" value="30" /> + </MediaCodec> + </Encoders> + <Decoders> + <!-- Video Hardware --> + <MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="size" min="96x96" max="8192x4320" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="3916800" /> + <Limit name="bitrate" range="1-220000000" /> + <Limit name="frame-rate" range="1-480" /> + <Feature name="adaptive-playback" /> + <Limit name="concurrent-instances" max="16" /> + <Limit name="performance-point-4096x2304" value="60" /> + <Limit name="performance-point-4096x2160" value="96" /> + <Limit name="performance-point-3840x2160" value="120" /> + <Limit name="performance-point-1920x1088" range="480" /> + <Limit name="performance-point-1920x1088" range="240" /> + <Limit name="performance-point-1280x720" value="480" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.decoder.avc.secure" type="video/avc" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="2073600" /> + <Limit name="bitrate" range="1-40000000" /> + <Limit name="frame-rate" range="1-60" /> + <Feature name="adaptive-playback" /> + <Feature name="secure-playback" required="true" /> + <Limit name="concurrent-instances" max="3" /> + <Limit name="performance-point-4096x2304" value="30" /> + <Limit name="performance-point-4096x2160" value="60" /> + <Limit name="performance-point-3840x2160" value="60" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.decoder.mpeg2" type="video/mpeg2" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="size" min="96x96" max="1920x1088" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="244800" /> + <Limit name="bitrate" range="1-40000000" /> + <Limit name="frame-rate" range="1-30" /> + <Feature name="adaptive-playback" /> + <Limit name="concurrent-instances" max="16" /> + <Limit name="performance-point-1920x1080" value="30" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.decoder.mpeg2.secure" type="video/mpeg2" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="size" min="96x96" max="1920x1088" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="244800" /> + <Limit name="bitrate" range="1-40000000" /> + <Limit name="frame-rate" range="1-30" /> + <Feature name="adaptive-playback" /> + <Feature name="secure-playback" required="true" /> + <Limit name="concurrent-instances" max="3" /> + <Limit name="performance-point-1920x1080" value="30" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.decoder.vp8" type="video/x-vnd.on2.vp8" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="1036800" /> + <Limit name="bitrate" range="1-100000000" /> + <Limit name="frame-rate" range="1-240" /> + <Feature name="adaptive-playback" /> + <Limit name="concurrent-instances" max="16" /> + <Limit name="performance-point-4096x2304" value="24" /> + <Limit name="performance-point-4096x2160" value="30" /> + <Limit name="performance-point-3840x2160" value="30" /> + <Limit name="performance-point-1920x1080" value="120" /> + <Limit name="performance-point-1280x720" value="240" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.decoder.vp9" type="video/x-vnd.on2.vp9" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="size" min="96x96" max="8192x4320" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="3916800" /> + <Limit name="bitrate" range="1-220000000" /> + <Limit name="frame-rate" range="1-480" /> + <Feature name="adaptive-playback" /> + <Limit name="concurrent-instances" max="6" /> + <Limit name="performance-point-4096x2304" value="60" /> + <Limit name="performance-point-4096x2160" value="96" /> + <Limit name="performance-point-3840x2160" value="120" /> + <Limit name="performance-point-1920x1088" range="480" /> + <Limit name="performance-point-1920x1088" range="240" /> + <Limit name="performance-point-1280x720" value="480" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.decoder.vp9.secure" type="video/x-vnd.on2.vp9" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="2073600" /> + <Limit name="bitrate" range="1-40000000" /> + <Limit name="frame-rate" range="1-60" /> + <Feature name="adaptive-playback" /> + <Feature name="secure-playback" required="true" /> + <Limit name="concurrent-instances" max="3" /> + <Limit name="performance-point-4096x2304" value="30" /> + <Limit name="performance-point-4096x2160" value="60" /> + <Limit name="performance-point-3840x2160" value="60" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.decoder.hevc" type="video/hevc" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="size" min="96x96" max="8192x4320" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="3916800" /> + <Limit name="bitrate" range="1-220000000" /> + <Limit name="frame-rate" range="1-480" /> + <Feature name="adaptive-playback" /> + <Limit name="concurrent-instances" max="16" /> + <Limit name="performance-point-4096x2304" value="60" /> + <Limit name="performance-point-4096x2160" value="96" /> + <Limit name="performance-point-3840x2160" value="120" /> + <Limit name="performance-point-1920x1088" range="480" /> + <Limit name="performance-point-1920x1088" range="240" /> + <Limit name="performance-point-1280x720" value="480" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.decoder.hevc.secure" type="video/hevc" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="size" min="96x96" max="4096x2304" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="2073600" /> + <Limit name="bitrate" range="1-40000000" /> + <Limit name="frame-rate" range="1-60" /> + <Feature name="adaptive-playback" /> + <Feature name="secure-playback" required="true" /> + <Limit name="concurrent-instances" max="3" /> + <Limit name="performance-point-4096x2304" value="30" /> + <Limit name="performance-point-4096x2160" value="60" /> + <Limit name="performance-point-3840x2160" value="60" /> + </MediaCodec> + <!-- Video Software --> + <MediaCodec name="OMX.qti.video.decoder.h263sw" type="video/3gpp" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="size" min="96x96" max="864x480" /> + <Limit name="alignment" value="4x4" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="48600" /> + <Limit name="bitrate" range="1-16000000" /> + <Limit name="frame-rate" range="1-30" /> + <Feature name="adaptive-playback" /> + <Limit name="concurrent-instances" max="16" /> + <Limit name="performance-point-720x480" value="30" /> + </MediaCodec> + <MediaCodec name="OMX.qti.video.decoder.mpeg4sw"> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Type name="video/mp4v-es"> + <Limit name="size" min="96x96" max="1920x1088" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="244800" /> + <Limit name="bitrate" range="1-40000000" /> + <Limit name="frame-rate" range="1-30" /> + <Limit name="concurrent-instances" max="16" /> + <Limit name="performance-point-1920x1080" value="30" /> + </Type> + <Type name="video/mp4v-esdp"> + <Limit name="size" min="96x96" max="1920x1088" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="244800" /> + <Limit name="bitrate" range="1-40000000" /> + <Limit name="frame-rate" range="1-30" /> + <Limit name="concurrent-instances" max="16" /> + <Limit name="performance-point-1920x1080" value="30" /> + </Type> + </MediaCodec> + <MediaCodec name="OMX.qti.video.decoder.divxsw" type="video/divx" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="size" min="96x96" max="1920x1088" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="244800" /> + <Limit name="frame-rate" range="1-30" /> + <Limit name="bitrate" range="1-10000000" /> + <Limit name="concurrent-instances" max="16" /> + <Limit name="performance-point-1920x1080" value="30" /> + </MediaCodec> + <MediaCodec name="OMX.qti.video.decoder.divx4sw" type="video/divx4" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="size" min="96x96" max="1920x1088" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="244800" /> + <Limit name="frame-rate" range="1-30" /> + <Limit name="bitrate" range="1-10000000" /> + <Limit name="concurrent-instances" max="16" /> + <Limit name="performance-point-1920x1080" value="30" /> + </MediaCodec> + <MediaCodec name="OMX.qti.video.decoder.vc1sw" type="video/x-ms-wmv" > + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="size" min="96x96" max="1920x1088" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="244800" /> + <Limit name="bitrate" range="1-20000000" /> + <Limit name="frame-rate" range="1-30" /> + <Feature name="adaptive-playback" /> + <Limit name="concurrent-instances" max="16" /> + <Limit name="performance-point-1920x1080" value="30" /> + </MediaCodec> + </Decoders> + <Include href="media_codecs_google_video.xml" /> +</MediaCodecs> diff --git a/conf_files/sdmshrike/media_codecs_vendor_audio.xml b/conf_files/sdmshrike/media_codecs_vendor_audio.xml new file mode 100644 index 00000000..0cd32940 --- /dev/null +++ b/conf_files/sdmshrike/media_codecs_vendor_audio.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!-- Copyright (C) 2015-2019 The Linux Foundation. All rights reserved. + Not a contribution. + Copyright (C) 2012 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. +--> +<Included> + <Decoders> + <MediaCodec name="OMX.google.opus.decoder" type="audio/opus" update="true" rank="100"/> + <!-- SimpleOMXComponet based software decoder--> + <MediaCodec name="OMX.qti.audio.decoder.flac" type="audio/flac" rank="0"> + <Limit name="concurrent-instances" max="10" /> + </MediaCodec> + </Decoders> +</Included> diff --git a/conf_files/sdmshrike/media_profiles.xml b/conf_files/sdmshrike/media_profiles.xml new file mode 100644 index 00000000..8afb30be --- /dev/null +++ b/conf_files/sdmshrike/media_profiles.xml @@ -0,0 +1,1756 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2012-2017 The Linux Foundation. All rights reserved. + Not a contribution. + Copyright (C) 2010 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. +--> +<!DOCTYPE MediaSettings [ +<!ELEMENT MediaSettings (CamcorderProfiles, + EncoderOutputFileFormat+, + VideoEncoderCap+, + AudioEncoderCap+, + VideoDecoderCap, + AudioDecoderCap)> +<!ELEMENT CamcorderProfiles (EncoderProfile+, ImageEncoding+, ImageDecoding, Camera)> +<!ELEMENT EncoderProfile (Video, Audio)> +<!ATTLIST EncoderProfile quality (high|low) #REQUIRED> +<!ATTLIST EncoderProfile fileFormat (mp4|3gp) #REQUIRED> +<!ATTLIST EncoderProfile duration (30|60) #REQUIRED> +<!ATTLIST EncoderProfile cameraId (0|1|2|3) #REQUIRED> +<!ELEMENT Video EMPTY> +<!ATTLIST Video codec (h264|h263|m4v) #REQUIRED> +<!ATTLIST Video bitRate CDATA #REQUIRED> +<!ATTLIST Video width CDATA #REQUIRED> +<!ATTLIST Video height CDATA #REQUIRED> +<!ATTLIST Video frameRate CDATA #REQUIRED> +<!ELEMENT Audio EMPTY> +<!ATTLIST Audio codec (amrnb|amrwb|aac|lpcm) #REQUIRED> +<!ATTLIST Audio bitRate CDATA #REQUIRED> +<!ATTLIST Audio sampleRate CDATA #REQUIRED> +<!ATTLIST Audio channels (1|2|6) #REQUIRED> +<!ELEMENT ImageEncoding EMPTY> +<!ATTLIST ImageEncoding quality (90|80|70|60|50|40) #REQUIRED> +<!ELEMENT ImageDecoding EMPTY> +<!ATTLIST ImageDecoding memCap CDATA #REQUIRED> +<!ELEMENT Camera EMPTY> +<!ELEMENT EncoderOutputFileFormat EMPTY> +<!ATTLIST EncoderOutputFileFormat name (mp4|3gp) #REQUIRED> +<!ELEMENT VideoEncoderCap EMPTY> +<!ATTLIST VideoEncoderCap name (hevc|h264|h263|m4v|wmv) #REQUIRED> +<!ATTLIST VideoEncoderCap enabled (true|false) #REQUIRED> +<!ATTLIST VideoEncoderCap minBitRate CDATA #REQUIRED> +<!ATTLIST VideoEncoderCap maxBitRate CDATA #REQUIRED> +<!ATTLIST VideoEncoderCap minFrameWidth CDATA #REQUIRED> +<!ATTLIST VideoEncoderCap maxFrameWidth CDATA #REQUIRED> +<!ATTLIST VideoEncoderCap minFrameHeight CDATA #REQUIRED> +<!ATTLIST VideoEncoderCap maxFrameHeight CDATA #REQUIRED> +<!ATTLIST VideoEncoderCap minFrameRate CDATA #REQUIRED> +<!ATTLIST VideoEncoderCap maxFrameRate CDATA #REQUIRED> +<!ATTLIST VideoEncoderCap maxHFRFrameWidth CDATA #REQUIRED> +<!ATTLIST VideoEncoderCap maxHFRFrameHeight CDATA #REQUIRED> +<!ATTLIST VideoEncoderCap maxHFRMode CDATA #REQUIRED> +<!ELEMENT AudioEncoderCap EMPTY> +<!ATTLIST AudioEncoderCap name (amrnb|amrwb|aac|wma|lpcm) #REQUIRED> +<!ATTLIST AudioEncoderCap enabled (true|false) #REQUIRED> +<!ATTLIST AudioEncoderCap minBitRate CDATA #REQUIRED> +<!ATTLIST AudioEncoderCap maxBitRate CDATA #REQUIRED> +<!ATTLIST AudioEncoderCap minSampleRate CDATA #REQUIRED> +<!ATTLIST AudioEncoderCap maxSampleRate CDATA #REQUIRED> +<!ATTLIST AudioEncoderCap minChannels (1|2|6) #REQUIRED> +<!ATTLIST AudioEncoderCap maxChannels (1|2|6) #REQUIRED> +<!ELEMENT VideoDecoderCap EMPTY> +<!ATTLIST VideoDecoderCap name (wmv) #REQUIRED> +<!ATTLIST VideoDecoderCap enabled (true|false) #REQUIRED> +<!ELEMENT AudioDecoderCap EMPTY> +<!ATTLIST AudioDecoderCap name (wma) #REQUIRED> +<!ATTLIST AudioDecoderCap enabled (true|false) #REQUIRED> +<!ELEMENT VideoEditorCap EMPTY> +<!ATTLIST VideoEditorCap maxInputFrameWidth CDATA #REQUIRED> +<!ATTLIST VideoEditorCap maxInputFrameHeight CDATA #REQUIRED> +<!ATTLIST VideoEditorCap maxOutputFrameWidth CDATA #REQUIRED> +<!ATTLIST VideoEditorCap maxOutputFrameHeight CDATA #REQUIRED> +<!ATTLIST VideoEditorCap maxPrefetchYUVFrames CDATA #REQUIRED> +<!ELEMENT ExportVideoProfile EMPTY> +<!ATTLIST ExportVideoProfile name (h264|h263|m4v) #REQUIRED> +<!ATTLIST ExportVideoProfile profile CDATA #REQUIRED> +<!ATTLIST ExportVideoProfile level CDATA #REQUIRED> +]> +<!-- + This file is used to declare the multimedia profiles and capabilities + on an android-powered device. +--> +<MediaSettings> + <!-- Each camcorder profile defines a set of predefined configuration parameters --> + <!-- Back Camera --> + <CamcorderProfiles cameraId="0"> + + <EncoderProfile quality="low" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="192000" + width="176" + height="144" + frameRate="30" /> + + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="high" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="3840" + height="2160" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="qvga" fileFormat="mp4" duration="60"> + <Video codec="h264" + bitRate="512000" + width="320" + height="240" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="cif" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="720000" + width="352" + height="288" + frameRate="30" /> + + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="480p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="2000000" + width="720" + height="480" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="720p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="14000000" + width="1280" + height="720" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="1080p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="20000000" + width="1920" + height="1080" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="qhd" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="2560" + height="1440" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="2k" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="20000000" + width="2048" + height="1080" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="4kdci" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="4096" + height="2160" + frameRate="24" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="2160p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="3840" + height="2160" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="qcif" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="192000" + width="176" + height="144" + frameRate="30" /> + + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="vga" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="2000000" + width="640" + height="480" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="timelapselow" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="192000" + width="176" + height="144" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapsehigh" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="3840" + height="2160" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="192000" + width="176" + height="144" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="720000" + width="352" + height="288" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + + <EncoderProfile quality="timelapseqvga" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="512000" + width="320" + height="240" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapsevga" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="2000000" + width="640" + height="480" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="2000000" + width="640" + height="480" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="14000000" + width="1280" + height="720" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="20000000" + width="1920" + height="1080" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="timelapseqhd" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="2560" + height="1440" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse2k" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="20000000" + width="2048" + height="1080" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse4kdci" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="4096" + height="2160" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="3840" + height="2160" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <ImageEncoding quality="95" /> + <ImageEncoding quality="80" /> + <ImageEncoding quality="70" /> + <ImageDecoding memCap="20000000" /> + + </CamcorderProfiles> + <!-- Front Camera --> + <CamcorderProfiles cameraId="1"> + + <EncoderProfile quality="low" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="192000" + width="176" + height="144" + frameRate="30" /> + + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="high" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="3840" + height="2160" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="qvga" fileFormat="mp4" duration="60"> + <Video codec="h264" + bitRate="512000" + width="320" + height="240" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="cif" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="720000" + width="352" + height="288" + frameRate="30" /> + + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="480p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="2000000" + width="720" + height="480" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="720p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="14000000" + width="1280" + height="720" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="1080p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="20000000" + width="1920" + height="1080" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="qhd" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="2560" + height="1440" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="2k" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="20000000" + width="2048" + height="1080" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="4kdci" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="4096" + height="2160" + frameRate="24" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="2160p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="3840" + height="2160" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="qcif" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="192000" + width="176" + height="144" + frameRate="30" /> + + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="vga" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="2000000" + width="640" + height="480" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <!-- TIMELAPSE profiles for front camera --> + <EncoderProfile quality="timelapselow" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="192000" + width="176" + height="144" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapsehigh" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="3840" + height="2160" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="192000" + width="176" + height="144" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="1200000" + width="352" + height="288" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="aac" + bitRate="96000" + sampleRate="48000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapseqvga" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="512000" + width="320" + height="240" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapsevga" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="2000000" + width="640" + height="480" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="5000000" + width="720" + height="480" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="aac" + bitRate="96000" + sampleRate="48000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="8000000" + width="1280" + height="720" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="aac" + bitRate="96000" + sampleRate="48000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="20000000" + width="1920" + height="1080" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="timelapseqhd" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="2560" + height="1440" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse2k" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="20000000" + width="2048" + height="1080" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse4kdci" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="4096" + height="2160" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="3840" + height="2160" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <ImageEncoding quality="95" /> + <ImageEncoding quality="80" /> + <ImageEncoding quality="70" /> + <ImageDecoding memCap="20000000" /> + + </CamcorderProfiles> + <!-- Camera ID 2 --> + <CamcorderProfiles cameraId="2"> + + <EncoderProfile quality="low" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="192000" + width="176" + height="144" + frameRate="30" /> + + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="high" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="3840" + height="2160" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="qvga" fileFormat="mp4" duration="60"> + <Video codec="h264" + bitRate="512000" + width="320" + height="240" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="cif" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="720000" + width="352" + height="288" + frameRate="30" /> + + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="480p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="2000000" + width="720" + height="480" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="720p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="14000000" + width="1280" + height="720" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="1080p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="20000000" + width="1920" + height="1080" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="qhd" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="2560" + height="1440" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="2k" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="20000000" + width="2048" + height="1080" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="4kdci" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="4096" + height="2160" + frameRate="24" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="2160p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="3840" + height="2160" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="qcif" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="192000" + width="176" + height="144" + frameRate="30" /> + + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="vga" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="2000000" + width="640" + height="480" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="timelapselow" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="192000" + width="176" + height="144" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapsehigh" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="3840" + height="2160" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="192000" + width="176" + height="144" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="720000" + width="352" + height="288" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + + <EncoderProfile quality="timelapseqvga" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="512000" + width="320" + height="240" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapsevga" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="2000000" + width="640" + height="480" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="2000000" + width="640" + height="480" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="14000000" + width="1280" + height="720" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="20000000" + width="1920" + height="1080" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="timelapseqhd" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="2560" + height="1440" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse2k" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="20000000" + width="2048" + height="1080" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse4kdci" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="4096" + height="2160" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="3840" + height="2160" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="highspeed1080p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="1920" + height="1080" + frameRate="120" /> + + <!-- audio setting is ignored --> + <Audio codec="aac" + bitRate="96000" + sampleRate="48000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="highspeedhigh" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="24000000" + width="1280" + height="720" + frameRate="240" /> + + <!-- audio setting is ignored --> + <Audio codec="aac" + bitRate="96000" + sampleRate="48000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="highspeed720p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="24000000" + width="1280" + height="720" + frameRate="240" /> + + <!-- audio setting is ignored --> + <Audio codec="aac" + bitRate="96000" + sampleRate="48000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="highspeed480p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="12000000" + width="640" + height="480" + frameRate="240" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <ImageEncoding quality="95" /> + <ImageEncoding quality="80" /> + <ImageEncoding quality="70" /> + <ImageDecoding memCap="20000000" /> + + </CamcorderProfiles> + + <CamcorderProfiles cameraId="3"> + + <EncoderProfile quality="low" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="192000" + width="176" + height="144" + frameRate="30" /> + + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="high" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="3840" + height="2160" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="qvga" fileFormat="mp4" duration="60"> + <Video codec="h264" + bitRate="512000" + width="320" + height="240" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="cif" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="720000" + width="352" + height="288" + frameRate="30" /> + + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="480p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="2000000" + width="720" + height="480" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="720p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="14000000" + width="1280" + height="720" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="1080p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="20000000" + width="1920" + height="1080" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="qhd" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="2560" + height="1440" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="2k" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="20000000" + width="2048" + height="1080" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="4kdci" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="4096" + height="2160" + frameRate="24" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="2160p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="3840" + height="2160" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="qcif" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="192000" + width="176" + height="144" + frameRate="30" /> + + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="vga" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="2000000" + width="640" + height="480" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="timelapselow" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="192000" + width="176" + height="144" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapsehigh" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="3840" + height="2160" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="192000" + width="176" + height="144" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="720000" + width="352" + height="288" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + + <EncoderProfile quality="timelapseqvga" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="512000" + width="320" + height="240" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapsevga" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="2000000" + width="640" + height="480" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="2000000" + width="640" + height="480" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="14000000" + width="1280" + height="720" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="20000000" + width="1920" + height="1080" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="timelapseqhd" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="2560" + height="1440" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse2k" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="20000000" + width="2048" + height="1080" + frameRate="30" /> + + <!-- audio setting is ignored --> + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse4kdci" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="4096" + height="2160" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="3840" + height="2160" + frameRate="30" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <EncoderProfile quality="highspeed1080p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="42000000" + width="1920" + height="1080" + frameRate="120" /> + + <!-- audio setting is ignored --> + <Audio codec="aac" + bitRate="96000" + sampleRate="48000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="highspeedhigh" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="24000000" + width="1280" + height="720" + frameRate="240" /> + + <!-- audio setting is ignored --> + <Audio codec="aac" + bitRate="96000" + sampleRate="48000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="highspeed720p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="24000000" + width="1280" + height="720" + frameRate="240" /> + + <!-- audio setting is ignored --> + <Audio codec="aac" + bitRate="96000" + sampleRate="48000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="highspeed480p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="12000000" + width="640" + height="480" + frameRate="240" /> + + <Audio codec="aac" + bitRate="156000" + sampleRate="48000" + channels="2" /> + </EncoderProfile> + + <ImageEncoding quality="95" /> + <ImageEncoding quality="80" /> + <ImageEncoding quality="70" /> + <ImageDecoding memCap="20000000" /> + + </CamcorderProfiles> + + <EncoderOutputFileFormat name="3gp" /> + <EncoderOutputFileFormat name="mp4" /> + + <!-- + If a codec is not enabled, it is invisible to the applications + In other words, the applications won't be able to use the codec + or query the capabilities of the codec at all if it is disabled + --> + <VideoEncoderCap name="h264" enabled="true" + minBitRate="64000" maxBitRate="42000000" + minFrameWidth="176" maxFrameWidth="4096" + minFrameHeight="144" maxFrameHeight="2160" + minFrameRate="15" maxFrameRate="30" + maxHFRFrameWidth="1920" maxHFRFrameHeight="1080" + maxHFRMode="120" /> + + <VideoEncoderCap name="h263" enabled="true" + minBitRate="64000" maxBitRate="2000000" + minFrameWidth="176" maxFrameWidth="800" + minFrameHeight="144" maxFrameHeight="480" + minFrameRate="15" maxFrameRate="30" + maxHFRFrameWidth="0" maxHFRFrameHeight="0" + maxHFRMode="0" /> + + <VideoEncoderCap name="m4v" enabled="true" + minBitRate="64000" maxBitRate="20000000" + minFrameWidth="176" maxFrameWidth="1280" + minFrameHeight="144" maxFrameHeight="720" + minFrameRate="15" maxFrameRate="30" + maxHFRFrameWidth="0" maxHFRFrameHeight="0" + maxHFRMode="0" /> + + <VideoEncoderCap name="hevc" enabled="true" + minBitRate="64000" maxBitRate="100000000" + minFrameWidth="176" maxFrameWidth="4096" + minFrameHeight="144" maxFrameHeight="2160" + minFrameRate="15" maxFrameRate="30" + maxHFRFrameWidth="0" maxHFRFrameHeight="0" + maxHFRMode="0" /> + + <AudioEncoderCap name="aac" enabled="true" + minBitRate="8000" maxBitRate="96000" + minSampleRate="8000" maxSampleRate="48000" + minChannels="1" maxChannels="6" /> + + <AudioEncoderCap name="heaac" enabled="true" + minBitRate="8000" maxBitRate="64000" + minSampleRate="16000" maxSampleRate="48000" + minChannels="1" maxChannels="1" /> + + <AudioEncoderCap name="aaceld" enabled="true" + minBitRate="16000" maxBitRate="192000" + minSampleRate="16000" maxSampleRate="48000" + minChannels="1" maxChannels="1" /> + + <AudioEncoderCap name="amrwb" enabled="true" + minBitRate="6600" maxBitRate="23850" + minSampleRate="16000" maxSampleRate="16000" + minChannels="1" maxChannels="1" /> + + <AudioEncoderCap name="amrnb" enabled="true" + minBitRate="5525" maxBitRate="12200" + minSampleRate="8000" maxSampleRate="8000" + minChannels="1" maxChannels="1" /> + + <AudioEncoderCap name="lpcm" enabled="true" + minBitRate="768000" maxBitRate="4608000" + minSampleRate="8000" maxSampleRate="48000" + minChannels="1" maxChannels="6" /> + + <!-- + FIXME: + We do not check decoder capabilities at present + At present, we only check whether windows media is visible + for TEST applications. For other applications, we do + not perform any checks at all. + --> + <VideoDecoderCap name="wmv" enabled="true"/> + <AudioDecoderCap name="wma" enabled="true"/> + + <!-- + The VideoEditor Capability configuration: + - maxInputFrameWidth: maximum video width of imported video clip. + - maxInputFrameHeight: maximum video height of imported video clip. + - maxOutputFrameWidth: maximum video width of exported video clip. + - maxOutputFrameHeight: maximum video height of exported video clip. + - maxPrefetchYUVFrames: maximum prefetch YUV frames for encoder, + used to limit the amount of memory for prefetched YUV frames. + For this platform, it allows maximum 30MB(3MB per 1080p frame x 10 + frames) memory. + --> + <VideoEditorCap maxInputFrameWidth="1920" + maxInputFrameHeight="1088" maxOutputFrameWidth="1920" + maxOutputFrameHeight="1088" maxPrefetchYUVFrames="10"/> + <!-- + The VideoEditor Export codec profile and level values + correspond to the values in OMX_Video.h. + E.g. for h264, profile value 1 means OMX_VIDEO_AVCProfileBaseline + and level 4096 means OMX_VIDEO_AVCLevel41. + Please note that the values are in decimal. + These values are for video encoder. + --> + <!-- + Codec = h.264, Baseline profile, level 4.0 + --> + <ExportVideoProfile name="h264" profile= "1" level="2048"/> + <!-- + Codec = h.263, Baseline profile, level 70 + --> + <ExportVideoProfile name="h263" profile= "1" level="128"/> + <!-- + Codec = mpeg4, Simple profile, level 5 + --> + <ExportVideoProfile name="m4v" profile= "1" level="128"/> +</MediaSettings> diff --git a/conf_files/sdmshrike/mediacodec-seccomp.policy b/conf_files/sdmshrike/mediacodec-seccomp.policy new file mode 100644 index 00000000..34a1b594 --- /dev/null +++ b/conf_files/sdmshrike/mediacodec-seccomp.policy @@ -0,0 +1,47 @@ +# Copyright (c) 2019, The Linux Foundation. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of The Linux Foundation nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS +# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +# device specific syscalls +# extension of services/mediacodec/minijail/seccomp_policy/mediacodec-seccomp-arm.policy +pselect6: 1 +eventfd2: 1 +sendto: 1 +recvfrom: 1 +_llseek: 1 +sysinfo: 1 +getcwd: 1 +getdents64: 1 +ARM_cacheflush: 1 +inotify_init1: 1 +inotify_add_watch: 1 +inotify_rm_watch: 1 +uname: 1 +ueventd: 1 +timer_create: 1 +timer_settime: 1 +rt_sigtimedwait: 1 diff --git a/conf_files/sdmshrike/sdmshrike.mk b/conf_files/sdmshrike/sdmshrike.mk new file mode 100644 index 00000000..12bcf5b0 --- /dev/null +++ b/conf_files/sdmshrike/sdmshrike.mk @@ -0,0 +1,27 @@ +CONFIG_PATH := hardware/qcom/media/conf_files/msmnile + +# Video feature flags + +# Video configuration files +PRODUCT_COPY_FILES += \ + $(CONFIG_PATH)/codec2.vendor.ext.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/codec2.vendor.ext.policy \ + $(CONFIG_PATH)/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \ + $(CONFIG_PATH)/media_codecs_performance.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance.xml \ + $(CONFIG_PATH)/media_codecs_vendor.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_vendor.xml \ + $(CONFIG_PATH)/media_codecs_vendor_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_vendor_audio.xml \ + $(CONFIG_PATH)/media_profiles.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_vendor.xml \ + $(CONFIG_PATH)/mediacodec-seccomp.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediacodec.policy \ + $(CONFIG_PATH)/system_properties.xml:$(TARGET_COPY_OUT_VENDOR)/etc/system_properties.xml + +# Vendor property overrides + +# Produce packages addition +PRODUCT_PACKAGES += \ + libcodec2_vndk.vendor \ + libcodec2_hidl@1.0.vendor +# Enable Codec2.0 HAL for pure AOSP variants. +ifeq ($(GENERIC_ODM_IMAGE),true) +DEVICE_MANIFEST_FILE += hardware/qcom/media/conf_files/msmnile/c2_manifest_vendor.xml +else +DEVICE_MANIFEST_FILE += hardware/qcom/media/conf_files/msmnile/c2_manifest.xml +endif diff --git a/conf_files/sdmshrike/system_properties.xml b/conf_files/sdmshrike/system_properties.xml new file mode 100644 index 00000000..f029c0de --- /dev/null +++ b/conf_files/sdmshrike/system_properties.xml @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- +Copyright (c) 2018 - 2019, The Linux Foundation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of The Linux Foundation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +--> +<configs> + <property name="vidc_dec_log_in" value="0"/> + <property name="vidc_dec_log_out" value="0"/> + <property name="vidc_enc_log_in" value="0"/> + <property name="vidc_enc_log_out" value="0"/> + <property name="vidc_enc_csc_custom_matrix" value="0"/> + <property name="vidc_perf_control_enable" value="0"/> + <!-- Buffer size : internal : 200 MB (200 X 1), output : 200 MB (12.5 X 16) --> + <property name="vidc_dec_sec_prefetch_size_internal" value="209715200"/> + <property name="vidc_dec_sec_prefetch_size_output" value="13434880"/> + <!-- Bitmask for arb mode: 1: AVC, 2: HEVC, 4: MPEG2 --> + <property name="vidc_dec_arb_mode_override" value="7"/> + <!-- Bitmask for linear color: 1: 8-bit, 2: 10-bit --> + <property name="vidc_enc_linear_color_format" value="0"/> + <property name="vidc_enc_bitrate_savings_enable" value="1"/> +</configs> diff --git a/conf_files/sm6150/sm6150.mk b/conf_files/sm6150/sm6150.mk index b1648fb0..1c17d268 100644 --- a/conf_files/sm6150/sm6150.mk +++ b/conf_files/sm6150/sm6150.mk @@ -24,8 +24,8 @@ PRODUCT_PACKAGES += \ libcodec2_vndk.vendor \ libcodec2_hidl@1.0.vendor -ifeq ($(TARGET_FWK_SUPPORTS_FULL_VALUEADDS),true) - $(warning "Compiling with full value-added framework") +ifneq (,$(filter true, $(TARGET_FWK_SUPPORTS_FULL_VALUEADDS)$(TARGET_BOARD_AUTO))) + $(warning "Compiling with full value-added framework or for AUTO Platform") else $(warning "Compiling without full value-added framework - enabling GENERIC_ODM_IMAGE") GENERIC_ODM_IMAGE := true diff --git a/mm-video-v4l2/vidc/vdec/src/omx_swvdec.cpp b/mm-video-v4l2/vidc/vdec/src/omx_swvdec.cpp index ae84116c..e4a37a44 100644 --- a/mm-video-v4l2/vidc/vdec/src/omx_swvdec.cpp +++ b/mm-video-v4l2/vidc/vdec/src/omx_swvdec.cpp @@ -1,7 +1,7 @@ /** * @copyright * - * Copyright (c) 2015-2019, The Linux Foundation. All rights reserved. + * Copyright (c) 2015-2020, The Linux Foundation. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -4810,7 +4810,6 @@ void omx_swvdec::ion_memory_free(struct vdec_ion *p_ion_buf_info) (unsigned int)p_ion_buf_info->alloc_data.heap_id_mask); if (p_ion_buf_info->data_fd >= 0) { - close(p_ion_buf_info->data_fd); p_ion_buf_info->data_fd = -1; } diff --git a/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp b/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp index 829555c2..0e8c326c 100644 --- a/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp +++ b/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp @@ -7377,16 +7377,6 @@ OMX_ERRORTYPE omx_vdec::empty_this_buffer(OMX_IN OMX_HANDLETYPE hComp, buffer->pBuffer = (OMX_U8*)drv_ctx.ptr_inputbuffer[nBufferIndex].bufferaddr; } - /* Check if the input timestamp in seconds is greater than LONG_MAX - or lesser than LONG_MIN. */ - if (buffer->nTimeStamp / 1000000 > LONG_MAX || - buffer->nTimeStamp / 1000000 < LONG_MIN) { - /* This timestamp cannot be contained in driver timestamp field */ - DEBUG_PRINT_ERROR("[ETB] BHdr(%p) pBuf(%p) nTS(%lld) nFL(%u) >> Invalid timestamp", - buffer, buffer->pBuffer, buffer->nTimeStamp, (unsigned int)buffer->nFilledLen); - return OMX_ErrorBadParameter; - } - DEBUG_PRINT_LOW("[ETB] BHdr(%p) pBuf(%p) nTS(%lld) nFL(%u)", buffer, buffer->pBuffer, buffer->nTimeStamp, (unsigned int)buffer->nFilledLen); if (arbitrary_bytes) { @@ -22,7 +22,7 @@ MM_VIDEO += libstagefrighthw PRODUCT_PACKAGES += $(MM_VIDEO) -ifeq ($(call is-board-platform-in-list, msmnile $(MSMSTEPPE) atoll $(TRINKET)),true) +ifeq ($(call is-board-platform-in-list, sdmshrike msmnile $(MSMSTEPPE) atoll $(TRINKET)),true) include $(QCOM_MEDIA_ROOT)/conf_files/$(TARGET_BOARD_PLATFORM)/$(TARGET_BOARD_PLATFORM).mk endif |