diff options
author | Jack Chen | 2020-02-08 18:09:10 +0800 |
---|---|---|
committer | Jack Chen | 2020-02-08 18:10:29 +0800 |
commit | 7a1840cad5c362623f9fdddea85b2856d63a1e74 (patch) | |
tree | 98b17853654d9aa516151af35d2dec971b8b7d25 | |
parent | db83268457cee66efe0e0a455cf5af2b7522a147 (diff) | |
download | aur-7a1840cad5c362623f9fdddea85b2856d63a1e74.tar.gz |
add some media codecs
-rw-r--r-- | .SRCINFO | 14 | ||||
-rw-r--r-- | PKGBUILD | 13 | ||||
-rw-r--r-- | media_codecs.xml | 89 | ||||
-rw-r--r-- | media_codecs_google_audio.xml | 97 | ||||
-rw-r--r-- | media_codecs_google_telephony.xml | 25 | ||||
-rw-r--r-- | media_codecs_google_video.xml | 122 |
6 files changed, 356 insertions, 4 deletions
@@ -1,7 +1,7 @@ pkgbase = anbox-image-gapps pkgdesc = Android image for running in Anbox, with OpenGApps and Houdini pkgver = 2018.07.19 - pkgrel = 13 + pkgrel = 14 url = https://anbox.io arch = x86_64 license = custom @@ -14,11 +14,19 @@ pkgbase = anbox-image-gapps source = http://build.anbox.io/android-images/2018/07/19/android_amd64.img source = houdini_y.sfs::http://dl.android-x86.org/houdini/7_y/houdini.sfs source = houdini_z.sfs::http://dl.android-x86.org/houdini/7_z/houdini.sfs - source = https://downloads.sourceforge.net/project/opengapps/x86_64/20200117/open_gapps-x86_64-7.1-pico-20200117.zip + source = media_codecs.xml + source = media_codecs_google_video.xml + source = media_codecs_google_audio.xml + source = media_codecs_google_telephony.xml + source = https://downloads.sourceforge.net/project/opengapps/x86_64/20200208/open_gapps-x86_64-7.1-pico-20200208.zip md5sums = 26874452a6521ec2e37400670d438e33 md5sums = 7ebf618b1af94a02322d9f2d2610090b md5sums = 5ca37e1629edb7d13b18751b72dc98ad - md5sums = f4085066cb505112699a710b6bd0be65 + md5sums = a638728bc2413d908f5eb44a9f09e947 + md5sums = 599598e70060eb74c119cf7dac0ce466 + md5sums = 43193761081a04ca18a28d4a6e039950 + md5sums = 91f5f3e5c31f8e221ae8f318527dcb83 + md5sums = e72e900c158695c8c6d07259804f8b00 pkgname = anbox-image-gapps @@ -4,7 +4,7 @@ pkgname=anbox-image-gapps pkgver=2018.07.19 -pkgrel=13 +pkgrel=14 pkgdesc="Android image for running in Anbox, with OpenGApps and Houdini" arch=('x86_64') url="https://anbox.io" @@ -26,12 +26,20 @@ source=( "http://build.anbox.io/android-images/${pkgver//./\/}/android_amd64.img" "houdini_y.sfs::http://dl.android-x86.org/houdini/7_y/houdini.sfs" "houdini_z.sfs::http://dl.android-x86.org/houdini/7_z/houdini.sfs" + "media_codecs.xml" + "media_codecs_google_video.xml" + "media_codecs_google_audio.xml" + "media_codecs_google_telephony.xml" "$_gapps_src" ) md5sums=( '26874452a6521ec2e37400670d438e33' '7ebf618b1af94a02322d9f2d2610090b' '5ca37e1629edb7d13b18751b72dc98ad' + 'a638728bc2413d908f5eb44a9f09e947' + '599598e70060eb74c119cf7dac0ce466' + '43193761081a04ca18a28d4a6e039950' + '91f5f3e5c31f8e221ae8f318527dcb83' "$_gapps_md5" ) @@ -99,6 +107,9 @@ build () { # enable opengles echo 'ro.opengles.version=131072' >> ./squashfs-root/system/build.prop + # install media codecs + cp media_codec*.xml ./squashfs-root/system/etc/ + # install gapps for i in ${_gapps_list[*]}; do mkdir -p $i diff --git a/media_codecs.xml b/media_codecs.xml new file mode 100644 index 000000000000..0b18417396c3 --- /dev/null +++ b/media_codecs.xml @@ -0,0 +1,89 @@ +<?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 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. + +--> + +<MediaCodecs> + <Settings> + <Setting name="supports-multiple-secure-codecs" value="true" /> + <Setting name="supports-secure-with-non-secure-codec" value="true" /> + <Setting name="max-video-encoder-input-buffers" value="9" /> + </Settings> + <Include href="media_codecs_google_video.xml" /> + <Include href="media_codecs_google_audio.xml" /> + <Include href="media_codecs_google_telephony.xml" /> +</MediaCodecs> diff --git a/media_codecs_google_audio.xml b/media_codecs_google_audio.xml new file mode 100644 index 000000000000..632088ae7e5b --- /dev/null +++ b/media_codecs_google_audio.xml @@ -0,0 +1,97 @@ +<?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. +--> + +<Included> + <Decoders> + <MediaCodec name="OMX.google.mp3.decoder" type="audio/mpeg"> + <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="OMX.google.amrnb.decoder" type="audio/3gpp"> + <Limit name="channel-count" max="1" /> + <Limit name="sample-rate" ranges="8000" /> + <Limit name="bitrate" range="4750-12200" /> + </MediaCodec> + <MediaCodec name="OMX.google.amrwb.decoder" type="audio/amr-wb"> + <Limit name="channel-count" max="1" /> + <Limit name="sample-rate" ranges="16000" /> + <Limit name="bitrate" range="6600-23850" /> + </MediaCodec> + <MediaCodec name="OMX.google.aac.decoder" type="audio/mp4a-latm"> + <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="OMX.google.g711.alaw.decoder" type="audio/g711-alaw"> + <Limit name="channel-count" max="1" /> + <Limit name="sample-rate" ranges="8000-48000" /> + <Limit name="bitrate" range="64000" /> + </MediaCodec> + <MediaCodec name="OMX.google.g711.mlaw.decoder" type="audio/g711-mlaw"> + <Limit name="channel-count" max="1" /> + <Limit name="sample-rate" ranges="8000-48000" /> + <Limit name="bitrate" range="64000" /> + </MediaCodec> + <MediaCodec name="OMX.google.vorbis.decoder" type="audio/vorbis"> + <Limit name="channel-count" max="8" /> + <Limit name="sample-rate" ranges="8000-96000" /> + <Limit name="bitrate" range="32000-500000" /> + </MediaCodec> + <MediaCodec name="OMX.google.opus.decoder" type="audio/opus"> + <Limit name="channel-count" max="8" /> + <Limit name="sample-rate" ranges="48000" /> + <Limit name="bitrate" range="6000-510000" /> + </MediaCodec> + <MediaCodec name="OMX.google.raw.decoder" type="audio/raw"> + <Limit name="channel-count" max="8" /> + <Limit name="sample-rate" ranges="8000-96000" /> + <Limit name="bitrate" range="1-10000000" /> + </MediaCodec> + <MediaCodec name="OMX.google.flac.decoder" type="audio/flac"> + <Limit name="channel-count" max="8" /> + <Limit name="sample-rate" ranges="1-655350" /> + <Limit name="bitrate" range="1-21000000" /> + </MediaCodec> + </Decoders> + <Encoders> + <MediaCodec name="OMX.google.aac.encoder" type="audio/mp4a-latm"> + <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="OMX.google.amrnb.encoder" type="audio/3gpp"> + <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="OMX.google.amrwb.encoder" type="audio/amr-wb"> + <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="OMX.google.flac.encoder" type="audio/flac"> + <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> + </Encoders> +</Included> diff --git a/media_codecs_google_telephony.xml b/media_codecs_google_telephony.xml new file mode 100644 index 000000000000..5ad90d9ab369 --- /dev/null +++ b/media_codecs_google_telephony.xml @@ -0,0 +1,25 @@ +<?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. +--> + +<Included> + <Decoders> + <MediaCodec name="OMX.google.gsm.decoder" type="audio/gsm"> + <Limit name="channel-count" max="1" /> + <Limit name="sample-rate" ranges="8000" /> + <Limit name="bitrate" range="13000" /> + </MediaCodec> + </Decoders> +</Included> diff --git a/media_codecs_google_video.xml b/media_codecs_google_video.xml new file mode 100644 index 000000000000..829f403af0aa --- /dev/null +++ b/media_codecs_google_video.xml @@ -0,0 +1,122 @@ +<?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. +--> + +<Included> + <Decoders> + <MediaCodec name="OMX.google.mpeg4.decoder" type="video/mp4v-es"> + <!-- 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="OMX.google.h263.decoder" type="video/3gpp"> + <!-- 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="OMX.google.h264.decoder" type="video/avc"> + <!-- profiles and levels: ProfileHigh : Level52 --> + <Limit name="size" min="2x2" max="4080x4080" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="block-count" range="1-32768" /> <!-- max 4096x2048 equivalent --> + <Limit name="blocks-per-second" range="1-1966080" /> + <Limit name="bitrate" range="1-48000000" /> + <Feature name="adaptive-playback" /> + </MediaCodec> + <MediaCodec name="OMX.google.hevc.decoder" type="video/hevc"> + <!-- profiles and levels: ProfileMain : MainTierLevel51 --> + <Limit name="size" min="2x2" max="4096x4096" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="8x8" /> + <Limit name="block-count" range="1-196608" /> <!-- max 4096x3072 --> + <Limit name="blocks-per-second" range="1-2000000" /> + <Limit name="bitrate" range="1-10000000" /> + <Feature name="adaptive-playback" /> + </MediaCodec> + <MediaCodec name="OMX.google.vp8.decoder" type="video/x-vnd.on2.vp8"> + <Limit name="size" min="2x2" max="2048x2048" /> + <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-1000000" /> + <Limit name="bitrate" range="1-40000000" /> + <Feature name="adaptive-playback" /> + </MediaCodec> + <MediaCodec name="OMX.google.vp9.decoder" type="video/x-vnd.on2.vp9"> + <Limit name="size" min="2x2" max="2048x2048" /> + <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-500000" /> + <Limit name="bitrate" range="1-40000000" /> + <Feature name="adaptive-playback" /> + </MediaCodec> + </Decoders> + + <Encoders> + <MediaCodec name="OMX.google.h263.encoder" type="video/3gpp"> + <!-- 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="OMX.google.h264.encoder" type="video/avc"> + <!-- profiles and levels: ProfileBaseline : Level41 --> + <Limit name="size" min="16x16" 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-245760" /> + <Limit name="bitrate" range="1-12000000" /> + <Feature name="intra-refresh" /> + </MediaCodec> + <MediaCodec name="OMX.google.mpeg4.encoder" type="video/mp4v-es"> + <!-- 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="OMX.google.vp8.encoder" type="video/x-vnd.on2.vp8"> + <!-- 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 10fps at this block count --> + <Limit name="block-count" range="1-16384" /> + <Limit name="bitrate" range="1-40000000" /> + <Feature name="bitrate-modes" value="VBR,CBR" /> + </MediaCodec> + <MediaCodec name="OMX.google.vp9.encoder" type="video/x-vnd.on2.vp9"> + <!-- 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> +</Included> |