mirror of
https://github.com/Anything-at-25-00/android_device_tecno_LG8n.git
synced 2024-11-22 13:46:26 -08:00
X6833B: Configure Media stack
* References: 1cba75df74
Co-authored-by: electimon <electimon@gmail.com>
Co-authored-by: bengris32 <bengris32@protonmail.ch>
Signed-off-by: dodyirawan85 <40514988+dodyirawan85@users.noreply.github.com>
This commit is contained in:
parent
8739c09edc
commit
1a1754044a
|
@ -46,6 +46,13 @@ $(KEYMASTER_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
|
|||
$(hide) echo "Linking $@"
|
||||
@ln -sf $(subst default,trustonic,$(notdir $@)) $@
|
||||
|
||||
MEDIA_SYMLINKS := \
|
||||
$(TARGET_OUT_VENDOR)/bin/v3avpud
|
||||
|
||||
$(MEDIA_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
|
||||
$(hide) echo "Linking $@"
|
||||
@ln -sf $(notdir $@).$(TARGET_BOARD_PLATFORM) $@
|
||||
|
||||
SENSOR_SYMLINKS := $(TARGET_OUT_VENDOR)/lib64/hw/sensors.$(TARGET_BOARD_PLATFORM).so
|
||||
$(SENSOR_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
|
||||
$(hide) echo "Linking $(notdir $@)"
|
||||
|
@ -61,6 +68,7 @@ ALL_DEFAULT_INSTALLED_MODULES += \
|
|||
$(DISPLAY_SYMLINKS) \
|
||||
$(GATEKEEPER_SYMLINKS) \
|
||||
$(KEYMASTER_SYMLINKS) \
|
||||
$(MEDIA_SYMLINKS) \
|
||||
$(SENSOR_SYMLINKS) \
|
||||
$(VENDOR_PLATFORM_SYMLINKS)
|
||||
|
||||
|
|
85
configs/media/media_codecs.xml
Normal file
85
configs/media/media_codecs.xml
Normal file
|
@ -0,0 +1,85 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!-- 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.
|
||||
-->
|
||||
|
||||
<!--
|
||||
<!DOCTYPE MediaCodecs [
|
||||
<!ELEMENT MediaCodecs (Decoders,Encoders)>
|
||||
<!ELEMENT Decoders (MediaCodec*)>
|
||||
<!ELEMENT Encoders (MediaCodec*)>
|
||||
<!ELEMENT MediaCodec (Type*,Quirk*)>
|
||||
<!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.
|
||||
|
||||
2012/07/13 config for MTK OMX Media Codecs, created by Morris Yang (mtk03147)
|
||||
-->
|
||||
|
||||
<MediaCodecs>
|
||||
<Settings>
|
||||
<Setting name="max-video-encoder-input-buffers" value="10" />
|
||||
</Settings>
|
||||
<Include href="media_codecs_mediatek_audio.xml" />
|
||||
<Include href="media_codecs_google_audio.xml" />
|
||||
</MediaCodecs>
|
427
configs/media/media_codecs_c2.xml
Normal file
427
configs/media/media_codecs_c2.xml
Normal file
|
@ -0,0 +1,427 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!-- Copyright (C) 2014 The Android Open Source Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<MediaCodecs>
|
||||
<Settings>
|
||||
<!-- disable TV and telephony domains by default. These must be opted in by OEMs -->
|
||||
<Domain name="telephony" enabled="false" />
|
||||
<Domain name="tv" enabled="false" />
|
||||
<Variant name="slow-cpu" enabled="false" />
|
||||
</Settings>
|
||||
<Decoders>
|
||||
<MediaCodec name="c2.android.mp3.decoder" type="audio/mpeg">
|
||||
<Alias name="OMX.google.mp3.decoder" />
|
||||
<Limit name="channel-count" max="2" />
|
||||
<Limit name="sample-rate" ranges="8000,11025,12000,16000,22050,24000,32000,44100,48000" />
|
||||
<Limit name="bitrate" range="8000-320000" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.amrnb.decoder" type="audio/3gpp">
|
||||
<Alias name="OMX.google.amrnb.decoder" />
|
||||
<Limit name="channel-count" max="1" />
|
||||
<Limit name="sample-rate" ranges="8000" />
|
||||
<Limit name="bitrate" range="4750-12200" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.amrwb.decoder" type="audio/amr-wb">
|
||||
<Alias name="OMX.google.amrwb.decoder" />
|
||||
<Limit name="channel-count" max="1" />
|
||||
<Limit name="sample-rate" ranges="16000" />
|
||||
<Limit name="bitrate" range="6600-23850" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.aac.decoder" type="audio/mp4a-latm">
|
||||
<Alias name="OMX.google.aac.decoder" />
|
||||
<Limit name="channel-count" max="8" />
|
||||
<Limit name="sample-rate" ranges="7350,8000,11025,12000,16000,22050,24000,32000,44100,48000" />
|
||||
<Limit name="bitrate" range="8000-960000" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.g711.alaw.decoder" type="audio/g711-alaw">
|
||||
<Alias name="OMX.google.g711.alaw.decoder" />
|
||||
<Limit name="channel-count" max="6" />
|
||||
<Limit name="sample-rate" ranges="8000-48000" />
|
||||
<Limit name="bitrate" range="64000" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.g711.mlaw.decoder" type="audio/g711-mlaw">
|
||||
<Alias name="OMX.google.g711.mlaw.decoder" />
|
||||
<Limit name="channel-count" max="6" />
|
||||
<Limit name="sample-rate" ranges="8000-48000" />
|
||||
<Limit name="bitrate" range="64000" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.vorbis.decoder" type="audio/vorbis">
|
||||
<Alias name="OMX.google.vorbis.decoder" />
|
||||
<Limit name="channel-count" max="8" />
|
||||
<Limit name="sample-rate" ranges="8000-96000" />
|
||||
<Limit name="bitrate" range="32000-500000" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.opus.decoder" type="audio/opus">
|
||||
<Alias name="OMX.google.opus.decoder" />
|
||||
<Limit name="channel-count" max="8" />
|
||||
<Limit name="sample-rate" ranges="8000,12000,16000,24000,48000" />
|
||||
<Limit name="bitrate" range="6000-510000" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.raw.decoder" type="audio/raw">
|
||||
<Alias name="OMX.google.raw.decoder" />
|
||||
<Limit name="channel-count" max="8" />
|
||||
<Limit name="sample-rate" ranges="8000-96000" />
|
||||
<Limit name="bitrate" range="1-10000000" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.flac.decoder" type="audio/flac">
|
||||
<Alias name="OMX.google.flac.decoder" />
|
||||
<Limit name="channel-count" max="8" />
|
||||
<Limit name="sample-rate" ranges="1-655350" />
|
||||
<Limit name="bitrate" range="1-21000000" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.gsm.decoder" type="audio/gsm" domain="telephony">
|
||||
<Alias name="OMX.google.gsm.decoder" />
|
||||
<Limit name="channel-count" max="1" />
|
||||
<Limit name="sample-rate" ranges="8000" />
|
||||
<Limit name="bitrate" range="13000" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.mtk.adpcm-ms.decoder" type="audio/x-adpcm-ms">
|
||||
<Alias name="OMX.MTK.AUDIO.DECODER.ADPCM.MS" />
|
||||
<Limit name="channel-count" max="8" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.mtk.adpcm-dvi-ima.decoder" type="audio/x-adpcm-dvi-ima">
|
||||
<Alias name="OMX.MTK.AUDIO.DECODER.ADPCM.DVI" />
|
||||
<Limit name="channel-count" max="8" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.mtk.ape.decoder" type="audio/ape">
|
||||
<Alias name="OMX.MTK.AUDIO.DECODER.APE" />
|
||||
<Limit name="channel-count" max="2" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.mtk.alac.decoder" type="audio/alac">
|
||||
<Alias name="OMX.MTK.AUDIO.DECODER.ALAC" />
|
||||
<Limit name="channel-count" max="8" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.mtk.wma.decoder" type="audio/x-ms-wma">
|
||||
<Alias name="OMX.MTK.AUDIO.DECODER.WMA" />
|
||||
<Limit name="channel-count" max="2" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.mtk.mp3.decoder" type="audio/mpeg" rank="5">
|
||||
<Alias name="OMX.MTK.AUDIO.DECODER.MP3" />
|
||||
<Limit name="channel-count" max="2" />
|
||||
<Limit name="sample-rate" ranges="8000,11025,12000,16000,22050,24000,32000,44100,48000" />
|
||||
<Limit name="bitrate" range="8000-320000" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.mtk.mpeg4.decoder" type="video/mp4v-es" >
|
||||
<Alias name="OMX.MTK.VIDEO.DECODER.MPEG4" />
|
||||
<Limit name="size" min="16x16" max="2048x1088" />
|
||||
<Feature name="adaptive-playback"/>
|
||||
<Limit name="concurrent-instances" max="32" />
|
||||
<Limit name="performance-point-1280x720" value="120" />
|
||||
<Limit name="performance-point-1920x1088" value="60" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.mtk.h263.decoder" type="video/3gpp" >
|
||||
<Alias name="OMX.MTK.VIDEO.DECODER.H263" />
|
||||
<Limit name="size" min="128x96" max="1408x1152" />
|
||||
<Feature name="adaptive-playback"/>
|
||||
<Limit name="concurrent-instances" max="32" />
|
||||
<Limit name="performance-point-1280x720" value="60" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.mtk.avc.decoder" type="video/avc" >
|
||||
<Alias name="OMX.MTK.VIDEO.DECODER.AVC" />
|
||||
<Limit name="size" min="64x64" max="2560x1440" />
|
||||
<Quirk name="wants-NAL-fragments" />
|
||||
<Feature name="adaptive-playback"/>
|
||||
<Limit name="concurrent-instances" max="32" />
|
||||
<Limit name="performance-point-1280x720" value="120" />
|
||||
<Limit name="performance-point-1920x1088" value="60" />
|
||||
<Limit name="performance-point-2560x1440" value="30" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.mtk.avc.decoder.secure" type="video/avc" >
|
||||
<Alias name="OMX.MTK.VIDEO.DECODER.AVC.secure" />
|
||||
<Limit name="size" min="64x64" max="2560x1440" />
|
||||
<Quirk name="wants-NAL-fragments" />
|
||||
<Feature name="secure-playback" required="true" />
|
||||
<Feature name="adaptive-playback"/>
|
||||
<Limit name="concurrent-instances" max="1" />
|
||||
<Limit name="performance-point-1920x1088" value="30" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.mtk.hevc.decoder" type="video/hevc" >
|
||||
<Alias name="OMX.MTK.VIDEO.DECODER.HEVC" />
|
||||
<Limit name="size" min="16x16" max="2560x1440" />
|
||||
<Feature name="adaptive-playback"/>
|
||||
<Limit name="concurrent-instances" max="32" />
|
||||
<Limit name="performance-point-1280x720" value="120" />
|
||||
<Limit name="performance-point-1920x1088" value="60" />
|
||||
<Limit name="performance-point-2560x1440" value="30" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.mtk.hevc.decoder.secure" type="video/hevc" >
|
||||
<Alias name="OMX.MTK.VIDEO.DECODER.HEVC.secure" />
|
||||
<Limit name="size" min="16x16" max="2560x1440" />
|
||||
<Quirk name="wants-NAL-fragments" />
|
||||
<Feature name="secure-playback" required="true" />
|
||||
<Feature name="adaptive-playback"/>
|
||||
<Limit name="concurrent-instances" max="1" />
|
||||
<Limit name="performance-point-1920x1088" value="30" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.mtk.heif.decoder" type="image/vnd.android.heic" >
|
||||
<Alias name="OMX.MTK.VIDEO.DECODER.HEIF" />
|
||||
<Limit name="size" min="16x16" max="16383x16383" />
|
||||
<Feature name="adaptive-playback"/>
|
||||
<Limit name="concurrent-instances" max="16" />
|
||||
<Limit name="performance-point-3840x2160" value="30" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.mtk.vpx.decoder" type="video/x-vnd.on2.vp8" >
|
||||
<Alias name="OMX.MTK.VIDEO.DECODER.VPX" />
|
||||
<Limit name="size" min="16x16" max="1920x1088" />
|
||||
<Feature name="adaptive-playback"/>
|
||||
<Limit name="concurrent-instances" max="32" />
|
||||
<Limit name="performance-point-1920x1088" value="30" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.mtk.vp9.decoder" type="video/x-vnd.on2.vp9" >
|
||||
<Alias name="OMX.MTK.VIDEO.DECODER.VP9" />
|
||||
<Limit name="size" min="16x16" max="2560x1440" />
|
||||
<Feature name="adaptive-playback"/>
|
||||
<Limit name="concurrent-instances" max="32" />
|
||||
<Limit name="performance-point-1280x720" value="120" />
|
||||
<Limit name="performance-point-1920x1088" value="60" />
|
||||
<Limit name="performance-point-2560x1440" value="30" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.mtk.vp9.decoder.secure" type="video/x-vnd.on2.vp9" >
|
||||
<Alias name="OMX.MTK.VIDEO.DECODER.VP9.secure" />
|
||||
<Limit name="size" min="16x16" max="2560x1440" />
|
||||
<Quirk name="wants-NAL-fragments" />
|
||||
<Feature name="secure-playback" required="true" />
|
||||
<Feature name="adaptive-playback"/>
|
||||
<Limit name="concurrent-instances" max="1" />
|
||||
<Limit name="performance-point-1920x1088" value="30" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.mtk.mpeg2.decoder" type="video/mpeg2" >
|
||||
<Alias name="OMX.MTK.VIDEO.DECODER.MPEG2" />
|
||||
<Limit name="size" min="16x16" max="2048x1088" />
|
||||
<Feature name="adaptive-playback"/>
|
||||
<Limit name="concurrent-instances" max="32" />
|
||||
<Limit name="performance-point-1280x720" value="120" />
|
||||
<Limit name="performance-point-1920x1088" value="60" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.mpeg4.decoder" type="video/mp4v-es" update="true">
|
||||
<Alias name="OMX.google.mpeg4.decoder" />
|
||||
<!-- profiles and levels: ProfileSimple : Level3 -->
|
||||
<Limit name="size" min="2x2" max="352x288" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="blocks-per-second" range="12-11880" />
|
||||
<Limit name="bitrate" range="1-384000" />
|
||||
<Feature name="adaptive-playback" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.h263.decoder" type="video/3gpp" update="true">
|
||||
<Alias name="OMX.google.h263.decoder" />
|
||||
<!-- profiles and levels: ProfileBaseline : Level30, ProfileBaseline : Level45
|
||||
ProfileISWV2 : Level30, ProfileISWV2 : Level45 -->
|
||||
<Limit name="size" min="2x2" max="352x288" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="bitrate" range="1-384000" />
|
||||
<Feature name="adaptive-playback" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.avc.decoder" type="video/avc" update="true">
|
||||
<Alias name="OMX.google.h264.decoder" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="size" min="2x2" max="1920x1088" />
|
||||
<!-- profiles and levels: ProfileHigh : Level51 -->
|
||||
<Limit name="block-count" range="1-16384" />
|
||||
<Limit name="blocks-per-second" range="1-491520" />
|
||||
<Limit name="bitrate" range="1-40000000" />
|
||||
<Feature name="adaptive-playback" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.hevc.decoder" type="video/hevc" update="true">
|
||||
<Alias name="OMX.google.hevc.decoder" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="8x8" />
|
||||
<Limit name="size" min="2x2" max="1920x1088" />
|
||||
<!-- profiles and levels: ProfileMain : MainTierLevel51 -->
|
||||
<Limit name="block-count" range="1-65536" />
|
||||
<Limit name="blocks-per-second" range="1-491520" />
|
||||
<Limit name="bitrate" range="1-5000000" />
|
||||
<Feature name="adaptive-playback" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
|
||||
<Alias name="OMX.google.vp8.decoder" />
|
||||
<Limit name="size" min="2x2" max="2048x2048" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="block-count" range="1-8192" /> <!-- max 2048x1024 -->
|
||||
<Limit name="blocks-per-second" range="1-1000000" />
|
||||
<Limit name="bitrate" range="1-40000000" />
|
||||
<Feature name="adaptive-playback" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
|
||||
<Alias name="OMX.google.vp9.decoder" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="size" min="2x2" max="1280x1280" />
|
||||
<Limit name="block-count" range="1-3600" /> <!-- max 1280x720 -->
|
||||
<Limit name="blocks-per-second" range="1-108000" />
|
||||
<Limit name="bitrate" range="1-5000000" />
|
||||
<Feature name="adaptive-playback" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.av1.decoder" type="video/av01" update="true">
|
||||
<Limit name="size" min="2x2" max="1920x1080" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="block-count" range="1-16384" />
|
||||
<Limit name="blocks-per-second" range="1-2073600" />
|
||||
<Limit name="bitrate" range="1-120000000" />
|
||||
<Feature name="adaptive-playback" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.mpeg2.decoder" type="video/mpeg2" domain="tv" update="true">
|
||||
<Alias name="OMX.google.mpeg2.decoder" />
|
||||
<!-- profiles and levels: ProfileMain : LevelHL -->
|
||||
<Limit name="size" min="16x16" max="1920x1088" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="blocks-per-second" range="1-244800" />
|
||||
<Limit name="bitrate" range="1-20000000" />
|
||||
<Feature name="adaptive-playback" />
|
||||
</MediaCodec>
|
||||
</Decoders>
|
||||
<Encoders>
|
||||
<MediaCodec name="c2.android.aac.encoder" type="audio/mp4a-latm">
|
||||
<Alias name="OMX.google.aac.encoder" />
|
||||
<Limit name="channel-count" max="6" />
|
||||
<Limit name="sample-rate" ranges="8000,11025,12000,16000,22050,24000,32000,44100,48000" />
|
||||
<!-- also may support 64000, 88200 and 96000 Hz -->
|
||||
<Limit name="bitrate" range="8000-960000" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.amrnb.encoder" type="audio/3gpp">
|
||||
<Alias name="OMX.google.amrnb.encoder" />
|
||||
<Limit name="channel-count" max="1" />
|
||||
<Limit name="sample-rate" ranges="8000" />
|
||||
<Limit name="bitrate" range="4750-12200" />
|
||||
<Feature name="bitrate-modes" value="CBR" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.amrwb.encoder" type="audio/amr-wb">
|
||||
<Alias name="OMX.google.amrwb.encoder" />
|
||||
<Limit name="channel-count" max="1" />
|
||||
<Limit name="sample-rate" ranges="16000" />
|
||||
<Limit name="bitrate" range="6600-23850" />
|
||||
<Feature name="bitrate-modes" value="CBR" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.flac.encoder" type="audio/flac">
|
||||
<Alias name="OMX.google.flac.encoder" />
|
||||
<Limit name="channel-count" max="2" />
|
||||
<Limit name="sample-rate" ranges="1-655350" />
|
||||
<Limit name="bitrate" range="1-21000000" />
|
||||
<Limit name="complexity" range="0-8" default="5" />
|
||||
<Feature name="bitrate-modes" value="CQ" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.opus.encoder" type="audio/opus">
|
||||
<Limit name="channel-count" max="2" />
|
||||
<Limit name="sample-rate" ranges="8000,12000,16000,24000,48000" />
|
||||
<Limit name="bitrate" range="500-512000" />
|
||||
<Limit name="complexity" range="0-10" default="5" />
|
||||
<Feature name="bitrate-modes" value="CBR" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.mtk.avc.encoder" type="video/avc" >
|
||||
<Alias name="OMX.MTK.VIDEO.ENCODER.AVC" />
|
||||
<Limit name="size" min="160x160" max="2560x1440" />
|
||||
<Limit name="alignment" value="16x16" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="concurrent-instances" max="16" />
|
||||
<Feature name="can-swap-width-height" value="1"/>
|
||||
<Limit name="performance-point-1920x1088" value="30" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.mtk.avc.encoder.secure" type="video/avc" >
|
||||
<Limit name="size" min="160x128" max="1920x1088" />
|
||||
<Limit name="alignment" value="16x16" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="concurrent-instances" max="16" />
|
||||
<Limit name="performance-point-1920x1088" value="30" />
|
||||
<Feature name="special-codec" required="true" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.mtk.hevc.encoder" type="video/hevc" >
|
||||
<Alias name="OMX.MTK.VIDEO.ENCODER.HEVC" />
|
||||
<Limit name="size" min="160x128" max="2560x1440" />
|
||||
<Limit name="alignment" value="16x16" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="quality" range="0-100" default="50" />
|
||||
<Limit name="concurrent-instances" max="12" />
|
||||
<Feature name="bitrate-modes" value="VBR,CBR,CQ" />
|
||||
<Limit name="performance-point-1920x1088" value="30" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.mtk.heif.encoder" type="image/vnd.android.heic" >
|
||||
<Alias name="OMX.MTK.VIDEO.ENCODER.HEIF" />
|
||||
<Limit name="size" min="160x128" max="16383x16383" />
|
||||
<Limit name="alignment" value="16x16" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="quality" range="0-100" default="50" />
|
||||
<Limit name="concurrent-instances" max="2" />
|
||||
<Feature name="bitrate-modes" value="VBR,CBR,CQ" />
|
||||
<Limit name="performance-point-1920x1088" value="30" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.h263.encoder" type="video/3gpp" update="true">
|
||||
<Alias name="OMX.google.h263.encoder" />
|
||||
<!-- profiles and levels: ProfileBaseline : Level45 -->
|
||||
<Limit name="size" min="176x144" max="176x144" />
|
||||
<Limit name="alignment" value="16x16" />
|
||||
<Limit name="bitrate" range="1-128000" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.mpeg4.encoder" type="video/mp4v-es" update="true">
|
||||
<Alias name="OMX.google.mpeg4.encoder" />
|
||||
<!-- profiles and levels: ProfileCore : Level2 -->
|
||||
<Limit name="size" min="16x16" max="176x144" />
|
||||
<Limit name="alignment" value="16x16" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="blocks-per-second" range="12-1485" />
|
||||
<Limit name="bitrate" range="1-64000" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.avc.encoder" type="video/avc" update="true">
|
||||
<Alias name="OMX.google.h264.encoder" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="size" min="16x16" max="1808x1808" />
|
||||
<!-- profiles and levels: ProfileBaseline : Level3 -->
|
||||
<Limit name="block-count" range="1-1620" />
|
||||
<Limit name="blocks-per-second" range="1-40500" />
|
||||
<Limit name="bitrate" range="1-2000000" />
|
||||
<Feature name="intra-refresh" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
|
||||
<Alias name="OMX.google.vp8.encoder" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="size" min="2x2" max="1280x1280" />
|
||||
<!-- profiles and levels: ProfileMain : Level_Version0-3 -->
|
||||
<Limit name="block-count" range="1-3600" /> <!-- max 1280x720 -->
|
||||
<Limit name="bitrate" range="1-20000000" />
|
||||
<Feature name="bitrate-modes" value="VBR,CBR" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.hevc.encoder" type="video/hevc" update="true" enabled="false">
|
||||
<!-- profiles and levels: ProfileMain : MainTierLevel51 -->
|
||||
<Limit name="size" min="2x2" max="512x512" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="8x8" />
|
||||
<Limit name="block-count" range="1-4096" />
|
||||
<!-- max 512x512 -->
|
||||
<Limit name="blocks-per-second" range="1-122880" />
|
||||
<Limit name="frame-rate" range="1-120" />
|
||||
<Limit name="bitrate" range="1-10000000" />
|
||||
<Limit name="complexity" range="0-10" default="0" />
|
||||
<Limit name="quality" range="0-100" default="80" />
|
||||
<Feature name="bitrate-modes" value="VBR,CBR,CQ" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.vp9.encoder" type="video/x-vnd.on2.vp9" update="true" enabled="false">
|
||||
<Alias name="OMX.google.vp9.encoder" />
|
||||
<!-- profiles and levels: ProfileMain : Level_Version0-3 -->
|
||||
<Limit name="size" min="2x2" max="2048x2048" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<!-- 2016 devices can encode at about 8fps at this block count -->
|
||||
<Limit name="block-count" range="1-3600" /> <!-- max 1280x720 -->
|
||||
<Limit name="bitrate" range="1-40000000" />
|
||||
<Feature name="bitrate-modes" value="VBR,CBR" />
|
||||
</MediaCodec>
|
||||
</Encoders>
|
||||
</MediaCodecs>
|
97
configs/media/media_codecs_mediatek_audio.xml
Normal file
97
configs/media/media_codecs_mediatek_audio.xml
Normal file
|
@ -0,0 +1,97 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!-- 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.
|
||||
-->
|
||||
|
||||
<!--
|
||||
<!DOCTYPE MediaCodecs [
|
||||
<!ELEMENT MediaCodecs (Decoders,Encoders)>
|
||||
<!ELEMENT Decoders (MediaCodec*)>
|
||||
<!ELEMENT Encoders (MediaCodec*)>
|
||||
<!ELEMENT MediaCodec (Type*,Quirk*)>
|
||||
<!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.
|
||||
|
||||
2012/07/13 config for MTK OMX Media Codecs, created by Morris Yang (mtk03147)
|
||||
-->
|
||||
|
||||
<Included>
|
||||
<Decoders>
|
||||
<MediaCodec name="OMX.MTK.AUDIO.DECODER.MP3" type="audio/mpeg" rank="6">
|
||||
<Quirk name="decoder-lies-about-number-of-channels" />
|
||||
<Quirk name="supports-multiple-frames-per-input-buffer" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="OMX.MTK.AUDIO.DECODER.GSM" type="audio/gsm" />
|
||||
<!--TCD:delete XLQLBH-1272 KHLHLWYS-1790 by wenqiang.zhang 20220602 start-->
|
||||
<!--<MediaCodec name="OMX.MTK.AUDIO.DECODER.WMA" type="audio/x-ms-wma" />-->
|
||||
<!--TCD:delete XLQLBH-1272 KHLHLWYS-1790 by wenqiang.zhang 20220602 end-->
|
||||
<MediaCodec name="OMX.MTK.AUDIO.DECODER.ADPCM.MS" type="audio/x-adpcm-ms" />
|
||||
<MediaCodec name="OMX.MTK.AUDIO.DECODER.ADPCM.DVI" type="audio/x-adpcm-dvi-ima" />
|
||||
<MediaCodec name="OMX.MTK.AUDIO.DECODER.APE" type="audio/ape" >
|
||||
<Quirk name="decoder-lies-about-number-of-channels" />
|
||||
<Quirk name="supports-multiple-frames-per-input-buffer" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="OMX.MTK.AUDIO.DECODER.ALAC" type="audio/alac" />
|
||||
</Decoders>
|
||||
</Included>
|
172
configs/media/media_codecs_performance.xml
Normal file
172
configs/media/media_codecs_performance.xml
Normal file
|
@ -0,0 +1,172 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!-- 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.
|
||||
-->
|
||||
<!--
|
||||
<!DOCTYPE MediaCodecs [
|
||||
<!ELEMENT MediaCodecs (Decoders,Encoders)>
|
||||
<!ELEMENT Decoders (MediaCodec*)>
|
||||
<!ELEMENT Encoders (MediaCodec*)>
|
||||
<!ELEMENT MediaCodec (Type*,Quirk*)>
|
||||
<!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.
|
||||
2012/07/13 config for MTK OMX Media Codecs, created by Morris Yang (mtk03147)
|
||||
-->
|
||||
|
||||
<MediaCodecs>
|
||||
<Encoders>
|
||||
<!-- MTK codec -->
|
||||
<MediaCodec name="c2.mtk.avc.encoder" type="video/avc" update="true">
|
||||
<Limit name="measured-frame-rate-320x240" range="130-286" />
|
||||
<Limit name="measured-frame-rate-720x480" range="75-166" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="50-111" />
|
||||
<Limit name="measured-frame-rate-1920x1080" range="36-80" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.mtk.hevc.encoder" type="video/hevc" update="true">
|
||||
<Limit name="measured-frame-rate-320x240" range="129-283" />
|
||||
<Limit name="measured-frame-rate-720x480" range="75-166" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="51-113" />
|
||||
<Limit name="measured-frame-rate-1920x1080" range="44-96" />
|
||||
</MediaCodec>
|
||||
<!-- Google codec -->
|
||||
<MediaCodec name="c2.android.avc.encoder" type="video/avc" update="true">
|
||||
<Limit name="measured-frame-rate-320x240" range="101-223" />
|
||||
<Limit name="measured-frame-rate-720x480" range="62-136" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="21-46" />
|
||||
<Limit name="measured-frame-rate-1920x1080" range="13-29" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.hevc.encoder" type="video/hevc" update="true">
|
||||
<Limit name="measured-frame-rate-320x240" range="20-43" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.h263.encoder" type="video/3gpp" update="true">
|
||||
<Limit name="measured-frame-rate-176x144" range="265-584" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.mpeg4.encoder" type="video/mp4v-es" update="true">
|
||||
<Limit name="measured-frame-rate-176x144" range="243-536" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
|
||||
<Limit name="measured-frame-rate-320x180" range="128-281" />
|
||||
<Limit name="measured-frame-rate-640x360" range="65-143" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="13-29" />
|
||||
<Limit name="measured-frame-rate-1920x1080" range="9-20" />
|
||||
</MediaCodec>
|
||||
</Encoders>
|
||||
<Decoders>
|
||||
<!-- MTK codec -->
|
||||
<MediaCodec name="c2.mtk.mpeg4.decoder" type="video/mp4v-es" update="true">
|
||||
<Limit name="measured-frame-rate-176x144" range="350-1056" />
|
||||
<Limit name="measured-frame-rate-480x360" range="136-759" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="54-119" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.mtk.h263.decoder" type="video/3gpp" update="true">
|
||||
<Limit name="measured-frame-rate-176x144" range="274-602" />
|
||||
<Limit name="measured-frame-rate-352x288" range="233-513" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.mtk.avc.decoder" type="video/avc" update="true">
|
||||
<Limit name="measured-frame-rate-320x240" range="426-938" />
|
||||
<Limit name="measured-frame-rate-720x480" range="193-424" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="138-304" />
|
||||
<Limit name="measured-frame-rate-1920x1080" range="55-122" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.mtk.hevc.decoder" type="video/hevc" update="true">
|
||||
<Limit name="measured-frame-rate-352x288" range="484-1065" />
|
||||
<Limit name="measured-frame-rate-640x360" range="362-796" />
|
||||
<Limit name="measured-frame-rate-720x480" range="241-530" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="184-405" />
|
||||
<Limit name="measured-frame-rate-1920x1080" range="69-354" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.mtk.vpx.decoder" type="video/x-vnd.on2.vp8" update="true">
|
||||
<Limit name="measured-frame-rate-320x180" range="161-355" />
|
||||
<Limit name="measured-frame-rate-640x360" range="132-292" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="65-142" />
|
||||
<Limit name="measured-frame-rate-1920x1080" range="23-79" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.mtk.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
|
||||
<Limit name="measured-frame-rate-320x180" range="237-522" />
|
||||
<Limit name="measured-frame-rate-640x360" range="170-373" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="89-196" />
|
||||
<Limit name="measured-frame-rate-1920x1080" range="55-121" />
|
||||
</MediaCodec>
|
||||
<!-- Google codec -->
|
||||
<MediaCodec name="c2.android.mpeg4.decoder" type="video/mp4v-es" update="true">
|
||||
<Limit name="measured-frame-rate-176x144" range="359-790" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.h263.decoder" type="video/3gpp" update="true">
|
||||
<Limit name="measured-frame-rate-176x144" range="313-688" />
|
||||
<Limit name="measured-frame-rate-352x288" range="128-297" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.avc.decoder" type="video/avc" update="true">
|
||||
<Limit name="measured-frame-rate-320x240" range="110-243" />
|
||||
<Limit name="measured-frame-rate-720x480" range="31-68" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="20-44" />
|
||||
<Limit name="measured-frame-rate-1920x1080" range="13-28" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.hevc.decoder" type="video/hevc" update="true">
|
||||
<Limit name="measured-frame-rate-352x288" range="114-250" />
|
||||
<Limit name="measured-frame-rate-640x360" range="59-129" />
|
||||
<Limit name="measured-frame-rate-720x480" range="57-125" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="21-46" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
|
||||
<Limit name="measured-frame-rate-320x180" range="345-760" />
|
||||
<Limit name="measured-frame-rate-640x360" range="185-406" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="49-107" />
|
||||
<Limit name="measured-frame-rate-1920x1080" range="20-43" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
|
||||
<Limit name="measured-frame-rate-320x180" range="201-442" />
|
||||
<Limit name="measured-frame-rate-640x360" range="89-195" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="52-115" />
|
||||
<Limit name="measured-frame-rate-1920x1080" range="29-64" />
|
||||
</MediaCodec>
|
||||
</Decoders>
|
||||
</MediaCodecs>
|
1722
configs/media/media_profiles_V1_0.xml
Normal file
1722
configs/media/media_profiles_V1_0.xml
Normal file
File diff suppressed because it is too large
Load diff
6
configs/media/mtk_omx_core.cfg
Normal file
6
configs/media/mtk_omx_core.cfg
Normal file
|
@ -0,0 +1,6 @@
|
|||
OMX.MTK.AUDIO.DECODER.MP3 audio_decoder.mp3 libMtkOmxMp3Dec.so 32
|
||||
OMX.MTK.AUDIO.DECODER.APE audio_decoder.ape libMtkOmxApeDec.so 32
|
||||
OMX.MTK.AUDIO.DECODER.ADPCM.MS audio_decoder.adpcm libMtkOmxAdpcmDec.so 32
|
||||
OMX.MTK.AUDIO.DECODER.ADPCM.DVI audio_decoder.adpcm libMtkOmxAdpcmDec.so 32
|
||||
OMX.MTK.AUDIO.DECODER.GSM audio_decoder.gsm libMtkOmxGsmDec.so 32
|
||||
OMX.MTK.AUDIO.DECODER.ALAC audio_decoder.alac libMtkOmxAlacDec.so 32
|
85
configs/media/mtk_platform_codecs_config.xml
Normal file
85
configs/media/mtk_platform_codecs_config.xml
Normal file
|
@ -0,0 +1,85 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
-->
|
||||
<MediaCodecs>
|
||||
<Decoders>
|
||||
<Video name="color.converter"
|
||||
alwaysColorConvertChecker="true" />
|
||||
<Video name="cpu.boost.mode"
|
||||
cluster="0"
|
||||
minFrequency="700000" />
|
||||
<Video name="c2.mtk.mpeg4.decoder"
|
||||
type="video/mp4v-es"
|
||||
driverIntf="v4l2"
|
||||
maxConcurrentInstances="32" />
|
||||
<Video name="c2.mtk.mpeg2.decoder"
|
||||
type="video/mpeg2"
|
||||
driverIntf="v4l2"
|
||||
maxConcurrentInstances="32" />
|
||||
<Video name="c2.mtk.h263.decoder"
|
||||
type="video/3gpp"
|
||||
driverIntf="v4l2"
|
||||
maxConcurrentInstances="32" />
|
||||
<Video name="c2.mtk.avc.decoder"
|
||||
type="video/avc"
|
||||
driverIntf="v4l2"
|
||||
maxConcurrentInstances="32"
|
||||
metaBufferSize="4096" />
|
||||
<Video name="c2.mtk.avc.decoder.secure"
|
||||
type="video/avc"
|
||||
driverIntf="v4l2"
|
||||
maxConcurrentInstances="1" />
|
||||
<Video name="c2.mtk.hevc.decoder"
|
||||
type="video/hevc"
|
||||
driverIntf="v4l2"
|
||||
maxConcurrentInstances="32"
|
||||
metaBufferSize="4096" />
|
||||
<Video name="c2.mtk.hevc.decoder.secure"
|
||||
type="video/hevc"
|
||||
driverIntf="v4l2"
|
||||
maxConcurrentInstances="1"
|
||||
metaBufferSize="4096" />
|
||||
<Video name="c2.mtk.heif.decoder"
|
||||
type="image/vnd.android.heic"
|
||||
driverIntf="v4l2"
|
||||
maxConcurrentInstances="32" />
|
||||
<Video name="c2.mtk.vpx.decoder"
|
||||
type="video/x-vnd.on2.vp8"
|
||||
driverIntf="v4l2"
|
||||
maxConcurrentInstances="32" />
|
||||
<Video name="c2.mtk.vp9.decoder"
|
||||
type="video/x-vnd.on2.vp9"
|
||||
driverIntf="v4l2"
|
||||
maxConcurrentInstances="32" />
|
||||
<Video name="c2.mtk.vp9.decoder.secure"
|
||||
type="video/x-vnd.on2.vp9"
|
||||
driverIntf="v4l2"
|
||||
maxConcurrentInstances="1" />
|
||||
<Video name="c2.mtk.mpeg2.decoder"
|
||||
type="video/mpeg2"
|
||||
driverIntf="v4l2"
|
||||
maxConcurrentInstances="32" />
|
||||
</Decoders>
|
||||
<Encoders>
|
||||
<Video name="c2.mtk.avc.encoder"
|
||||
type="video/avc"
|
||||
driverIntf="v4l2"
|
||||
maxConcurrentInstances="16"
|
||||
canSwapWidthHeight="true" />
|
||||
<Video name="c2.mtk.avc.encoder.secure"
|
||||
type="video/avc"
|
||||
driverIntf="v4l2"
|
||||
maxConcurrentInstances="16"
|
||||
canSwapWidthHeight="true" />
|
||||
<Video name="c2.mtk.hevc.encoder"
|
||||
type="video/hevc"
|
||||
driverIntf="v4l2"
|
||||
maxConcurrentInstances="12"
|
||||
canSwapWidthHeight="true" />
|
||||
<Video name="c2.mtk.heif.encoder"
|
||||
type="image/vnd.android.heic"
|
||||
driverIntf="v4l2"
|
||||
maxConcurrentInstances="2"
|
||||
canSwapWidthHeight="true" />
|
||||
</Encoders>
|
||||
</MediaCodecs>
|
|
@ -85,6 +85,16 @@ persist.vendor.volte_support=1
|
|||
ro.vendor.md_auto_setup_ims=1
|
||||
ro.vendor.mtk_data_config=1
|
||||
|
||||
# Media
|
||||
debug.mediatek.disp_decompress=1
|
||||
debug.stagefright.c2inputsurface=-1
|
||||
media.c2.dmabuf.padding=3072
|
||||
ro.vendor.jpeg_decode_sw_opt=1
|
||||
ro.vendor.mtk_config_max_dram_size=0x800000000
|
||||
ro.vendor.mtk_sec_video_path_support=1
|
||||
ro.vendor.mtk_video_hevc_enc_support=1
|
||||
vendor.mtk.vdec.waitkeyframeforplay=9
|
||||
|
||||
# Sensors
|
||||
ro.vendor.mtk.sensor.support=yes
|
||||
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
connect: 1
|
||||
fcntl64: 1
|
||||
socket: 1
|
||||
writev: 1
|
||||
clock_nanosleep: 1
|
||||
eventfd2: 1
|
||||
sched_getparam: 1
|
||||
sched_getscheduler :1
|
||||
setsockopt: 1
|
||||
bind: 1
|
||||
listen: 1
|
||||
|
||||
# Add more for 32bits process, from android.hardware.media.c2@1.1-default-arm.policy
|
||||
mmap2: arg2 in ~PROT_EXEC || arg2 in ~PROT_WRITE
|
||||
ftruncate64: 1
|
||||
getuid32: 1
|
||||
open: 1
|
||||
fstat64: 1
|
||||
readlink: 1
|
||||
fstatfs64: 1
|
||||
_llseek: 1
|
||||
fstatat64: 1
|
||||
ugetrlimit: 1
|
||||
# crash dump policy additions
|
||||
sigreturn: 1
|
||||
futex: 1
|
||||
#mmap2: arg2 in 0x1|0x2
|
||||
geteuid32: 1
|
||||
getgid32: 1
|
||||
getegid32: 1
|
||||
getgroups32: 1
|
||||
getpriority: 1
|
||||
mlock: 1
|
||||
munlock: 1
|
||||
fchmod: 1
|
||||
getuid: 1
|
||||
mmap: 1
|
||||
getrlimit: 1
|
||||
newfstatat: 1
|
||||
fstat: 1
|
||||
fstatfs: 1
|
||||
flock: 1
|
|
@ -0,0 +1,92 @@
|
|||
# Copyright (C) 2019 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.
|
||||
|
||||
futex: 1
|
||||
# ioctl calls are filtered via the selinux policy.
|
||||
ioctl: 1
|
||||
sched_yield: 1
|
||||
close: 1
|
||||
dup: 1
|
||||
ppoll: 1
|
||||
mprotect: arg2 in ~PROT_EXEC || arg2 in ~PROT_WRITE
|
||||
#mmap2: arg2 in ~PROT_EXEC || arg2 in ~PROT_WRITE
|
||||
memfd_create: 1
|
||||
ftruncate: 1
|
||||
ftruncate64: 1
|
||||
|
||||
# mremap: Ensure |flags| are (MREMAP_MAYMOVE | MREMAP_FIXED) TODO: Once minijail
|
||||
# parser support for '<' is in this needs to be modified to also prevent
|
||||
# |old_address| and |new_address| from touching the exception vector page, which
|
||||
# on ARM is statically loaded at 0xffff 0000. See
|
||||
# http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0211h/Babfeega.html
|
||||
# for more details.
|
||||
mremap: arg3 == 3 || arg3 == MREMAP_MAYMOVE
|
||||
munmap: 1
|
||||
prctl: 1
|
||||
getuid32: 1
|
||||
writev: 1
|
||||
sigaltstack: 1
|
||||
clone: 1
|
||||
exit: 1
|
||||
lseek: 1
|
||||
rt_sigprocmask: 1
|
||||
openat: 1
|
||||
open: 1
|
||||
fstat64: 1
|
||||
write: 1
|
||||
nanosleep: 1
|
||||
setpriority: 1
|
||||
set_tid_address: 1
|
||||
getdents64: 1
|
||||
readlinkat: 1
|
||||
readlink: 1
|
||||
read: 1
|
||||
pread64: 1
|
||||
fstatfs64: 1
|
||||
gettimeofday: 1
|
||||
faccessat: 1
|
||||
_llseek: 1
|
||||
fstatat64: 1
|
||||
ugetrlimit: 1
|
||||
exit_group: 1
|
||||
restart_syscall: 1
|
||||
rt_sigreturn: 1
|
||||
getrandom: 1
|
||||
madvise: 1
|
||||
sched_setaffinity: 1
|
||||
sched_getaffinity: 1
|
||||
sched_getparam: 1
|
||||
sched_getscheduler: 1
|
||||
recvfrom: 1
|
||||
|
||||
# crash dump policy additions
|
||||
sigreturn: 1
|
||||
clock_gettime: 1
|
||||
futex: 1
|
||||
getpid: 1
|
||||
gettid: 1
|
||||
pipe2: 1
|
||||
recvmsg: 1
|
||||
process_vm_readv: 1
|
||||
tgkill: 1
|
||||
rt_sigaction: 1
|
||||
rt_tgsigqueueinfo: 1
|
||||
#prctl: arg0 == PR_GET_NO_NEW_PRIVS || arg0 == 0x53564d41
|
||||
#mprotect: arg2 in 0x1|0x2
|
||||
#mmap2: arg2 in 0x1|0x2
|
||||
geteuid32: 1
|
||||
getgid32: 1
|
||||
getegid32: 1
|
||||
getgroups32: 1
|
||||
flock: 1
|
22
configs/seccomp/mediacodec.policy
Normal file
22
configs/seccomp/mediacodec.policy
Normal file
|
@ -0,0 +1,22 @@
|
|||
#Mediatek used system call
|
||||
getpid: 1
|
||||
gettid: 1
|
||||
sendto: 1
|
||||
pselect6: 1
|
||||
sched_getparam: 1
|
||||
sched_getscheduler: 1
|
||||
mlock: 1
|
||||
munlock: 1
|
||||
recvfrom: 1
|
||||
sched_getaffinity: 1
|
||||
sched_setaffinity: 1
|
||||
sched_getaffinity: 1
|
||||
flock: 1
|
||||
fchownat: 1
|
||||
fchmodat: 1
|
||||
fsync: 1
|
||||
sysinfo: 1
|
||||
setsockopt: 1
|
||||
setrlimit: 1
|
||||
eventfd2: 1
|
||||
unlinkat: 1
|
8
configs/seccomp/mediaextractor.policy
Normal file
8
configs/seccomp/mediaextractor.policy
Normal file
|
@ -0,0 +1,8 @@
|
|||
# MediaTek used system call
|
||||
gettimeofday: 1
|
||||
# for audio TableOfContent thread
|
||||
ioprio_set: 1
|
||||
unlinkat: 1
|
||||
setsockopt: 1
|
||||
clock_gettime: 1
|
||||
setrlimit: 1
|
2
configs/seccomp/mediaswcodec.policy
Normal file
2
configs/seccomp/mediaswcodec.policy
Normal file
|
@ -0,0 +1,2 @@
|
|||
#Mediatek used system call
|
||||
clock_nanosleep: 1
|
17
device.mk
17
device.mk
|
@ -163,6 +163,23 @@ PRODUCT_PACKAGES += \
|
|||
PRODUCT_PACKAGES += \
|
||||
android.hardware.lights-service.transsion
|
||||
|
||||
# Media
|
||||
PRODUCT_PACKAGES += \
|
||||
libcodec2_hidl@1.1.vendor \
|
||||
libcodec2_hidl@1.2.vendor \
|
||||
libavservices_minijail_vendor \
|
||||
libstagefright_softomx_plugin.vendor \
|
||||
libsfplugin_ccodec_utils.vendor \
|
||||
libcodec2_soft_common.vendor
|
||||
|
||||
PRODUCT_COPY_FILES += \
|
||||
frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml \
|
||||
frameworks/av/media/libstagefright/data/media_codecs_google_video_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video_le.xml
|
||||
|
||||
PRODUCT_COPY_FILES += \
|
||||
$(call find-copy-subdir-files,*,$(LOCAL_PATH)/configs/seccomp,$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy) \
|
||||
$(call find-copy-subdir-files,*,$(LOCAL_PATH)/configs/media,$(TARGET_COPY_OUT_VENDOR)/etc)
|
||||
|
||||
# NFC
|
||||
PRODUCT_PACKAGES += \
|
||||
android.hardware.nfc@1.2.vendor \
|
||||
|
|
|
@ -513,6 +513,57 @@ vendor/etc/init/android.hardware.security.keymint-service.trustonic.rc
|
|||
-vendor/etc/vintf/manifest/android.hardware.security.secureclock-service.trustonic.xml
|
||||
-vendor/etc/vintf/manifest/android.hardware.security.sharedsecret-service.trustonic.xml
|
||||
|
||||
# Media
|
||||
vendor/bin/mt6789/v3avpud.mt6789
|
||||
vendor/etc/init/v3avpud.rc
|
||||
vendor/lib/mt6789/libvcodec_utility.so
|
||||
vendor/lib/mt6789/libvcodec_utility_v3a.so
|
||||
vendor/lib/mt6789/libvcodecdrv.so
|
||||
vendor/lib/mt6789/libvcodecdrv_v3a.so
|
||||
vendor/lib/mt6789/libvpudv3a_vcodec.so
|
||||
vendor/lib/libvcodec_oal.so
|
||||
vendor/lib/libvcodecdrv_header_stub.so
|
||||
vendor/lib/libvpu5.so
|
||||
vendor/lib/libvpud_vcodec.so
|
||||
|
||||
# Media (OMX)
|
||||
vendor/lib/libMtkOmxAdpcmDec.so
|
||||
vendor/lib/libMtkOmxAlacDec.so
|
||||
vendor/lib/libMtkOmxCore.so
|
||||
vendor/lib/libMtkOmxGsmDec.so
|
||||
vendor/lib/libMtkOmxMp3Dec.so
|
||||
vendor/lib/libadpcmdec_mtk.so
|
||||
vendor/lib/libmp3dec_mtk.so
|
||||
vendor/lib/libstagefrighthw.so
|
||||
vendor/lib64/libstagefrighthw.so
|
||||
|
||||
# Media (C2)
|
||||
vendor/bin/hw/android.hardware.media.c2@1.2-mediatek-64b:vendor/bin/hw/android.hardware.media.c2@1.2-mediatek
|
||||
vendor/etc/init/android.hardware.media.c2@1.2-mediatek.rc
|
||||
vendor/etc/vintf/manifest/manifest_media_c2_V1_1_default.xml
|
||||
vendor/lib/libcodec2_mtk_c2store.so
|
||||
vendor/lib/libcodec2_mtk_vdec.so
|
||||
vendor/lib/libcodec2_mtk_venc.so
|
||||
vendor/lib/libcodec2_soft_mtk_alacdec.so
|
||||
vendor/lib/libcodec2_soft_mtk_apedec.so
|
||||
vendor/lib/libcodec2_soft_mtk_imaadpcmdec.so
|
||||
vendor/lib/libcodec2_soft_mtk_mp3dec.so
|
||||
vendor/lib/libcodec2_soft_mtk_msadpcmdec.so
|
||||
vendor/lib/libcodec2_vpp_qt_plugin.so
|
||||
vendor/lib/libcodec2_vpp_rs_plugin.so
|
||||
vendor/lib/libformatter.so
|
||||
vendor/lib64/libcodec2_mtk_c2store.so
|
||||
vendor/lib64/libcodec2_mtk_vdec.so
|
||||
vendor/lib64/libcodec2_mtk_venc.so
|
||||
vendor/lib64/libcodec2_soft_mtk_alacdec.so
|
||||
vendor/lib64/libcodec2_soft_mtk_apedec.so
|
||||
vendor/lib64/libcodec2_soft_mtk_imaadpcmdec.so
|
||||
vendor/lib64/libcodec2_soft_mtk_mp3dec.so
|
||||
vendor/lib64/libcodec2_soft_mtk_msadpcmdec.so
|
||||
vendor/lib64/libcodec2_vpp_qt_plugin.so
|
||||
vendor/lib64/libcodec2_vpp_rs_plugin.so
|
||||
vendor/lib64/libformatter.so
|
||||
|
||||
# NFC
|
||||
vendor/bin/hw/android.hardware.nfc@1.2-service
|
||||
vendor/etc/init/android.hardware.nfc@1.2-service.rc
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
bin/v3avpud.mt6789
|
||||
lib/egl/libGLES_mali.so
|
||||
lib/hw/android.hardware.graphics.allocator@4.0-impl-mediatek.so
|
||||
lib/hw/android.hardware.graphics.mapper@4.0-impl-mediatek.so
|
||||
|
@ -14,6 +15,11 @@ lib/libnir_neon_driver.so
|
|||
lib/libpq_cust_base.so
|
||||
lib/libpq_prot.so
|
||||
lib/libpqparamparser.so
|
||||
lib/libvcodec_utility.so
|
||||
lib/libvcodec_utility_v3a.so
|
||||
lib/libvcodecdrv.so
|
||||
lib/libvcodecdrv_v3a.so
|
||||
lib/libvpudv3a_vcodec.so
|
||||
lib64/egl/libGLES_mali.so
|
||||
lib64/hw/android.hardware.graphics.allocator@4.0-impl-mediatek.so
|
||||
lib64/hw/android.hardware.graphics.mapper@4.0-impl-mediatek.so
|
||||
|
|
Loading…
Reference in a new issue