diff --git a/common.mk b/common.mk index 3e07304d2fdeeedfea3fd185ca54473f26f56888..b65903f7a5f072a73cbdc11c1dad9eb5e4fcceb6 100644 --- a/common.mk +++ b/common.mk @@ -214,7 +214,7 @@ PRODUCT_PACKAGES += \ # Media PRODUCT_COPY_FILES += \ - $(LOCAL_PATH)/media/media_profiles_vendor.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_vendor.xml + $(call find-copy-subdir-files,*,$(LOCAL_PATH)/media/,$(TARGET_COPY_OUT_VENDOR)/etc) PRODUCT_COPY_FILES += \ frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml \ diff --git a/media/media_codecs.xml b/media/media_codecs.xml new file mode 100644 index 0000000000000000000000000000000000000000..27908645d309ddcdf180c761c04ae889c2460362 --- /dev/null +++ b/media/media_codecs.xml @@ -0,0 +1,405 @@ +<?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. + + +--> + +<!-- + SM6150 Non-Secure decoder capabilities + _________________________________________________________ + | Codec | W H fps Mbps MB/s | + |_____________|_________________________________________| + | h264 | 4096 2160 24 100 829440 | + | hevc | 4096 2160 24 100 829440 | + | mpeg4-sw | 1920 1088 30 40 244800 | + | vp8 | 3840 2160 30 100 972000 | + | vp9 | 4096 2160 24 100 829440 | + | vc1 | 1920 1088 30 20 244800 | + | div4/5/6-sw | 1920 1088 30 10 244800 | + | h263-sw | 864 480 30 16 48600 | + | mpeg2 | 1920 1088 30 40 244800 | + |_____________|_________________________________________| + + SM6150 Secure decoder capabilities + ______________________________________________________ + | Codec | W H fps Mbps MB/s | + |__________|_________________________________________| + | h264 | 3840 2160 30 35 972000 | + | vp9 | 3840 2160 30 35 972000 | + | hevc | 3840 2160 30 35 972000 | + | mpeg2 | 1920 1088 30 35 244800 | + |__________|_________________________________________| + + SM6150 Non-Secure encoder capabilities (Secure not supported) + ______________________________________________________ + | Codec | W H fps Mbps MB/s | + |__________|_________________________________________| + | h264 | 4096 2160 24 100 829440 | + | hevc | 4096 2160 24 100 829440 | + | mpeg4-sw | 1280 720 30 4 108000 | + | vp8 | 3840 2160 30 100 972000 | + | h263-sw | 864 480 30 2 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="4096x2160" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="979200" /> + <Limit name="bitrate" range="1-100000000" /> + <Limit name="frame-rate" range="1-240" /> + <Limit name="concurrent-instances" max="16" /> + <Limit name="performance-point-4096x2160" value="24" /> + <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.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="3840x2160" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="979200" /> + <Limit name="bitrate" range="1-120000000" /> + <Limit name="frame-rate" range="1-240" /> + <Limit name="concurrent-instances" max="16" /> + <Limit name="performance-point-3840x2160" value="30" /> + </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="4096x2160" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="979200" /> + <Limit name="bitrate" range="1-100000000" /> + <Limit name="frame-rate" range="1-240" /> + <Limit name="concurrent-instances" max="16" /> + <Limit name="quality" range="0-100" default="80" /> + <Limit name="performance-point-4096x2160" value="24" /> + <Limit name="performance-point-3840x2160" value="30" /> + <Limit name="performance-point-1920x1080" value="120" /> + <Limit name="performance-point-1280x720" value="240" /> + <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="512x512" 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-4096x2304" value="24" /> + <Limit name="performance-point-3840x2160" value="30" /> + <Limit name="performance-point-1920x1080" value="120" /> + <Limit name="performance-point-1280x720" value="240" /> + <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="864x480" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="48600" /> + <Limit name="bitrate" range="1-8000000" /> + <Limit name="frame-rate" range="1-30" /> + <Limit name="concurrent-instances" max="16" /> + <Limit name="performance-point-720x480" 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="4096x2160" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="979200" /> + <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-4096x2160" value="24" /> + <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.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="3840x2160" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="972000" /> + <Limit name="bitrate" range="1-35000000" /> + <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-3840x2160" value="30" /> + </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-35000000" /> + <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="3840x2160" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="979200" /> + <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-3840x2160" value="30" /> + <Limit name="performance-point-1920x1080" value="60" /> + <Limit name="performance-point-1280x720" value="120" /> + </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="4096x2160" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="979200" /> + <Limit name="bitrate" range="1-120000000" /> + <Limit name="frame-rate" range="1-240" /> + <Feature name="adaptive-playback" /> + <Limit name="concurrent-instances" max="6" /> + <Limit name="performance-point-4096x2160" value="24" /> + <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.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="3840x2160" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="972000" /> + <Limit name="bitrate" range="1-35000000" /> + <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-3840x2160" value="30" /> + </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="4096x2160" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="979200" /> + <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-4096x2160" value="24" /> + <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.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="3840x2160" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" min="36" max="972000" /> + <Limit name="bitrate" range="1-35000000" /> + <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-3840x2160" value="30" /> + </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.google.opus.decoder" type="audio/opus" update="true" rank="100"/> + </Decoders> + <Include href="media_codecs_google_video.xml" /> +</MediaCodecs> diff --git a/media/media_codecs_performance.xml b/media/media_codecs_performance.xml new file mode 100644 index 0000000000000000000000000000000000000000..071ff92651b283a24ae8d1cb361c525f794c559a --- /dev/null +++ b/media/media_codecs_performance.xml @@ -0,0 +1,194 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!-- +Copyright (c) 2015-2017, 2019 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="123-123" /> + <Limit name="measured-frame-rate-1280x720" range="50-50" /> + <Limit name="measured-frame-rate-1920x1080" range="16-40" /> + </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="121-121" /> + <Limit name="measured-frame-rate-1280x720" range="49-49" /> + <Limit name="measured-frame-rate-1920x1080" range="16-45" /> + <Limit name="measured-frame-rate-3840x2160" range="20-28" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.encoder.h263sw" type="video/3gpp" update="true"> + <Limit name="measured-frame-rate-176x144" range="79-117" /> + <Limit name="measured-frame-rate-352x288" range="59-84" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.encoder.mpeg4sw" type="video/mp4v-es" update="true"> + <Limit name="measured-frame-rate-176x144" range="80-102" /> + <Limit name="measured-frame-rate-352x288" range="55-79" /> + <Limit name="measured-frame-rate-640x480" range="39-58" /> + </MediaCodec> + <MediaCodec name="OMX.qcom.video.encoder.vp8" type="video/x-vnd.on2.vp8" update="true"> + <Limit name="measured-frame-rate-320x180" range="266-266" /> + <Limit name="measured-frame-rate-640x360" range="165-165" /> + <Limit name="measured-frame-rate-1280x720" range="49-49" /> + <Limit name="measured-frame-rate-1920x1080" range="16-40" /> + </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="200-200" /> + </MediaCodec> + <MediaCodec name="OMX.google.mpeg4.encoder" type="video/mp4v-es" update="true"> + <Limit name="measured-frame-rate-176x144" range="180-180" /> + </MediaCodec> + <MediaCodec name="OMX.google.vp8.encoder" type="video/x-vnd.on2.vp8" update="true"> + <Limit name="measured-frame-rate-320x180" range="39-39" /> + <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="8-12" /> + </MediaCodec> + <MediaCodec name="c2.android.avc.encoder" type="video/avc" update="true"> + <Limit name="measured-frame-rate-320x240" range="196-266" /> + <Limit name="measured-frame-rate-720x480" range="64-92" /> + <Limit name="measured-frame-rate-1280x720" range="38-60" /> + <Limit name="measured-frame-rate-1920x1080" range="23-33" /> + </MediaCodec> + <MediaCodec name="c2.android.hevc.encoder" type="video/hevc" update="true"> + <Limit name="measured-frame-rate-320x240" range="22-36" /> + </MediaCodec> + <MediaCodec name="c2.android.h263.encoder" type="video/3gpp" update="true"> + <Limit name="measured-frame-rate-176x144" range="215-333" /> + </MediaCodec> + <MediaCodec name="c2.android.mpeg4.encoder" type="video/mp4v-es" update="true"> + <Limit name="measured-frame-rate-176x144" range="222-311" /> + </MediaCodec> + <MediaCodec name="c2.android.vp8.encoder" type="video/x-vnd.on2.vp8" update="true"> + <Limit name="measured-frame-rate-320x180" range="120-187" /> + <Limit name="measured-frame-rate-640x360" range="87-123" /> + <Limit name="measured-frame-rate-1280x720" range="21-31" /> + <Limit name="measured-frame-rate-1920x1080" range="19-28" /> + </MediaCodec> + </Encoders> + <Decoders> + <MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" update="true"> + <Limit name="measured-frame-rate-320x240" range="305-494" /> + <Limit name="measured-frame-rate-720x480" range="310-488" /> + <Limit name="measured-frame-rate-1280x720" range="177-275" /> + <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="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" /> + <Limit name="measured-frame-rate-3840x2160" range="29-41" /> + </MediaCodec> + <MediaCodec name="OMX.qti.video.decoder.h263sw" type="video/3gpp" update="true"> + <Limit name="measured-frame-rate-176x144" range="356-356" /> + <Limit name="measured-frame-rate-352x288" range="292-292" /> + </MediaCodec> + <MediaCodec name="OMX.qti.video.decoder.mpeg4sw" type="video/mp4v-es" update="true"> + <Limit name="measured-frame-rate-176x144" range="203-431" /> + <Limit name="measured-frame-rate-480x360" range="190-450" /> + <Limit name="measured-frame-rate-1280x720" range="160-217" /> + </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="337-337" /> + <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="377-377" /> + <Limit name="measured-frame-rate-640x360" range="323-323" /> + <Limit name="measured-frame-rate-1280x720" range="262-262" /> + <Limit name="measured-frame-rate-1920x1080" range="220-220" /> + <Limit name="measured-frame-rate-3840x2160" range="51-51" /> + </MediaCodec> + <MediaCodec name="OMX.google.h264.decoder" type="video/avc" update="true"> + <Limit name="measured-frame-rate-320x240" range="122-122" /> + <Limit name="measured-frame-rate-720x480" range="68-68" /> + <Limit name="measured-frame-rate-1280x720" range="32-32" /> + <Limit name="measured-frame-rate-1920x1080" range="6-10" /> + </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="170-170" /> + <Limit name="measured-frame-rate-640x360" range="89-89" /> + <Limit name="measured-frame-rate-720x480" range="73-73" /> + <Limit name="measured-frame-rate-1280x720" range="32-32" /> + <Limit name="measured-frame-rate-1920x1080" range="21-21" /> + </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-320x240" range="330-381" /> + <Limit name="measured-frame-rate-640x360" range="139-185" /> + <Limit name="measured-frame-rate-1280x720" range="22-38" /> + <Limit name="measured-frame-rate-1920x1080" range="9-18" /> + </MediaCodec> + <MediaCodec name="OMX.google.vp9.decoder" type="video/x-vnd.on2.vp9" update="true"> + <Limit name="measured-frame-rate-320x240" range="200-230" /> + <Limit name="measured-frame-rate-640x360" range="81-90" /> + <Limit name="measured-frame-rate-1280x720" range="32-40" /> + <Limit name="measured-frame-rate-1920x1080" range="19-23" /> + </MediaCodec> + <MediaCodec name="c2.android.avc.decoder" type="video/avc" update="true"> + <Limit name="measured-frame-rate-320x240" range="143-204" /> + <Limit name="measured-frame-rate-720x480" range="48-76" /> + <Limit name="measured-frame-rate-1280x720" range="20-29" /> + <Limit name="measured-frame-rate-1920x1080" range="10-15" /> + </MediaCodec> + <MediaCodec name="c2.android.hevc.decoder" type="video/hevc" update="true"> + <Limit name="measured-frame-rate-352x288" range="120-290" /> + <Limit name="measured-frame-rate-640x360" range="66-161" /> + <Limit name="measured-frame-rate-720x480" range="99-142" /> + <Limit name="measured-frame-rate-1280x720" range="51-73" /> + <Limit name="measured-frame-rate-1920x1080" range="26-38" /> + </MediaCodec> + <MediaCodec name="c2.android.h263.decoder" type="video/3gpp" update="true"> + <Limit name="measured-frame-rate-176x144" range="333-920" /> + <Limit name="measured-frame-rate-352x288" range="438-584" /> + </MediaCodec> + <MediaCodec name="c2.android.mpeg4.decoder" type="video/mp4v-es" update="true"> + <Limit name="measured-frame-rate-176x144" range="554-876" /> + </MediaCodec> + <MediaCodec name="c2.android.vp8.decoder" type="video/x-vnd.on2.vp8" update="true"> + <Limit name="measured-frame-rate-320x180" range="514-727" /> + <Limit name="measured-frame-rate-640x360" range="143-222" /> + <Limit name="measured-frame-rate-1920x1080" range="22-31" /> + </MediaCodec> + <MediaCodec name="c2.android.vp9.decoder" type="video/x-vnd.on2.vp9" update="true"> + <Limit name="measured-frame-rate-320x180" range="432-576" /> + <Limit name="measured-frame-rate-640x360" range="126-179" /> + <Limit name="measured-frame-rate-1280x720" range="39-75" /> + <Limit name="measured-frame-rate-1920x1080" range="25-36" /> + </MediaCodec> + </Decoders> +</MediaCodecs> diff --git a/media/system_properties.xml b/media/system_properties.xml new file mode 100644 index 0000000000000000000000000000000000000000..0a511578ddd58deef0ceead23a5015b434b591a7 --- /dev/null +++ b/media/system_properties.xml @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- +Copyright (c) 2017, 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_dec_hfr_fps" 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"/> + <!-- Buffer size : internal : 30 MB (30 X 1), output : 50 MB (3.125 X 16) --> + <property name="vidc_dec_sec_prefetch_size_internal" value="31457280"/> + <property name="vidc_dec_sec_prefetch_size_output" value="3276800"/> + <!-- Bitmask for arb mode: 1: AVC, 2: HEVC, 4: MPEG2 --> + <property name="vidc_dec_arb_mode_override" value="7"/> +</configs>