diff options
author | Mubashshir | 2021-03-01 15:41:46 +0600 |
---|---|---|
committer | Mubashshir | 2021-03-01 15:41:46 +0600 |
commit | 323bb7b1fc4787f977832ae5069d8a2780e11767 (patch) | |
tree | 185d49c835ea8b2a83460bc32652b1734c3ef19a | |
download | aur-323bb7b1fc4787f977832ae5069d8a2780e11767.tar.gz |
init
-rw-r--r-- | .SRCINFO | 30 | ||||
-rw-r--r-- | .gitignore | 7 | ||||
-rw-r--r-- | PKGBUILD | 126 | ||||
-rw-r--r-- | media_codecs.xml | 87 | ||||
-rw-r--r-- | media_codecs_google_audio.xml | 96 | ||||
-rw-r--r-- | media_codecs_google_telephony.xml | 24 | ||||
-rw-r--r-- | media_codecs_google_video.xml | 124 |
7 files changed, 494 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..fef99bf47e33 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,30 @@ +pkgbase = anbox-image-nocsd + pkgdesc = Android image for running in Anbox, with no-csd patch and Houdini + pkgver = r1.5052c81c + pkgrel = 1 + url = https://anbox.io + arch = x86_64 + license = custom + makedepends = curl + makedepends = lzip + makedepends = squashfs-tools + makedepends = unzip + provides = anbox-image + conflicts = anbox-image + source = android_amd64.img::https://github.com/thdaemon/anbox/releases/download/ssd-pr-v1/android.img + source = https://github.com/redchenjs/aur-packages/releases/download/anbox-image/houdini_y.sfs + source = https://github.com/redchenjs/aur-packages/releases/download/anbox-image/houdini_z.sfs + source = media_codecs.xml + source = media_codecs_google_video.xml + source = media_codecs_google_audio.xml + source = media_codecs_google_telephony.xml + md5sums = 6c31bf493856f982da3d7d78b6e23b85 + md5sums = 7ebf618b1af94a02322d9f2d2610090b + md5sums = 5ca37e1629edb7d13b18751b72dc98ad + md5sums = 360c6d7b14a538c8034b282b0371be9b + md5sums = 2c96f31ead428ee2d1fbd2a65dd6962d + md5sums = 9f0dd33e444d816ab62fe8e8514a0c0e + md5sums = 0a59e1a43891f21a09fe06f18f0f5feb + +pkgname = anbox-image-nocsd + diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000000..aebf9b3f94a8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +* +!.SRCINFO +!PKGBUILD +!media_codecs.xml +!media_codecs_google_audio.xml +!media_codecs_google_telephony.xml +!media_codecs_google_video.xml diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..4cc25c5dd638 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,126 @@ +# Maintainer: Mubashshir <ahmubashshir at gmail dot com> +# Inspired by: aur/anbox-image-gapps +# shellcheck shell=bash disable=SC2034,SC2164,SC2154 +# pkg: git + +pkgname=anbox-image-nocsd +pkgver=r1.5052c81c +pkgrel=1 +pkgdesc="Android image for running in Anbox, with no-csd patch and Houdini" +arch=('x86_64') +url="https://anbox.io" +license=('custom') +makedepends=('curl' 'lzip' 'squashfs-tools' 'unzip') +provides=('anbox-image') +conflicts=('anbox-image') + +_anbox_rel="$(curl --config /dev/null -o /dev/null -Ls https://github.com/thdaemon/anbox/releases/latest -w '%{url_effective}\n'|xargs basename)" +source=( + "android_amd64.img::https://github.com/thdaemon/anbox/releases/download/$_anbox_rel/android.img" + "https://github.com/redchenjs/aur-packages/releases/download/anbox-image/houdini_y.sfs" + "https://github.com/redchenjs/aur-packages/releases/download/anbox-image/houdini_z.sfs" + "media_codecs.xml" + "media_codecs_google_video.xml" + "media_codecs_google_audio.xml" + "media_codecs_google_telephony.xml" +) + +md5sums=('6c31bf493856f982da3d7d78b6e23b85' + '7ebf618b1af94a02322d9f2d2610090b' + '5ca37e1629edb7d13b18751b72dc98ad' + '360c6d7b14a538c8034b282b0371be9b' + '2c96f31ead428ee2d1fbd2a65dd6962d' + '9f0dd33e444d816ab62fe8e8514a0c0e' + '0a59e1a43891f21a09fe06f18f0f5feb') + +pkgver () { + local _pkgver _sha __sha + _pkgver=$(( $(echo $pkgver|sed -En 's/r([[:digit:]]+)\..*/\1/p') + 1)) + _sha=$(echo $pkgver|sed -En 's/r[[:digit:]]+\.(.*)/\1/p') + __sha=$( + printf '%s\n%s\n' "$_anbox_rel" | \ + sha256sum - | cut -c1-8 + ) + if [ "$_sha" = "$__sha" ];then + echo "$pkgver" + else + echo "r$_pkgver.$__sha" + fi +} + +build () { + cd "$srcdir" + + # unpack anbox image + mkdir -p squashfs-root + rm -rf ./squashfs-root/* + unsquashfs -f -d ./squashfs-root ./android_amd64.img + + # load houdini_y + mkdir -p houdini_y + rm -rf ./houdini_y/* + unsquashfs -f -d ./houdini_y ./houdini_y.sfs + + mkdir -p ./squashfs-root/system/lib/arm + cp -r ./houdini_y/* ./squashfs-root/system/lib/arm + mv ./squashfs-root/system/lib/arm/libhoudini.so ./squashfs-root/system/lib/libhoudini.so + + # load houdini_z + mkdir -p houdini_z + rm -rf ./houdini_z/* + unsquashfs -f -d ./houdini_z ./houdini_z.sfs + + mkdir -p ./squashfs-root/system/lib64/arm64 + cp -r ./houdini_z/* ./squashfs-root/system/lib64/arm64 + mv ./squashfs-root/system/lib64/arm64/libhoudini.so ./squashfs-root/system/lib64/libhoudini.so + + # add houdini parser + mkdir -p ./squashfs-root/system/etc/binfmt_misc + echo ':arm_exe:M::\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28::/system/lib/arm/houdini:P' >> ./squashfs-root/system/etc/binfmt_misc/arm_exe + echo ':arm_dyn:M::\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x28::/system/lib/arm/houdini:P' >> ./squashfs-root/system/etc/binfmt_misc/arm_dyn + echo ':arm64_exe:M::\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7::/system/lib64/arm64/houdini64:P' >> ./squashfs-root/system/etc/binfmt_misc/arm64_exe + echo ':arm64_dyn:M::\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7::/system/lib64/arm64/houdini64:P' >> ./squashfs-root/system/etc/binfmt_misc/arm64_dyn + + # add features + sed -i '/<\/permissions>/d' ./squashfs-root/system/etc/permissions/anbox.xml + sed -i '/<unavailable-feature name=\"android.hardware.wifi\" \/>/d' ./squashfs-root/system/etc/permissions/anbox.xml + sed -i '/<unavailable-feature name=\"android.hardware.bluetooth\" \/>/d' ./squashfs-root/system/etc/permissions/anbox.xml + + echo ' <feature name="android.hardware.touchscreen" /> + <feature name="android.hardware.audio.output" /> + <feature name="android.hardware.camera" /> + <feature name="android.hardware.camera.any" /> + <feature name="android.hardware.location" /> + <feature name="android.hardware.location.gps" /> + <feature name="android.hardware.location.network" /> + <feature name="android.hardware.microphone" /> + <feature name="android.hardware.screen.portrait" /> + <feature name="android.hardware.screen.landscape" /> + <feature name="android.hardware.wifi" /> + <feature name="android.hardware.bluetooth" />' >> ./squashfs-root/system/etc/permissions/anbox.xml + echo '</permissions>' >> ./squashfs-root/system/etc/permissions/anbox.xml + + # set processors + sed -i '/^ro.product.cpu.abilist=x86_64,x86/ s/$/,arm64-v8a,armeabi-v7a,armeabi/' ./squashfs-root/system/build.prop + sed -i '/^ro.product.cpu.abilist32=x86/ s/$/,armeabi-v7a,armeabi/' ./squashfs-root/system/build.prop + sed -i '/^ro.product.cpu.abilist64=x86_64/ s/$/,arm64-v8a/' ./squashfs-root/system/build.prop + + # enable nativebridge + echo 'persist.sys.nativebridge=1' >> ./squashfs-root/system/build.prop + sed -i 's/ro.dalvik.vm.native.bridge=0/ro.dalvik.vm.native.bridge=libhoudini.so/' ./squashfs-root/default.prop + + # enable opengles + echo 'ro.opengles.version=131072' >> ./squashfs-root/system/build.prop + + # install media codecs + cp media_codec*.xml ./squashfs-root/system/etc/ +} + +package() { + cd "$srcdir" + + # repack image + mksquashfs ./squashfs-root ./android.img -noappend -b 131072 -comp xz -Xbcj x86 + + install -Dm 644 ./android.img "$pkgdir/var/lib/anbox/android.img" +} diff --git a/media_codecs.xml b/media_codecs.xml new file mode 100644 index 000000000000..e56e33271012 --- /dev/null +++ b/media_codecs.xml @@ -0,0 +1,87 @@ +<?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..3820d5a11da1 --- /dev/null +++ b/media_codecs_google_audio.xml @@ -0,0 +1,96 @@ +<?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..fb19ef0564e9 --- /dev/null +++ b/media_codecs_google_telephony.xml @@ -0,0 +1,24 @@ +<?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..9464c9b0ac50 --- /dev/null +++ b/media_codecs_google_video.xml @@ -0,0 +1,124 @@ +<?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> |